Skip to content

Commit e8d03d2

Browse files
committed
Merge pull request #160 in G/truffleruby from changelog-updates to master
* commit '0f8c0d19ce04e5c3482243d3f5d49c43031f0e8b': Add more missing entries to the CHANGELOG. Apply consistent styling of bullet points to the CHANGELOG. Add CHANGELOG entries for 1.0.0 RC3.
2 parents 53101f2 + 0f8c0d1 commit e8d03d2

File tree

1 file changed

+7
-37
lines changed

1 file changed

+7
-37
lines changed

CHANGELOG.md

Lines changed: 7 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -16,75 +16,66 @@ Bug fixes:
1616
* `RbConfig::CONFIG['extra_bindirs']` is now a String as other RbConfig values.
1717
* `SIGPIPE` is correctly caught on SubstrateVM, and the corresponding write()
1818
raises `Errno::EPIPE` when the read end of a pipe or socket is closed.
19+
* Use the magic encoding comment for determining the source encoding when using eval().
20+
* Fixed a couple bugs where the encoding was not preserved correctly.
1921

2022
Performance:
2123

2224
* Faster stat()-related calls, by returning the relevant field directly and
2325
avoiding extra allocations.
2426
* `rb_str_new()`/`rb_str_new_cstr()` are much faster by avoiding extra copying and
2527
allocations.
28+
* `String#{sub,sub!}` are faster in the common case of an empty replacement string.
29+
* Eliminated many unnecessary memory copy operations when reading from `IO` with
30+
a delimiter (e.g., `IO#each`), leading to overall improved `IO` reading for common
31+
use cases such as iterating through lines in a `File`.
32+
* Use the byte[] of the given Ruby String when calling eval() directly for parsing.
2633

2734
# 1.0 RC 2, May 2018
2835

2936
New features:
3037

3138
* We are now compatible with Ruby 2.4.4.
32-
3339
* `object.class` on a Java `Class` object will give you an object on which you
3440
can call instance methods, rather than static methods which is what you get by
3541
default.
36-
3742
* The log level can now also be set with `-Dtruffleruby.log=info` or
3843
`TRUFFLERUBY_LOG=info`.
39-
4044
* `-Xbacktraces.raise` will print Ruby backtraces whenever an exception is
4145
raised.
42-
4346
* `Java.import name` imports Java classes as top-level constants.
44-
4547
* Coercion of foreign numbers to Ruby numbers now works.
46-
4748
* `to_s` works on all foreign objects and calls the Java `toString`.
48-
4949
* `to_str` will try to `UNBOX` and then re-try `to_str`, in order to provoke
5050
the unboxing of foreign strings.
5151

5252
Changes:
5353

5454
* The version string now mentions if you're running GraalVM Community Edition
5555
(`GraalVM CE`) or GraalVM Enterprise Edition (`GraalVM EE`).
56-
5756
* The inline JavaScript functionality `-Xinline_js` has been removed.
58-
5957
* Line numbers `< 0`, in the various eval methods, are now warned about, because
6058
we don't support these at all. Line numbers `> 1` are warned about (at the
6159
fine level) but the are shimmed by adding blank lines in front to get to the
6260
correct offset. Line numbers starting at `0` are also warned about at the fine
6361
level and set to `1` instead.
64-
6562
* The `erb` standard library has been patched to stop using a -1 line number.
66-
6763
* `-Xbacktraces.interleave_java` now includes all the trailing Java frames.
68-
6964
* Objects with a `[]` method, except for `Hash`, now do not return anything
7065
for `KEYS`, to avoid the impression that you could `READ` them. `KEYINFO`
7166
also returns nothing for these objects, except for `Array` where it returns
7267
information on indices.
73-
7468
* `String` now returns `false` for `HAS_KEYS`.
75-
7669
* The supported additional functionality module has been renamed from `Truffle`
7770
to `TruffleRuby`. Anything not documented in
7871
`doc/user/truffleruby-additions.md` should not be used.
79-
8072
* Imprecise wrong gem directory detection was replaced. TruffleRuby newly marks
8173
its gem directories with a marker file, and warns if you try to use
8274
TruffleRuby with a gem directory which is lacking the marker.
8375

8476
Bug fixes:
8577

8678
* TruffleRuby on SubstrateVM now correctly determines the system timezone.
87-
8879
* `Kernel#require_relative` now coerces the feature argument to a path and
8980
canonicalizes it before requiring, and it now uses the current directory as
9081
the directory for a synthetic file name from `#instance_eval`.
@@ -104,28 +95,20 @@ Changes:
10495

10596
* `RubyTruffleError` has been removed and uses replaced with standard
10697
exceptions.
107-
10898
* C++ libraries like `libc++` are now not needed if you don't run C++
10999
extensions. `libc++abi` is now never needed. Documentation updated to make it
110100
more clear what the minimum requirements for pure Ruby, C extensions, and C++
111101
extensions separately.
112-
113102
* C extensions are now built by default - `TRUFFLERUBY_CEXT_ENABLED` is assumed
114103
`true` unless set to `false`.
115-
116104
* The `KEYS` interop message now returns an array of Java strings, rather than
117105
Ruby strings. `KEYS` on an array no longer returns indices.
118-
119106
* `HAS_SIZE` now only returns `true` for `Array`.
120-
121107
* A method call on a foreign object that looks like an operator (the method name
122108
does not begin with a letter) will call `IS_BOXED` on the object and based on
123109
that will possibly `UNBOX` and convert to Ruby.
124-
125110
* Now using the native version of Psych.
126-
127111
* The supported version of LLVM on Oracle Linux has been dropped to 3.8.
128-
129112
* The supported version of Fedora has been dropped to 25, and the supported
130113
version of LLVM to 3.8, due to LLVM incompatibilities. The instructions for
131114
installing `libssl` have changed to match.
@@ -135,33 +118,25 @@ Changes:
135118
New features:
136119

137120
* The Ruby version has been updated to version 2.3.6.
138-
139121
* Context pre-initialization with TruffleRuby `--native`, which significantly
140122
improves startup time and loads the `did_you_mean` gem ahead of time.
141-
142123
* The default VM is changed to SubstrateVM, where the startup is significantly
143124
better. Use `--jvm` option for full JVM VM.
144-
145125
* The `Truffle::Interop` module has been replaced with a new `Polyglot` module
146126
which is designed to use more idiomatic Ruby syntax rather than explicit
147127
methods. A [new document](doc/user/polyglot.md) describes polyglot programming
148128
at a higher level.
149-
150129
* The `REMOVABLE`, `MODIFIABLE` and `INSERTABLE` Truffle interop key info flags
151130
have been implemented.
152-
153131
* `equal?` on foreign objects will check if the underlying objects are equal
154132
if both are Java interop objects.
155-
156133
* `delete` on foreign objects will send `REMOVE`, `size` will send `GET_SIZE`,
157134
and `keys` will send `KEYS`. `respond_to?(:size)` will send `HAS_SIZE`,
158135
`respond_to?(:keys)` will send `HAS_KEYS`.
159-
160136
* Added a new Java-interop API similar to the one in the Nashorn JavaScript
161137
implementation, as also implemented by Graal.js. The `Java.type` method
162138
returns a Java class object on which you can use normal interop methods. Needs
163139
the `--jvm` flag to be used.
164-
165140
* Supported and tested versions of LLVM for different platforms have been more
166141
precisely [documented](doc/user/installing-llvm.md).
167142

@@ -175,10 +150,8 @@ Performance:
175150

176151
* `Dir.glob` is much faster and more memory efficient in cases that can reduce
177152
to direct filename lookups.
178-
179153
* `SecureRandom` now defers loading OpenSSL until it's needed, reducing time to
180154
load `SecureRandom`.
181-
182155
* `Array#dup` and `Array#shift` have been made constant-time operations by
183156
sharing the array storage and keeping a starting index.
184157

@@ -189,7 +162,6 @@ Bug fixes:
189162
Internal changes:
190163

191164
* Changes to the lexer and translator to reduce regular expression calls.
192-
193165
* Some JRuby sources have been updated to 9.1.13.0.
194166

195167
# 0.32, March 2018
@@ -216,9 +188,7 @@ Internal changes:
216188

217189
* The launcher is now part of the TruffleRuby repository, rather than part of
218190
the GraalVM repository.
219-
220191
* `ArrayBuilderNode` now uses `ArrayStrategies` and `ArrayMirrors` to remove
221192
direct knowledge of array storage.
222-
223193
* `RStringPtr` and `RStringPtrEnd` now report as pointers for interop purposes,
224194
fixing several issues with `char *` usage in C extensions.

0 commit comments

Comments
 (0)