Граф коммитов

79692 Коммитов

Автор SHA1 Сообщение Дата
Samuel Giddins 843c83ee5f [rubygems/rubygems] Give up, load Time via Marshal.load
https://github.com/rubygems/rubygems/commit/6c92ba2ba3
2023-09-20 02:03:04 +00:00
Samuel Giddins f4a5fac0d2 [rubygems/rubygems] Ruby 2.6 compat
https://github.com/rubygems/rubygems/commit/1a84960af3
2023-09-20 02:03:04 +00:00
Samuel Giddins cadca9f67e [rubygems/rubygems] All rubies working with different time zones
Tested with:

`ruby -e 'trap("INT") { exit 1 }; TZ=%w[UTC +0000 -0000]; RUBY=%w[ruby-2.7 ruby-3.2.2 jruby-9.4 truffleruby-22 truffleruby-23]; TZ.product(RUBY).each { |t, r| puts ?**120, "TZ=#{t} RUBY=#{r}", "*"*120; system({"TZ"=>t,"RUBY"=>r}, *ARGV) }' zsh -lic 'chruby $RUBY; ruby -vw -Ilib test/rubygems/test_gem_safe_marshal.rb --verbose=progress'`

https://github.com/rubygems/rubygems/commit/6192005afb
2023-09-20 02:03:03 +00:00
Samuel Giddins c65c88e65c [rubygems/rubygems] Tests passing on truffleruby 22 in addition to 23
https://github.com/rubygems/rubygems/commit/8065530d43
2023-09-20 02:03:03 +00:00
Samuel Giddins d3628e6ac4 [rubygems/rubygems] safe_load tests passing on jruby & truffleruby
https://github.com/rubygems/rubygems/commit/a64b21b052
2023-09-20 02:03:02 +00:00
Samuel Giddins e52f9bd41e [rubygems/rubygems] Bundler error handling
https://github.com/rubygems/rubygems/commit/63b422b71a
2023-09-20 02:03:02 +00:00
Samuel Giddins f0d1b0cc4b [rubygems/rubygems] Allow bundler to load from the dependency api
https://github.com/rubygems/rubygems/commit/3303957286
2023-09-20 02:03:01 +00:00
Samuel Giddins fe90e83b48 [rubygems/rubygems] Use safe_load in bundler when available
https://github.com/rubygems/rubygems/commit/34d096e38a
2023-09-20 02:03:01 +00:00
Samuel Giddins 7c6b500d8d [rubygems/rubygems] Fix bundler specs using safe_load
https://github.com/rubygems/rubygems/commit/ccb1bb5d3a
2023-09-20 02:03:00 +00:00
Samuel Giddins 1fff3e44ff [rubygems/rubygems] Verified working on mri/jruby/truffleruby with specs on rubygems.org
https://github.com/rubygems/rubygems/commit/4f51741cc6
2023-09-20 02:03:00 +00:00
Samuel Giddins cdcc760dc0 [rubygems/rubygems] Broader version compatibility in marshal tests
https://github.com/rubygems/rubygems/commit/6ec518c563
2023-09-20 02:02:59 +00:00
Samuel Giddins c80a4d453a [rubygems/rubygems] Fix UTC time loading
https://github.com/rubygems/rubygems/commit/2a4d0a44b0
2023-09-20 02:02:58 +00:00
Samuel Giddins d182d83ce9 [rubygems/rubygems] Add a Marshal.load replacement that walks an AST to safely load permitted classes/symbols
https://github.com/rubygems/rubygems/commit/7e4478fe73
2023-09-20 02:02:58 +00:00
Benoit Daloze c47608494f [ruby/yarp] Convert constant pool entries to a string type in Java Loader
* Fixes https://github.com/ruby/yarp/issues/1389
* Fields of type `string` as kept as byte[].

https://github.com/ruby/yarp/commit/234c8f47c7
2023-09-20 01:16:54 +00:00
Peter Zhu 38e98cbb6a Fix typo in "refinements" 2023-09-19 19:34:50 -04:00
Peter Zhu 4c1e367039 Restore deleted .gitignore
It was deleted in 7fc73ab5f6.
2023-09-19 19:33:48 -04:00
Takashi Kokubun 5b00314868 Ignore JRuby extension sync
Avoid alerting on failing with commits like
fb97d899c5
2023-09-19 14:10:38 -07:00
Jemma Issroff 7d306d55ce
[YARP] Minor linting [ci skip] (#8480) 2023-09-19 15:40:59 -04:00
Kevin Newton 3e4ccd6ddc [YARP] Use the static literal flag 2023-09-19 15:38:41 -04:00
Matt Valentine-House 7dee7e6116 [YARP] Implement GlobalVariableTargetNode 2023-09-19 19:52:32 +01:00
Peter Zhu 901d0b4125 Remove dead function Init_Method
Init_Method no longer has any code, so we can remove it.
2023-09-19 14:25:01 -04:00
Benoit Daloze 3fadb66bf1 [ruby/yarp] Only use Ripper on CRuby
https://github.com/ruby/yarp/commit/9c23f53d7b
2023-09-19 17:20:15 +00:00
Benoit Daloze 7fc73ab5f6 [ruby/yarp] Only keep semantic fields in Java, i.e. skip location fields
* Add $YARP_SERIALIZE_ONLY_SEMANTICS_FIELDS to control where to serialize location fields at templating time,
  this way there is no overhead for either case and nothing to check at runtime.
* Add a byte in the header to indicate whether location fields are included as expected.
* Fixes https://github.com/ruby/yarp/issues/807
* Simplify the build-java CI job now that the FFI backend is available so JRuby can serialize.
* Support keeping some location fields which are still needed until there is a replacement

https://github.com/ruby/yarp/commit/fc5cf2df12
2023-09-19 17:20:01 +00:00
Kevin Newton 4da53fd3a7 [ruby/yarp] Better Node#pretty_print
Respect the current indentation

https://github.com/ruby/yarp/commit/068333ef49
2023-09-19 16:57:46 +00:00
Jemma Issroff a71001d341 [ruby/yarp] Ignore parseing specific files on TruffleRuby to make CI green
CI is currently failing due to an issue with Ripper on the latest
TruffleRuby version. This commit removes the offending tests from
running, to ensure CI is green again.

https://github.com/ruby/yarp/commit/dae2c80c42
2023-09-19 16:43:24 +00:00
Mike Dalessio 0cda3ac454 [ruby/yarp] fix: handling escaped whitespace in a %w list
Introduces a new flavor of unescaping, YP_UNESCAPE_WHITESPACE, which
is the same as MINIMAL but also unescapes whitespace.

Note that a spanning_heredoc.txt fixture test is updated to be less
wrong, but YARP's behavior doesn't yet fully match Ruby in this case.

Fixes https://github.com/ruby/yarp/pull/1505

https://github.com/ruby/yarp/commit/0af69bdeb1
2023-09-19 16:14:31 +00:00
Kevin Newton ffc1fc7a6d [ruby/yarp] Explicitly use u32 for constant pool
https://github.com/ruby/yarp/commit/32b173e6c8
2023-09-19 16:13:39 +00:00
Kevin Newton 2531ba4ba0 [ruby/yarp] Consistently place block arguments on block slot for call
https://github.com/ruby/yarp/commit/fe208302e5
2023-09-19 16:13:08 +00:00
Nathan Froyd c7875340be [ruby/yarp] fix computation of memsize for constant id lists
https://github.com/ruby/yarp/commit/df72517fd1
2023-09-19 16:11:27 +00:00
Nathan Froyd 18622403ac [ruby/yarp] fix computation of memsize for node lists
https://github.com/ruby/yarp/commit/02aab8b026
2023-09-19 16:11:27 +00:00
Matt Valentine-House 5c5391f444 [YARP] Implement ClassVariableTargetNode 2023-09-19 14:54:15 +01:00
Matt Valentine-House 2f8daa5f51 [YARP] Implement InstanceVariableTargetNode, LocalVariableTargetNode 2023-09-19 14:53:58 +01:00
Matt Valentine-House 91b10c0b77 [YARP] Implement ConstantTargetNode 2023-09-19 14:53:39 +01:00
Nobuyoshi Nakada 8f1b688177
Revert vcpkg.exe to previous release [ci skip]
The latest fails to extract downloaded zip files.
2023-09-19 18:52:21 +09:00
Samuel Giddins 4023637d20 [rubygems/rubygems] Reduce allocations for stub specifications
This helps with memory usage during application boot time

```
==> memprof.after.txt <==
Total allocated: 1.43 MB (18852 objects)
Total retained:  421.12 kB (4352 objects)

==> memprof.before.txt <==
Total allocated: 2.43 MB (28355 objects)
Total retained:  469.69 kB (5425 objects)
```

See https://bugs.ruby-lang.org/issues/19890 about the readline
allocations

https://github.com/rubygems/rubygems/commit/d7eb66eee3
2023-09-19 07:25:51 +00:00
Samuel Giddins cea7e6ecca [rubygems/rubygems] Lazily construct fetcher debug messages
Avoids constructing several strings

https://github.com/rubygems/rubygems/commit/8a322dbe11
2023-09-19 07:14:53 +00:00
Nobuyoshi Nakada 6473903082
[Bug #18257] Register the class path of FrozenCore to mark
ICLASS does not have the path usually, so it needs to be registered
separately.
2023-09-19 14:09:53 +09:00
Nobuyoshi Nakada 4634405f7c
Stop exposing FrozenCore in headers
Revert commit "Directly allocate FrozenCore as an ICLASS",
813a5f4fc4.
2023-09-19 14:08:05 +09:00
Hiroshi SHIBATA b33e9f637d [ruby/securerandom] Removed extra argument for build failure of ruby/ruby
https://github.com/ruby/ruby/actions/runs/6230184763/job/16909829150

https://github.com/ruby/securerandom/commit/f60582432c
2023-09-19 02:22:15 +00:00
nick evans dfb2b4cbc9 [ruby/securerandom] Add support for UUID version 7
Although the specification for UUIDv7 is still in draft, the UUIDv7
algorithm has been relatively stable as it progresses to completion.

Version 7 UUIDs can be very useful, because they are lexographically
sortable, which can improve e.g: database index locality.  See section
6.10 of the draft specification for further explanation:

  https://datatracker.ietf.org/doc/draft-ietf-uuidrev-rfc4122bis/

The specification allows up to 12 bits of extra timestamp precision, to
make UUID generation closer to monotonically increasing.  This provides
between 1ms and ~240ns of timestamp precision.  At the cost of some code
complexity and a small performance penalty, a kwarg may specify any
arbitrary precision between 0 and 12 extra bits.  Any stronger
guarantees of monotonicity have considerably larger tradeoffs, so
nothing more is implemented.  This limitation is documented.

Ruby issue: https://bugs.ruby-lang.org/issues/19735

https://github.com/ruby/securerandom/commit/34ed1a2ec3
2023-09-19 01:55:27 +00:00
0x1eef e77c766b7a [ruby/net-http] No longer neccessary to call `String#freeze` on string literals.
See #144

https://github.com/ruby/net-http/commit/5a986c13d3
2023-09-19 01:32:18 +00:00
Yoshiki Takagi 465c222ef1 [rubygems/rubygems] Bump actions/checkout to v4 in bundler gem template
https://github.com/rubygems/rubygems/commit/5ed4c600da
2023-09-19 01:06:35 +00:00
Jeremy Evans 230834d9bb [ruby/base64] Bump required_ruby_version to 2.4.0
The gem depends on String#unpack1, which was introduced in Ruby 2.4.

https://github.com/ruby/base64/commit/9f0e4ba155
2023-09-19 01:04:54 +00:00
Takashi Kokubun 0a2c4a6091
[DOC] Add production performance tips to yjit.md (#8472)
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
2023-09-18 16:27:18 -07:00
Kevin Newton 1636f6abd6 [ruby/yarp] Use compact_child_nodes where possible
https://github.com/ruby/yarp/commit/c1911fa9b1
2023-09-18 17:48:52 +00:00
Jemma Issroff 54e676a88b
[YARP] Restructure tests to compare YARP evaluation to CRuby evaluation (#8467)
Previously, we were hardcoding the expected evaluation value. Now,
instead, we structure it so that we compare the YARP evaluation value
against CRuby's evaluation value.
2023-09-18 12:34:20 -04:00
Matt Valentine-House ec37636ab3 Only sort the heap on platforms with compaction 2023-09-18 14:34:38 +01:00
Matt Valentine-House 8792e421ce Allow pages to be sorted by pinned slot count
By compacting into slots with pinned objects first, we improve the
efficiency of compaction. As it is less likely that there will exist
pages containing only pinned objects after compaction. This will
increase the number of free pages left after compaction and enable us to
free them.

This used to be the default compaction method before it was removed
(inadvertently?) during the introduction of auto_compaction.

This commit will sort the pages by the pinned slot count at the start of
a major GC that has been triggered by explicitly calling GC.compact (and
thus setting objspace->flags.during_compaction).

It works using the same method by which we sort the heap by empty slot
count during GC.verify_compaction_references.
2023-09-18 14:34:38 +01:00
Matt Valentine-House 404a1c032a Move heap sorting into the main GC loop
Previously it was only being sorted during the verify compaction
references stage - so would only happen during testing.

This commit allows us to sort the heap prior to each explicit GC.compact
run
2023-09-18 14:34:38 +01:00
Matt Valentine-House d3852f71e4 Enable different heap sort methods during compaction
pass the sorting function in as a function pointer so we don't always
sort by how empty a page is
2023-09-18 14:34:38 +01:00