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

135 Коммитов

Автор SHA1 Сообщение Дата
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
Samuel Williams 9e7a8a4351 Only ignore build directories. 2019-06-20 23:12:48 +12:00
Samuel Williams a6a4e86029 Ignore `/build*`. 2019-06-19 20:39:10 +12:00
Nobuyoshi Nakada 14778125b1
Removed and ignore symlinks by in-place build [Bug #15870] 2019-05-24 14:24:38 +09:00
Nobuyoshi Nakada dfc21a0467
Ignore generated files by in-place build [Bug #15870] 2019-05-24 12:23:26 +09:00
Nobuyoshi Nakada 2f0f9115d3
Ignore ChangeLog 2019-05-01 20:27:51 +09:00
Kazuhiro NISHIYAMA 7a34d8902a
Merge .time 2019-04-30 00:28:00 +09:00
SHIBATA Hiroshi c697bade0f
Ignore VSCode configuration from git. 2019-04-22 20:01:07 +09:00
nobu 2301054a99 Use BUILDDIR in ruby-runner.h from config.status
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-08 01:49:02 +00:00
nobu 54c979e979 Ignore goruby wrapper
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-03 13:12:29 +00:00
nobu ec9e886b63 Ignore more DLEXT files [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-23 12:12:10 +00:00
kazu 1d5b52c35a .gitignore: add mjit_build_dir.c [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22 06:08:50 +00:00
kazu 15e37da621 .gitignore: add .time under coroutine [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22 06:08:49 +00:00
kazu a3bf7a19d0 .gitignore: revert r65834 partially [ci skip]
and exclude under coroutine only.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22 06:08:47 +00:00
samuel 07a324a0f6 Native implementation of coroutines to improve performance of fibers
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 09:59:10 +00:00
k0kubun cdf72ddc3b win32/Makefile.sub: build precompiled header
See the comment in win32/Makefile.sub.
Not only .pch, but also .obj needs to be installed and used on runtime.

.gitignore: ignore .pch that will be built by this.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-04 23:53:41 +00:00
k0kubun 3293322a39 benchmark: introduce benchmark_driver.gem
Makefile.in: Clone benchmark-driver repository in benchmark/benchmark-driver
  `make update-benchmark-driver`, like simplecov.
win32/Makefile.sub: Roughly do the same thing.
.gitignore: Ignore the cloned repository.
common.mk: Trigger `make update-benchmark-driver` to run `make benchmark`
  and adjust arguments for benchmark_driver.gem.

benchmark/require.yml: renamed from benchmark/bm_require.rb, benchmark/prepare_require.rb
benchmark/require_thread.yml: renamed from benchmark/bm_require_thread.rb, benchmark/prepare_require_thread.rb
benchmark/so_count_words.yml: renamed from benchmark/bm_so_count_words.rb, benchmark/prepare_so_count_words.rb,
  benchmark/wc.input.base
benchmark/so_k_nucleotide.yml: renamed from benchmark/bm_so_k_nucleotide.rb, benchmark/prepare_so_k_nucleotide.rb,
  benchmark/make_fasta_output.rb
benchmark/so_reverse_complement.yml: renamed from benchmark/bm_so_reverse_complement.rb, benchmark/prepare_so_reverse_complement.rb,
  benchmark/make_fasta_output.rb

I'm sorry but I made some duplications between benchmark/require.yml and benchmark/require_thread.yml,
and between benchmark/so_k_nucleotide.yml and benchmark/so_reverse_complement.yml.

If you're not comfortable with it, please combine these YAMLs to share
the same prelude. One YAML file can have multiple benchmark definitions
sharing prelude.

benchmark/driver.rb: Replace its core feature with benchmark_driver.gem.
  Some old features are gone for now, but I'll add them again later.

[Misc #14902]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-08 14:38:05 +00:00
nobu 95208d59ca Ignore rb_mjit_min_header- instead of rb_mjit_header-
[Fix GH-1822]

From: hkdnet <satoko.itse@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-22 07:34:43 +00:00