Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Revisions for #10198 | Takashi Kokubun | 2024-03-12 | 1 | -6/+6 |
| | | | | This fixes some inconsistencies introduced by that PR. | ||||
* | Do not include a backtick in error messages and backtraces | Yusuke Endoh | 2024-02-15 | 1 | -1/+1 |
| | | | | [Feature #16495] | ||||
* | RJIT: Rewind $! after compilation | Takashi Kokubun | 2023-12-22 | 1 | -1/+5 |
| | |||||
* | RJIT: Make --rjit-trace actually work | Takashi Kokubun | 2023-12-21 | 1 | -9/+25 |
| | |||||
* | RJIT: Add --rjit-trace to allow TracePoint during JIT | Takashi Kokubun | 2023-12-21 | 1 | -9/+14 |
| | |||||
* | RJIT: Avoid incrementing vm_insns_count | Takashi Kokubun | 2023-12-21 | 1 | -0/+4 |
| | | | | during compilation | ||||
* | RJIT: Rename pause/resume to disable/enable | Takashi Kokubun | 2023-12-21 | 1 | -4/+3 |
| | | | | | | like YJIT. They don't work in the same way yet, but it's nice to make the naming consistent first so that we will not need to rename them later. | ||||
* | RJIT: Share rb_vm_insns_count for vm_insns_count | Takashi Kokubun | 2023-12-18 | 1 | -13/+2 |
| | |||||
* | add `flags` to `rb_postponed_job_preregister` | Koichi Sasada | 2023-12-10 | 1 | -1/+1 |
| | | | | for future extensions. | ||||
* | Change the semantics of rb_postponed_job_register | KJ Tsanaktsidis | 2023-12-10 | 1 | -1/+8 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our current implementation of rb_postponed_job_register suffers from some safety issues that can lead to interpreter crashes (see bug #1991). Essentially, the issue is that jobs can be called with the wrong arguments. We made two attempts to fix this whilst keeping the promised semantics, but: * The first one involved masking/unmasking when flushing jobs, which was believed to be too expensive * The second one involved a lock-free, multi-producer, single-consumer ringbuffer, which was too complex The critical insight behind this third solution is that essentially the only user of these APIs are a) internal, or b) profiling gems. For a), none of the usages actually require variable data; they will work just fine with the preregistration interface. For b), generally profiling gems only call a single callback with a single piece of data (which is actually usually just zero) for the life of the program. The ringbuffer is complex because it needs to support multi-word inserts of job & data (which can't be atomic); but nobody actually even needs that functionality, really. So, this comit: * Introduces a pre-registration API for jobs, with a GVL-requiring rb_postponed_job_prereigster, which returns a handle which can be used with an async-signal-safe rb_postponed_job_trigger. * Deprecates rb_postponed_job_register (and re-implements it on top of the preregister function for compatability) * Moves all the internal usages of postponed job register pre-registration | ||||
* | RJIT: Tweak the default call threshold | Takashi Kokubun | 2023-04-26 | 1 | -1/+1 |
| | | | | This number works better on yjit-bench (ruby-lsp). | ||||
* | RJIT: Add --rjit-verify-ctx option | Takashi Kokubun | 2023-04-04 | 1 | -7/+10 |
| | |||||
* | RJIT: Support entry with different PCs | Takashi Kokubun | 2023-04-02 | 1 | -0/+20 |
| | |||||
* | RJIT: Prefix rjit_options with rb_ | Takashi Kokubun | 2023-03-18 | 1 | -3/+3 |
| | |||||
* | RJIT: Support --rjit-stats on release build as well | Takashi Kokubun | 2023-03-17 | 1 | -2/+2 |
| | |||||
* | RJIT: Implement --rjit-trace-exits | Takashi Kokubun | 2023-03-12 | 1 | -1/+26 |
| | |||||
* | RJIT: Introduce --rjit-exec-mem-size | Takashi Kokubun | 2023-03-10 | 1 | -114/+18 |
| | |||||
* | RJIT: Resurrect --rjit-pause and RJIT.resume | Takashi Kokubun | 2023-03-09 | 1 | -1/+1 |
| | |||||
* | RJIT: Make functions in rjit_c.c static | Takashi Kokubun | 2023-03-08 | 1 | -0/+4 |
| | | | | They don't need to be global. | ||||
* | RJIT: Reorganize rjit.c | Takashi Kokubun | 2023-03-08 | 1 | -54/+45 |
| | | | | Reordering functions for readability, adding stats whenever possible. | ||||
* | RJIT: Stop allowing leaked globals rjit_* | Takashi Kokubun | 2023-03-08 | 1 | -43/+43 |
| | |||||
* | RJIT: Get rid of verbose logging | Takashi Kokubun | 2023-03-08 | 1 | -26/+2 |
| | |||||
* | RJIT: Clean up the declaration mess | Takashi Kokubun | 2023-03-08 | 1 | -5/+1 |
| | |||||
* | Remove obsoleted functions in rjit.c | Takashi Kokubun | 2023-03-07 | 1 | -93/+3 |
| | |||||
* | Update documentation about RJIT | Takashi Kokubun | 2023-03-07 | 1 | -1/+3 |
| | |||||
* | Fix a typo | Takashi Kokubun | 2023-03-07 | 1 | -4/+4 |
| | |||||
* | Allow enabling YJIT and RJIT independently (#7474) | Takashi Kokubun | 2023-03-07 | 1 | -2/+106 |
| | | | | | 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. | ||||
* | Actually stop supporting those options | Takashi Kokubun | 2023-03-07 | 1 | -23/+2 |
| | |||||
* | Update options available in RJIT | Takashi Kokubun | 2023-03-07 | 1 | -7/+4 |
| | |||||
* | s/mjit/rjit/ | Takashi Kokubun | 2023-03-06 | 1 | -131/+130 |
| | |||||
* | s/MJIT/RJIT/ | Takashi Kokubun | 2023-03-06 | 1 | -67/+67 |
| | |||||
* | Rename MJIT filenames to RJIT | Takashi Kokubun | 2023-03-06 | 1 | -0/+567 |