summaryrefslogtreecommitdiff
path: root/tool
AgeCommit message (Collapse)Author
2022-09-23Bindgen enum with builtinTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/6418
2022-09-23Builtin needs to be baseruby-compatibleTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/6418
2022-09-23Automatically setup bundler of bindgen.rbTakashi Kokubun
to easily use it with `tool/mjit/bindgen.rb BUILDDIR` instead of using `make mjit-bindgen`. Notes: Merged: https://github.com/ruby/ruby/pull/6418
2022-09-23mjit_c.rb doesn't need to be an erbTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/6418
2022-09-23Mix manual and auto-generated C APIsTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/6418
2022-09-23Bindgen macro with builtinTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/6418
2022-09-23Auto-generate mjit_c.rb.erbTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/6418
2022-09-23Builtin RubyVM::MJIT::CTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/6418
2022-09-22Expand paths used for dumper.rbTakashi Kokubun
This seems to be needed on Samuel's environment
2022-09-21add rb_execution_contextAaron Patterson
Notes: Merged: https://github.com/ruby/ruby/pull/6417
2022-09-21add rb_control_frame_tAaron Patterson
Notes: Merged: https://github.com/ruby/ruby/pull/6417
2022-09-21reserved_word: just use gperf 3.1 declaration卜部昌平
The reason why this was commented out was because of gperf 3.0 vs 3.1 differences (see [Feature #13883]). Five years passed, I am pretty confident that we can drop support of old versions here. Ditto for uniname2ctype_p(), onig_jis_property(), and zonetab(). Notes: Merged: https://github.com/ruby/ruby/pull/6358
2022-09-20Quiet if the target is already linked the same sourceNobuyoshi Nakada
2022-09-20Fix the trailing comma comment for builtin [ci skip]Takashi Kokubun
so that it's clear why not args.last but args[1]
2022-09-20Support trailing commas in builtinTakashi Kokubun
`foo(Primitive.cexpr!('Qnil'),)` causes SEGV without this change.
2022-09-19Downloader: Define long option aliasesNobuyoshi Nakada
2022-09-19Downloader: Define per-class command line optionsNobuyoshi Nakada
Move `Downloader::Unicode` specific options, and parse options after the downloader specificier.
2022-09-18Introduce --basedir to insns2vm.rbTakashi Kokubun
and leverage that to preserve the directory structure under tool/ruby_vm/views
2022-09-18Revert "Preserve the directory structure under tool/ruby_vm/views"Takashi Kokubun
This reverts commit 62ec621f8c7457374d1f08aec97138ac1b7bdf2a. will revisit this once fixing non-MJIT targets
2022-09-18Preserve the directory structure under tool/ruby_vm/viewsTakashi Kokubun
for nested target directories
2022-09-18Demote mjit_instruction.rb from builtin to stdlibTakashi Kokubun
2022-09-17Remove git command existence check againTakashi Kokubun
With 33c6dd2cc89c27bbf406508ec39038a181fb99bc, it's no longer necessary. This is what I got on openbsd-current: ``` -bash-5.1$ git -v unknown option: -v usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] [--super-prefix=<path>] [--config-env=<name>=<envvar>] <command> [<args>] -bash-5.1$ git version git version 2.35.1 ```
2022-09-17Fallback to VCS.release_date on VCS::NotFoundErrorTakashi Kokubun
when -q is given. One of the RubyCI servers, freebsd12, had a broken git environment: ``` $ git show fatal: detected dubious ownership in repository at '/usr/home/chkbuild/chkbuild/tmp/build/20220917T123002Z/ruby' To add an exception for this directory, call: git config --global --add safe.directory /usr/home/chkbuild/chkbuild/tmp/build/20220917T123002Z/ruby ``` tool/lib/vcs.rb doesn't work normally for that server. Even for such cases, we'd like to generate a usable revision.h. So this patch lets revision.h fallback to default VCS.release_date when VCS::NotFoundError is raised.
2022-09-17Auto-generate the release date on version.h from git CommitDate (#6382)Takashi Kokubun
* Auto-generate the release date on version.h from git CommitDate * Generate revision.h on mswin Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-17Move case-folding.rb to tooldir with enc-prefixNobuyoshi Nakada
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