summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-12-05Sort URLs by issue numbers [ci skip]Kazuhiro NISHIYAMA
2021-12-05More indentation in NEWS.md [ci skip]Nobuyoshi Nakada
The current Markdown implementation of RDoc requires list contents to be indented 4 columns except for the first paragraph. Maybe fixed as other implementations in the future.
2021-12-05Fix wrong indentation in NEWS.md [ci skip]Junichi Ito
Notes: Merged: https://github.com/ruby/ruby/pull/5216
2021-12-05Do not use `fcopyfile` if appending to non-empty file [Bug #18388]Nobuyoshi Nakada
`fcopyfile` appends `src` to `to` and then truncates `to` to it's original size.
2021-12-05[rubygems/rubygems] Don't write outside of destdir when regenerating pluginsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/141ef4cb9a
2021-12-05[rubygems/rubygems] Don't write outside of destdir when installing default ↵David Rodríguez
bundler https://github.com/rubygems/rubygems/commit/a62d00c5e8
2021-12-05[rubygems/rubygems] Fold a line that got out of handDavid Rodríguez
https://github.com/rubygems/rubygems/commit/49317d8beb
2021-12-05[rubygems/rubygems] Fix binstubs and plugins regeneration with `--destdir` ↵David Rodríguez
is used https://github.com/rubygems/rubygems/commit/7079de16fa
2021-12-04README.md: Fix link to platform maintainers listAlan Wu
Follow up for 6bca410ae8b16238d02c868ce8fa1af13a5c4460 [ci skip] Notes: Merged: https://github.com/ruby/ruby/pull/5215
2021-12-05* 2021-12-05 [ci skip]git
2021-12-04YJIT: Enable out of memory testsAlan Wu
As of [1] and [2], YJIT has enough support for out of memory conditions to pass these two basic tests. OOM code paths are prone to bugs since they are rarely exercised in common workloads. We might want to add CI runs that stress test these code paths. Maybe outside of GitHub Actions for capacity reasons. [1]: f41b4d44f95978dfa97af04af00055dc3fbf7978 [2]: b5b6ab4194f16e96ee5004288cc469ac1bca41a3 Notes: Merged: https://github.com/ruby/ruby/pull/5214
2021-12-04Remove unversioned phony target for pkgconfig file [Bug #18374]Nobuyoshi Nakada
It results in a circular dependency when `--with-ruby-pc=ruby.pc` is given. [ci skip]
2021-12-04Fix circular dependencies specific to in-place build [Bug #18374]Nobuyoshi Nakada
* Move the rubyspec running recipe after the rule for rubyspec C-API extension library, so that separate dummy recipe is not needed. * Add a dummy recipe for rubyspec.h before the rubyspec running recipe, so that the dependency of extensions do not fire the latter.
2021-12-04Turn nd_type_p into an inline functionNobuyoshi Nakada
2021-12-03YJIT: Bounds check every byte in the assemblerAlan Wu
Previously, YJIT assumed that basic blocks never consume more than 1 KiB of memory. This assumption does not hold for long Ruby methods such as the one in the following: ```ruby eval(<<RUBY) def set_local_a_lot #{'_=0;'*0x40000} end RUBY set_local_a_lot ``` For low `--yjit-exec-mem-size` values, one basic block could exhaust the entire buffer. Introduce a new field `codeblock_t::dropped_bytes` that the assembler sets whenever it runs out of space. Check this field in gen_single_block() to respond to out of memory situations and other error conditions. This design avoids making the control flow graph of existing code generation functions more complex. Use POSIX shell in misc/test_yjit_asm.sh since bash is expanding `0%/*/*` differently. Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/5209
2021-12-03NEWS for [GH-#5146] [ci skip] (#5210)John Hawthorn
Notes: Merged-By: jhawthorn <john@hawthorn.email>
2021-12-04[rubygems/rubygems] Let original EACCES error be raisedDavid Rodríguez
This block of code already wraps file operations with `SharedHelpers.filesystem_access`, which rescues and re-raises more friendly errors. Also, I'm not fully sure creating a temporary directory can end up raising an `Errno::EACCES` error from reading `tmpdir` sources. Finally, this rescue block apparently leads to some false positives when firewall is blocking the ruby executable on Windows, or at least that's what we've got reported. In any case, I think it's best to let the original error be raised. https://github.com/rubygems/rubygems/commit/f7dbe54404
2021-12-03YJIT: Add ivar counter exitseileencodes
On Rails we're seeing a lot of exits for ivars in the Active Record tests. In trying to track them down it was hard to find what code is exiting. This change adds a counted exit for when an object is "megamorphic". In these cases there are too many specializations in the Ruby code so YJIT exits. Co-authored-by: Aaron Patterson tenderlove@ruby-lang.org Notes: Merged: https://github.com/ruby/ruby/pull/5197
2021-12-03Fix link (#5208)Burdette Lamar
Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2021-12-03Refactor GC functions to have consistent namingPeter Zhu
Refactor function names for consistency. Function with name xyz_page should have a corresponding function named xyz_plane. Notes: Merged: https://github.com/ruby/ruby/pull/5204
2021-12-04* 2021-12-04 [ci skip]git
2021-12-04Add `nd_type_p` macroS.H
Notes: Merged: https://github.com/ruby/ruby/pull/5091 Merged-By: nobu <nobu@ruby-lang.org>
2021-12-03Adding links to literals and Kernel (#5192)Burdette Lamar
* Adding links to literals and Kernel Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2021-12-03TestClass#test_subclass_gc reduce the number of iteration by 10xJean Boussier
The test was taking 10 seconds on my machine and did timeout on CI once. Notes: Merged: https://github.com/ruby/ruby/pull/5205
2021-12-03[rubygems/rubygems] Don't unnecessarily loop twice through dependenciesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/06b4a7994d
2021-12-03[rubygems/rubygems] Improve source gemfile/lockfile equivalence checksDavid Rodríguez
Since we no longer have multiple global sources, each top level dependency is always pinned to a single source, so it makes little sense to talk about adding or removing a source. Instead, source changes always mean to change the source one or more dependencies are pinned to. This logic can now be much simpler. https://github.com/rubygems/rubygems/commit/f1d33fa0df
2021-12-03[rubygems/rubygems] Improve sources representationDavid Rodríguez
We have two representations of a source. Once used for sorting, which should not depend on the source's state, but solely on its static information, like remotes. Another one used for error and informational messages, which should properly inform about the exact state of the source when the message is printed. This commit makes the latter be the default implementation of `to_s`, so that error and informational messages are more accurate by default. https://github.com/rubygems/rubygems/commit/b5f2b88957
2021-12-03[rubygems/rubygems] Don't overwrite locked dependency sources too earlyDavid Rodríguez
Otherwise we hide some useful message about dependency source changes. https://github.com/rubygems/rubygems/commit/c926673c5b
2021-12-03[rubygems/rubygems] Fix incorrect order in changed sources messageDavid Rodríguez
https://github.com/rubygems/rubygems/commit/6f1b5f68de
2021-12-03[rubygems/rubygems] Remove unnecessary codeDavid Rodríguez
Somehow this is trying to relax frozen mode constraints for path sources. It doesn't make sense to me and it's not covered by any spec so I'm killing it. https://github.com/rubygems/rubygems/commit/17c978e161
2021-12-03[rubygems/rubygems] Reuse `locked_dependencies` helperDavid Rodríguez
It makes the code more consistent with the above line. https://github.com/rubygems/rubygems/commit/f28d05a548
2021-12-03[rubygems/rubygems] Reformat for consistency with the above lineDavid Rodríguez
https://github.com/rubygems/rubygems/commit/11193be3f1
2021-12-03[rubygems/rubygems] Remove unnecessary nil checksDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d047b8935d
2021-12-03Add tests of string argument to Time.atNobuyoshi Nakada
2021-12-03Update bundled_gems at 2021-12-03git
2021-12-03[DOC] Fix Time.new description [ci skip]Nobuyoshi Nakada
2021-12-02Lazily create singletons on instance_{exec,eval} (#5146)John Hawthorn
* Lazily create singletons on instance_{exec,eval} Previously when instance_exec or instance_eval was called on an object, that object would be given a singleton class so that method definitions inside the block would be added to the object rather than its class. This commit aims to improve performance by delaying the creation of the singleton class unless/until one is needed for method definition. Most of the time instance_eval is used without any method definition. This was implemented by adding a flag to the cref indicating that it represents a singleton of the object rather than a class itself. In this case CREF_CLASS returns the object's existing class, but in cases that we are defining a method (either via definemethod or VM_SPECIAL_OBJECT_CBASE which is used for undef and alias). This also happens to fix what I believe is a bug. Previously instance_eval behaved differently with regards to constant access for true/false/nil than for all other objects. I don't think this was intentional. String::Foo = "foo" "".instance_eval("Foo") # => "foo" Integer::Foo = "foo" 123.instance_eval("Foo") # => "foo" TrueClass::Foo = "foo" true.instance_eval("Foo") # NameError: uninitialized constant Foo This also slightly changes the error message when trying to define a method through instance_eval on an object which can't have a singleton class. Before: $ ruby -e '123.instance_eval { def foo; end }' -e:1:in `block in <main>': no class/module to add method (TypeError) After: $ ./ruby -e '123.instance_eval { def foo; end }' -e:1:in `block in <main>': can't define singleton (TypeError) IMO this error is a small improvement on the original and better matches the (both old and new) message when definging a method using `def self.` $ ruby -e '123.instance_eval{ def self.foo; end }' -e:1:in `block in <main>': can't define singleton (TypeError) Co-authored-by: Matthew Draper <matthew@trebex.net> * Remove "under" argument from yield_under * Move CREF_SINGLETON_SET into vm_cref_new * Simplify vm_get_const_base * Fix leaf VM_SPECIAL_OBJECT_CONST_BASE Co-authored-by: Matthew Draper <matthew@trebex.net> Notes: Merged-By: jhawthorn <john@hawthorn.email>
2021-12-03[rubygems/rubygems] Move required_ruby_version gemspec attribute to ↵Josef Šimánek
recommended section. https://github.com/rubygems/rubygems/commit/de6552ac30
2021-12-02[Bug #18382] Fix crash in compaction for ObjectSpace.trace_object_allocationsPeter Zhu
ObjectSpace.trace_object_allocations can crash when auto-compaction is enabled. Notes: Merged: https://github.com/ruby/ruby/pull/5202
2021-12-02YJIT: Fix side-exit typo in comments [ci skip]Adam Hess
Notes: Merged: https://github.com/ruby/ruby/pull/5203 Merged-By: XrXr
2021-12-03[ruby/irb] Examine indentation of in keyword when trying to type includeKaíque Kandy Koga
Use in_keyword_case_scope? Return fast https://github.com/ruby/irb/commit/8acc7f8dc7
2021-12-03[ruby/irb] Add Alt+d keycode when convert-meta isn't usedima1zumi
I pushed reline#389 for when convert-meta is not turned on in .inputrc. Alt+D in irb also needs to be set to the keycode for not using convert-meta. https://github.com/ruby/irb/commit/328eddf851
2021-12-03[ruby/irb] Fix bug infinite loop when pasting multilines fo code in Ruby 2.6manga_osyo
Fix bug infinite loop when pasting multilines fo code in Ruby 2.6. This is not reproduced in Ruby 2.7. Changes added in https://github.com/ruby/irb/pull/242/files#diff-612b926e42ed78aed1a889ac1944f7d22229b3a489cc08f837a7f75eca3d3399R155 are also reflected in Ruby 2.6. https://github.com/ruby/irb/commit/0a77f75bf0
2021-12-03[ruby/reline] No need to check `x > 0`ima1zumi
Checked in the previous line. https://github.com/ruby/reline/commit/bf774c0f2c
2021-12-03* 2021-12-03 [ci skip]git
2021-12-02Don't clear the constant cache when finishing compactionMatt Valentine-House
References are being updated correctly, so this is no longer necessary Notes: Merged: https://github.com/ruby/ruby/pull/5198
2021-12-02[ruby/reline] fix `TerminfoError` -> `Reline::Terminfo::TerminfoError`ima1zumi
https://github.com/ruby/reline/commit/c07b0ace6a
2021-12-02[ruby/reline] Rescue if tigetstr(capname) cannot be obtainedima1zumi
fix https://github.com/ruby/reline/issues/384 If `$TERM` is `vt102`, there are no `kend`, `khome`, `civis`, or `cnorm` in capabilities. `TerminfoError` is raised in `Reline::Terminfo.tigetstr(capname)`, so it is rescued if it does not exist. https://github.com/ruby/reline/commit/c9f5112702
2021-12-02Cache downloaded filesNobuyoshi Nakada
Cache downloaded external libraries/gems, which are expected not changed so frequently. Also sometimes downloading from zlib returns the current time as the date header in unexpected format, and checksums mismatch at that time. Notes: Merged: https://github.com/ruby/ruby/pull/5201 Merged-By: nobu <nobu@ruby-lang.org>
2021-12-02update-bundled_gems.rb: Fix typo and version comparisonNobuyoshi Nakada