summaryrefslogtreecommitdiff
path: root/tool
AgeCommit message (Collapse)Author
2022-09-17Emoji files header changed at 15.0 againNobuyoshi Nakada
2022-09-17Follow emoji data files header changeNobuyoshi Nakada
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.
2022-09-15[rubygems/rubygems] Also added x86_64-darwin-21Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/c03e7e1564
2022-09-15[rubygems/rubygems] Added arm64-darwin-22 to lockfiles for testingHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/d7956e9ce5
2022-09-14Replace "Fixes"/"Fixed" in commit logs as well as vcs.rb [ci skip]Nobuyoshi Nakada
Use the same regexp to replace "(#NNNN)" and "GH-NNNN" style references in vcs.rb, too.
2022-09-10Enable deprecation warnings for test-allBenoit Daloze
* 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
2022-09-09Support sub-library in builtin-loaderNobuyoshi Nakada
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
2022-09-09More robust macro parser (#6343)Aaron Patterson
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>
2022-09-09Ignore EACCES on WindowsNobuyoshi Nakada
2022-09-08Process token IDs from id.def without id.hNobuyoshi Nakada
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.
2022-09-07Dump cross.rb only when verbose [ci skip]Nobuyoshi Nakada
2022-09-05Add mjit-bindgen workflow (#6327)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-05Fix warnings from private_constantTakashi Kokubun
`private_constant *constants` seems to be warned for some reason
2022-09-05Merge ↵Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/16c3535413afebcdbab7582c6017c27b5da8a8dc Notes: Merged: https://github.com/ruby/ruby/pull/6326
2022-09-04Ruby MJIT (#6028)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-05Debugging snapshot [ci skip]Nobuyoshi Nakada
2022-09-05Use cross compiling settings as fake.rb for snapshotsNobuyoshi Nakada
2022-09-03Now fake.rb is needed to prepare sourcesNobuyoshi Nakada
2022-09-01New constant caching insn: opt_getconstant_pathJohn Hawthorn
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
2022-09-01VCS#revision_header: Make arguments optionalNobuyoshi Nakada
2022-09-01Update revision.h in packages using `VCS#revision_header`Nobuyoshi Nakada
2022-09-01Extract `VCS#revision_header`Nobuyoshi Nakada
2022-09-01Prefer `File` class methods to write a stringNobuyoshi Nakada
2022-09-01Ignore test libraries like assert_ractor from did_you_meanHiroshi SHIBATA
2022-09-01Fix test fail with assert_ractor outside of ruby/ruby repoHiroshi SHIBATA
Revert 806583c093ecc2d67830f0a8f0d94decf0ed71e5
2022-08-29Support main branch for syntax_suggestHiroshi SHIBATA
2022-08-26Sync examples and cli from syntax_suggestHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6287
2022-08-21Rename mjit_compile.c to mjit_compiler.cTakashi Kokubun
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.
2022-08-20Fix a typo [ci skip]Takashi Kokubun
2022-08-20Drop mswin support of MJIT (#6265)Takashi Kokubun
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>
2022-08-19Rename mjit_exec to jit_exec (#6262)Takashi Kokubun
* 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>
2022-08-19syntax_suggest moved to under the ruby organization.Hiroshi SHIBATA
2022-08-19Setup SyntaxSuggest as default gemschneems
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
2022-08-19Allow strings in assert_pattern_listNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6252
2022-08-18Add tests for assert_pattern_listNobuyoshi Nakada
2022-08-17Make date in installed gemspec files stableNobuyoshi Nakada
Set `date` member to `RUBY_RELEASE_DATE` instead of the date at the build time, to make installed files reproducible.
2022-08-17Refactor `RbInstall::Specs::FileCollector`Nobuyoshi Nakada
- 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/`.
2022-08-12Preserve each column positions in gems/bundled_gemsNobuyoshi Nakada
2022-08-12No bundled gems to be installed from gem nowNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6234
2022-08-12All extensions in bundled gems are built by build-ext nowNobuyoshi Nakada
`RbInstall::GemInstaller#build_extensions` has nothing to do. Notes: Merged: https://github.com/ruby/ruby/pull/6234
2022-08-07Fix files for gemspec files direct-under libNobuyoshi Nakada
Collected `files` lacked `lib` prefix. Notes: Merged: https://github.com/ruby/ruby/pull/6219 Merged-By: nobu <nobu@ruby-lang.org>
2022-08-05Sync new doc in Date (#6215)Burdette Lamar
Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-08-05Load gemspec file at that directoryNobuyoshi Nakada
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
2022-08-05Move to tool/lib/bundled_gem.rbNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6203
2022-08-05Copy from bundled gem source for testNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6203
2022-08-04Use $(bindir) for path to executable in mkmfAlan Wu
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
2022-07-29Keep gitignore for libyaml source with psychHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6200
2022-07-27Do not load library files from repository only for testNobuyoshi Nakada
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>
2022-07-26Try the tag without "v" prefix to checkout upstream repositoriesNobuyoshi Nakada
2022-07-268fa66467de is broken with rubygems/rubygems and flori/json.Hiroshi SHIBATA
Revert "Fix sync_default_gems.rb to use absolute path" This reverts commit 8fa66467de82f787ead9dd901ad06694c79d88dc.