81149 Commits

Author SHA1 Message Date
Mike Dalton
bbf14bbba6 [ruby/prism] Add IBM864 encoding
Fixes https://github.com/ruby/prism/pull/1868
Related #1843

https://github.com/ruby/prism/commit/abc136dfc9
2023-11-18 18:47:15 +00:00
Haldun Bayhantopcu
fdcb97833c [ruby/prism] Faster lex_keyword
https://github.com/ruby/prism/commit/23a68dcda2
2023-11-18 18:43:10 +00:00
Thomas Marshall
a6f9e6add2 [ruby/prism] Add macCentEuro encoding
https://github.com/ruby/prism/commit/ff95edbd99
2023-11-18 18:41:03 +00:00
tomoya ishida
631b500dd5 [ruby/irb] Fix irb crash on {}. completion
(https://github.com/ruby/irb/pull/764)

https://github.com/ruby/irb/commit/07e4d540cc
2023-11-18 17:49:06 +00:00
Jeremy Evans
ae48d4ad2e Ensure keyword splat method argument is hash
Commit e87d0882910001ef3b0c2ccd43bf00cee8c34a0c introduced a
regression where the keyword splat object passed by the caller
would be directly used by callee as keyword splat parameters,
if it implemented #to_hash.  The return value of #to_hash would be
ignored in this case.
2023-11-18 09:44:42 -08:00
yui-knk
c56dd94db0 Lrama v0.5.10 2023-11-18 19:38:55 +09:00
Kevin Newton
f479e629ab [ruby/prism] Revert "Ensure serialized file is little endian"
https://github.com/ruby/prism/commit/4cec275fff
2023-11-18 01:32:37 +00:00
Alan Wu
24fe22a5da
Fix ordering for auto compaction in get_overloaded_cme()
Found through GC.stress + GC.auto_compact crashes in GH-8932.
Previously, the compaction run within `rb_method_entry_alloc()` could
move the `def->body.iseq.cref` and `iseqptr` set up before the call and
leave the `def` pointing to moved addresses. Nothing was marking `def`
during that GC run.

Low probability reproducer:

    GC.stress = true
    GC.auto_compact = true
    arr = []
    alloc = 1000.times.map { [] }
    alloc = nil
    a = arr.first
    GC.start
2023-11-17 17:57:25 -05:00
Dana Sherson
ef72970a04
Fix File.directory? doc hidding File::Stat#directory? doc
Now the documentation that was already in the codebase for
`File::Stat#directory?` shows up.
2023-11-17 16:41:30 -05:00
Peter Zhu
3dd77bc056 Fix corruption when out of shape during ivar remove
Reproduction script:

```
o = Object.new
10.times { |i| o.instance_variable_set(:"@a#{i}", i) }

i = 0
a = Object.new
while RubyVM::Shape.shapes_available > 2
  a.instance_variable_set(:"@i#{i}", 1)
  i += 1
end

o.remove_instance_variable(:@a0)

puts o.instance_variable_get(:@a1)
```

Before this patch, it would incorrectly output `2` and now it correctly
outputs `1`.
2023-11-17 13:08:43 -08:00
Kevin Newton
7c99e43c3f [ruby/prism] Ensure serialized file is little endian
https://github.com/ruby/prism/commit/0c762ee68a
2023-11-17 20:11:25 +00:00
Haldun Bayhantopcu
cbdac2f031 [ruby/prism] Silence clang analyzer warnings for the memory leaks
https://github.com/ruby/prism/commit/68112c556e
2023-11-17 20:11:11 +00:00
Peter Cai
585fdfe1f5 [ruby/prism] add Windows-874 encoding
https://github.com/ruby/prism/commit/0670dd3b9a
2023-11-17 20:06:48 +00:00
Kevin Newton
229f6e5bb4 [ruby/prism] Update spacing in encoding_test.rb
https://github.com/ruby/prism/commit/56508c2201
2023-11-17 20:06:28 +00:00
Haldun Bayhantopcu
50b7b927a3 [ruby/prism] Add macThai
https://github.com/ruby/prism/commit/f654058f50
2023-11-17 20:06:27 +00:00
Haldun Bayhantopcu
0a081a33eb [ruby/prism] Add macRoman
https://github.com/ruby/prism/commit/42b20ee399
2023-11-17 20:06:16 +00:00
Haldun Bayhantopcu
85dcfef23a [ruby/prism] Add macUkraine
https://github.com/ruby/prism/commit/440557fddc
2023-11-17 20:04:54 +00:00
Haldun Bayhantopcu
e5d6b4099e [ruby/prism] Do not allow trailing commas in calls without parenthesis
https://github.com/ruby/prism/commit/f1d56da58f
2023-11-17 15:48:57 +00:00
Kevin Newton
db4303f953 [ruby/prism] Never test locale encoding
https://github.com/ruby/prism/commit/f0f057b055
2023-11-17 15:28:08 +00:00
Kevin Newton
c2f2090da6 [ruby/prism] Do not test locale encoding on windows
https://github.com/ruby/prism/commit/8f40536431
2023-11-17 14:50:31 +00:00
MSP-Greg
9ba49c61c2 mingw.yml - remove encoding, run tests in cmd shell 2023-11-17 09:47:20 -05:00
Haldun Bayhantopcu
4a26a65e42 [ruby/prism] Add macTurkish
https://github.com/ruby/prism/commit/2232d4b6a0
2023-11-17 14:32:40 +00:00
Jean Boussier
940f2e7f18 size_pool_idx_for_size: Include debugging info in error message
We ran into that case on our CI, including some sizes would help
debug it much easier.
2023-11-17 14:22:07 +01:00
Jean Boussier
94c9f16663 Refactor rb_obj_evacuate_ivs_to_hash_table
That function is a bit too low level to called from multiple
places. It's always used in tandem with `rb_shape_set_too_complex`
and both have to know how the object is laid out to update the
`iv_ptr`.

So instead we can provide two higher level function:

  - `rb_obj_copy_ivs_to_hash_table` to prepare a `st_table` from an
    arbitrary oject.
  - `rb_obj_convert_to_too_complex` to assign the new `st_table`
    to the old object, and safely free the old `iv_ptr`.

Unfortunately both can't be combined into one, because `rb_obj_copy_ivar`
need `rb_obj_copy_ivs_to_hash_table` to copy from one object
to another.
2023-11-17 09:19:21 +01:00
Yusuke Endoh
498b086c37 Skip test_ForwardingArgumentsNode
due to a failure on a CI

http://ci.rvm.jp/results/trunk-iseq_binary@ruby-sp2-docker/4779277
```
expected:
== disasm: #<ISeq:prism_test_forwarding_arguments_node1@<compiled>:2 (2,8)-(4,11)>
local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: 1])
[ 1] "..."@0
0000 putself                                                          (   3)
0001 getlocal_WC_0                          ?@-2
0003 splatarray                             false
0005 getblockparamproxy                     ?@-1, 0
0008 send                                   <calldata!mid:prism_test_forwarding_arguments_node, argc:1, ARGS_SPLAT|ARGS_BLOCKARG|FCALL>, nil
0011 leave                                                            (   2)
actual:
== disasm: #<ISeq:prism_test_forwarding_arguments_node1@<compiled>:2 (2,8)-(4,11)>
local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: 1])
[ 1] "..."@0
0000 putself                                                          (   3)
0001 getlocal_WC_0                          ?@-2
0003 splatarray                             false
0005 getblockparamproxy                     "!"@-1, 0
0008 send                                   <calldata!mid:prism_test_forwarding_arguments_node, argc:1, ARGS_SPLAT|ARGS_BLOCKARG|FCALL>, nil
0011 leave                                                            (   2)
/tmp/ruby/src/trunk-iseq_binary/tool/lib/iseq_loader_checker.rb:36:in `exit': exit (SystemExit)
```
2023-11-17 11:01:55 +09:00
Kevin Newton
3bc41f4f0b [ruby/prism] Add macGreek encoding
https://github.com/ruby/prism/commit/c36d3fc647
2023-11-16 18:00:08 +00:00
Kevin Newton
ce85355931 [ruby/prism] Only run encoding tests on CRuby
https://github.com/ruby/prism/commit/a63acc0629
2023-11-16 17:39:40 +00:00
Kevin Newton
4b2915f0b9 [ruby/prism] Add macRomania encoding
https://github.com/ruby/prism/commit/bb73801cf4
2023-11-16 17:39:40 +00:00
Kevin Newton
6c2defdfaa [ruby/prism] Support for the macIceland encoding
https://github.com/ruby/prism/commit/f433d1b51b
2023-11-16 17:39:39 +00:00
Kevin Newton
13bf8c1b46 [ruby/prism] EUC-JP can be triple byte
https://github.com/ruby/prism/commit/de66ce874a
2023-11-16 17:39:38 +00:00
Kevin Newton
b753e16945 [ruby/prism] IBM862 encoding
https://github.com/ruby/prism/commit/151698bf86
2023-11-16 17:39:38 +00:00
Kevin Newton
7dba4f424d [ruby/prism] IBM861 encoding
https://github.com/ruby/prism/commit/6d2b59384a
2023-11-16 17:39:37 +00:00
Kevin Newton
91af9e8d93 [ruby/prism] IBM860 encoding
https://github.com/ruby/prism/commit/aa6163d77a
2023-11-16 17:39:37 +00:00
Kevin Newton
a7df025c3f [ruby/prism] IBM857 encoding
https://github.com/ruby/prism/commit/8c9b580f84
2023-11-16 17:39:36 +00:00
Kevin Newton
076d0957b9 [ruby/prism] IBM855 encoding
https://github.com/ruby/prism/commit/9354ad1848
2023-11-16 17:39:36 +00:00
Kevin Newton
b0a188655d [ruby/prism] IBM852 encoding
https://github.com/ruby/prism/commit/45251fcbf1
2023-11-16 17:39:35 +00:00
Kevin Newton
f93e4ac18e [ruby/prism] Split up encoding comparisons based on first letter
https://github.com/ruby/prism/commit/80fac1e4a9
2023-11-16 17:39:34 +00:00
Kevin Newton
ef748f353b [ruby/prism] IBM775 encoding
https://github.com/ruby/prism/commit/65175641b1
2023-11-16 17:39:34 +00:00
Kevin Newton
ae3c346746 [ruby/prism] IBM-737 encoding
https://github.com/ruby/prism/commit/af1a665939
2023-11-16 17:39:33 +00:00
Kevin Newton
8c44d69b9f [ruby/prism] IBM720 encoding
https://github.com/ruby/prism/commit/fc1f6ea3af
2023-11-16 17:39:33 +00:00
Kevin Newton
ba937eee0b [ruby/prism] IBM437 encoding
https://github.com/ruby/prism/commit/d60329eeb5
2023-11-16 17:39:32 +00:00
Kevin Newton
f60b974393 [ruby/prism] Add cp855 encoding
https://github.com/ruby/prism/commit/8069d143f5
2023-11-16 17:39:32 +00:00
Kevin Newton
5d7e6842b5 [ruby/prism] Add cp852 encoding
https://github.com/ruby/prism/commit/ebe83490bf
2023-11-16 17:39:31 +00:00
Kevin Newton
63c490dc4e [ruby/prism] Add remaining windows encodings
https://github.com/ruby/prism/commit/e77b549a59
2023-11-16 17:39:30 +00:00
Kevin Newton
ca789e7232 [ruby/prism] Add windows-1250 encoding
https://github.com/ruby/prism/commit/a362535ca4
2023-11-16 17:39:30 +00:00
Kevin Newton
aebc6e8b8d [ruby/prism] Fix parsing other encodings bytes >= 0x80
https://github.com/ruby/prism/commit/c787d2e076
2023-11-16 17:39:29 +00:00
Kevin Newton
f8dcb06ffa [ruby/prism] Include GBK user-defined sections
https://github.com/ruby/prism/commit/4f71d3bdb1
2023-11-16 17:39:29 +00:00
Kevin Newton
a6548e9eef
[prism] Add cp51932 to common.mk 2023-11-16 12:16:43 -05:00
Kevin Newton
124319486b
[prism] Ignore other generated files from prism 2023-11-16 12:14:24 -05:00
Maple Ong
d976e7cc4b [ruby/prism] Update gemspec
https://github.com/ruby/prism/commit/1a10f6f9c0
2023-11-16 17:13:17 +00:00