| Age | Commit message (Collapse) | Author |
|
Found by fuzzing.
https://github.com/ruby/prism/commit/d77d4fe2b7
|
|
Because the lex mode may be freed when popped, we need to store off
this value for dedentation.
https://github.com/ruby/prism/commit/64007322f5
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
|
|
(https://github.com/ruby/rdoc/pull/1015)
TIDYLINK multi-word label should not include braces.
https://github.com/ruby/rdoc/commit/41ad3191e9
|
|
This test suite is flaky on CI, because the test asserts events from
finalizers also. Tracing events from finalizers is not deterministic
and is not a part of test interests, so this commit changes the test
to assert only events originated from the test file itself.
|
|
Found by fuzzing.
https://github.com/ruby/prism/commit/4cd6c8cf98
|
|
Other objects may be using the shape, so we can't change the capacity
otherwise the other objects may have a buffer overflow.
|
|
For better assert failure diagnostics.
|
|
https://github.com/ruby/prism/commit/231e965124
|
|
(https://github.com/ruby/reline/pull/604)
* Fallback to 256color if COLORTERM != truecolor
* Add Reline::Face.force_truecolor to force truecolor without COLORTERM env
https://github.com/ruby/reline/commit/090e1e4df0
|
|
This reverts commit 9a62fd3cbae2ebb60e2f9cad782af1ad18db4319.
|
|
Context: https://github.com/ivoanjo/gvl-tracing/pull/4
Some hooks may want to collect data on a per thread basis.
Right now the only way to identify the concerned thread is to
use `rb_nativethread_self()` or similar, but even then because
of the thread cache or MaNy, two distinct Ruby threads may report
the same native thread id.
By passing `thread->self`, hooks can use it as a key to store
the metadata.
NB: Most hooks are executed outside the GVL, so such data collection
need to use a thread-safe data-structure, and shouldn't use the
reference in other ways from inside the hook.
They must also either pin that value or handle compaction.
|
|
Resetting `@default_specifications_dir` to `nil` means that the
`Gem.default_specifications_dir` needs to be invoked. However, given
that this method might be overridden by operating_system.rb and similar,
this might lead to various test failures. Providing the default value
makes the issues go away.
https://github.com/rubygems/rubygems/commit/59626cb650
|
|
Original output:
~~~
Failure: test_realworld_upgraded_default_gem(TestGemRequire): <false> is not true.
/mnt/test/rubygems/test_require.rb:474:in `test_realworld_upgraded_default_gem'
471: File.write(path, code)
472:
473: output = Gem::Util.popen({ "GEM_HOME" => @gemhome }, *ruby_with_rubygems_in_load_path, path).strip
=> 474: assert $?.success?
475: refute_empty output
476: assert_equal "999.99.9", output.lines[0].chomp
477: # Make sure only files from the newer json gem are loaded, and no files from the default json gem
~~~
New output:
~~~
Failure: test_realworld_upgraded_default_gem(TestGemRequire)
/mnt/test/rubygems/test_require.rb:475:in `test_realworld_upgraded_default_gem'
472:
473: output = Gem::Util.popen({ "GEM_HOME" => @gemhome }, *ruby_with_rubygems_in_load_path, path).strip
474: refute_empty output
=> 475: assert_equal "999.99.9", output.lines[0].chomp
476: # Make sure only files from the newer json gem are loaded, and no files from the default json gem
477: assert_equal ["#{@gemhome}/gems/json-999.99.9/lib/json.rb"], output.lines.grep(%r{/gems/json-}).map(&:chomp)
478: assert $?.success?
<"999.99.9"> expected but was
<"/mnt/tmp/test_rubygems_20231110-36663-of405r/test_realworld_upgraded_default_gem.rb:3:in `<main>': undefined method `version' for nil:NilClass (NoMethodError)">
diff:
? 999 .99.9
? /mnt/tmp/test_rubygems_20231110-36663-of405r/test_realworld_upgraded_default_gem rb:3:in `<main>': undefined method `version' for nil:NilClass (NoMethodError)
? ??? ????
~~~
It is more valuable to check the command output then the error code. If
the command fails for some reason, the output probably contains some
detail, while checking the return code tells not much.
https://github.com/rubygems/rubygems/commit/b76062e852
|
|
https://github.com/rubygems/rubygems/commit/10c26a483d
|
|
Originally, the failed test case reported following error:
~~~
Failure: test_gem_exec_gem_uninstall(TestGemCommandsExecCommand):
<""> was expected to include
<"Successfully uninstalled a-2\n">.
/mnt/test/rubygems/test_gem_commands_exec_command.rb:742:in `block in test_gem_exec_gem_uninstall'
739:
740: # assert_empty @ui.error
741: refute_includes @ui.output, "running gem exec with"
=> 742: assert_includes @ui.output, "Successfully uninstalled a-2\n"
743:
744: invoke "--verbose", "gem", "uninstall", "b"
745: assert_includes @ui.output, "Successfully uninstalled b-2\n"
/mnt/lib/rubygems/user_interaction.rb:46:in `use_ui'
/mnt/lib/rubygems/user_interaction.rb:69:in `use_ui'
/mnt/test/rubygems/test_gem_commands_exec_command.rb:726:in `test_gem_exec_gem_uninstall'
~~~
This does not tell much. Empty string is more often good sign, but not
in this case. However, checking error output first helps with
understanding possible issue:
~~~
Failure: test_gem_exec_gem_uninstall(TestGemCommandsExecCommand):
<"ERROR: While executing gem ... (Gem::FilePermissionError)\n" +
" You don't have write permissions for the /builddir/bin directory.\n" +
"\t/mnt/lib/rubygems/uninstaller.rb:213:in `remove_executables'\n" +
... snip ...
/mnt/test/rubygems/test_gem_commands_exec_command.rb:740:in `block in test_gem_exec_gem_uninstall'
737: nil
738: end
739:
=> 740: assert_empty @ui.error
741: refute_includes @ui.output, "running gem exec with"
742: assert_includes @ui.output, "Successfully uninstalled a-2\n"
743:
/mnt/lib/rubygems/user_interaction.rb:46:in `use_ui'
/mnt/lib/rubygems/user_interaction.rb:69:in `use_ui'
/mnt/test/rubygems/test_gem_commands_exec_command.rb:726:in `test_gem_exec_gem_uninstall'
~~~
BTW this issue is caused by operating_system.rb overriding
`Gem.operating_system_defaults` method and explicitly adding `--bindir`
option.
https://github.com/rubygems/rubygems/commit/d98e36bbe7
|
|
Since the callback defined in the objspace module might give up the GVL,
we need to make sure the right cr->mfd value is set back after the GVL
is re-obtained.
|
|
Fix https://github.com/ruby/prism/pull/1586
https://github.com/ruby/prism/commit/b3bde866f2
|
|
Fix https://github.com/ruby/prism/pull/1596
Fix https://github.com/ruby/prism/pull/1771
Close https://github.com/ruby/prism/pull/1773
https://github.com/ruby/prism/commit/a3413e5605
|
|
|
|
https://github.com/ruby/prism/commit/b7850f2d30
|
|
https://github.com/ruby/prism/commit/2bbd35943c
|
|
Revert "[ruby/irb] Revert "Skip TypeCompletion test in ruby ci"
This reverts commit 589e2b6782f17d5a1d55021c0395d5d73224e9da.
|
|
(https://github.com/ruby/irb/pull/748)"
(https://github.com/ruby/irb/pull/755)
This reverts commit https://github.com/ruby/irb/commit/d394af0bbce4.
https://github.com/ruby/irb/commit/a9d0145115
|
|
(https://github.com/ruby/irb/pull/754)
* Add command line option to select which completor to use
* Add test for completor argv
https://github.com/ruby/irb/commit/1dec2708c9
|
|
|
|
Some code out there blind calls `force_encoding` without checking
what the original encoding was, which clears the coderange uselessly.
If the String is big, it can be a rather costly mistake.
For instance the `rack-utf8_sanitizer` gem does this on request
bodies.
|
|
Fix https://github.com/ruby/prism/pull/1772
https://github.com/ruby/prism/commit/cdf58e845e
|
|
This change prevents default gems from inadvertently depending on
bundled gems. This issue was discovered by being able to
`require "rbs"` from test/irb.
|
|
The `test_build_extensions` make assumptions about return value of
`Gem.install_extension_in_lib`. Givent that RubyGems allow to override
this method via `defaults.rb` / `operating_system.rb`, this test might
not always pass. This change makes sure that the
`Gem.install_extension_in_lib` is predictable.
https://github.com/rubygems/rubygems/commit/e83d0a5da8
|
|
`extension_in_lib` helper improves readibility and it also uses `stub`
on on background instead of custom code.
https://github.com/rubygems/rubygems/commit/aacc8ac22c
|
|
https://github.com/ruby/prism/commit/90b3245528
|
|
This commit adds tests for the compilation of the
OptionalKeywordParameterNode, and fixes cases on the
RequiredKeywordParameterNode
|
|
|
|
This commit adds tests for BlockParameterNode, RequiredParameterNode,
RequiredKeywordParameterNode and RestParameterNode
|
|
Add test for this behavior.
https://github.com/ruby/tempfile/commit/0ca31a6b8d
|
|
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
|
|
Instead of storing the delegate in @tmpfile, use __getobj__, since
delegate library already handles dup/clone for that. Copy the
unlinked, mode, and opts instance variables to the returned object
when using dup/clone.
Split the close/unlink finalizer into two finalizers. The close
finalizer always closes when any Tempfile instance is GCed, since
each Tempfile instance uses a separate file descriptor. The unlink
finalizer unlinks only when the original and all duped/cloned
Tempfiles are GCed, since all share the same path.
For Tempfile#open, undefine the close finalizer after closing the
current file, the redefine the close finalizer with the new file.
Fixes [Bug #19441]
https://github.com/ruby/tempfile/commit/dafabf9c7b
|
|
Apply Nobu's suggestions which improve style, memory handling and error correction.
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
|
(https://github.com/ruby/irb/pull/748)
https://github.com/ruby/irb/commit/d394af0bbc
|
|
|
|
(https://github.com/ruby/irb/pull/708)
* Add completor using prism and rbs
* Add TypeCompletion test
* Switchable completors: RegexpCompletor and TypeCompletion::Completor
* Add completion info to irb_info
* Complete reserved words
* Fix [*] (*) {**} and prism's change of KeywordParameterNode
* Fix require, frozen_string_literal
* Drop prism<=0.16.0 support
* Add Completor.last_completion_error for debug report
* Retrieve `self` and `Module.nesting` in more safe way
* Support BasicObject
* Handle lvar and ivar get exception correctly
* Skip ivar reference test of non-self object in ruby < 3.2
* BaseScope to RootScope, move method objects constant under Methods
* Remove unused Splat struct
* Drop deeply nested array/hash type calculation from actual object. Now, calculation depth is 1
* Refactor loading rbs in test, change preload_in_thread not to cache Thread object
* Use new option added in prism 0.17.1 to parse code with localvars
* Add Prism version check and warn when :type completor cannot be enabled
* build_type_completor should skip truffleruby (because endless method definition is not supported)
https://github.com/ruby/irb/commit/1048c7ed7a
|
|
(https://github.com/ruby/stringio/pull/69)
The conversion logic is borrowed from ruby/ruby's io.c:
https://github.com/ruby/ruby/blob/40391faeab608665da87a05c686c074f91a5a206/io.c#L4059-L4079
Fix ruby/stringio#68
Reported by IWAMOTO Kouichi. Thanks!!!
https://github.com/ruby/stringio/commit/4b170c1a68
|
|
GitHub: fix https://github.com/ruby/fiddle/pull/130
Reported by Benoit Daloze. Thanks!!!
https://github.com/ruby/fiddle/commit/2640e0148e
|
|
|
|
`--user-install`
The combination of `install-dir` and `--user-install` used to be
disabled for no good reason. This even makes problem on Linux
distributions such as Fedora, where `--user-install` is set by default
via operating_system.rb.
The `--install-dir` is already prefered over the `--user-install` by
the implementation, therefore just drop the check.
https://github.com/rubygems/rubygems/commit/313b1c5e76
|
|
It is not nice to require install directory to be always specified,
while this option is later ignored for user installed gems.
Actually, the next step will be to remove `check_install_dir` check and
let the install dir override the user install.
https://github.com/rubygems/rubygems/commit/beb79e929f
|
|
https://github.com/rubygems/rubygems/commit/6539da07aa
|
|
The main purpose is to put handling of user installation into the same
place as e.g. handling the --build-root option handling. There is no
reason why the --build-root option should not prefix also paths used for
user installation.
Please note that the `util_installer` in
`test_generate_plugins_with_user_install` enforced the `:install_dir`,
which is against what user install is about.
https://github.com/rubygems/rubygems/commit/0b10cb41aa
|
|
https://github.com/rubygems/rubygems/commit/f1d44ecb62
|
|
Errno::ACCES, in addition to Gem::FilePermissionError.
https://github.com/rubygems/rubygems/commit/784fe2a814
|