summaryrefslogtreecommitdiff
path: root/lib/rubygems/ext
AgeCommit message (Collapse)Author
2025-12-16[ruby/rubygems] Pass down value of `BUNDLE_JOBS` to RubyGems before compiling:Edouard CHIN
- ### Problem Since https://github.com/ruby/rubygems/pull/9131, we are now compiling make rules simultaneously. The number of jobs is equal to the number of processors. This may be problematic for some users as they want to control this value. ### Solution The number of jobs passed to `make` will now be equal to the `BUNDLE_JOBS` value. ### Side note It's also worth to note that since Bundler installs gems in parallel, we may end up running multiple `make -j<JOB>` in parallel which would cause exhaust the number of processors we have. This problem can be fixed by implementing a GNU jobserver, which I plan to do. But I felt that this would be too much change in one PR. https://github.com/ruby/rubygems/commit/d51995deb9
2025-11-29[ruby/rubygems] Also use String#include? for RUBY_PLATFORMHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/5fd95f38d3
2025-11-29Fixup with mswin and nmake build for -j flagHiroshi SHIBATA
2025-11-28[ruby/rubygems] Use String#include? with suggested by ↵Hiroshi SHIBATA
Performance/StringInclude cop https://github.com/ruby/rubygems/commit/fdd3419144
2025-11-29nmake didn't support -j flagHiroshi SHIBATA
2025-11-28[ruby/rubygems] Add `MAKEFLAGS=-j` by default before compiling:Edouard CHIN
- Depending on the native extension, it can greatly reduce compilation time when executing recipes simultaneously. For example on Prism: ``` # Before time gem install prism Building native extensions. This could take a while... Successfully installed prism-1.6.0 1 gem installed gem install prism 3.61s user 0.80s system 95% cpu 4.595 total ``` ``` # After time MAKEFLAGS="-j" gem install prism Building native extensions. This could take a while... Successfully installed prism-1.6.0 1 gem installed MAKEFLAGS="-j" gem install prism 4.47s user 1.27s system 246% cpu 2.330 total ``` I don't think adding `-j` as a default is harmful, but I'm admitedly not very knowledgable when it comes to compiler. https://github.com/ruby/rubygems/commit/61340081c6 Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
2025-10-20[ruby/rubygems] Now ruby/rubygems is the canonical repository urlHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/c637007e91
2025-10-17[rubygems/rubygems] :Revamp CmakeBuilder to fix the issues described in ↵Charlie Savage
#8572. Specifically: * Correctly pass command line arguments to CMake * Call CMake twice - once to configure a project and a second time to build (which is the standard way to use CMake). This fixes the previously incorrect assumption that CMake generates a Make file. * Update the tests to specify a CMake minimum version of 3.26 (which is already two years old). 3.26 is a bit arbritary but it aligns with Rice, and updates from the ancient 3.5 version being used (which CMake generates a warning message saying stop using it!) * Update the CMake call to use CMAKE_RUNTIME_OUTPUT_DIRECTORY and CMAKE_LIBRARY_OUTPUT_DIRECTORY to tell CMake to copy compiled binaries to the a Gem's lib directory. Note the updated builder took inspiration from the Cargo Builder, meaning you first create an instance of CmakeBuilder versus just calling class methods. https://github.com/rubygems/rubygems/commit/9e248d4679
2025-08-18[rubygems/rubygems] Use spaces around optional parameter valuesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/b58829a868
2025-08-18[rubygems/rubygems] Don't worry about missing Makefile.Samuel Williams
https://github.com/rubygems/rubygems/commit/0e92346d88
2025-06-12[rubygems/rubygems] Removed ccache or sccache from args of Rust builderHiroshi SHIBATA
``` " = note: some arguments are omitted. use `--verbose` to show all linker arguments\n" + " = note: error: unexpected argument '-W' found\n" + " \n" + " tip: to pass '-W' as a value, use '-- -W'\n" + " \n" + " Usage: sccache [OPTIONS] <--dist-auth|--debug-preprocessor-cache|--dist-status|--show-stats|--show-adv-stats|--start-server|--stop-server|--zero-stats|--package-toolchain <EXE> <OUT>|CMD>\n" + " \n" + " For more information, try '--help'.\n" + " \n" + ``` https://github.com/rubygems/rubygems/commit/45e688ae62
2025-04-25[rubygems/rubygems] Remove shellwords autoloadDavid Rodríguez
https://github.com/rubygems/rubygems/commit/2af1646776
2024-11-26[rubygems/rubygems] Enable `Performance/MapCompact` copDavid Rodríguez
https://github.com/rubygems/rubygems/commit/0c3a65871a
2024-06-18[rubygems/rubygems] Disable `install_extension_in_lib` when cross-compilingYuta Saito
https://github.com/rubygems/rubygems/commit/643e154f32
2024-06-18[rubygems/rubygems] Add `--target-rbconfig` option to `gem install` and `gem ↵Yuta Saito
update` commands This patch adds `--target-rbconfig` option to specify the rbconfig.rb file for the deployment target platform. This is useful when cross-compiling gems. At the moment, this option is only available for `extconf.rb`-based extensions. https://github.com/rubygems/rubygems/commit/cf2843f7a2
2024-05-06[rubygems/rubygems] Remove unnecessary compatibility codeDavid Rodriguez
https://github.com/rubygems/rubygems/commit/160a515412
2024-03-05[DOC] fix some commentscui fliter
Signed-off-by: cui fliter <imcusg@gmail.com>
2024-02-20[rubygems/rubygems] Keep Gem.install_extension_in_lib for compatibilityHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/b2bf239147
2024-02-20[rubygems/rubygems] Now install extension in lib is trueHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/bbcad80772
2024-02-20[rubygems/rubygems] Allow to set install_extension_in_lib as Gem configurationHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/c59d40f425
2024-02-05[rubygems/rubygems] Revert "Simplify how extensions are built"David Rodriguez
This reverts commit https://github.com/rubygems/rubygems/commit/0b8faf1e3926. https://github.com/rubygems/rubygems/commit/7528e0f1ce
2024-01-29[rubygems/rubygems] Simplify how extensions are builtDavid Rodríguez
https://github.com/rubygems/rubygems/commit/0b8faf1e39
2023-12-11[rubygems/rubygems] Stream output from ext builds when --verboseDaisuke Aritomo
Uses Open3.popen2e in place of Open3.capture2e in Gem::Ext::Builder. This change aims to stream stdout/stderr of ext builds when in verbose mode, instead of printing everything at once when the build completes. Nice for debugging gem builds that consumes longer times. https://github.com/rubygems/rubygems/commit/dcdcb5adda
2023-12-07[rubygems/rubygems] Use modern hashes consistentlyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bb66253f2c
2023-10-03[rubygems/rubygems] Fix invalid links in documentation. - wrap ENV variables ↵Josef Šimánek
in <code> - fix rubygems.org link - fix zenspider.com link https://github.com/rubygems/rubygems/commit/9eaac94a63
2023-06-13[rubygems/rubygems] Autoload shellwords when it's needed.Samuel Williams
https://github.com/rubygems/rubygems/commit/e916ccb2d9
2023-04-07[rubygems/rubygems] util/rubocop -A --only Style/FormatStringHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/132a56569d
2023-04-04[rubygems/rubygems] util/rubocop -A --only Performance/RegexpMatchHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/52ae4452c2
2023-03-23Refactor and fix usage of Gem.rubyなつき
Notes: Merged: https://github.com/ruby/ruby/pull/7582
2023-03-23Move duplicated logic to parent classなつき
Notes: Merged: https://github.com/ruby/ruby/pull/7582
2023-03-23Make sure native extensions are loaded correctly in ext_conf builderなつき
Notes: Merged: https://github.com/ruby/ruby/pull/7582
2023-03-23Make sure native extensions are loaded correctly in rake builderなつき
Notes: Merged: https://github.com/ruby/ruby/pull/7582
2023-03-23util/rubocop -A --only Layout/EmptyLineAfterMagicCommentHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/7582
2023-03-17util/rubocop -A --only Style/TernaryParenthesesHiroshi SHIBATA
2023-03-17util/rubocop -A --only Layout/DotPositionHiroshi SHIBATA
2023-03-17[rubygems/rubygems] util/rubocop -A --only Style/OrAssignmentHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/965fc82cfd
2023-03-17[rubygems/rubygems] util/rubocop -A --only Style/RescueStandardErrorHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/80b57da926
2023-03-17[rubygems/rubygems] util/rubocop -A --only Style/RedundantParenthesesHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/295691d4dc
2023-03-17[rubygems/rubygems] util/rubocop -A --only Style/CommentAnnotationHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/4e77a1d1d5
2023-03-17[rubygems/rubygems] util/rubocop -A --only Style/ParallelAssignmentHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/5c88c77873
2023-03-17[rubygems/rubygems] util/rubocop -A --only Style/StringLiteralsInInterpolationHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/cb554f6eb7
2023-03-17[rubygems/rubygems] util/rubocop -A --only Lint/UselessAccessModifierHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/5070f90987
2023-01-30[rubygems/rubygems] normalise manifest path from cargo on windowsMat Sadler
https://github.com/rubygems/rubygems/commit/23b5ca5fc4
2023-01-30[rubygems/rubygems] better error message if cargo metadata doesn't contain ↵Mat Sadler
the package we expect https://github.com/rubygems/rubygems/commit/cb7e6d1577
2023-01-30[rubygems/rubygems] install rust extensions into expected directory nestingMat Sadler
https://github.com/rubygems/rubygems/commit/85ea86d348
2023-01-30[rubygems/rubygems] use cargo to get crate nameMat Sadler
the final copying of the extension into place has been slimmed down, reflecting that it only needs to copy a single file, rather than replicating the more involved process used for a C ext this also refactors #build so that #cargo_crate_name only needs to be called once, and hopefully the build flow is easier to understand https://github.com/rubygems/rubygems/commit/5a0d7f2e6c
2023-01-10Merge RubyGems and Bundler masterHiroshi SHIBATA
from https://github.com/rubygems/rubygems/commit/0635c1423db5d7c461d53bf0c3329bca75de7609 Notes: Merged: https://github.com/ruby/ruby/pull/7094
2022-12-24Merge RubyGems-3.4.0 and Bundler-2.4.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6987
2022-12-20[rubygems/rubygems] Cleanup intermediate artifacts after installing built ↵Eloy Espinaco
extensions https://github.com/rubygems/rubygems/commit/98b6a959bd Notes: Merged: https://github.com/ruby/ruby/pull/6966
2022-12-07[rubygems/rubygems] Always build in release modeIan Ker-Seymer
https://github.com/rubygems/rubygems/commit/7b84fc1f19