forked from rubinius/rubinius
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changelog
254 lines (229 loc) · 13.1 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
Version: 2.5.0 (2015-01-17)
* The JIT emits correct code for goto_if_nil, goto_if_not_nil. (Brian Shirai)
* RubyGems is updated to 2.4.5. (Brian Shirai)
* Building with GCC 4.6.3 is fixed. (Brian Shirai)
* SystemCallError.new compatibility is improved. (Joe Eli McIlvain)
* Thread#join timeout value is coerced to Float and nil values are handled
correctly. (Joe Eli McIlvain)
* File#reopen with a path closes the previous file descriptor. (Brian Shirai)
* The C-API function rb_ary_new_from_args aliases rb_ary_new3. (Yorick Peterse)
* The C-API function rb_ary_plus is added. (Yorick Peterse)
* The C-API function rb_cloexec_open is added. (Sophia Shao)
* Process.spawn is more robust. (Brian Shirai)
* Enumerable#flat_map is improved. (Erik Michaels-Ober)
* Block keyword parsing is updated to Ruby 2.2.0 behavior. (Brian Shirai)
* Keyword argument objects that include both Symbol keys and other keys are
now split into two separate Hash instances. (Brian Shirai)
* String#scrub with BINARY input is fixed. (Yorick Peterse)
* String#scrub is fixed with custom block encodings. (Yorick Peterse)
* FFI::MemoryPointer#autorelease= is fixed. (Joe Eli McIlvain)
* FFI::MemoryPointer#autorelease? is added. (Joe Eli McIlvain)
* A missing method raises NoMethodError, a missing variable reference raises
NameError. (Joe Eli McIlvain)
* String ascii_only cache is reset when calling String#replace. (Yorick Peterse)
* Process::Status creation is fixed. (Yorick Peterse)
* String#include? does not accept a Fixnum. (Chris Seaton)
* The fallback path for SHELL in configure is fixed. (Lars Kanis)
* The C-API rb_data_type_struct matches Ruby 2.2.0. (Brian Shirai)
* The included Bundler version is 1.7.12. (Brian Shirai)
* The JIT internalizes a CompiledCode instance before processing. (Yorick Peterse)
* The Psych gem version 2.0.10 is pre-installed. (Brian Shirai)
* The JIT metrics are emitted correctly. (Brian Shirai)
Version: 2.4.1 (2014-12-04)
* C-API rb_path2class, rb_path_to_class, rb_const_get, rb_const_get_at,
rb_const_get_from resolve autoloads. (Brian Shirai)
* C-API defines are added for RUBY_DEFAULT_FREE, RUBY_NEVER_FREE,
RUBY_TYPED_DEFAULT_FREE, RUBY_TYPEED_NEVER_FREE, RUBY_TYPED_FREE_IMMEDIATELY,
RUBY_TYPED_WB_PROTECTED. These defines are specific to MRI's garbage
collector and should never be used outside of MRI itself, but gems like
Psych do use them, so we are forced to define them. (Brian Shirai)
* The C-API defines the Check_TypedStruct constant. (Brian Shirai)
* Kernel#require_relative is improved for IRB and -e. (Brian Shirai)
* File.fnmatch support for FNM_EXTGLOB and FNM_PATHNAME is improved.
(Jesse Cooke)
Version: 2.4.0 (2014-12-01)
* File defines FNM_EXTGLOB constant. (Jesse Cooke)
* File.fnmatch supports FNM_EXTGLOB feature. (Jesse Cooke)
* DTrace pre-linking enabled on Linux. (Yorick Peterse)
* The double-conversion vendored library is updated to 1.1.5.
(Gustavo Frederico Temple Pedrosa)
* The libffi vendored library is updated to 3.2.
(Gustavo Frederico Temple Pedrosa)
* IO.write is improved for FIFOs. (skliew)
* Marshal handles immediate values returned by custom _dump methods.
(Sophia Shao)
* Kernel#caller_locations is provided. (Yorick Peterse)
* Kernel#caller supports a limit argument. (Yorick Peterse)
* Errno classes can be subclassed. (Brian Shirai)
Version: 2.3.0 (2014-10-31)
* Compatibility of INT2NUM is improved. (Yorick Peterse)
* Compatibility of -c is improved. (Yorick Peterse)
* Keyword arguments are supported. (Brian Shirai)
* Encoding::Convert#inspect is improved. (Robin Dupret)
* ObjectSpace.define_finalizer raises RuntimeError. (Joe McIlvain)
* The C-API provides rb_rational_num, rb_rational_den, rb_big_cmp,
rb_big_pack, rb_dbl2big, rb_thread_check_ints, rb_intern_const.
(Yorick Peterse)
* Compatibility of HAMT Hash is improved. (Brian Shirai)
* The C-API rb_funcall3 disallows private methods. (Ryohei Ikegami)
* The String#scrub! method is implemented. (Robin Dupret)
* The Kernel#singleton_class? method is implemented. (Robin Dupret)
* Enumerable#sort handles #to_a returning a frozen Array. (Alex Dowad)
* Keyword coercion is improved. (Ryo Onodera)
* JIT support for cast_for_multi_block_arg is fixed. (Sophia Shao)
* Infrastructure for Rubinius::Console is added. (Brian Shirai)
* Support for parsing -X options from CWD/.rbxrc is added. (Brian Shirai)
* Support for aggregating internal metrics with optional export to StatsD is
added. (Brian Shirai)
* Support for Rubinius::Agent is removed as all functionality will be provided
through the Rubinius::Console. (Brian Shirai)
* Support for logging to syslog and file is added. (Brian Shirai)
* Kernel.Float() raises RangeError with Complex argument. (Jesse Cooke)
* Suppport for LLVM shard libraries is added. (Jan Alexander Steffens)
* Kernel.Float() ignores trailing whitespace. (Jesse Cooke)
* The C-API rb_Array compatibility is improved. (Sophia Shao)
* PowerPC64 support for LLVM and Atomic is added.
(Gustavo Frederico Temple Pedrosa)
* Array#count specialization is added. (Joe McIlvain)
* Kernel#itself is added. (Benny)
* Support for LLVM 3.5 is added. (Yorick Peterse)
* IO.new handles closed streams (Sophia Shao)
* Compatibility of C-API functions rb_stdin, rb_stdout, rb_stderr, rb_defout
is improved. (Sophia Shao)
* Kernel.Float() coerces a Complex with only real part. (Benny)
* The C-API provides rb_funcall_with_block. (Ryohei Ikegami)
* Rubinius::FFI::Library#attach_function is improved. (Joe McIlvain)
* IO.popen is improved. (Brian Shirai)
* The C-API provides rb_class_path. (Brian Shirai)
* Array#bsearch is implemented. (Brian Shirai)
* Range#bsearch is implemented. (Brian Shirai)
Version: 2.2.10 (2014-06-27)
* Process.spawn and Process.exec duplicate file descriptors when mapping a
parent file descriptor to a new child file descriptor. (Brian Shirai)
Version: 2.2.9 (2014-06-10)
* Pre-installed gem binary wrappers are executable files. (Brian Shirai)
Version: 2.2.8 (2014-06-10)
* Module#ancestors includes singleton classes for singleton classes.
(Jesse Cooke)
* String#encode supports :universal_newline. (Yorick Peterse)
* Agent works across fork(). (Brian Shirai)
* GC.stat performance improved. (Brian Shirai)
* Lock inflation deadlock is fixed. (Dirkjan Bussink)
* C-API system calls for IO are interruptable. (Dirkjan Bussink)
* RbConfig::CONFIG['NULLCMD'] is set to ':'. (Yorick Peterse)
* Gem binary wrappers for pre-installed gems are executable. (Brian Shirai)
Version: 2.2.7 (2014-05-20)
* Dir[] and Dir.glob call #to_path on multiple patterns. (Brian Shirai)
* The JIT does not elide Fixnum#hash calculation. (Brian Shirai)
* Enumerator#feed is implemented. (John DeSilva)
* Module#{*}_method_defined? compatibility improved. (Brian Shirai)
* ENV handles non-ASCII values. (Miguel Herranz)
* Improved support for packaging Rubinius. (Jan Alexander Steffens)
* The gems cache directory for building is configurable. (Yorick Peterse)
* Configure checks readline availability. (Sam Kottler)
* Hash#compare_by_identity does not copy String keys. (Lin Jen-Shin)
* Module#const_defined? compatibility is improved. (Brian Shirai)
* Setting a module name is improved. (Kenichi Kamiya, Brian Shirai)
* The C-API provides rb_class_real. (Brian Shirai)
* Special operator symbols are removed. (Kenichi Kamiya)
* Use of -> {} in BasicObject dispatches to Kernel::lambda. (Brian Shirai)
* Marshal.dump of Symbol includes its encoding. (Brian Shirai)
* Marshal.dump of negative Float includes its sign. (Brian Shirai)
* C-API rb_check_convert_type, rb_convert_type, rb_to_integer,
rb_check_to_integer, rb_to_int, rb_Float, rb_Integer compatibility is
improved. (Brian Shirai)
* Dir returns values encoded to ASCII_8BIT if the filename is invalid
US_ASCII. (Dirkjan Bussink)
* Multiple assignment arguments following a splat argument are assigned in the
proper order. (Federico Ravasio)
* STDOUT and STDERR are flushed on process exit. (Federico Ravasio)
* Time#strftime with "%L" is improved. (Federico Ravasio)
* Rational#round is improved. (Federico Ravasio)
* Binding UnboundMethods is improved. (Jesse Cooke, Jacob Rothstein)
Version: 2.2.6 (2014-03-10)
* Kernel#to_enum uses block as Enumerable#size. (Federico Ravasio)
* Time#zone only encodes a non-nil zone. (Federico Ravasio)
* Kernel.binding returns a Binding for the caller. (Robert Gleeson)
* Failures in readdir_r() are handled. (Dirkjan Bussink)
* Various VM objects are properly (de)constructed. (Dirkjan Bussink)
* The JIT converts splatted nil to []. (Federico Ravasio, Dirkjan Bussink)
* The reference_p() VM predicate returns false for NULL. (Brian Shirai)
* The configure script uses ENV["SHELL"] to find libc.so. (Brian Shirai)
* Dir.glob matches non-ASCII paths. (Federico Ravasio)
* Dir.entries returns paths with encoding. (Federico Ravasio)
* Array#drop accounts for shifted start from Array#shift. (Federico Ravasio)
* Dir.open respects :encoding option. (Brian Shirai)
* String::from_cstr C++ method checks bounds. (Yorick Peterse)
* Compiling with clang++ using -std=c++11 is supported. (Gabriel Southern)
* Basic String#scrub is supported. (Yorick Peterse)
* Signals like SIGSEGV will cause additional logging information to be printed
and then allow default system proccesing (e.g. core dumps). (Brian Shirai)
* The C-API supports rb_integer_pack with basic flags. (Brian Shirai)
Version: 2.2.5 (2014-02-08)
* The 'main' object defines define_method. (Federico Ravasio)
* When passed a name with no file extension, #require will search all load
paths for a file with a '.rb' extension before loading a file with the
platform's dynamic library extension. (Brian Shirai)
* BasicObject can refer to BasicObject. (Federico Ravasio, Yorick Peterse)
* Standard library gems 'racc', 'minitest', and 'rubysl-test-unit' are now
pre-installed, in addition to json and the RubySL gems. (Brian Shirai)
* RubyGems is updated to 2.2.2. (Brian Shirai)
Version: 2.2.4 (2014-02-02)
* The erb command is available by default. (Brian Shirai)
* ARGF.set_encoding is supported. (Brian Shirai)
* Dir.glob handles infinite wildcards. (Yorick Peterse)
* Process.setproctitle is supported. (Yorick Peterse)
* The C-API provides the rb_io_check_io function. (Yorick Peterse)
* The method name as Symbol is returned from def. (Joe Eli Mac, Brian Shirai)
* Symbol is comparable. (Erik Michaels-Ober)
* RubyGems is updated to 2.2.1. (Brian Shirai)
* String#encode! with options compatibility is improved. (Sylvester Keil)
* LLVM 3.4 is supported. (Jan Alexander Steffens)
* Compiling with clang 3.4 is fixed. (Yorick Peterse)
* Linking with other than libstdc++ is supported. (Dirkjan Bussink)
* A GC issue overwriting field values is fixed. (Dirkjan Bussink)
* A memory leak in IO#sysread is fixed. (Dirkjan Bussink)
* String#count is fixed for multi-byte strings. (Federico Ravasio)
* String#replace is fixed for strings with invalid encodings.
(Federico Ravasio)
* Performance of String#each_char is improved. (Federico Ravasio)
* String#split is improved for multi-byte patterns. (Dirkjan Bussink)
* Thread status is updated after fork(). (Dirkjan Bussink)
* Time handling of zone and encoding is improved. (Dirkjan Bussink)
Version: 2.2.3 (2013-12-29)
* Use the configured program name in build scripts. (Chad Slaughter)
* Require 'find' for the utility script listing TODOs. (Benny Klotz)
* Use File.exist? in build scripts. (Mike Dorst)
* Provide logger library for bootstrapping Bundler 1.5+. (Brian Shirai)
Version: 2.2.2 (2013-12-22)
* The --llvm-path configure option checks llvm version. (Gabriel Southern)
* Module#const_get resolves qualified names like '::A::B' (Brian Shirai)
* Bootstrap gem dependencies are included for mini_portile. (Brian Shirai)
* The close_on_exec state is set for new file descriptors. (Dirkjan Bussink)
* The C-API provides the rb_fix_fd_cloexec function. (Dirkjan Bussink)
* The 't' modifier is supported in file modes. (Dirkjan Bussink)
* A deadlock in thread startup is fixed. (Dirkjan Bussink)
* The configured 'make' program is used building llvm. (Dirkjan Bussink)
* A race condition on thread shutdown is fixed. (Dirkjan Bussink)
* An issue is fixed handling memory when parsing a Bignum. (Dirkjan Bussink)
* Improved parsing a Bignum. (Brian Shirai)
* The C-API provides the rb_intern_str function. (Dirkjan Bussink)
* The C-API provides the rb_int_positive_pow function. (Dirkjan Bussink)
* An issue is fixed with Kernel.local_variables and eval. (Kenichi Kamiya)
* An issue is fixed with File.realdirpath. (Kenichi Kamiya)
* Kernel#__dir__ is implemented. (Kenichi Kamiya)
* An issue is fixed allocating Thread objects. (Dirkjan Bussink)
* An issue is fixed locking objects. (Dirkjan Bussink)
* An encoding issue is fixed with IO#gets(limit). (Ryo Onodera)
* The README is updated with a list of unimplemented standard library gems.
(Erik Michaels-Ober)
* Removed use of lchmod on Linux. (r-stu31)
* The C-API provides rb_pid_t. (Yorick Peterse)
* The Rubinius::PROGRAM_NAME constant is the name of the Rubinius executable
set by configure. (Brian Shirai)
* The config.rb.in file is used by the --release-build configure option.
(Brian Shirai)
* The --stagingdir configure option enables setting the directory used to
prepare all files for installation. (Brian Shirai)
* Ruby 1.8.7+ is supported for building Rubinius. (Brian Shirai)
* A Changelog file is added. (Brian Shirai)