| Age | Commit message (Collapse) | Author |
|
|
|
The header of emoji data files in UCD, which were moved at 13.0.0, has
been changed since 14.0.0. It seems to be the same as other files in
UCD.
|
|
https://github.com/rubygems/rubygems/commit/c03e7e1564
|
|
https://github.com/rubygems/rubygems/commit/d7956e9ce5
|
|
Use the same regexp to replace "(#NNNN)" and "GH-NNNN" style
references in vcs.rb, too.
|
|
* So deprecated methods/constants/functions are dealt with early,
instead of many tests breaking suddenly when removing a deprecated
method/constant/function.
* Follows https://bugs.ruby-lang.org/issues/17591
Notes:
Merged: https://github.com/ruby/ruby/pull/6321
|
|
Previously, it was supported in prelude.c, but has not followed up the
builtin-loader system.
Notes:
Merged: https://github.com/ruby/ruby/pull/6344
|
|
I want to use more complicated macros with MJIT. For example:
```
# define SHAPE_MASK (((unsigned int)1 << SHAPE_BITS) - 1)
```
This commit adds a simple recursive descent parser that produces an AST
and a small visitor that converts the AST to Ruby.
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
|
|
Fixes id.h error during updating ripper.c by `make after-update`.
While it used to update id.h in the build directory, but was trying to
update ripper.c in the source directory. In principle, files in the
source directory can or should not depend on files in the build
directory.
|
|
|
|
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
`private_constant *constants` seems to be warned for some reason
|
|
https://github.com/rubygems/rubygems/commit/16c3535413afebcdbab7582c6017c27b5da8a8dc
Notes:
Merged: https://github.com/ruby/ruby/pull/6326
|
|
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
|
|
|
|
|
|
Previously YARV bytecode implemented constant caching by having a pair
of instructions, opt_getinlinecache and opt_setinlinecache, wrapping a
series of getconstant calls (with putobject providing supporting
arguments).
This commit replaces that pattern with a new instruction,
opt_getconstant_path, handling both getting/setting the inline cache and
fetching the constant on a cache miss.
This is implemented by storing the full constant path as a
null-terminated array of IDs inside of the IC structure. idNULL is used
to signal an absolute constant reference.
$ ./miniruby --dump=insns -e '::Foo::Bar::Baz'
== disasm: #<ISeq:<main>@-e:1 (1,0)-(1,13)> (catch: FALSE)
0000 opt_getconstant_path <ic:0 ::Foo::Bar::Baz> ( 1)[Li]
0002 leave
The motivation for this is that we had increasingly found the need to
disassemble the instructions between the opt_getinlinecache and
opt_setinlinecache in order to determine the constant we are fetching,
or otherwise store metadata.
This disassembly was done:
* In opt_setinlinecache, to register the IC against the constant names
it is using for granular invalidation.
* In rb_iseq_free, to unregister the IC from the invalidation table.
* In YJIT to find the position of a opt_getinlinecache instruction to
invalidate it when the cache is populated
* In YJIT to register the constant names being used for invalidation.
With this change we no longe need disassemly for these (in fact
rb_iseq_each is now unused), as the list of constant names being
referenced is held in the IC. This should also make it possible to make
more optimizations in the future.
This may also reduce the size of iseqs, as previously each segment
required 32 bytes (on 64-bit platforms) for each constant segment. This
implementation only stores one ID per-segment.
There should be no significant performance change between this and the
previous implementation. Previously opt_getinlinecache was a "leaf"
instruction, but it included a jump (almost always to a separate cache
line). Now opt_getconstant_path is a non-leaf (it may
raise/autoload/call const_missing) but it does not jump. These seem to
even out.
Notes:
Merged: https://github.com/ruby/ruby/pull/6187
|
|
|
|
|
|
|
|
|
|
|
|
Revert 806583c093ecc2d67830f0a8f0d94decf0ed71e5
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6287
|
|
I'm planning to introduce mjit_compiler.rb, and I want to make this
consistent with it. Consistency with compile.c doesn't seem important
for MJIT anyway.
|
|
|
|
The current MJIT relies on SIGCHLD and fork(2) to be performant, and
it's something mswin can't offer. You could run Linux MJIT on WSL
instead.
[Misc #18968]
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
* Rename mjit_exec to jit_exec
* Rename mjit_exec_slowpath to mjit_check_iseq
* Remove mjit_exec references from comments
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
|
|
Adds the `syntax_suggest` syntax error display tool to Ruby through the same mechanism as `error_highlight` and `did_you_mean`. Reference ticket: https://bugs.ruby-lang.org/issues/18159
close #4845
## What is syntax_suggest?
When a syntax error is raised by requiring a file, dead_end will use a combination of indentation and lexing to identify the problem.
> Note: Previously this tool was named `dead_end`.
## Known issues
- SyntaxSearch's approach of showing syntax errors only works through integration with `require`, `load`, `autoload`, and `require_relative` (since it monkeypatches them to detect syntax errors). It does not work with direct Ruby file invocations https://github.com/zombocom/dead_end/issues/31.
- This causes failure in the test suite (test_expected_backtrace_location_when_inheriting_from_basic_object_and_including_kernel) and confusion when inspecting backtraces if there's a different error when trying to require a file such as measuring memory (https://github.com/zombocom/syntax_suggest/issues/124#issuecomment-1006705016).
- Discussed fix. We previously talked about opening up `SyntaxError` to be monkeypatched in the same way that other gems hook into `NoMethodError`. This is currently not possible and requires development work. When we last talked about it at RubyKaigi Nobu expressed an ability to make such a change.
Notes:
Merged: https://github.com/ruby/ruby/pull/5859
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6252
|
|
|
|
Set `date` member to `RUBY_RELEASE_DATE` instead of the date at the
build time, to make installed files reproducible.
|
|
- Split into `Ext` and `Lib` classes.
- `Ext#files` should not include built extension libraries.
- `Ext#files` should include scripts under its own `lib`.
- `Lib#files` should be prefixed with `lib/`.
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6234
|
|
`RbInstall::GemInstaller#build_extensions` has nothing to do.
Notes:
Merged: https://github.com/ruby/ruby/pull/6234
|
|
Collected `files` lacked `lib` prefix.
Notes:
Merged: https://github.com/ruby/ruby/pull/6219
Merged-By: nobu <nobu@ruby-lang.org>
|
|
Notes:
Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
|
|
Gemspec files generated by old bundler run `git` without changing the
working directory.
Or some gemspec files expect an owned file at the top exists ath the
current working directory.
Notes:
Merged: https://github.com/ruby/ruby/pull/6203
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6203
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6203
|
|
For the macOS -bundle_loader linker option, we need a path to the
Ruby exectuable. $(RUBY) is not necessarily a path since it could
be a command line invocation. That happens during build with
runruby.rb and can happen post installation if the user passes
the --ruby option to a extconf.rb. Use $(bindir) to locate
the executable instead.
Before installation, $(bindir) doesn't exist, so we need to be
able to override $(BUILTRUBY) in such situations so test-spec
and bundled extensions could build. Use a new mkmf global,
$builtruby, to do this; set it in fake.rb and in extmk.rb.
Our build system is quite complex...
Notes:
Merged: https://github.com/ruby/ruby/pull/6193
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6200
|
|
What we want to test should be the bundled and to be installed files,
but not the upstream.
Notes:
Merged: https://github.com/ruby/ruby/pull/6188
Merged-By: nobu <nobu@ruby-lang.org>
|
|
|
|
Revert "Fix sync_default_gems.rb to use absolute path"
This reverts commit 8fa66467de82f787ead9dd901ad06694c79d88dc.
|