[#118415] [Ruby master Bug#20601] Configuration flags are not properly propagated to assembler — "vo.x (Vit Ondruch) via ruby-core" <ruby-core@...>

Issue #20601 has been reported by vo.x (Vit Ondruch).

7 messages 2024/07/02

[#118467] [Ruby master Feature#20610] Float::INFINITY as IO.select timeout argument — "akr (Akira Tanaka) via ruby-core" <ruby-core@...>

Issue #20610 has been reported by akr (Akira Tanaka).

8 messages 2024/07/07

[#118483] [Ruby master Bug#20614] Integer#size returns incorrect values on 64-bit Windows — surusek via ruby-core <ruby-core@...>

SXNzdWUgIzIwNjE0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHN1cnVzZWsgKMWBdWthc3ogU3VyKS4N

10 messages 2024/07/08

[#118577] [Ruby master Bug#20631] Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta — "hsbt (Hiroshi SHIBATA) via ruby-core" <ruby-core@...>

Issue #20631 has been reported by hsbt (Hiroshi SHIBATA).

9 messages 2024/07/12

[#118682] [Ruby master Misc#20652] Memory allocation for gsub has increased from Ruby 2.7 to 3.3 — "orisano (Nao Yonashiro) via ruby-core" <ruby-core@...>

Issue #20652 has been reported by orisano (Nao Yonashiro).

28 messages 2024/07/25

[ruby-core:118429] [Ruby master Feature#20589] Resize array in `rb_ary_freeze` and use `rb_ary_freeze` internally for arrays

From: "byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Date: 2024-07-03 14:31:24 UTC
List: ruby-core #118429
Issue #20589 has been updated by byroot (Jean Boussier).

Status changed from Open to Closed

Closing given https://github.com/ruby/ruby/pull/11030 was merged yesterday.

However it caused some assertions failures in corner cases, so I opened a followup: https://github.com/ruby/ruby/pull/11092

----------------------------------------
Feature #20589: Resize array in `rb_ary_freeze` and use `rb_ary_freeze` internally for arrays
https://bugs.ruby-lang.org/issues/20589#change-108941

* Author: eileencodes (Eileen Uchitelle)
* Status: Closed
----------------------------------------
GitHub PR https://github.com/ruby/ruby/pull/11030

This is a redo of https://github.com/ruby/ruby/pull/2640 and a new issue for the array portion of https://bugs.ruby-lang.org/issues/16291 because both are stale.

This change proposes the following:

1) Call `ary_shrink_capa` from `rb_ary_freeze` to resize arrays before freezing (if they are not embedded, not shared, and not a shared root).
2) Update callers to use `rb_ary_freeze` instead of `rb_obj_freeze` internally in CRuby/
3) Add an assertion to `ary_heap_realloc` that ensures frozen arrays are not being reallocated.\

The orignal issue implemented this for performance reasons, which are still valid. However, additionally this ensures that frozen arrays are not being passed to `ary_heap_realloc` and also ensures the capacity is set with `ARY_SET_CAPA` in `ary_shrink_capa`. Previously, because `ARY_SET_CAPA` was not called, `ary_heap_realloc` would get called after the array was frozen (when that is unnecessary).

Array memsize before and after this change:

Before:

```ruby
$ require 'objspace'
=> false
$ a = (1..5).to_a
=> [1, 2, 3, 4, 5]
$ ObjectSpace.memsize_of(a)
=> 200
$ a.freeze
=> [1, 2, 3, 4, 5]
$ ObjectSpace.memsize_of(a)
=> 200
```

After:

```ruby
$ require 'objspace'
=> false
$ a = (1..5).to_a
=> [1, 2, 3, 4, 5]
$ ObjectSpace.memsize_of(a)
=> 200
$ a.freeze
=> [1, 2, 3, 4, 5]
$ ObjectSpace.memsize_of(a)
=> 80
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/


In This Thread

Prev Next