aboutsummaryrefslogtreecommitdiffstats
path: root/common.mk
Commit message (Collapse)AuthorAgeFilesLines
* Introduce encoding check macroS-H-GAMELINKS2022-12-021-0/+3
|
* MJIT: Rename mjit_compile_attr to mjit_sp_incTakashi Kokubun2022-11-291-2/+2
| | | | There's no mjit_compile.inc, so no need to use this prefix anymore.
* MJIT: Merge mjit_unit.h into mjit_c.hTakashi Kokubun2022-11-291-2/+1
| | | | The distinction doesn't make much difference today.
* MJIT: Rename mjit_compiler.c to mjit_c.cTakashi Kokubun2022-11-291-208/+208
| | | | It's no longer about the compiler logic itself.
* Extract outdate-bundled-gems.rbNobuyoshi Nakada2022-11-291-29/+1
|
* Fix dependencies of outdate-bundled-gemsNobuyoshi Nakada2022-11-291-1/+2
| | | | Extract new gems then remove outdated gem directories.
* Refine outdate-bundled-gemsNobuyoshi Nakada2022-11-291-7/+28
|
* MJIT: Rename mjit_compiler.h to mjit_c.hTakashi Kokubun2022-11-281-1/+1
| | | | because it exists primarily for generating mjit_c.rb.
* Force to update revision.h after the source updated [ci skip]Nobuyoshi Nakada2022-11-281-0/+4
|
* MJIT: Merge mjit_compiler.rb into mjit.rbTakashi Kokubun2022-11-261-3/+0
| | | | There are too many mjit_compiler.* files. It was hard to find files.
* Add Time#deconstruct_keyszverok2022-11-221-0/+1
|
* Use double quotes for nmake [ci skip]Nobuyoshi Nakada2022-11-211-6/+6
|
* Add outdate-bundled-gems target [ci skip]Nobuyoshi Nakada2022-11-211-0/+11
|
* Update fake.rb for test-specNobuyoshi Nakada2022-11-201-1/+1
| | | | spec/ruby/command_line/dash_v_spec.rb needs it.
* Remove duplicate `.rbinc` on `.rb` dependenciesNobuyoshi Nakada2022-11-161-9/+0
|
* Let mjit-bindgen use BASERUBY and bundle/inline (#6740)Takashi Kokubun2022-11-151-13/+1
|
* Rewrite Symbol#to_sym and #intern in Ruby (#6683)Takashi Kokubun2022-11-151-0/+5
|
* Depending on revision.h with VPATHNobuyoshi Nakada2022-11-161-2/+2
|
* Clean YJIT libraries [ci skip]Nobuyoshi Nakada2022-11-141-0/+1
|
* [Bug #19127] Fix revision.h dependency when no baserubyNobuyoshi Nakada2022-11-141-2/+4
| | | | Disconnect the dependency of revision.h on the timestamp file if no baseruby is available
* Control non-parallel parts with `.WAIT` if availableNobuyoshi Nakada2022-11-131-2/+2
|
* Transition shape when object's capacity changesJemma Issroff2022-11-101-0/+10
| | | | | | | | | | | | | | | | This commit adds a `capacity` field to shapes, and adds shape transitions whenever an object's capacity changes. Objects which are allocated out of a bigger size pool will also make a transition from the root shape to the shape with the correct capacity for their size pool when they are allocated. This commit will allow us to remove numiv from objects completely, and will also mean we can guarantee that if two objects share shapes, their IVs are in the same positions (an embedded and extended object cannot share shapes). This will enable us to implement ivar sets in YJIT using object shapes. Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org>
* Preprocess for older bison is no longer neededNobuyoshi Nakada2022-11-101-2/+0
|
* `--disable-jit-support` should disable YJIT successfullyNobuyoshi Nakada2022-11-061-1/+1
| | | | | Even if `rustc` is available, it should not be an error unless `--enable-yjit` is explicitly given.
* Add `--target` option to RUSTC when cross-compilingNobuyoshi Nakada2022-11-061-0/+2
|
* Update dependenciesNobuyoshi Nakada2022-11-051-0/+2
|
* Bump benchmark-driver versionTakashi Kokubun2022-11-031-1/+1
| | | | | https://github.com/benchmark-driver/benchmark-driver/pull/75 is useful for quickly benchmarking a single method in CRuby.
* Manage the timestamp for revision.hNobuyoshi Nakada2022-11-021-7/+2
|
* Ignore failure at moving revision.h [ci skip]Nobuyoshi Nakada2022-10-301-1/+1
| | | | The source directory may be read-only.
* YJIT: Lazily enable YJIT after prelude (#6597)Takashi Kokubun2022-10-241-0/+1
| | | | | | | * YJIT: Lazily enable YJIT after prelude * Update dependencies * Use a bit field for opt->yjit
* Make mjit_cont sharable with YJIT (#6556)Takashi Kokubun2022-10-171-0/+20
| | | | | | | * Make mjit_cont sharable with YJIT * Update dependencies * Update YJIT binding
* Improvements to IO::Buffer implementation and documentation. (#6525)Samuel Williams2022-10-121-0/+5
|
* Revert "Revert "This commit implements the Object Shapes technique in CRuby.""Jemma Issroff2022-10-111-0/+322
| | | | This reverts commit 9a6803c90b817f70389cae10d60b50ad752da48f.
* Revert "This commit implements the Object Shapes technique in CRuby."Aaron Patterson2022-09-301-322/+0
| | | | This reverts commit 68bc9e2e97d12f80df0d113e284864e225f771c2.
* This commit implements the Object Shapes technique in CRuby.Jemma Issroff2022-09-281-0/+322
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Object Shapes is used for accessing instance variables and representing the "frozenness" of objects. Object instances have a "shape" and the shape represents some attributes of the object (currently which instance variables are set and the "frozenness"). Shapes form a tree data structure, and when a new instance variable is set on an object, that object "transitions" to a new shape in the shape tree. Each shape has an ID that is used for caching. The shape structure is independent of class, so objects of different types can have the same shape. For example: ```ruby class Foo def initialize # Starts with shape id 0 @a = 1 # transitions to shape id 1 @b = 1 # transitions to shape id 2 end end class Bar def initialize # Starts with shape id 0 @a = 1 # transitions to shape id 1 @b = 1 # transitions to shape id 2 end end foo = Foo.new # `foo` has shape id 2 bar = Bar.new # `bar` has shape id 2 ``` Both `foo` and `bar` instances have the same shape because they both set instance variables of the same name in the same order. This technique can help to improve inline cache hits as well as generate more efficient machine code in JIT compilers. This commit also adds some methods for debugging shapes on objects. See `RubyVM::Shape` for more details. For more context on Object Shapes, see [Feature: #18776] Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org> Co-Authored-By: Eileen M. Uchitelle <eileencodes@gmail.com> Co-Authored-By: John Hawthorn <john@hawthorn.email>
* bootstraptest/runner: manage sub processes with the job serverNobuyoshi Nakada2022-09-281-2/+2
|
* Revert this until we can figure out WB issues or remove shapes from GCAaron Patterson2022-09-261-322/+0
| | | | | | | | | | Revert "* expand tabs. [ci skip]" This reverts commit 830b5b5c351c5c6efa5ad461ae4ec5085e5f0275. Revert "This commit implements the Object Shapes technique in CRuby." This reverts commit 9ddfd2ca004d1952be79cf1b84c52c79a55978f4.
* This commit implements the Object Shapes technique in CRuby.Jemma Issroff2022-09-261-0/+322
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Object Shapes is used for accessing instance variables and representing the "frozenness" of objects. Object instances have a "shape" and the shape represents some attributes of the object (currently which instance variables are set and the "frozenness"). Shapes form a tree data structure, and when a new instance variable is set on an object, that object "transitions" to a new shape in the shape tree. Each shape has an ID that is used for caching. The shape structure is independent of class, so objects of different types can have the same shape. For example: ```ruby class Foo def initialize # Starts with shape id 0 @a = 1 # transitions to shape id 1 @b = 1 # transitions to shape id 2 end end class Bar def initialize # Starts with shape id 0 @a = 1 # transitions to shape id 1 @b = 1 # transitions to shape id 2 end end foo = Foo.new # `foo` has shape id 2 bar = Bar.new # `bar` has shape id 2 ``` Both `foo` and `bar` instances have the same shape because they both set instance variables of the same name in the same order. This technique can help to improve inline cache hits as well as generate more efficient machine code in JIT compilers. This commit also adds some methods for debugging shapes on objects. See `RubyVM::Shape` for more details. For more context on Object Shapes, see [Feature: #18776] Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org> Co-Authored-By: Eileen M. Uchitelle <eileencodes@gmail.com> Co-Authored-By: John Hawthorn <john@hawthorn.email>
* Update `IO::Buffer` read/write to use rb_thread_io_blocking_region. (#6438)Samuel Williams2022-09-261-0/+1
|
* Add several new methods for getting and setting buffer contents. (#6434)Samuel Williams2022-09-261-0/+1
|
* Bindgen enum with builtinTakashi Kokubun2022-09-231-1/+2
|
* mjit_c.rb doesn't need to be an erbTakashi Kokubun2022-09-231-5/+0
|
* Builtin RubyVM::MJIT::CTakashi Kokubun2022-09-231-1/+11
|
* 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.