You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+20-22Lines changed: 20 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,24 +4,12 @@ New features:
4
4
5
5
* Nightly builds of TruffleRuby are now available, see the README for details (#1483).
6
6
*`||=` will not compile the right-hand-side if it's only executed once, to match the idiomatic lazy-initialisation use-case (#1887, @kipply).
7
-
* The implicit interface for allowing Ruby objects to behave as polyglot arrays with `#size`, `#[]` methods has been removed and replaced with an explicit interface where each method starts with `polyglot_*`.
8
-
* Hash keys are no longer reported as polyglot members.
9
-
* All remaining implicit polyglot behaviour for `#[]` method was replaced with `polyglot_*` methods.
10
-
* Rename dynamic API to match InteropLibrary. All the methods keep the name as it is in InteropLibrary with following changes: use snake_case, add `polyglot_` prefix, drop `get` and `is` prefix, append `?` on all predicates.
11
-
* Many nodes that manipulate arrays have been converted to use `ArrayStoreLibrary`.
12
-
* Split `Truffle::Interop.write` into `.write_array_element` and `.write_member` methods.
13
-
* Rename `Truffle::Interop.size` to `.array_size`.
14
-
* Rename `Truffle::Interop.is_boolean?` to `.boolean?`.
15
-
* Split `Truffle::Interop.read` into `.read_member` and `.read_array_element`.
16
-
* Drop `is_` prefix in `Truffle::Interop.is_array_element_*` predicates.
17
-
* The old array strategy code has been removed and all remaining nodes converted to the new `ArrayStoreLibrary`.
18
-
*`Truffle::Interop.hash_keys_as_members` has been added to treat a Ruby Hash as a polyglot object with the Hash keys as members.
19
7
* Added `--metrics-profile-require` option to profile searching, parsing, translating and loading files.
20
8
* Added support for captured variables for the Truffle instruments (e.g. Chrome debugger).
21
9
22
10
Bug fixes:
23
11
24
-
* Fixed `Exception#dup` to copy exception backtrace string array.
12
+
* Fixed `Exception#dup` to copy the `Exception#backtrace` string array.
25
13
* Fixed `rb_warn` and `rb_warning` when used as statements (#1886, @chrisseaton).
26
14
* Fixed `NameError.new` and `NoMethodError.new``:receiver` argument.
27
15
* Correctly handle large numbers of arguments to `rb_funcall` (#1882).
*`rb_encoding->name` can now be read even if the `rb_encoding` is stored in native memory.
65
53
* Detect and cut off recursion when inspecting a foreign object, substituting an ellipsis instead.
66
54
* Fixed feature lookup order on load path.
67
-
* Fixed feature lookup order to check every `$LOAD_PATH` path entry for `.rb`, then every entry for native extension when require called with no extension.
55
+
* Fixed feature lookup order to check every `$LOAD_PATH` path entry for `.rb`, then every entry for native extension when `require` is called with no extension.
68
56
* Define the `_DARWIN_C_SOURCE` macro in extension makefiles (#1592).
69
57
* Change handling of var args in `rb_rescue2` to handle usage in C extensions (#1823).
70
58
* Fixed incorrect `Encoding::CompatibilityError` raised for some interpolated Regexps (#1967).
@@ -76,7 +64,6 @@ Bug fixes:
76
64
* Fix issue where interpolated string matched `#` within string as being a variable (#1495).
77
65
* Fix `File.join` to raise error on strings with null bytes.
78
66
* Fix initialization of Ruby Thread for foreign thread created in Java.
79
-
* Fix circular require in `bundler/index` patch.
80
67
81
68
Compatibility:
82
69
@@ -127,16 +114,25 @@ Compatibility:
127
114
* Implemented `rb_tracepoint_new`, `rb_tracepoint_disable`, `rb_tracepoint_enable`, and `rb_tracepoint_enabled_p` (#1450).
128
115
* Implemented `RbConfig::CONFIG['AR']` and `RbConfig::CONFIG['STRIP']` (#1973).
129
116
* Not yet implemented C API functions are now correctly detected as missing via `mkmf`'s `have_func` (#1980).
130
-
*Do not define unsupported C-API TracePoint events to let C extensions detect it (#1983).
117
+
*Accept `RUBY_INTERNAL_EVENT_{NEWOBJ,FREEOBJ}`events but warn they are not triggered (#1978, #1983).
131
118
*`IO.copy_stream(in, STDOUT)` now writes to `STDOUT` without buffering like MRI.
132
119
* Implemented `RbConfig['vendordir']`.
120
+
* Implemented `Enumerator::ArithmeticSequence`.
133
121
134
122
Changes:
135
123
136
124
*`TRUFFLERUBY_RESILIENT_GEM_HOME` has been removed. Unset `GEM_HOME` and `GEM_PATH` instead if you need to.
137
-
* Implemented `Enumerator::ArithmeticSequence`.
138
-
*`Truffle::System.full_memory_barrier`, `Truffle::Primitive.logical_processors`, and `Truffle::AtomicReference` have been removed.
139
-
* Updated `nil` to be a global immutable singleton (#1835).
125
+
* The deprecated `Truffle::System.full_memory_barrier`, `Truffle::Primitive.logical_processors`, and `Truffle::AtomicReference` have been removed.
126
+
* The implicit interface for allowing Ruby objects to behave as polyglot arrays with `#size`, `#[]` methods has been removed and replaced with an explicit interface where each method starts with `polyglot_*`.
127
+
* Hash keys are no longer reported as polyglot members.
128
+
* All remaining implicit polyglot behaviour for `#[]` method was replaced with `polyglot_*` methods.
129
+
* Rename dynamic API to match InteropLibrary. All the methods keep the name as it is in InteropLibrary with the following changes: use snake_case, add `polyglot_` prefix, drop `get` and `is` prefix, append `?` on all predicates.
130
+
* Split `Truffle::Interop.write` into `.write_array_element` and `.write_member` methods.
131
+
* Rename `Truffle::Interop.size` to `.array_size`.
132
+
* Rename `Truffle::Interop.is_boolean?` to `.boolean?`.
133
+
* Split `Truffle::Interop.read` into `.read_member` and `.read_array_element`.
134
+
* Drop `is_` prefix in `Truffle::Interop.is_array_element_*` predicates.
135
+
*`Truffle::Interop.hash_keys_as_members` has been added to treat a Ruby Hash as a polyglot object with the Hash keys as members.
140
136
141
137
Performance:
142
138
@@ -146,6 +142,8 @@ Performance:
146
142
* Ruby objects passed to C extensions are now converted less often to native handles.
147
143
* Calling blocking system calls and running C code with unblocking actions has been refactored to remove some optimisation boundaries.
148
144
*`return` expressions are now rewritten as implicit return expressions where control flow allows this to be safely done as a tail optimisation. This can improve interpreter performance by up to 50% in some benchmarks, and can be applied to approximately 80% of return nodes seen in Rails and its dependencies (#1977).
145
+
* The old array strategy code has been removed and all remaining nodes converted to the new `ArrayStoreLibrary`.
146
+
* Updated `nil` to be a global immutable singleton (#1835).
0 commit comments