aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove not used fields from asgn nodesyui-knk2023-10-072-11/+0
|
* Differentiate ASGN nodesyui-knk2023-10-071-4/+11
|
* Correctly casting node for accessing nd_value and nd_vid in compile.cyui-knk2023-10-071-3/+34
|
* Correctly casting node for accessing nd_value and nd_vid in parse.yyui-knk2023-10-071-12/+85
|
* Pass nd_value to NODE_REQUIRED_KEYWORD_Pyui-knk2023-10-074-6/+6
|
* Use rb_node_masgn_t instead of NODEyui-knk2023-10-071-13/+16
|
* [ruby/prism] Emit error when assigning to a numbered parameterHaldun Bayhantopcu2023-10-062-5/+24
| | | | https://github.com/ruby/prism/commit/66248ac2f6
* [DOC] Fix platform-dependent directives and modifiersNobuyoshi Nakada2023-10-061-20/+17
| | | | | | | | * 'j' and 'J' are not pointer directives. * size of 'j' and 'J' are platform-dependent, may not be 64-bit. * mention corresponding C types when native-size modifier is added. Co-Authored-By: BurdetteLamar <burdettelamar@yahoo.com>
* [ruby/prism] Introduce transparent scopes.Matt Valentine-House2023-10-065-14/+46
| | | | | | | | | | | | | A transparent scope is a scope that cannot have local variables added to it's local table. When a local is added to it's table, it instead gets added to the first non-transparent parent scope. This is used in for loops to ensure the correct depth for local variables inside the body https://github.com/ruby/prism/commit/ddb8e82253 Co-Authored-By: Kevin Newton <kddnewton@gmail.com>
* [ruby/openssl] Exact checks with `assert_include`Nobuyoshi Nakada2023-10-061-8/+6
| | | | | | | Where `assert_match` converts string matcher argument to regexp first with escaping, `assert_include` does the same thing simpler. https://github.com/ruby/openssl/commit/81007e0a49
* [ruby/openssl] Exact checks with `assert_include`Nobuyoshi Nakada2023-10-061-2/+2
| | | | https://github.com/ruby/openssl/commit/9a6e24daaf
* Reuse `natstr` if it equals `endstr`Nobuyoshi Nakada2023-10-061-1/+2
|
* Use size of `uintptr_t` for `j` and `J` testsNobuyoshi Nakada2023-10-061-17/+21
| | | | | `RbConfig::SIZEOF` has been added later than the time this check was committed first.
* Move rbconfig to the topNobuyoshi Nakada2023-10-061-1/+1
| | | | It is required in the always defined class level.
* Remove not used fields from MATCH3yui-knk2023-10-063-3/+1
|
* [rubygems/rubygems] Update man page for bundle exec to reflect default flag ↵Manu2023-10-0630-33/+32
| | | | | | | | value `--keep-file-descriptors` is true by default. https://github.com/rubygems/rubygems/commit/b28e88e228
* [ruby/prism] Add full_name to ConstantPathNode and ConstantPathTargetNodeVinicius Stock2023-10-062-0/+74
| | | | https://github.com/ruby/prism/commit/b390553028
* Remove not used fields from YIELDyui-knk2023-10-062-4/+0
|
* Remove not used fields from ZLISTyui-knk2023-10-062-7/+0
|
* YJIT: Simplify linker flavor checkAlan Wu2023-10-051-5/+3
| | | | | By not allowlisting every OS that could have a GNU flavor linker, it's also a bigger tent
* YJIT: shink local types from 8 to 4 bytes (#8597)Maxime Chevalier-Boisvert2023-10-051-24/+79
| | | | | | | * Shink local types from 8 to 4 bytes, context from 21 to 17 bytes Use repr(packed) * Add comment about Type being limited to 4 bits
* YJIT: Run bindgenAlan Wu2023-10-051-1/+0
|
* YJIT: Remove duplicate cfp->iseq accessorAlan Wu2023-10-053-9/+1
|
* YJIT: Avoid writing return value to memory in `leave`Alan Wu2023-10-053-41/+111
| | | | | | | | | | | | | | | | | | | Previously, at the end of `leave` we did `*caller_cfp->sp = return_value`, like the interpreter. With future changes that leaves the SP field uninitialized for C frames, this will become problematic. For cases like returning from `rb_funcall()`, the return value was written above the stack and never read anyway (callers use the copy in the return register). Leave the return value in a register at the end of `leave` and have the code at `cfp->jit_return` decide what to do with it. This avoids the unnecessary memory write mentioned above. For JIT-to-JIT returns, it goes through `asm.stack_push()` and benefits from register allocation for stack temporaries. Mostly flat on benchmarks, with maybe some marginal speed improvements. Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
* Remove `NODE_VALUES`Nobuyoshi Nakada2023-10-066-29/+2
| | | | | | This node type was added for the multi-value experiment back in 2004. The feature itself was removed after a few years, but this is its remnant.
* Remove unmatch parenthesisNobuyoshi Nakada2023-10-061-1/+1
| | | | | | ``` yjit/yjit.mk:48: Extraneous text after `ifneq' directive ```
* YJIT: Build on BSD platforms with GNU make (#8591)Thomas Hurst2023-10-051-2/+1
|
* [ruby/prism] Check for duplicate parameter names in destructured paramsHaldun Bayhantopcu2023-10-052-0/+11
| | | | https://github.com/ruby/prism/commit/c3438aabea
* [ruby/prism] Check for duplicate names in shadow argsHaldun Bayhantopcu2023-10-052-0/+8
| | | | https://github.com/ruby/prism/commit/e100c6b8ae
* [ruby/prism] Fix parsing shadow args in lambda blocksHaldun Bayhantopcu2023-10-052-1/+11
| | | | https://github.com/ruby/prism/commit/53efaf252d
* Make popcount bit-masks stricterNobuyoshi Nakada2023-10-051-6/+6
| | | | | Each bit run is upto the right shift count, so the each mask does not need more upper bits.
* [ruby/stringio] StringIO#pread: handle 0 length like IO#preadJean byroot Boussier2023-10-052-0/+14
| | | | | | | | | | | | | | | | | (https://github.com/ruby/stringio/pull/67) Fix: https://github.com/ruby/stringio/issues/66 If length is 0, IO#pread don't even try to read the IO, it simply return the buffer untouched if there is one or a new empty buffer otherwise. It also doesn't validate the offset when length is 0. cc @jdelStrother @kou https://github.com/ruby/stringio/commit/37e9279337 Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
* [ruby/net-http] Net::HTTPResponse nil checkingBrian Hawley2023-10-052-1/+37
| | | | | | | | Fix nil handling in read_body and stream_check. Fixes: #70 https://github.com/ruby/net-http/commit/36f916ac18
* Update bundled gems list at 2023-10-05git2023-10-052-2/+2
|
* Chain nodes to exit onlyNobuyoshi Nakada2023-10-052-27/+26
|
* Do not chain unexpected nodeNobuyoshi Nakada2023-10-051-1/+1
|
* Differentiate `NODE_BREAK`/`NODE_NEXT`/`NODE_RETURN`Nobuyoshi Nakada2023-10-053-7/+12
|
* Remove unused nodes in NODE_RETURN and NODE_REDONobuyoshi Nakada2023-10-052-12/+0
|
* Move internal NODE_DEF_TEMP to parse.yNobuyoshi Nakada2023-10-055-5/+7
|
* Remove not used fields from colon nodesyui-knk2023-10-052-6/+0
|
* Correctly casting node for accessing COLON node nd_mid in compile.cyui-knk2023-10-051-14/+27
|
* Fix cast typeyui-knk2023-10-051-2/+2
|
* Remove a binding.irb in rjit-bindgenTakashi Kokubun2023-10-041-1/+0
|
* [Prism] Fix IfNode and ElseNodeMatt Valentine-House2023-10-042-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ElseNode looks to have been implemented at the same time as IfNode, but was resulting in a stack underflow error. The following is from the test code ``` if foo bar end ``` ``` ❯ make run compiling compile.c linking miniruby ./miniruby -I./lib -I. -I.ext/common -r./arm64-darwin22-fake ./test.rb CRUBY: ************************************************** == disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(2,19)> 0000 putself ( 2)[Li] 0001 opt_send_without_block <calldata!mid:foo, argc:0, FCALL|VCALL|ARGS_SIMPLE> 0003 branchunless 9 0005 putself 0006 opt_send_without_block <calldata!mid:bar, argc:0, FCALL|VCALL|ARGS_SIMPLE> 0008 pop 0009 putobject_INT2FIX_1_ 0010 leave PRISM: ************************************************** -- raw disasm-------- 0000 putself ( 2) 0001 send <calldata:foo, 0>, nil ( 2) 0004 branchunless <L001> ( 2) 0006 jump <L000> ( 2) <L000> [sp: 0] * 0008 pop ( 1) 0009 putself ( 2) 0010 send <calldata:bar, 0>, nil ( 2) 0013 pop ( 2) 0014 jump <L002> ( 1) <L001> [sp: 0] <L002> [sp: -1] 0016 putobject 1 ( 2) 0018 leave ( 1) --------------------- <compiled>: <compiled>:1: argument stack underflow (-1) (SyntaxError) make: *** [run] Error 1 ``` This commit fixes the stack underflow error for both IfNode and ElseNode and introduces tests for them.
* YJIT: Add a comment for YJIT_OPTIONS [ci skip]Takashi Kokubun2023-10-041-0/+1
|
* Use a better variable name for wTakashi Kokubun2023-10-043-7/+8
|
* Make the function names consistentTakashi Kokubun2023-10-043-3/+3
|
* YJIT: Move help descriptions to options.rsTakashi Kokubun2023-10-043-15/+29
|
* Split `show_usage_line` and add `ruby_show_usage_line`Nobuyoshi Nakada2023-10-041-5/+24
|
* Remove magic numbers from `show_usage_line`Nobuyoshi Nakada2023-10-041-18/+23
|