summaryrefslogtreecommitdiff
path: root/common.mk
Commit message (Collapse)AuthorAgeFilesLines
* Implement Hash AR tables on VWAPeter Zhu2023-05-171-1/+0
|
* Process parse.y without temporary filesNobuyoshi Nakada2023-05-151-7/+2
|
* Use the rb_sys_fail_str macro in signal.cKunshan Wang2023-05-151-0/+1
| | | | | | | | | | | Let signal.c include "internal/error.h" explicitly to ensure that the identifier rb_sys_fail_str in signal.c refers to the macro defined in "internal/error.h" instead of the actual function. That macro reads errno before evaluating its argument. Without this change, the rb_signo2signm(sig) expression in the "trap" function in signal.c will overwrite the errno before the actual rb_sys_fail_str function reads the errno.
* Add user argument to some macros used by bisonNobuyoshi Nakada2023-05-141-2/+2
|
* Use Lrama LALR parser generator instead of Bisonv3_3_0_preview1Yuichiro Kaneko2023-05-121-3/+4
| | | | | https://bugs.ruby-lang.org/issues/19637 Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
* Removed commented-out codeHiroshi SHIBATA2023-04-251-1/+1
|
* Use shorter path as `SPEC_TEMP_DIR`Nobuyoshi Nakada2023-04-211-1/+2
| | | | | | The temporary directory under the build directory may be too long as a UNIX socket path. On macOS, the default `TMPDIR` per user is also very long.
* fake.rb should depend on revision.h [ci skip]Nobuyoshi Nakada2023-04-151-1/+1
|
* [DOC] common.mk deals with various `make` varietiesAlan Wu2023-04-131-0/+2
|
* Emit a performance warning when a class reached max variationsJean Boussier2023-04-131-0/+2
| | | | | | | [Feature #19538] This new `peformance` warning category is disabled by default. It needs to be specifically enabled via `-W:performance` or `Warning[:performance] = true`
* Expose rb_sym_to_proc via RJITAaron Patterson2023-04-071-0/+1
| | | | This is needed for getblockparamproxy
* Update VPATH for socket, & dependenciesMatt Valentine-House2023-04-061-0/+264
| | | | | | | | | | | | | | | | | | The socket extensions rubysocket.h pulls in the "private" include/gc.h, which now depends on vm_core.h. vm_core.h pulls in id.h when tool/update-deps generates the dependencies for the makefiles, it generates the line for id.h to be based on VPATH, which is configured in the extconf.rb for each of the extensions. By default VPATH does not include the actual source directory of the current Ruby so the dependency fails to resolve and linking fails. We need to append the topdir and top_srcdir to VPATH to have the dependancy picked up correctly (and I believe we need both of these to cope with in-tree and out-of-tree builds). I copied this from the approach taken in https://github.com/ruby/ruby/blob/master/ext/objspace/extconf.rb#L3
* YJIT: Add codegen for Integer methods (#7665)Takashi Kokubun2023-04-051-0/+4
| | | | | | | * YJIT: Add codegen for Integer methods * YJIT: Update dependencies * YJIT: Fix Integer#[] for argc=2
* Revert "Fix transient heap mode"Aaron Patterson2023-04-041-2/+0
| | | | | | | | This reverts commit 87253d047ce35e7836b6f97edbb4f819879a3b25. Revert "Implement `Process.warmup`" This reverts commit ba6ccd871442f55080bffd53e33678c0726787d2.
* Implement `Process.warmup`Jean Boussier2023-04-041-0/+2
| | | | | | | | | | | | [Feature #18885] For now, the optimizations performed are: - Run a major GC - Compact the heap - Promote all surviving objects to oldgen Other optimizations may follow.
* Update Makefile dependenciesMatt Valentine-House2023-03-171-0/+20
|
* Move RB_VM_SAVE_MACHINE_CONTEXT to internal/thread.hMatt Valentine-House2023-03-151-0/+1
|
* Add btest-bruby targetTakashi Kokubun2023-03-121-0/+8
| | | | | | | | | | btest can't be used for testing RJIT because RJIT doesn't work on miniruby. However, btest-ruby is not necessarily useful for testing RJIT because both the runner could crash as well as the target. TBH I'm not sure why we want to use RUNRUBY instead of BOOTSTRAPRUBY on btest-ruby. However, to achieve what I want to do while keeping the current behavior, I'm just introducing a new target.
* RJIT: Update dependenciesTakashi Kokubun2023-03-121-0/+1
|
* Move WeakMap and WeakKeyMap code to weakmap.cPeter Zhu2023-03-101-0/+165
| | | | | | These classes don't belong in gc.c as they're not actually part of the GC. This commit refactors the code by moving all the code into a weakmap.c file.
* Allow enabling YJIT and RJIT independently (#7474)Takashi Kokubun2023-03-071-461/+464
| | | | | We used to require MJIT is supported when YJIT is supported. However, now that RJIT dropped some platforms that YJIT supports, it no longer makes sense. We should be able to enable only YJIT, and vice versa.
* s/mjit/rjit/Takashi Kokubun2023-03-061-472/+472
|
* s/MJIT/RJIT/Takashi Kokubun2023-03-061-1/+1
|
* Remove obsoleted mjit_sp_inc.inc.erbTakashi Kokubun2023-03-061-2/+0
|
* Remove obsoleted mjit_config.hTakashi Kokubun2023-03-061-5/+0
|
* Drop obsoleted MJIT header (#7458)Takashi Kokubun2023-03-061-29/+1
| | | RJIT doesn't need this.
* Update dependenciesTakashi Kokubun2023-03-051-0/+18
|
* Rewrite Ractor synchronization mechanismKoichi Sasada2023-03-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch rewrites Ractor synchronization mechanism, send/receive and take/yield. * API * Ractor::Selector is introduced for lightweight waiting for many ractors. * Data structure * remove `struct rb_ractor_waiting_list` and use `struct rb_ractor_queue takers_queue` to manage takers. * remove `rb_ractor_t::yield_atexit` and use `rb_ractor_t::sync::will_basket::type` to check the will. * add `rb_ractor_basket::p.take` to represent a taking ractor. * Synchronization protocol * For the Ractor local GC, `take` can not make a copy object directly so ask to generate the copy from the yielding ractor. * The following steps shows what `r1.take` does on `r0`. * step1: (r0) register `r0` into `r1`'s takers. * step2: (r0) check `r1`'s status and wakeup r0 if `r1` is waiting for yielding a value. * step3: (r0) sleep until `r1` wakes up `r0`. * The following steps shows what `Ractor.yield(v)` on `r1`. * step1: (r1) check first takers of `r1` and if there is (`r0`), make a copy object of `v` and pass it to `r0` and wakes up `r0`. * step2: (r1) if there is no taker ractors, sleep until another ractor try to take.
* Update the depend filesMatt Valentine-House2023-02-281-85/+0
|
* Remove intern/gc.h from Make depsMatt Valentine-House2023-02-271-85/+0
|
* Fix incorrect line numbers in GC hookPeter Zhu2023-02-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the previous instruction is not a leaf instruction, then the PC was incremented before the instruction was ran (meaning the currently executing instruction is actually the previous instruction), so we should not increment the PC otherwise we will calculate the source line for the next instruction. This bug can be reproduced in the following script: ``` require "objspace" ObjectSpace.trace_object_allocations_start a = 1.0 / 0.0 p [ObjectSpace.allocation_sourceline(a), ObjectSpace.allocation_sourcefile(a)] ``` Which outputs: [4, "test.rb"] This is incorrect because the object was allocated on line 10 and not line 4. The behaviour is correct when we use a leaf instruction (e.g. if we replaced `1.0 / 0.0` with `"hello"`), then the output is: [10, "test.rb"]. [Bug #19456]
* Add information about runirb in make helpKaĆ­que Kandy Koga2023-02-241-0/+1
|
* Clone bundled gem sources only if GIT is availableNobuyoshi Nakada2023-02-221-1/+1
|
* Clone and create dummy gemspec in sequential buildNobuyoshi Nakada2023-02-221-0/+14
|
* Encapsulate RCLASS_ATTACHED_OBJECTJean Boussier2023-02-151-3/+5
| | | | | | | | | Right now the attached object is stored as an instance variable and all the call sites that either get or set it have to know how it's stored. It's preferable to hide this implementation detail behind accessors so that it is easier to change how it's stored.
* [DOC] Fix the help messages for cleanNobuyoshi Nakada2023-02-101-2/+2
|
* Merge gc.h and internal/gc.hMatt Valentine-House2023-02-091-18/+3
| | | | [Feature #19425]
* Extract include/ruby/internal/attr/packed_struct.hNobuyoshi Nakada2023-02-081-0/+81
| | | | | | | | | Split `PACKED_STRUCT` and `PACKED_STRUCT_UNALIGNED` macros into the macros bellow: * `RBIMPL_ATTR_PACKED_STRUCT_BEGIN` * `RBIMPL_ATTR_PACKED_STRUCT_END` * `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_BEGIN` * `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_END`
* Document BUNDLED_GEMS in make testTakashi Kokubun2023-01-311-1/+1
|
* YJIT: Fix shared/static library symbol leaksAlan Wu2023-01-271-0/+1
| | | | | | | | | | | | | | | | | | | | Rust 1.58.0 unfortunately doesn't provide facilities to control symbol visibility/presence, but we care about controlling the list of symbols exported from libruby-static.a and libruby.so. This commit uses `ld -r` to make a single object out of rustc's staticlib output, libyjit.a. This moves libyjit.a out of MAINLIBS and adds libyjit.o into COMMONOBJS, which obviates the code for merging libyjit.a into libruby-static.a. The odd appearance of libyjit.a in SOLIBS is also gone. To filter out symbols we do not want to export on ELF platforms, we use objcopy after the partial link. On darwin, we supply a symbol list to the linker which takes care of hiding unprefixed symbols. [Bug #19255] Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
* Enable code-coverage result for test-syntax-suggestHiroshi SHIBATA2023-01-261-1/+2
|
* [Bug #19340] Fix bundle gems with test revisionNobuyoshi Nakada2023-01-261-4/+4
| | | | | Build temporary gem package from cloned repository if test revision is set.
* Support simplecov-0.22.0.Hiroshi SHIBATA2023-01-251-1/+1
| | | | | simplecov-0.22.0 no longer support pre-0.18 result format. result data needs `lines` key for coverage data.
* update-coverage needs to build ruby and all C-ext librariesHiroshi SHIBATA2023-01-231-1/+1
|
* Run `after-update` in the same main make process [ci skip]Nobuyoshi Nakada2023-01-201-1/+1
|
* Pin simplecov-0.20.0Hiroshi SHIBATA2023-01-181-1/+1
|
* Switch to use gem version of simplecov, not git cloneHiroshi SHIBATA2023-01-181-6/+4
|
* benchmark_driver v0.16.3Takashi Kokubun2023-01-171-1/+1
| | | | Some chruby-related features and bug fixes.
* test-syntax-suggest is now part of make checkHiroshi SHIBATA2023-01-171-1/+1
|
* Added make exam to help messageHiroshi SHIBATA2023-01-171-0/+1
|