| Age | Commit message (Collapse) | Author |
|
|
|
Followed up with fb6f2550280c62fa3ac74f9abad4398529d5f0e2
|
|
This commit allows building YJIT and ZJIT simultaneously, a "combo
build". Previously, `./configure --enable-yjit --enable-zjit` failed. At
runtime, though, only one of the two can be enabled at a time.
Add a root Cargo workspace that contains both the yjit and zjit crate.
The common Rust build integration mechanisms are factored out into
defs/jit.mk.
Combo YJIT+ZJIT dev builds are supported; if either JIT uses
`--enable-*=dev`, both of them are built in dev mode.
The combo build requires Cargo, but building one JIT at a time with only
rustc in release build remains supported.
Notes:
Merged: https://github.com/ruby/ruby/pull/13262
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12740
|
|
In the past, bundler updated platform without normalized variable like arm64-darwin-23.
We ignored that update. But the current bundler uses arm64-darwin for that.
Notes:
Merged: https://github.com/ruby/ruby/pull/12570
|
|
|
|
* YJIT: print msg to stderr when RubyVM::YJIT.disasm not available
Print a more useful error message when people try to use this
feature without YJIT dev.
Also fix an issue with .gitignore file on macOS
* Update yjit.rb
Co-authored-by: Randy Stauner <[email protected]>
* Use warn and always return nil if YJIT disasm not available.
---------
Co-authored-by: Randy Stauner <[email protected]>
|
|
|
|
|
|
|
|
"builtin-baseline": "53bef8994c541b6561884a8395ea35715ece75db" is 2024.01.12
released version of vcpkg.
https://github.com/microsoft/vcpkg/releases/tag/2024.01.12
|
|
|
|
generated by check_misc
|
|
|
|
|
|
It was deleted in 7fc73ab5f6fbe46655855079954b26dcc14576b3.
|
|
* Add $YARP_SERIALIZE_ONLY_SEMANTICS_FIELDS to control where to serialize location fields at templating time,
this way there is no overhead for either case and nothing to check at runtime.
* Add a byte in the header to indicate whether location fields are included as expected.
* Fixes https://github.com/ruby/yarp/issues/807
* Simplify the build-java CI job now that the FFI backend is available so JRuby can serialize.
* Support keeping some location fields which are still needed until there is a replacement
https://github.com/ruby/yarp/commit/fc5cf2df12
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/8298
|
|
|
|
|
|
Notes:
Merged-By: k0kubun <[email protected]>
|
|
|
|
|
|
Introduce Universal Parser mode for the parser.
This commit includes these changes:
* Introduce `UNIVERSAL_PARSER` macro. All of CRuby related functions
are passed via `struct rb_parser_config_struct` when this macro is enabled.
* Add CI task with 'cppflags=-DUNIVERSAL_PARSER' for ubuntu.
Notes:
Merged: https://github.com/ruby/ruby/pull/7927
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7462
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7462
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7462
|
|
They are needed very often but it's hard to remember. I thought it'd be
useful to just copy that to /.vscode and edit that.
Usage:
cp -r misc/.vscode .vscode
Don't symlink it because you'd edit it but not want to commit it.
|
|
|
|
[Misc #19250]
Notes:
Merged-By: k0kubun <[email protected]>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6879
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6418
|
|
* YJIT: Show --yjit-stats of railsbench on CI
* YJIT: Use --enable-yjit=dev to see ratio_in_yjit
* YJIT: Show master GitHub URL for quick comparison
* YJIT: Avoid making CI red by a yjit-bench failure
Notes:
Merged-By: k0kubun <[email protected]>
|
|
|
|
Notes:
Merged-By: k0kubun <[email protected]>
|
|
`lldb_cruby.py` manages lldb custom commands using functions. The file
is a large list of Python functions, and an init handler to map some of
the Python functions into the debugger, to enable execution of custom
logic during a debugging session.
Since LLDB 3.7 (September 2015) there has also been support for using
python classes rather than bare functions, as long as those classes
implement a specific interface.
This PR Introduces some more defined structure to the LLDB helper
functions by switching from the function based implementation to the
class based one, and providing an auto-loading mechanism by which new
functions can be loaded.
The intention behind this change is to make working with the LLDB
helpers easier, by reducing code duplication, providing a consistent
structure and a clearer API for developers.
The current function based approach has some advantages and
disadvantages
Advantages:
- Adding new code is easy.
- All the code is self contained and searchable.
Disadvantages:
- No visible organisation of the file contents. This means
- Hard to tell which functions are utility functions and which are
available to you in a debugging session
- Lots of code duplication within lldb functions
- Large files quickly become intimidating to work with - for example,
`lldb_disasm.py` was implemented as a seperate Python module because
it was easier to start with a clean slate than add significant amounts
of code to `lldb_cruby.py`
This PR attempts, to fix the disadvantages of the current approach and
maintain, or enhance, the benefits. The new structure of a command looks
like this;
```
class TestCommand(RbBaseCommand):
# program is the keyword the user will type in lldb to execute this command
program = "test"
# help_string will be displayed in lldb when the user uses the help functions
help_string = "This is a test command to show how to implement lldb commands"
# call is where our command logic will be implemented
def call(self, debugger, command, exe_ctx, result):
pass
```
If the command fulfils the following criteria it will then be
auto-loaded when an lldb session is started:
- The package file must exist inside the `commands` directory and the
filename must end in `_command.py`
- The package must implement a class whose name ends in `Command`
- The class inherits from `RbBaseCommand` or at minimum a class that
shares the same interface as `RbBaseCommand` (at minimum this means
defining `__init__` and `__call__`, and using `__call__` to call
`call` which is defined in the subclasses).
- The class must have a class variable `package` that is a String. This
is the name of the command you'll call in the `lldb` debugger.
Notes:
Merged: https://github.com/ruby/ruby/pull/6129
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5407
|
|
|
|
|
|
Now that we're using the jit function entry point, we don't need the
scraper. Thank you for your service, scraper. ❤️
|
|
Renaming uJIT to YJIT. AKA s/ujit/yjit/g.
|
|
|
|
- Support older Ruby versions
- Catch rip-relative jmp. Happens in -O0
|
|
static-ruby is statically linked against libruby, even when
configured with --enable-shared.
|
|
|
|
Latest bundler includes a file named `.gitlab-ci.yml.tt`. Because of
this too specific .gitignore entry, it was failing to be properly
imported.
Notes:
Merged: https://github.com/ruby/ruby/pull/3230
|