Граф коммитов

81042 Коммитов

Автор SHA1 Сообщение Дата
Alan Wu 7367336c4e YJIT: Fix assert in OOM scenario
We still need to do `jit.record_boundary_patch_point = false`
when gen_outlined_exit() returns `None` and we return with `?`.
Previously, we tripped the assert at codegen.rs:1042.

Found with `--yjit-exec-mem-size=3` on the lobsters benchmark.

Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
2023-11-07 18:50:10 -05:00
Alan Wu a1c61f0ae5 YJIT: Use u32 for CodePtr to save 4 bytes each
We've long had a size restriction on the code memory region such that a
u32 could refer to everything. This commit capitalizes on this
restriction by shrinking the size of `CodePtr` to be 4 bytes from 8.

To derive a full raw pointer from a `CodePtr`, one needs a base pointer.
Both `CodeBlock` and `VirtualMemory` can be used for this purpose. The
base pointer is readily available everywhere, except for in the case of
the `jit_return` "branch". Generalize lea_label() to lea_jump_target()
in the IR to delay deriving the `jit_return` address until `compile()`,
when the base pointer is available.

On railsbench, this yields roughly a 1% reduction to `yjit_alloc_size`
(58,397,765 to 57,742,248).
2023-11-07 17:43:43 -05:00
Peter Zhu aa6642de63 Use embedded TypedData for Time objects
This drops the total size of a Time object from 86 bytes to 80 bytes.

Running the benchmark benchmark/time_now.yml, this commit improves
performance of Time.now by about 30%:

```
  Time.now
Branch:  13159405.4 i/s
Master:  10036908.7 i/s - 1.31x  slower

  Time.now(in: "+09:00")
Branch:   2712172.6 i/s
Master:   2138637.9 i/s - 1.27x  slower
```

It also decreases memory usage by about 20%:

```
ary = 10_000_000.times.map { Time.now }

puts `ps -o rss= -p #{$$}`
```

Branch: 961792
Master: 1196544

Co-Authored-By: Jean Boussier <byroot@ruby-lang.org>
2023-11-07 15:48:06 -05:00
Peter Zhu 392238e3fd Implement embedded TypedData objects
This commit adds a new flag RUBY_TYPED_EMBEDDABLE that allows the data
of a TypedData object to be embedded after the object itself. This will
improve cache locality and allow us to save the 8 byte data pointer.

Co-Authored-By: Jean Boussier <byroot@ruby-lang.org>
2023-11-07 15:48:06 -05:00
Jemma Issroff bc07b0b9e1 [PRISM] Implement compilation for different parameters
This commit compiles most parameter types, setting appropriate values on
the ISEQ_BODY. It also adds tests for callers and callees of methods,
using many versions of tests from bootstraptest
2023-11-07 15:15:16 -03:00
Maxime Chevalier-Boisvert d9d0938116
YJIT: update yjit.md, add MPLR 2023 paper and bibtex (#8861)
* YJIT: update yjit.md, add MPLR 2023 paper and bibtex

* Update doc/yjit/yjit.md
2023-11-07 17:46:07 +00:00
Nobuyoshi Nakada 1910bd4247
String for string literal is not resizable 2023-11-08 00:59:45 +09:00
Takashi Kokubun 9877f3ada8
YJIT: Inline basic Ruby methods (#8855)
* YJIT: Inline basic Ruby methods

* YJIT: Fix "InsnOut operand made it past register allocation"

checktype should not generate a useless instruction.
2023-11-07 10:54:33 -05:00
Jean byroot Boussier a294bb844c
YJIT: handle out of shape situation in gen_setinstancevariable (#8857)
If the VM ran out of shape, `rb_shape_transition_shape_capa` might
return `OBJ_TOO_COMPLEX_SHAPE`.

Co-authored-by: Jean Boussier <byroot@ruby-lang.org>
2023-11-07 10:49:36 -05:00
git 96557bc276 Update default gems list at e8ef010a81 [ci skip] 2023-11-07 15:39:46 +00:00
ima1zumi e8ef010a81 [ruby/reline] Bump version to 0.4.0
(https://github.com/ruby/reline/pull/601)

https://github.com/ruby/reline/commit/d15ab72d4f
2023-11-07 15:38:53 +00:00
Nobuyoshi Nakada 1cfc853be6
Suppress nonnull warning from gcc 13 2023-11-07 23:19:51 +09:00
Nobuyoshi Nakada 8becc889db
Suppress array-bounds warnings from gcc 13 2023-11-07 23:19:51 +09:00
Nobuyoshi Nakada f2d6b41c8e
Ignore warnings about currently unsupported .debug_macinfo 2023-11-07 23:19:51 +09:00
Nobuyoshi Nakada 6031fdc632
Select proper dsymutil for gcc 13 2023-11-07 23:19:51 +09:00
Nobuyoshi Nakada f8456b650b
Ignore duplicate libraries warnings from gcc 13 2023-11-07 23:19:50 +09:00
Matt Valentine-House e7bdd9e498 [PRISM] Move Local table setup into EnsureNode compilation 2023-11-07 14:03:57 +00:00
Matt Valentine-House b7d5a63b9a [PRISM] Don't generate leave insns for Ensure nodes 2023-11-07 14:03:57 +00:00
Matt Valentine-House 8ef7f27321 [PRISM] CompileEnsureNode 2023-11-07 14:03:57 +00:00
Matt Valentine-House 237b85c256 [PRISM] PM_COMPILE into a specified LINK_ANCHOR 2023-11-07 14:03:57 +00:00
Jean Boussier ced84beb25 [ruby/cgi] Add snake case aliases for escapeURIComponent
As agreed in [Feature #18822]

https://github.com/ruby/cgi/commit/9d1161ec9d
2023-11-07 10:22:30 +00:00
Hiroshi SHIBATA f8ffe907f0
Added racc to warning targets of bundled gems 2023-11-07 18:11:22 +09:00
git 803aa5b464 Update default gems list at 3d5fef7712 [ci skip] 2023-11-07 08:52:10 +00:00
Hiroshi SHIBATA 3d5fef7712 [ruby/zlib] Bump up 3.1.0
https://github.com/ruby/zlib/commit/2561e122ac
2023-11-07 08:50:40 +00:00
Hiroshi SHIBATA 79544157e4 [ruby/zlib] Support Ruby 2.5+ again
https://github.com/ruby/zlib/commit/661ea3ec5f
2023-11-07 08:47:03 +00:00
git 65ca320592 Update default gems list at 123b2e2fb4 [ci skip] 2023-11-07 08:30:51 +00:00
Hiroshi SHIBATA 123b2e2fb4 [ruby/cgi] Bump up 0.4.0
https://github.com/ruby/cgi/commit/6ddd5fc7d7
2023-11-07 08:29:31 +00:00
git 5a2779d40f Update default gems list at fbb63605c4 [ci skip] 2023-11-07 07:56:43 +00:00
Hiroshi SHIBATA fbb63605c4 [ruby/pathname] Bump up 0.3.0
https://github.com/ruby/pathname/commit/f3d23679b0
2023-11-07 07:55:13 +00:00
git 51ba406f27 Update default gems list at b13d00a7c0 [ci skip] 2023-11-07 07:38:17 +00:00
Hiroshi SHIBATA b13d00a7c0 [ruby/open-uri] Bump up 0.4.0
https://github.com/ruby/open-uri/commit/09df813305
2023-11-07 16:37:06 +09:00
git 5d09d9480c Update default gems list at 31dfebccbf [ci skip] 2023-11-07 07:33:12 +00:00
Hiroshi SHIBATA 31dfebccbf [ruby/English] Bump up 0.8.0
https://github.com/ruby/English/commit/826ff728cf
2023-11-07 07:32:00 +00:00
Keith R. Bennett 78e07e2983 [ruby/English] Combine duplicate aliases into single sections to more clearly denote sameness and make more concise.
https://github.com/ruby/English/commit/dcff090f6f
2023-11-07 07:24:50 +00:00
git 1f2796d041 Update default gems list at 9857499d3d [ci skip] 2023-11-07 07:16:42 +00:00
Hiroshi SHIBATA 9857499d3d [ruby/fileutils] Bump up 1.7.2
https://github.com/ruby/fileutils/commit/577fd38f15
2023-11-07 07:15:34 +00:00
git 8a822a9849 Update default gems list at 3ac15f7e57 [ci skip] 2023-11-07 07:02:37 +00:00
Hiroshi SHIBATA 3ac15f7e57 [ruby/base64] Bump up 0.2.0
https://github.com/ruby/base64/commit/09e839e5ad
2023-11-07 07:01:35 +00:00
Burdette Lamar 48d8f62cdd [ruby/base64] Enhanced Rdoc for Base64
(https://github.com/ruby/base64/pull/7)

* Enhanced Rdoc for Base64

* Enhanced RDoc for Base64

https://github.com/ruby/base64/commit/155c39a949
2023-11-07 06:59:52 +00:00
git 91be1f672a Update default gems list at d63c29ceca [ci skip] 2023-11-07 06:56:59 +00:00
Hiroshi SHIBATA d63c29ceca [ruby/fcntl] Bump up 1.1.0
https://github.com/ruby/fcntl/commit/fe780abe07
2023-11-07 06:55:45 +00:00
Hiroshi SHIBATA 84b2a6ad5d [ruby/drb] Removed old version on doc section
https://github.com/ruby/drb/commit/104f1a4db3
2023-11-07 15:37:45 +09:00
Hiroshi SHIBATA ef3feae8e7 [ruby/drb] Load DRb::VERSION automatically
https://github.com/ruby/drb/commit/b250502c43
2023-11-07 15:36:55 +09:00
BurdetteLamar 8d56260910 [ruby/logger] [DOC] Fix broken link
https://github.com/ruby/logger/commit/8c135bce9a
2023-11-07 15:35:37 +09:00
John Bachir 77f9086768 [ruby/timeout] tests for blank seconds
https://github.com/ruby/timeout/commit/54bc7639d2
2023-11-07 15:29:58 +09:00
git 3059a9d12c Update default gems list at 01d86818ff [ci skip] 2023-11-07 06:17:29 +00:00
Hiroshi SHIBATA 01d86818ff [ruby/ostruct] Bump up 0.6.0
https://github.com/ruby/ostruct/commit/0985296e72
2023-11-07 06:16:31 +00:00
git f0ee59988e Update default gems list at eaf0ca4cfe [ci skip] 2023-11-07 05:54:07 +00:00
Hiroshi SHIBATA eaf0ca4cfe [ruby/win32ole] Bump up 1.8.10
https://github.com/ruby/win32ole/commit/9a18f388a9
2023-11-07 05:52:50 +00:00
git fbd22346ba Update default gems list at 65e1f918d9 [ci skip] 2023-11-07 05:41:09 +00:00