Age | Commit message (Collapse) | Author |
|
This reverts commit 8d81e59aa7a62652caf85f9c8db371703668c149.
`ALLOCA_N` does not check stack overflow unlike ALLOCV. I'll fix it and
re-commit it again.
|
|
|
|
and switch-case branches.
Buffer allocation optimization using `ALLOCA_N` would be the main
benefit of patch. It eliminates the O(N) buffer extensions.
It also reduces the number of branches using escape table like
https://mattn.kaoriya.net/software/lang/c/20160817011915.htm.
Closes: https://github.com/ruby/ruby/pull/2226
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Co-authored-by: Yasuhiro MATSUMOTO <mattn.jp@gmail.com>
|
|
|
|
It is used to represent "no default expression" for keyword argument:
`def foo(key:)`. This change uses NODE_SPECIAL_REQUIRED_KEYWORD.
|
|
`(ID)1` was assigned to NODE_ARGS#rest_arg for `{|x,| }`.
This change removes the magic number by introducing an explicit macro
variable for it: NODE_SPECIAL_EXCESSED_COMMA.
|
|
|
|
|
|
* random.c: renamed random_data_type as random_mt_type, and append
"MT" to `wrap_struct_name`, respecting the implementation.
|
|
This reverts a commit miss, 24a96a0228ccf355826644a9daad69e11b67b53b.
|
|
|
|
* marshal.c (rb_marshal_dump_limited): new function for extension
libraries to dump object with limited nest level.
* marshal.c (rb_marshal_load_with_proc): new function for extension
libraries to load object with hook proc.
|
|
|
|
|
|
|
|
[ci skip]
|
|
[ci skip]
|
|
[ci skip]
|
|
[ci skip]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Terminate the input from a TTY by 2 ^D at the middle of line, like
as many programs, `cat`, `perl` and so on, do. By the first ^D,
the line will be sent without a newline, and then EOF will be send
by the next ^D.
|
|
|
|
to fix
https://dev.azure.com/rubylang/ruby/_build/results?buildId=1162&view=logs
|
|
|
|
Hashes that compare by identity care about the location of the object in
memory. Since they care about the memory location, we can't let them
move.
|
|
|
|
|
|
This commit adds compaction support to method and proc objects. It just
unpins references and implements the "compact" callback and updates
references.
|
|
|
|
|
|
0c459af7c233adb5f44022350bfe8fa132d8053e changed the meaning of
`detect_compile_error`, and this commit lets it follow the change.
|
|
|
|
in de541fe1961370e64541d73c96cf790d30f28604 :bow:
|
|
Actually de541fe1961370e64541d73c96cf790d30f28604 was still needed.
This commit would improve the test coverage using the branch.
|
|
This was needed before 0c459af7c233adb5f44022350bfe8fa132d8053e but it
could be actually useless now. But I added this anyway just in case.
|
|
|
|
* lib/irb/color.rb (IRB::Color.scan): ignore "incomplete end of
input" error only, to colorize invalid characters, e.g., control
characters, and invalid symbols, as errors.
|
|
This reverts commit 4c0e21add7c87b70df27fbff81d8f192a467556d
because we're not using /bin/bash.
See 11d3986d6557eb3cfcecbdd0ef6e21b18c7c960b and
1b2b0e1f244b3e71812fa9859e8b87150ea30434 to know its context.
In short, 4c0e21add7c87b70df27fbff81d8f192a467556d does not work on
Ubuntu.
|
|
This reverts commit 11d3986d6557eb3cfcecbdd0ef6e21b18c7c960b.
Travis was broken by that.
|
|
at least on Ubuntu.
The brace expansion does not work on Ubuntu /bin/sh (dash), and so
4c0e21add7c87b70df27fbff81d8f192a467556d effectively broke /bin/sh
compatibility of common.mk.
I guess he was using macOS whose /bin/sh is bash.
|
|
Since 72ad092960c413b6a5687c552747b20a5ed78b22, we cannot run full `make benchmark`
because default BENCH_RUBY is miniruby and it fails to require 'time'.
Using miniruby for benchmark by default seems reasonable for some cases,
but now it's just bothering for people running full `make benchmark`.
|
|
The operators are using @waiting_operator_proc in vi mode.
|
|
Nobody uses this function other than gc.c. We only need
RVALUE_PINNED().
|
|
* parse.y (tok_hex): flush token after dispatching the "invalid
hex escape" parse error.
|
|
|