summaryrefslogtreecommitdiff
path: root/common.mk
Commit message (Collapse)AuthorAgeFilesLines
* YJIT: Support MAKE=bmake for release buildAlan Wu2022-09-201-0/+8
| | | | | | | | | | This add support for bmake, which should allow building with `configure --enable-yjit` for the BSDs. Tested on FreeBSD 13 and on macOS with `configure MAKE=bmake` on a case-sensitive file system. It works by including a fragment into the Makefile through the configure script, similar to common.mk. It uses the always rebuild approach to keep build system changes minimal.
* Try to ignore a noisy ASAN warning for continuationYusuke Endoh2022-09-201-0/+1
|
* Extract UNICODE_DOWNLOADERNobuyoshi Nakada2022-09-191-19/+13
|
* Include lib/mjit/instruction.rb in a snapshotTakashi Kokubun2022-09-181-0/+1
| | | | baseruby shouldn't be necessary once a snapshot is built.
* Move mjit/instruction.rb rule to common.mkTakashi Kokubun2022-09-181-0/+5
| | | | | | as suggested by nobu. We don't really need to generate this for Windows, but using common.mk whenever possible would probably make maintenance easier.
* Demote mjit_instruction.rb from builtin to stdlibTakashi Kokubun2022-09-181-6/+1
|
* Replace revision.tmp with the HAVE_BASERUBY trickTakashi Kokubun2022-09-181-1/+3
| | | | | | but without relying on replacement. This seems to work on OpenBSD as well.
* Always generate non-empty revision.hTakashi Kokubun2022-09-171-8/+3
| | | | | | | | | | Non-GNU make seems to generate empty revision.h, but it doesn't make sense since https://github.com/ruby/ruby/pull/6382. Also the $(HAVE_BASERUBY:yes=tmp) hack doesn't seem to be working on OpenBSD. I'll remove it to focus on fixing RubyCI first, and then deal with baseruby-missing environments. At least a snapshot should have revision.h and it might work fine though.
* Auto-generate the release date on version.h from git CommitDate (#6382)Takashi Kokubun2022-09-171-1/+2
| | | | | | | * Auto-generate the release date on version.h from git CommitDate * Generate revision.h on mswin
* Move case-folding.rb to tooldir with enc-prefixNobuyoshi Nakada2022-09-171-3/+3
|
* Derive UNICODE_EMOJI_VERSION from UNICODE_VERSIONNobuyoshi Nakada2022-09-171-1/+3
|
* Now test-bundler nees fake.rbNobuyoshi Nakada2022-09-161-1/+1
|
* Add noarch-fake.rb targetNobuyoshi Nakada2022-09-151-0/+3
| | | | | `yes-fake` depends on it when `arch=noarch` is given, but the rule to generate it from fake.rb.in is ignored now.
* Manage paths for bundler testsNobuyoshi Nakada2022-09-141-1/+5
|
* Pass job-server FDs to bundler testsNobuyoshi Nakada2022-09-141-2/+2
|
* Deprecate Encoding#replicateBenoit Daloze2022-09-101-0/+1
| | | | * See [Feature #18949].
* [MSWin] Get rid of single quotes in sed command linesNobuyoshi Nakada2022-09-101-5/+5
| | | | | | | | | GnuWin32 sed strips only double quotes, but not single quotes, and dies: ``` sed: -e expression #1, char 1: unknown command: `'' ```
* Process token IDs from id.def without id.hNobuyoshi Nakada2022-09-081-2/+2
| | | | | | | | | 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.
* Dump cross.rb only when verbose [ci skip]Nobuyoshi Nakada2022-09-071-1/+1
|
* Define BOOTSTRAPRUBY from HAVE_BASERUBYNobuyoshi Nakada2022-09-071-0/+1
|
* Use BOOTSTRAPRUBY_COMMAND instead of fake.rb directlyNobuyoshi Nakada2022-09-071-1/+1
|
* Add mjit-bindgen workflow (#6327)Takashi Kokubun2022-09-051-0/+15
|
* Ruby MJIT (#6028)Takashi Kokubun2022-09-041-7/+13
|
* Ignore fake.rb for snapshotNobuyoshi Nakada2022-09-041-3/+3
|
* fake.rb needs id.hNobuyoshi Nakada2022-09-041-1/+2
|
* Fix potential target type confliction [ci skip]Nobuyoshi Nakada2022-09-031-1/+1
|
* Make sources by BASERUBY if available instead of minirubyNobuyoshi Nakada2022-09-031-10/+15
|
* Generate the prelude sources by common-srcsNobuyoshi Nakada2022-09-031-1/+1
|
* Exclude LIBPATHENV wrapper from PREPNobuyoshi Nakada2022-09-031-2/+2
|
* builtin.c includes mini_builtin.c when cross-compilingNobuyoshi Nakada2022-09-031-0/+3
|
* Move duplicate dependenciesNobuyoshi Nakada2022-09-031-0/+2
|
* New constant caching insn: opt_getconstant_pathJohn Hawthorn2022-09-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fixed typoHiroshi SHIBATA2022-08-261-1/+1
|
* ruby-prof is now optionalHiroshi SHIBATA2022-08-261-1/+1
|
* added test-syntax-suggest and prepare tasksHiroshi SHIBATA2022-08-261-0/+19
|
* Added help entry for test-bundler-parallelHiroshi SHIBATA2022-08-221-30/+31
|
* Rename mjit_compile.c to mjit_compiler.cTakashi Kokubun2022-08-211-203/+203
| | | | | | 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.
* Use `rb_fork` to suppress deprecated-declarations warningsNobuyoshi Nakada2022-08-211-0/+1
|
* Update dependenciesNobuyoshi Nakada2022-08-171-5/+0
|
* Optimize Marshal dump/load for large (> 31-bit) FIXNUM (#6229)John Hawthorn2022-08-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | * Optimize Marshal dump of large fixnum Marshal's FIXNUM type only supports 31-bit fixnums, so on 64-bit platforms the 63-bit fixnums need to be represented in Marshal's BIGNUM. Previously this was done by converting to a bugnum and serializing the bignum object. This commit avoids allocating the intermediate bignum object, instead outputting the T_FIXNUM directly to a Marshal bignum. This maintains the same representation as the previous implementation, including not using LINKs for these large fixnums (an artifact of the previous implementation always allocating a new BIGNUM). This commit also avoids unnecessary st_lookups on immediate values, which we know will not be in that table. * Fastpath for loading FIXNUM from Marshal bignum * Run update-deps
* Update dependenciesNobuyoshi Nakada2022-08-141-6/+3
|
* The "gems" build directory was rename as ".bundle"Nobuyoshi Nakada2022-08-111-6/+6
|
* Move to tool/lib/bundled_gem.rbNobuyoshi Nakada2022-08-051-3/+3
|
* Extract bundled gems by BASERUBYNobuyoshi Nakada2022-08-051-2/+2
|
* Copy from bundled gem source for testNobuyoshi Nakada2022-08-051-4/+9
|
* Use configured GITNobuyoshi Nakada2022-08-051-2/+2
|
* Implement Queue#pop(timeout: sec)Jean Boussier2022-08-021-0/+5
| | | | | | | | | [Feature #18774] As well as `SizedQueue#pop(timeout: sec)` If both `non_block=true` and `timeout:` are supplied, ArgumentError is raised.
* Kill bundled gem tests when interruptedNobuyoshi Nakada2022-07-241-1/+1
|
* Update common sources including id.h after updateNobuyoshi Nakada2022-07-211-0/+1
|
* Refactor macros of array.cPeter Zhu2022-07-211-0/+1
| | | | | Move some macros in array.c to internal/array.h so that other files can also access these macros.