aboutsummaryrefslogtreecommitdiffstats
path: root/common.mk
Commit message (Collapse)AuthorAgeFilesLines
* Re-embed when removing Object instance variablesPeter Zhu2023-12-061-0/+1
| | | | | | | | | | | Objects with the same shape must always have the same "embeddedness" (either embedded or heap allocated) because YJIT assumes so. However, using remove_instance_variable, it's possible that some objects are embedded and some are heap allocated because it does not re-embed heap allocated objects. This commit changes remove_instance_variable to re-embed Object instance variables when it becomes small enough.
* Revert "allow enabling Prism via flag or env var"HParker2023-12-061-414/+0
| | | | This reverts commit 9b76c7fc89460ed8e9be40e4037c1d68395c0f6d.
* allow enabling Prism via flag or env varHParker2023-12-051-0/+414
| | | | | | | | | | Enable Prism using either --prism ruby --prism test.rb or via env var RUBY_PRISM=1 ruby test.rb
* [PRISM] Fix dependenciesPeter Zhu2023-12-041-0/+3
|
* [ruby/prism] Correctly pass around const pm_encoding_t *Kevin Newton2023-11-301-0/+5
| | | | https://github.com/ruby/prism/commit/ce4c67fb3a
* [PRISM] Fix up prism encoding targetsKevin Newton2023-11-301-87/+22
|
* [prism] Add MacJapanese encodings to common.mkKevin Newton2023-11-291-64/+5
|
* [prism] Add pm_cp950 to make targetsKevin Newton2023-11-291-0/+5
|
* [prism] Add cp949 targets to common.mkKevin Newton2023-11-221-0/+5
|
* [prism] Remove pm_big5_hkscs from common.mk targetsKevin Newton2023-11-201-5/+0
|
* Don't try compacting ivars on Classes that are "too complex"Aaron Patterson2023-11-201-0/+32
| | | | | Too complex classes use a hash table to store ivs, and should always pin their IVs. We shouldn't touch those classes in compaction.
* [prism] Update common.mk for prism big5 hkscsKevin Newton2023-11-181-0/+5
|
* [prism] Add cp51932 to common.mkKevin Newton2023-11-161-0/+5
|
* [Bug #18286] Show checksum of builtin_binary.inc for confirmationNobuyoshi Nakada2023-11-091-0/+1
|
* [Bug #18286] Make builtin binary if sharable in universal binariesNobuyoshi Nakada2023-11-091-2/+5
|
* Revert "Disable iseq-dumped builtin module for universal x86_64/arm64 binaries"Nobuyoshi Nakada2023-11-091-1/+1
| | | | This reverts commit 1d5598fe0d3470e7cab06a756d40a9221fcd501b.
* Disable iseq-dumped builtin module for universal x86_64/arm64 binariesBen Hamilton2023-11-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | During the build, Ruby has special logic to serialize its own builtin module to disk using the binary iseq format during the build (I assume for speed so it doesn't have to parse builtin every time it starts up). However, since iseq format is architecture-specific, when building on x86_64 for universal x86_64 + arm64, the serialized builtin module is written with the x86_64 architecture of the build machine, which fails this check whenever ruby imports the builtin module on arm64: https://github.com/ruby/ruby/blob/1fdaa0666086529b3aae2d509a2e71c4247c3a12/compile.c#L13243 Thankfully, there's logic to disable this feature for cross-compiled builds: https://github.com/ruby/ruby/blob/1fdaa0666086529b3aae2d509a2e71c4247c3a12/builtin.c#L6 This disables the iseq logic for universal builds as well. Fixes [Bug #18286]
* [prism] Update to use new options APIsKevin Newton2023-11-031-0/+15
|
* [prism] Updates for syncKevin Newton2023-11-011-0/+10
|
* [prism] Update prettyprint depsKevin Newton2023-10-261-0/+10
|
* [PRISM] Move scope_node itself to CRuby, create prism_compile.hJemma Issroff2023-10-251-0/+3
|
* Use `-H` option instead of `-h` optionydah2023-10-231-1/+1
| | | | Follow up: https://github.com/ruby/lrama/pull/139
* [Bug #19967] Reset `LIBPATHENV` env after startedNobuyoshi Nakada2023-10-211-1/+2
| | | | Not to affect other tools invoked as child processes.
* YJIT: Add a live ISeq counter Alan Wu2023-10-181-0/+1
| | | | | | | It's an estimator for application size and could be used as a compilation heuristic later. Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
* Separate `test-precheck` targetNobuyoshi Nakada2023-10-171-1/+4
| | | | So that the tests can run without updating other than the programs.
* Wait for `showflag` to finish to prevent interspersed outputsNobuyoshi Nakada2023-10-171-2/+2
|
* Remove duplicated optionyui-knk2023-10-171-1/+1
| | | | | | `-d` option is basically same with `-h` (`--header`). The difference is `-h` accept header file name. Therefore remove `-d` option.
* [prism] Remove unused make targetKevin Newton2023-10-131-1/+0
|
* [prism] Remove unescape targetsKevin Newton2023-10-131-33/+0
|
* [PRISM] Add --dump=prism mode (#8643)Jemma Issroff2023-10-131-0/+21
|
* M:N thread scheduler for RactorsKoichi Sasada2023-10-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduce M:N thread scheduler for Ractor system. In general, M:N thread scheduler employs N native threads (OS threads) to manage M user-level threads (Ruby threads in this case). On the Ruby interpreter, 1 native thread is provided for 1 Ractor and all Ruby threads are managed by the native thread. From Ruby 1.9, the interpreter uses 1:1 thread scheduler which means 1 Ruby thread has 1 native thread. M:N scheduler change this strategy. Because of compatibility issue (and stableness issue of the implementation) main Ractor doesn't use M:N scheduler on default. On the other words, threads on the main Ractor will be managed with 1:1 thread scheduler. There are additional settings by environment variables: `RUBY_MN_THREADS=1` enables M:N thread scheduler on the main ractor. Note that non-main ractors use the M:N scheduler without this configuration. With this configuration, single ractor applications run threads on M:1 thread scheduler (green threads, user-level threads). `RUBY_MAX_CPU=n` specifies maximum number of native threads for M:N scheduler (default: 8). This patch will be reverted soon if non-easy issues are found. [Bug #19842]
* Move CRuby-specific prism files to top levelKevin Newton2023-09-281-1074/+1076
|
* Rename YARP symbols to prismKevin Newton2023-09-271-1207/+1207
|
* Update YARP build targetsKevin Newton2023-09-271-4/+24
|
* Clean also YARP build directory [ci skip]Nobuyoshi Nakada2023-09-271-1/+4
|
* Invoke the command when RUBY_BUGREPORT_PATH starts with `|`Nobuyoshi Nakada2023-09-251-0/+2
|
* Move YARP_BUILD_DIR to common.mkNobuyoshi Nakada2023-09-211-1/+3
| | | It does not need to be an absolute path.
* `.NOTPARALLEL` with prerequisites needs recent GNU MakeNobuyoshi Nakada2023-09-211-1/+0
| | | | | GNU Make prior to 4.4 just ignores the prerequisites, and runs everything in serial.
* [Bug #19778] Pass additional include options to INCFLAGS in common.mkNobuyoshi Nakada2023-09-171-1/+1
|
* Enable `.NOTPARALLEL` on `ripper_srcs`Nobuyoshi Nakada2023-09-131-1/+2
| | | | And add special treats only for old GNU make.
* Use the keyword for output and omit default arguments [ci skip]Nobuyoshi Nakada2023-09-111-1/+1
|
* Add yarp/yarp_compiler.c (#8042)Jemma Issroff2023-08-281-0/+45
| | | | | | | | | | | | * Add yarp/yarp_compiler.c as stencil for compiling YARP This commit adds yarp/yarp_compiler.c, and changes the sync script to ensure that yarp/yarp_compiler.c will not get overwritten * [Misc #119772] Create and expose RubyVM::InstructionSequence.compile_yarp This commit creates the stencil for a compile_yarp function, which we will continue to fill out. It allows us to check the output of compiled YARP code against compiled code without using YARP.
* YARP: generated files using from templates depend on config.ymlNobuyoshi Nakada2023-08-281-19/+20
|
* Update depsKevin Newton2023-08-251-18/+25
|
* Remove config.h from targets necessary for YARPKevin Newton2023-08-251-56/+1
|
* Fix VPATH for yarp/version.hKevin Newton2023-08-251-1/+1
|
* Update sync script to handle yarp/version.hKevin Newton2023-08-251-0/+4
|
* Fix mutation visitor build for YARP templatingKevin Newton2023-08-251-0/+5
|
* Implement weak references in the GCPeter Zhu2023-08-251-0/+2
| | | | | | | | | | | | [Feature #19783] This commit adds support for weak references in the GC through the function `rb_gc_mark_weak`. Unlike strong references, weak references does not mark the object, but rather lets the GC know that an object refers to another one. If the child object is freed, the pointer from the parent object is overwritten with `Qundef`. Co-Authored-By: Jean Boussier <byroot@ruby-lang.org>
* Resurrect srcs dependency for YARP templates (#8285)Takashi Kokubun2023-08-241-0/+6
|