Age | Commit message (Collapse) | Author |
|
Add an experimental `__builtin_inline!(c_expression)` special intrinsic
which run a C code snippet.
In `c_expression`, you can access the following variables:
* ec (rb_execution_context_t *)
* self (const VALUE)
* local variables (const VALUE)
Not that you can read these variables, but you can not write them.
You need to return from this expression and return value will be a
result of __builtin_inline!().
Examples:
`def foo(x) __builtin_inline!('return rb_p(x);'); end` calls `p(x)`.
`def double(x) __builtin_inline!('return INT2NUM(NUM2INT(x) * 2);')`
returns x*2.
|
|
|
|
Pointed by nagachika-san.
https://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20191109
|
|
"./tests/test_helper.rb" and "tests/test_helper.rb" in `s.files`
are same.
|
|
So that test/optparse/test_did_you_mean.rb can find did_you_mean.rb.
|
|
|
|
And revert "Relaxed warning assertions",
6f9be8505d172b110ec449478a791d70b9b74afb.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
like pry
|
|
[Feature #16182]
|
|
|
|
|
|
|
|
ISeq#to_a is commented out because it's broken now
|
|
|
|
|
|
FreeBSD make works differently with `-j` option.
> -j max_jobs
> Specify the maximum number of jobs that `make` may have running
> at any one time. The value is saved in `.MAKE.JOBS.` Turns
> compatibility mode off, unless the `B` flag is also specified.
> When compatibility mode is off, all commands associated with a
> target are executed in a single shell invocation as opposed to
> the traditional one shell invocation per line. This can break
> traditional scripts which change directories on each command
> invocation and then expect to start with a fresh environment on
> the next line. It is more efficient to correct the scripts
> rather than turn backwards compatibility on.
Stop using exit, cd, exec in middle of commands.
|
|
|
|
|
|
|
|
To make the temporary directory non-writable by group and others.
|
|
|
|
|
|
I noticed that some files in rubygems were executable, and I could think
of no reason why they should be.
In general, I think ruby files should never have the executable bit set
unless they include a shebang, so I run the following command over the
whole repo:
```bash
find . -name '*.rb' -type f -executable -exec bash -c 'grep -L "^#!" $1 || chmod -x $1' _ {} \;
```
Notes:
Merged: https://github.com/ruby/ruby/pull/2662
|
|
Do not search builtin scripts by using VPATH, to get rid of weird
nmake VPATH.
Notes:
Merged: https://github.com/ruby/ruby/pull/2665
|
|
|
|
This reverts commit c5b4d2a2592942766dc2789f46105b91eba7026a.
This commit affects with activation feature of RubyGems.
[Bug #16337][ruby-core:95768]
|
|
|
|
|
|
Instead of reading from the files by the full-path at runtime. As
rbinc files need to be included in distributed tarballs, the
full-paths at the packaging are unavailable at compilation times.
|
|
|
|
|
|
|
|
vm_invoke_builtin() accesses VM stack via cfp->sp. However, MJIT
can use their own stack. To access them appropriately, we need to
use STACK_ADDR_FROM_TOP().
|
|
http://ci.rvm.jp/results/trunk-mjit@silicon-docker/2380788
```
test_all #<Thread:0x000055b6c8e9fca8@/tmp/ruby/v2/src/trunk-mjit/tool/lib/test/unit/parallel.rb:42 run> terminated with exception (report_on_exception is true):
<internal:pack>:134:in `pack': no implicit conversion of false into String (TypeError)
from /tmp/ruby/v2/src/trunk-mjit/tool/lib/test/unit/parallel.rb:160:in `_report'
from /tmp/ruby/v2/src/trunk-mjit/tool/lib/test/unit/parallel.rb:45:in `block in _run_suite'
```
|
|
|
|
A method which has keyword parameters has an implicit local variable
to specify which keywords are (un)specified.
vm_call_iseq_setup_kwparm_nokwarg() is special function to invoke
a ISeq method without any keyword arguments. However, it should
also initialize the special local var. Without this initialization,
the implicit lvar can points a freed (T_NONE) object.
|
|
|
|
|
|
|
|
|
|
|