path: root/lib
AgeCommit message (Collapse)Author
10 hours[ruby/cgi] Implement `CGI.url_encode` and `CGI.url_decode`Jean Boussier
[Feature #18822] Ruby is somewhat missing an RFC 3986 compliant escape method.
36 hours[rubygems/rubygems] Fix Ruby platform incorrectly removed on `bundle update`David Rodríguez
5 days[ruby/error_highlight] Add a note about the current limitation of ↵Yusuke Endoh
6 days[ruby/error_highlight] Bump versionYusuke Endoh
6 days[ruby/error_highlight] Make backtrace_location keyword workYusuke Endoh
We had to keep backtrace_location before opts is overwritten.
6 days[ruby/error_highlight] Make accept Exception ↵Yusuke Endoh
( ... and move things from core_ext.rb to base.rb. This will confine CRuby-dependent things to
8 daysMerge rubygems/bundler HEAD.Hiroshi SHIBATA
Pick from Notes: Merged:
9 days[ruby/rdoc] Allow multiple footnotes without in-between blank linesNobuyoshi Nakada used four footnotes without blank lines. And the ChangeLog generated from that commit resulted in ``undefined method `parts' for nil`` error. For now, let a footnote terminated by the next footnote mark. Also refined the error message when undefined footnote is used.
9 days[ruby/rdoc] [DOC] Removes remaining old Markup Reference ↵Burdette Lamar
11 days[rubygems/rubygems] Fix yanked gems being unintentionally update when other ↵David Rodríguez
gems are unlocked This is a regression from a change intended to raise errors when user puts a gem under an incorrect source in the Gemfile by mistake. To fix the issue, we revert the change that caused it and implement it in a different way that restores the resolver independency from real specifications. Now it deals only with names and versions and does not try to materialize anything into real specifications before resolving.
11 days[rubygems/rubygems] Move comment where the actual replacement happensDavid Rodríguez
11 days[rubygems/rubygems] Remove unclear commentDavid Rodríguez
11 days[rubygems/rubygems] Extract `SourceList#get_with_fallback`David Rodríguez
12 days[rubygems/rubygems] Include backtrace with crashes by defaultDavid Rodríguez
12 days[rubygems/rubygems] Automatically remove "ruby" from lockfile if incompleteDavid Rodríguez
13 daysUse $(bindir) for path to executable in mkmfAlan Wu
For the macOS -bundle_loader linker option, we need a path to the Ruby exectuable. $(RUBY) is not necessarily a path since it could be a command line invocation. That happens during build with runruby.rb and can happen post installation if the user passes the --ruby option to a extconf.rb. Use $(bindir) to locate the executable instead. Before installation, $(bindir) doesn't exist, so we need to be able to override $(BUILTRUBY) in such situations so test-spec and bundled extensions could build. Use a new mkmf global, $builtruby, to do this; set it in fake.rb and in extmk.rb. Our build system is quite complex... Notes: Merged:
13 daysLink ext bundles with bundle loader option for newer ld64Yuta Saito
ld64 shipped with Xcode 14 emits a warning when using `-undefined dynamic_lookup`. ``` ld: warning: -undefined dynamic_lookup may not work with chained fixups ``` Actually, `-undefined dynamic_lookup` doesn't work when: 1. Link a *shared library* with the option 2. Link it with a program that uses the chained-fixup introduced from macOS 12 and iOS 15 because `-undefined dynamic_lookup` uses lazy-bindings and they won't be bound while dyld fixes-up by traversing chained-fixup info. However, we build exts as *bundles* and they are loaded only through `dlopen`, so it's safe to use `-undefined dynamic_lookup` in theory. So the warning produced by ld64 is false-positive, and it results failure of option checking in configuration. Therefore, it would be an option to ignore the warning during our configuration. On the other hand, `-undefined dynamic_lookup` is already deprecated on all darwin platforms except for macOS, so it's good time to get rid of the option. ld64 also provides `-bundle_loader <executable>` option, which allows to resolve symbols defined in the executable symtab while linking. It behaves almost the same with `-undefined dynamic_lookup`, but it makes the following changes: 1. Require that unresolved symbols among input objects must be defined in the executable. 2. Lazy symbol binding will lookup only the symtab of the bundle loader executable. (`-undefined dynamic_lookup` lookups all symtab as flat namespace) This patch adds `-bundle_loader $(RUBY)` when non-EXTSTATIC configuration by assuming ruby executable can be linked before building exts. See "New Features" subsection under "Linking" section for chained fixup Notes: Merged:
13 days[rubygems/rubygems] Warn dangling symlinksDavid Rodríguez
13 days[rubygems/rubygems] Extract entry.full_name to a variableDavid Rodríguez
13 days[ruby/irb] shortcut colorize_code to speedup pretty_printtompng
14 days[rubygems/rubygems] Fix `bundle outdated --strict`David Rodríguez
It should be an alias of `--filter-strict`. `--update-strict` is essentially a dummy option with no special behavior associated and should be deprecated.
14 days[rubygems/rubygems] Fix conservative updates regardless of `--strict`David Rodríguez
14 daysMerge rubygems/bundler HEADHiroshi SHIBATA
Pick from Notes: Merged:
14 days[rubygems/rubygems] fix platform matching for index specsIlya Dyakonov
14 days[rubygems/rubygems] Warn (rather than crash) when setting `nil` ↵David Rodríguez
specification versions
2022-08-02[rubygems/rubygems] Array is already uniq, no need to deduplicate itDavid Rodríguez
2022-08-02[rubygems/rubygems] Fix arguments for bundle-config(1) docsTakuya Noguchi
Signed-off-by: Takuya Noguchi <>
2022-08-02[rubygems/rubygems] Preserve the previous behavior of raising an error when ↵David Rodríguez
in frozen mode
2022-08-02[rubygems/rubygems] Don't discard candidates matching ruby metadataDavid Rodríguez
Do dependency filtering and materialization in one step. Before, dependency filtering would not consider ruby metadata so it would discard variants that end up not being materializable in the end. Co-authored-by: Ian Ker-Seymer <>
2022-08-02[rubygems/rubygems] Materializing for resolution already filters platformsDavid Rodríguez
2022-08-02[rubygems/rubygems] Remove unnecessary local variableDavid Rodríguez
2022-08-02[rubygems/rubygems] Prefer reverse+find to select+lastDavid Rodríguez
2022-08-02[rubygems/rubygems] Only need to filter platforms when materialization is ↵David Rodríguez
not strict
2022-08-02[rubygems/rubygems] This should go through the standard source search logicDavid Rodríguez
2022-08-02[rubygems/rubygems] Refactor materialization conditionsDavid Rodríguez
2022-08-02[rubygems/rubygems] Fix incorrect force_ruby_platform propagationDavid Rodríguez
It was just working by chance. (cherry picked from commit
2022-08-02[rubygems/rubygems] Remove unnecessary special case for BundlerDavid Rodríguez
2022-08-02[rubygems/rubygems] Move some logic to `LazySpecification#__materialize__`David Rodríguez
2022-08-01[rubygems/rubygems] Fix crash when running `bundle outdated` in debug modeDavid Rodríguez
Previously it would crash like this: ```` $ /Users/deivid/.asdf/installs/ruby/3.1.2/bin/ruby -I/Users/deivid/Code/rubygems/rubygems/bundler/spec -r/Users/deivid/Code/rubygems/rubygems/bundler/spec/support/artifice/fail.rb -r/Users/deivid/Code/rubygems/rubygems/bundler/spec/support/hax.rb /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle outdated --patch --strict --filter-patch Running `bundle outdated --filter-patch --patch --strict` with bundler Found changes from the lockfile, re-resolving dependencies because bundler is unlocking Using a local server, bundler won't use the CompactIndex API Fetching source index from file:///Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/remote4/ Resolving dependencies... --- ERROR REPORT TEMPLATE ------------------------------------------------------- ``` RuntimeError: LazySpecification has not been materialized yet (calling :loaded_from []) /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `method_missing' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `gem_column_for' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `block in print_gems_table' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `map' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `print_gems_table' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `run' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `outdated' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `run' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `invoke_command' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `dispatch' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `dispatch' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `start' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `start' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `block in <top (required)>' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `with_friendly_errors' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/ `<top (required)>' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:25:in `load' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:25:in `<main>' ``` ````
2022-08-01[rubygems/rubygems] Update bundle-platform(1) manTakuya Noguchi
Signed-off-by: Takuya Noguchi <>
2022-07-30[ruby/rdoc] Fix blockquote with word in verbatimNobuyoshi Nakada
2022-07-30[rubygems/rubygems] Make `--standalone` play nice with `--local`David Rodríguez
I'm not sure if using relative paths in the generated script is best for this case, since it makes the script not movable, but that can be improved later.
2022-07-30[rubygems/rubygems] No need to set anything at all unless standalone is givenDavid Rodríguez
2022-07-29Update parser-text.rb with ↵Hiroshi SHIBATA Notes: Merged:
2022-07-29fix typo in Time#xmlschema documentationLuka Dornhecker
Notes: Merged:
2022-07-29[ruby/optparse] Also accept '-' as an optional argument ↵konsolebox
( Notes: Merged:
2022-07-29Merge ruby/fileutils from ↵Hiroshi SHIBATA Notes: Merged:
2022-07-29[rubygems/rubygems] Fix dead links to deprecated bundle-package(1) with ↵Takuya Noguchi
bundler-cache(1) Signed-off-by: Takuya Noguchi <>
2022-07-29[rubygems/rubygems] Add package/pack aliases to man pages for cacheTakuya Noguchi
Signed-off-by: Takuya Noguchi <>
2022-07-29Merge rubygems master from ↵Hiroshi SHIBATA Notes: Merged: