Граф коммитов

152 Коммитов

Автор SHA1 Сообщение Дата
Maxime Chevalier-Boisvert ade22339e3
YJIT: print msg to stderr when RubyVM::YJIT.disasm not available (#10688)
* 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 <randy@r4s6.net>

* Use warn and always return nil if YJIT disasm not available.

---------

Co-authored-by: Randy Stauner <randy@r4s6.net>
2024-04-30 17:57:18 +00:00
Kevin Newton 58847b7df8 [PRISM] Generate inspect_visitor in common.mk 2024-04-24 14:16:42 -04:00
Hiroshi SHIBATA ac62c7379d
gitignore lib/prism/reflection.rb 2024-04-18 09:41:32 +09:00
Kevin Newton e13fd48f55 [PRISM] Update dependencies for prism diagnostics 2024-03-06 21:42:54 -05:00
Hiroshi SHIBATA f9bf7d531b
Added vcpkg manifest for windows build environment.
"builtin-baseline": "53bef8994c541b6561884a8395ea35715ece75db" is 2024.01.12
released version of vcpkg.

https://github.com/microsoft/vcpkg/releases/tag/2024.01.12
2024-01-26 12:38:01 +09:00
Kevin Newton 124319486b
[prism] Ignore other generated files from prism 2023-11-16 12:14:24 -05:00
Takashi Kokubun a9df1e6990 Ignore inputs to tool/update-NEWS-gemlist.rb
generated by check_misc
2023-10-19 16:31:26 -07:00
Kevin Newton 8ab56869a6 Rename YARP filepaths to prism filepaths 2023-09-27 13:57:38 -04:00
Kevin Newton 758e70d3d4 Update YARP gitignore 2023-09-27 12:10:23 -04:00
Peter Zhu 4c1e367039 Restore deleted .gitignore
It was deleted in 7fc73ab5f6.
2023-09-19 19:33:48 -04:00
Benoit Daloze 7fc73ab5f6 [ruby/yarp] Only keep semantic fields in Java, i.e. skip location fields
* 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
2023-09-19 17:20:01 +00:00
Kevin Newton 293959a745 Remove config.h from targets necessary for YARP 2023-08-25 18:20:51 -04:00
Kevin Newton a7c7cd11bc
Update sync script to handle yarp/version.h 2023-08-25 15:47:25 -04:00
Kevin Newton dd07b70253
Fix mutation visitor build for YARP templating 2023-08-25 15:33:14 -04:00
Takashi Kokubun 67b5f63e97
Render YARP templates in the build process (#8228) 2023-08-17 14:39:04 -07:00
Hiroshi SHIBATA 93f57dbcef
Update description for test-bundler on gitignore 2023-07-28 12:49:55 +09:00
Hiroshi SHIBATA 426434556f
Removed lockfile for test-bundler 2023-07-28 12:47:31 +09:00
yui-knk b481b673d7 [Feature #19719] Universal Parser
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.
2023-06-12 18:23:48 +09:00
Takashi Kokubun 23ec248e48 s/mjit/rjit/ 2023-03-06 23:44:01 -08:00
Takashi Kokubun 2e875549a9 s/MJIT/RJIT/ 2023-03-06 23:44:01 -08:00
Takashi Kokubun eaccdc1941 Rename MJIT filenames to RJIT 2023-03-06 23:44:01 -08:00
Takashi Kokubun dff03149a0
Put example VSCode configs in misc/.vscode [ci skip]
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.
2023-02-03 11:01:08 -08:00
Hiroshi SHIBATA 4d82e94200
Ignore rb_mjit_header.h.new and ripper.tmp.y 2023-02-02 14:12:08 +09:00
Takashi Kokubun bb4cbd0803
Put RubyVM::MJIT::Compiler under ruby_vm directory (#6989)
[Misc #19250]
2022-12-21 22:46:15 -08:00
Jean Boussier e9f6d6b3fb Ignore .o.tmp files 2022-12-08 13:29:13 +01:00
Nobuyoshi Nakada 14074567ea
[Feature #19183] Ignore interim artifacts [ci skip] 2022-12-06 20:24:02 +09:00
Hiroshi SHIBATA 06cc30b189
gitignore yjit_exit_locations.dump 2022-12-05 11:22:48 +09:00
Takashi Kokubun 4e0db2f753 mjit_c.rb doesn't need to be an erb 2022-09-23 06:44:28 +09:00
Takashi Kokubun f2bea691cd Builtin RubyVM::MJIT::C 2022-09-23 06:44:28 +09:00
Takashi Kokubun f8dad616c2
YJIT: Show --yjit-stats of railsbench on CI (#6403)
* 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
2022-09-20 06:07:28 +09:00
Takashi Kokubun 0e816e6d30
Demote mjit_instruction.rb from builtin to stdlib 2022-09-18 14:04:20 +09:00
Takashi Kokubun 3767c6a90d
Ruby MJIT (#6028) 2022-09-04 21:53:46 -07:00
Matt Valentine-House f1ccfa0c2c [ci-skip][Feature #18910][lldb] Provide class framework for lldb commands
`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.
2022-08-18 13:25:32 -04:00
Hiroshi SHIBATA 563f0d0a48
Ignore rubyspec_temp fot Git 2022-05-09 07:29:37 +09:00
Yuta Saito f72f01abd8 [wasm] add unit test suite for fiber, register scan, sjlj in platform dir 2022-01-19 11:19:06 +09:00
Nobuyoshi Nakada 1c4f529364
Ignore preprocessed C++ files [ci skip] 2021-11-21 16:23:44 +09:00
Hiroshi SHIBATA ccaa7957df
Ignore extentions of bundled gems for testing 2021-11-15 16:52:10 +09:00
Aaron Patterson 41f405c486 Remove the scraper
Now that we're using the jit function entry point, we don't need the
scraper.  Thank you for your service, scraper. ❤️
2021-10-20 18:19:38 -04:00
Jose Narvaez 4e2eb7695e Yet Another Ruby JIT!
Renaming uJIT to YJIT. AKA s/ujit/yjit/g.
2021-10-20 18:19:31 -04:00
Maxime Chevalier-Boisvert e4c65ec49c Refactor uJIT code into more files for readability 2021-10-20 18:19:26 -04:00
Alan Wu 07dd5f22a5 Scraper touch-ups
- Support older Ruby versions
- Catch rip-relative jmp. Happens in -O0
2021-10-20 18:19:22 -04:00
Nobuyoshi Nakada 3ce5434fec
Ignore static-ruby [ci skip]
static-ruby is statically linked against libruby, even when
configured with --enable-shared.
2020-11-24 08:38:06 +09:00
Nobuyoshi Nakada 9fc564cfef
Ignore rbenv version file, and moved dot files [ci skip] 2020-07-04 22:04:46 +09:00
David Rodríguez 7a5da7d55d Allow hidden files with a hyphen to be source controlled
Latest bundler includes a file named `.gitlab-ci.yml.tt`. Because of
this too specific .gitignore entry, it was failing to be properly
imported.
2020-07-04 13:41:17 +09:00
Nobuyoshi Nakada df275179bd
Revert "Moved aclocal.m4 to macro directory"
This reverts commit 4a6571dbc1,
because chkbuild does not follow.
2020-04-05 11:53:07 +09:00
Nobuyoshi Nakada 4a6571dbc1 Moved aclocal.m4 to macro directory 2020-04-05 09:26:57 +09:00
Hiroshi SHIBATA 66e636ab24
ignore revision.tmp with in-place build 2020-02-11 14:05:34 +09:00
Nobuyoshi Nakada a93d0a4e62
Check -1 arity for C++ 2019-11-22 18:42:49 +09:00
Yuichiro Kaneko b42656b9c4 Ignore *.rbinc files 2019-11-11 09:22:46 +09:00
Nobuyoshi Nakada 04075305d3
Ignore timestamp file for the expected failure [ci skip] 2019-10-22 21:33:24 +09:00