| Age | Commit message (Collapse) | Author |
|
https://github.com/ruby/prism/commit/3a67b37a56
|
|
Only need to check for lack of git key when branch option is present
https://github.com/rubygems/rubygems/commit/ebfca1b389
|
|
reproducible
Helps ensure that unsuspecting diffs to the vendored code arent accidentally introduced
https://github.com/rubygems/rubygems/commit/7c425d49dd
|
|
|
|
After editing a conflict, continue without removed files.
|
|
https://github.com/ruby/prism/commit/885d1d78cb
|
|
Fix https://github.com/ruby/prism/pull/2026
https://github.com/ruby/prism/commit/c4b41cd477
|
|
|
|
It's the `Gem::Installer` below what installs executables, and the code
being deleted here is now actually creating a `gems/` folder in the root
of the source repo when running `ruby setup.rb`.
https://github.com/rubygems/rubygems/commit/0e69a8b0d6
|
|
On Windows, x86_64 is called as x64.
|
|
|
|
|
|
|
|
This reverts commit 75c40802cb06d83fc2c3d0eca6d904fa41307230.
This change is now working correctly with warning cases.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
proposed at https://bugs.ruby-lang.org/issues/20050#note-5
|
|
* delete `ar_try_convert` but use `ar_force_convert_table`
to make program simple.
* `ar_force_convert_table` checks hash modification while
calling `#hash` method with the following strategy:
1. copy keys (and vals) of ar_table
2. calc hashes from keys
3. check copied keys and hash's keys. if not matched, repeat from 1
fix [Bug #20050]
|
|
|
|
|
|
|
|
|
|
This commit implements safe navigation for CallNodes,
CallAndWriteNodes and CallOperatorWriteNodes
|
|
Enhance docs for WeakMap and WeakKeyMap
* WeakKeyMap: more class-level explanations, more details
on #getkey, fix a slight bug in code of #delete example;
* WeekMap: a bit more detailed class- and method-level docs.
|
|
* Reword Range#overlap? docs last paragraph.
* Docs: add explanation about Queue#freeze
* Docs: Add :rescue event docs for TracePoint
* Docs: Enhance Module#set_temporary_name documentation
* Docs: Slightly expand Process::Status deprecations
* Fix MatchData#named_captures rendering glitch
* Improve Dir.fchdir examples
* Adjust Refinement#target docs
|
|
|
|
|
|
|
|
* Start using the renamed `PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS` flag
to check if all keys of the keyword hash node are symbols.
* For arguments passed as a hash, start marking them as `KW_SPLAT_MUT` only if the number of entries in the hash is greater than 1 (which is what the old compiler used to do).
|
|
|
|
https://github.com/ruby/prism/commit/ee6fc9ee87
|
|
The instructions for `PM_CLASS_VARIABLE_OR_WRITE_NODE` were incorrect as
they were missing a `putnil`, a `defined`, and a `branchunless`.
I verified this is fixed via the instructions and running the following:
`RUBY_ISEQ_DUMP_DEBUG=prism make test/csv/interface/test_read_write.rb`.
These new instructions can't go in the defined function because
`defined?(@@fop ||= 1)` should return "assignment" not "class variable".
Instructions before:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(30,11)>
0000 putnil ( 30)[Li]
0001 defined class variable, :@@foo, true
0005 branchunless 14
0007 getclassvariable :@@foo, <is:0>
0010 dup
0011 branchif 20
0013 pop
0014 putobject 1
0016 dup
0017 setclassvariable :@@foo, <is:0>
0020 leave
"********* PRISM *************"
== disasm: #<ISeq:<compiled>@<compiled>:29 (29,0)-(29,11)>
0000 getclassvariable :@@foo, <is:0> ( 29)[Li]
0003 dup
0004 branchif 13
0006 pop
0007 putobject 1
0009 dup
0010 setclassvariable :@@foo, <is:0>
0013 leave
```
Instructions after:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(30,11)>
0000 putnil ( 30)[Li]
0001 defined class variable, :@@foo, true
0005 branchunless 14
0007 getclassvariable :@@foo, <is:0>
0010 dup
0011 branchif 20
0013 pop
0014 putobject 1
0016 dup
0017 setclassvariable :@@foo, <is:0>
0020 leave
"********* PRISM *************"
== disasm: #<ISeq:<compiled>@<compiled>:29 (29,0)-(29,11)>
0000 putnil ( 29)[Li]
0001 defined class variable, :@@foo, true
0005 branchunless 14
0007 getclassvariable :@@foo, <is:0>
0010 dup
0011 branchif 20
0013 pop
0014 putobject 1
0016 dup
0017 setclassvariable :@@foo, <is:0>
0020 leave
```
Fixes ruby/prism#2064
|
|
This commit adjusts the local table size to be consistent regardless
of the number of anonymous locals.
|
|
The previous implementation was incorrect since it was just checking for all keys in assoc nodes to be static literals but the actual check is that all keys in assoc nodes must be symbol nodes.
This commit fixes that implementation, and, also, aliases the flag to `PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS` so that ruby/ruby can start using the new flag name.
I intend to later change the real flag name to `PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS` and remove the alias.
https://github.com/ruby/prism/commit/f5099c79ce
|
|
Benchmark:
```
require "benchmark"
puts(Benchmark.measure do
ary = 1_000_000.times.map { IO::Buffer.for("") }
10.times { GC.start(full_mark: false) }
end)
```
Before:
```
14.330119 0.051497 14.381616 ( 14.445106)
```
After:
```
7.481152 0.040166 7.521318 ( 7.535209)
```
|
|
|
|
This PR fixes two bugs when compiling optional keyword parameters:
- It moves keyword parameter compilation to STEP 5 in the parameters
sequence, where the rest of compilation happens. This is important
because keyword parameter compilation relies on the value of
body->param.keyword->bits_start which gets set in an earlier step
- It compiles array and hash values for keyword parameters, which
it didn't previously
|
|
Fix https://github.com/ruby/prism/pull/2073
https://github.com/ruby/prism/commit/0f747d9240
|
|
|
|
When passing the keyword splat to [], it cannot be mutable, because
mutating the keyword splat inside [] would result in changes to the
keyword splat passed to []=.
|
|
|
|
To match the versions that will be included in final ruby release.
https://github.com/rubygems/rubygems/commit/84394919fb
|
|
Previously, T_DATA and T_FILE objects did not have their instance
variables freed on exit which would be reported as a memory leak with
RUBY_FREE_ON_EXIT. This commit changes it to use obj_free which also
frees the generic instance variables.
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
|