Changelog for
ruby2.4-stdlib-2.4.3-29.4.x86_64.rpm :
Thu Jan 25 13:00:00 2018 mrueckertAATTsuse.de
- fix the intree rdoc version in the spec file
Fri Jan 5 13:00:00 2018 mrueckertAATTsuse.de
- merge in some improvements from the 2.5 package
- track all binaries handled via u-a in an ua_binaries variable
- set an UTF-8 locale for building
Tue Dec 19 13:00:00 2017 mrueckertAATTsuse.de
- switch to https urls
Mon Dec 18 13:00:00 2017 mrueckertAATTsuse.de
- update to 2.4.3 (boo#1073002)
This release includes some bug fixes and a security fix.
CVE-2017-17405: Command injection vulnerability in Net::FTP
https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-4-3-released/
- update the versions for the bundled gem list
- drop configure-2.4.2.diff as it is included upstream
Mon Nov 20 13:00:00 2017 mrueckertAATTsuse.de
- disable jemalloc again because of: (boo#1068883)
https://github.com/jemalloc/jemalloc/issues/937
Thu Nov 9 13:00:00 2017 jdelvareAATTsuse.de
- Add conflicts to libruby to make sure ruby and ruby-stdlib are
also updated when libruby is updated (bsc#1048072.)
Tue Nov 7 13:00:00 2017 mrueckertAATTsuse.de
- devel package needs to require jemalloc-devel when building with
it
Tue Nov 7 13:00:00 2017 mrueckertAATTsuse.de
- only use jemalloc on opensuse and sle >= 15
Mon Nov 6 13:00:00 2017 mrueckertAATTsuse.de
- update to 2.4.2
- CVE-2017-0898: Buffer underrun vulnerability in Kernel.sprintf
(boo#1058755)
- CVE-2017-10784: Escape sequence injection vulnerability in the
Basic authentication of WEBrick (boo#1058754)
- CVE-2017-14033: Buffer underrun vulnerability in OpenSSL ASN1
decode (boo#1058757)
- CVE-2017-14064: Heap exposure in generating JSON
(boo#1056782)
- Multiple vulnerabilities in RubyGems (boo#1056286)
CVE-2017-0899 CVE-2017-0900 CVE-2017-0901 CVE-2017-0902
- Update bundled libyaml to version 0.1.7.
- There are also many bug-fixes. For more details see:
https://github.com/ruby/ruby/compare/v2_4_1...v2_4_2
- added https://bugs.ruby-lang.org/attachments/download/6735/configure-2.4.2.diff
to allow building with libgmp and libjemalloc again
Mon Aug 7 14:00:00 2017 mrueckertAATTsuse.de
- provide a ruby-default symbol and conflict with other providers
of that symbol so we can uninstall older default ruby versions
during zypper dup.
Mon May 29 14:00:00 2017 mrueckertAATTsuse.de
- make the 2.4 macros actually using ruby 2.4
Wed Mar 22 13:00:00 2017 mrueckertAATTsuse.de
- update to 2.4.1
This is the first TEENY version release of the stable 2.4 series.
See commit logs for details:
https://github.com/ruby/ruby/compare/v2_4_0...v2_4_1
- switched to git branch based patching. we replace all patches in
this round:
removed:
- 0001-gc.c-tick-for-POWER-arch.patch
- make-gem-build-reproducible.patch
- ruby2.2.x_rbinstall_gem_buildroot.patch (unused)
- rubygems-1.5.0_buildroot.patch (unused)
added:
- 0001-make-gem-build-reproducible.patch
- 0002-gc.c-tick-for-POWER-arch.patch
Tue Jan 3 13:00:00 2017 adrianAATTsuse.de
- fork ruby2.4 package for 2.4.0
Details: https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/
- Tcl/Tk bindings are dropped
Mon Dec 26 13:00:00 2016 mrueckertAATTsuse.de
- update to 2.3.3
This release contains an update to RubyGems 2.5.2 and updates of
the included SSL certificates. (2.3.3)
This release contains a bug fix concerning Refinements and
Module#prepend. The combined use of Module#refine and
Module#prepend to the same class could cause an unexpected
NoMethodError. This is a regression on Ruby 2.3.2 released last
week. See Bug #12920 for details. (2.3.2)
There are many bugfixes, too. See the ChangeLog for details.
- lib/tempfile.rb (Tempfile#initialize): [DOC] the first
parameter `basename` is optional and defaulted to an empty
string since [GH-523]. [Fix GH-1225]
- iseq.c (proc_dup): don\'t duplicate sym_procs. [Fix GH-1479]
[ruby-core:78100] [Bug #12927] Based on the patch provided by
Emiliano Ritiro.
- iseq.c (iseqw_s_compile_file): deal with syntax error as well
as compile, and should not abort when rescued.
- vm_eval.c (vm_call0_body): refined module should not be skipped
as prepended. [Bug #12920]
- ext/-test/file/fs.c (get_atime_p): Updating of file access
times is enabled or not.
- test/ruby/test_file.rb (TestFile#test_stat): fix noatime case.
[ruby-core:77943] [Bug #12903]
- test/rinda/test_rinda.rb (test_make_socket_ipv6_multicast,
test_make_socket_ipv6_multicast_hops): skip if IPv6 multicast
address is not available.
- vm_eval.c (vm_call0_body): follow the original class, not to
loop the prepended module. [ruby-core:77784] [Bug #12876]
- lib/net/http.rb (transport_request): other than HTTPContinue in
1xx (HTTPInformation) also needs to continue. [Bug #12890]
- object.c: Improve documentation for Float conversion.
[ruby-core:71661][Bug #11736][ci skip]
- proc.c (mnew_internal): follow the original class, not to loop
the prepended module. [ruby-core:77591] [Bug #12832]
- cont.c (cont_new): disable optimization if clang\'s version is
3.8.0. [ruby-core:77894] [Bug #12893]
- compile.c (iseq_peephole_optimize): enable tail call
optimization inside a conditional block.
- io.c (copy_stream_body): use IO to write to copy to duplex IO.
http://twitter.com/knu/status/786505317974585344
- sprintf.c (rb_str_format): format exact number more exactly.
- ext/openssl/ossl.c (Init_openssl): register an ex_data index
for X509_STORE and X509_STORE_CTX respectively. Since they
don\'t share the ex_data index registry, we can\'t use the same
index. (ossl_verify_cb): use the the correct index.
- ext/openssl/ossl_ssl.c (ossl_ssl_verify_callback): ditto.
- ext/openssl/ossl_x509store.c (ossl_x509store_set_vfy_cb):
ditto. (ossl_x509stctx_verify): ditto.
- ext/openssl/ossl.h (void ossl_clear_error): add extern
declarations of ossl_store_{ctx_,}ex_verify_cb_idx.
- ext/openssl/openssl_missing.c: remove X509_STORE_set_ex_data
and X509_STORE_get_ex_data.
- ext/openssl/openssl_missing.h: implement
X509_STORE_get_ex_data, X509_STORE_set_ex_data and
X509_STORE_get_ex_new_index as macros.
- thread.c (rb_thread_pending_interrupt_p): no pending interrupt
before initialization.
- thread.c (thread_raise_m, rb_thread_kill): uninitialized thread
cannot interrupt. [ruby-core:72732] [Bug #11959]
- ext/bigdecimal/bigdecimal.c: Import changes from
ruby/bigdecimal repository.
- eval_intern.h (TH_PUSH_TAG): Initialize struct rb_vm_tag::tag
with Qundef rather than 0 which is equal to Qfalse. Since
Kernel#throw(obj) searches a tag with rb_vm_tag::tag == obj,
throw(false) can accidentally find an unrelated tag which is
not created by Kernel#catch. [ruby-core:77229] [Bug #12743]
- test/ruby/test_exception.rb (test_throw_false): Add a test case
for this.
- lib/logger.rb (Logger::Period#next_rotate_time): fix monthly
log rotate when DST is applied during a month of 31 days. [Fix
GH-1458]
- tool/downloader.rb: Removed verification of gem certification.
Because signed gem is not working on rubygems ecosystem.
- tool/gem-unpack.rb: ditto.
- lib/rubygems/ssl_certs/GlobalSignRootCA.pem: add for
RugyGems.org.
- variable.c (rb_const_search): raise with the actual
class/module name which defines the private constant.
- ext/openssl/ossl_pkcs12.c (ossl_pkcs12_initialize): pop errors
leaked by PKCS12_parse(). This is a bug in OpenSSL, which
exists in the versions before the version 1.0.0t, 1.0.1p,
1.0.2d.
- vm_dump.c (backtrace): use rip in the saved context for the
case the SIGSEGV is received when the process is in userland.
Note that ip in the stack should be used if the signal is
received when it is in kernel (when it is calling syscall) [Bug
[#12711]]
- gems/bundled_gems: update minitest to 5.8.5.
- tool/downloader.rb: revert workarounds.
- tool/gem-unpack.rb: ditto.
- tool/gem-unpack.rb: don\'t set security policy. workaround for
certificate expiration of minitest-5.8.3.gem.
- lib/uri/generic.rb (def check_password): don\'t include bad
password in URI exception output
- test/uri/test_generic.rb (def test_set_component): test for
behavior
- tool/downloader.rb: comment out gem package verification.
workaround for certificate expiration of minitest-5.8.3.gem.
- io.c (nogvl_fsync, nogvl_fdatasync): on Windows, just ignore if
the fd is associated to non-disk device. if call fsync and/or
fdatasync with such fds, it causes Errno::EBADF exception and
the behavior is incompatible with ruby 2.1 and earlier
unintentionally introduced.
- array.c (flatten): use rb_obj_class instead of rb_class_of
because rb_class_of may return a singleton class.
[ruby-dev:49781] [Bug #12738]
- man/irb.1: remove useless -width option. [ruby-dev:49767] [Bug
[#12692]]
- ext/openssl/ossl_x509ext.c: additional fix memory leak.
[ruby-core:76922] [Bug #12680]
- text/openssl/test_x509ext.rb: test for above.
- vm_method.c: revert r55869. it breaks Integer#days with
ActiveSupport-4.1.x. [ruby-core:76949] [Bug #12353]
- test/ruby/test_marshal.rb: ditto.
- id_table.c (hash_table_extend): should not shrink the table
than the previous capacity. [ruby-core:76534] [Bug #12614]
- ext/openssl/ossl_config.c: fix memory leak. [ruby-core:76922]
[Bug #12680]
- ext/openssl/ossl_ocsp.c: ditto.
- ext/openssl/ossl_pkcs12.c: ditto.
- ext/openssl/ossl_pkcs7.c: ditto.
- ext/openssl/ossl_pkey_ec.c: ditto.
- ext/openssl/ossl_x509.h: ditto.
- ext/openssl/ossl_x509attr.c: ditto.
- ext/openssl/ossl_x509crl.c: ditto.
- ext/openssl/ossl_x509ext.c: ditto.
- ext/openssl/ossl_x509req.c: ditto.
- ext/openssl/ossl_x509revoked.c: ditto.
- lib/rubygems/specification.rb: `coding` is affect only first
line except shebang.
- lib/rubygems/package.rb, lib/rubygems/package/
*: ditto.
- lib/rubygems.rb, lib/rubygems/
*, test/rubygems/
*: Update
rubygems-2.5.2. It supports to enable frozen string literal
and add `--norc` option for disable to `.gemrc` configuration.
See 2.5.2 release notes for other fixes and enhancements.
https://github.com/rubygems/rubygems/blob/a8aa3bac723f045c52471c7b9328310a048561e0/History.txt#L3
- test/ruby/test_array.rb: split out the test for no stack error
on large input for test_permutation, test_repeated_permutation,
and test_repeated_combination, and make them all timeout:30.
- test/fiddle/test_pointer.rb (test_to_str, test_to_s,
test_aref_aset): Attempt to use independent strings for
destructive tests that directly modify values on memory by
using Fiddle::Pointer. [Bug #12537] [ruby-dev:49700]
- string.c (str_buf_cat): Fix capa size for embed string. Fix
bug in r55547. [Bug #12536]
- string.c (rb_str_change_terminator_length): New function to
change termlen and resize heap for the terminator. This is
split from rb_str_fill_terminator (str_fill_term) because
filling terminator and changing terminator length are different
things. [Bug #12536]
- internal.h: declaration for rb_str_change_terminator_length.
- string.c (str_fill_term): Simplify only to zero-fill the
terminator. For non-shared strings, it assumes that (capa +
termlen) bytes of heap is allocated. This partially reverts
r55557.
- encoding.c (rb_enc_associate_index):
rb_str_change_terminator_length is used, and it should be
called whenever the termlen is changed.
- string.c (str_capacity): New static function to return capacity
of a string with the given termlen, because the termlen may
sometimes be different from TERM_LEN(str) especially during
changing termlen or filling terminator with specific termlen.
- string.c (rb_str_capacity): Use str_capacity.
- string.c: Partially reverts r55547 and r55555. ChangeLog about
the reverted changes are also deleted in this file. [Bug
[#12536]] [ruby-dev:49699] [ruby-dev:49702]
- string.c (str_fill_term): When termlen increases, re-allocation
of memory for termlen should always be needed. In this fix, if
possible, decrease capa instead of realloc. [Bug #12536]
[ruby-dev:49699]
- string.c: Specify termlen as far as possible. Additional fix
for [Bug #12536] [ruby-dev:49699].
- string.c (str_new_static): Specify termlen from the given
encoding when creating a new String object is needed.
- string.c (rb_tainted_str_new_with_enc): New function to create
a tainted String object with the given encoding. This means
that the termlen is correctly specified. Currently static
function. The function name might be renamed to
rb_tainted_enc_str_new or rb_enc_tainted_str_new.
- string.c (rb_external_str_new_with_enc): Use encoding by using
the above rb_tainted_str_new_with_enc().
- string.c (rb_str_subseq, str_substr): When
RSTRING_EMBED_LEN_MAX is used, TERM_LEN(str) should be
considered with it because embedded strings are also processed
by TERM_FILL. Additional fix for [Bug #12536]
[ruby-dev:49699].
- string.c: Fix memory corruptions when using UTF-16/32 strings.
[Bug #12536] [ruby-dev:49699]
- string.c (rb_str_new_with_class): Use TERM_LEN of the \"obj\".
- string.c (rb_str_plus, rb_str_justify): Use str_new0 which is
aware of termlen.
- string.c (str_shared_replace): Copy +termlen bytes instead of
+1.
- string.c (rb_str_times): termlen should not be included in
capa.
- string.c (RESIZE_CAPA_TERM): When using RSTRING_EMBED_LEN_MAX,
termlen should be counted with it because embedded strings are
also processed by TERM_FILL.
- string.c (rb_str_capacity, str_shared_replace, str_buf_cat):
ditto.
- string.c (rb_str_drop_bytes, rb_str_setbyte, str_byte_substr):
ditto.
- ext/openssl/ossl_ssl.c (ossl_ssl_write_internal): avoid
undefined behavior
- test/openssl/test_pair.rb (test_write_zero): new test
[ruby-core:76751] [Bug #12660]
- ext/socket/option.c, ext/socket/rubysocket.h (inet_ntop): share
the fallback definition. [ruby-core:76646] [Bug #12645]
- vm.c (vm_set_main_stack): remove unnecessary check. toplevel
binding must be initialized. [Bug #12611] (N1)
- win32/win32.c (w32_symlink): fix return type. [Bug #12611]
(N3)
- string.c (rb_str_split_m): simplify the condition. [Bug
[#12611]](N4)
- lib/rexml/attribute.rb (REXML::Attribute#to_string): Fix wrong
entry reference name of double quote. [Bug
[#12609]][ruby-core:76509] Patch by Joseph Marrero. Thanks!!!
- thread.c (rb_wait_for_single_fd): Clean up fds.revents every
time before calling ppoll(2). [Bug #12575] [ruby-dev:49725]
- vm_args.c (setup_parameters_complex): don\'t raise ArgumentError
if an array is given for instance_exec with optional argument.
[ruby-core:76300] [Bug #12568]
https://github.com/rails/rails/pull/25699
- gc.c (gc_mark_roots): should mark the VM object itself to mark
singleton class of the VM object. Before this patch, we only
set mark bit for the VM object and invoke mark function
separately. [Bug #12583]
- test/ruby/test_gc.rb: add a test.
- ext/digest/md5/md5ossl.h: Remove excess semicolons. Suppress
warning on Solaris with Oracle Solaris Studio 12.
[ruby-dev:49692] [Bug #12524]
- ext/digest/md5/md5cc.h: ditto.
- ext/digest/sha1/sha1cc.h: ditto.
- ext/digest/sha1/sha1ossl.h: ditto.
- ext/digest/sha2/sha2cc.h: ditto.
- ext/digest/sha2/sha2ossl.h: ditto.
- compile.c (ADD_TRACE): ignore trace instruction on non-positive
line.
- parse.y (coverage): get rid of ArgumentError when the starting
line number is not positive. [ruby-core:76141] [Bug #12517]
- test/coverage/test_coverage.rb: ignored test when enabled to
coverage. It lead to crash with `make test-all`.
- lib/uri/mailto.rb (initialize): RFC3986_Parser#split sets
opaque only if the URI has path-rootless, not path-empty.
[ruby-core:76055] [Bug #12498] patched by Chris Heisterkamp
- lib/net/http/generic_request.rb (write_header): A Request-Line
must not contain CR or LF.
- lib/net/ftp.rb (putline): raise an ArgumentError when CR or LF
is included in a line.
- ext/date/date_strftime.c (date_strftime_with_tmx): reject too
large precision to get rid of buffer overflow. reported by
Guido Vranken .
- file.c (append_fspath): normalize directory name to be appended
on OS X. [ruby-core:75957] [Ruby trunk Bug#12483]
https://github.com/rails/rails/issues/25303#issuecomment-224834804
- regcomp.c (noname_disable_map): don\'t optimize out group 0
Ruby\'s Regexp doesn\'t allow normal numbered groups if the
regexp has named groups. On such case it optimizes out related
NT_ENCLOSE. But even on the case it can use \\g<0>. This fix
not to remove NT_ENCLOSE whose regnum is 0. [ruby-core:75828]
[Bug #12454]
- missing/crypt.c: fix size macros to use configured values for
platforms long is larger than 32bit. [ruby-core:75792] [Bug
[#12446]]
- ext/openssl/ossl_bn.c (try_convert_to_bnptr): Extracted from
GetBNPtr(). This doesn\'t raise exception but returns NULL on
error. (GetBNPtr): Raise TypeError if conversion fails.
(ossl_bn_eq): Implement BN#==. (ossl_bn_eql): #eql? should not
raise TypeError even if the argument is not compatible with BN.
(ossl_bn_hash): Implement BN#hash.
- ext/openssl/ossl_bn.c (Init_ossl_bn): Define #== and #hash.
- test/openssl/test_bn.rb: Test BN#eql?, #== and #hash
- transcode.c (str_transcode0): scrub in the given encoding when
the source encoding is given, not in the encoding of the
receiver. [ruby-core:75732] [Bug #12431]
- ext/openssl/ossl_pkey_dh.c (ossl_dh_compute_key): Check that
the DH has \'p\' (the prime) before calling DH_size(). We can
create a DH with no parameter but DH_size() does not check and
dereferences NULL. [ruby-core:75720] [Bug #12428]
- ext/openssl/ossl_pkey_dsa.c (ossl_dsa_sign): Ditto. DSA_size()
does not check dsa->q.
- ext/openssl/ossl_pkey_rsa.c (ossl_rsa_public_encrypt,
ossl_rsa_public_decrypt, ossl_rsa_private_encrypt,
ossl_rsa_private_decrypt): Ditto. RSA_size() does not check
rsa->n.
- transcode.c (enc_arg, str_transcode_enc_args, econv_args):
remove volatile, and add GC guards in callers.
[ruby-core:75664] [Bug #12411]
- ext/psych/
*, test/psych/
*: Update psych 2.1.0 This version
fixed [Bug #11988][ruby-core:72850]
- common.mk (build-ext), ext/extmk.rb: use variable EXTENCS
different than ENCOBJS, to get rid of circular dependency.
build libencs when linking encodings statically.
[ruby-core:75618] [Bug #12401]
- process.c (rb_execarg_commandline): build command line string
from argument vector in rb_execarg. [ruby-core:75611] [Bug
[#12398]]
- variable.c (rb_local_constants_i): exclude private constants
when excluding inherited constants too. [Bug #12345]
- lib/drb/timeridconv.rb: don\'t use keeper thread. [Bug #12342]
- test/drb/ut_timerholder.rb: ditto.
- ext/openssl/ossl_ssl.c (ossl_ssl_stop): Don\'t free the SSL
struct here. Since some methods such as SSLSocket#connect
releases GVL, there is a chance of use after free if we free
the SSL from another thread. SSLSocket#stop was documented as
\"prepares it for another connection\" so this is a slightly
incompatible change. However when this sentence was added
(r30090, Add toplevel documentation for OpenSSL, 2010-12-06),
it didn\'t actually. The current behavior is from r40304
(Correct shutdown behavior w.r.t GC., 2013-04-15).
[ruby-core:74978] [Bug #12292]
- ext/openssl/lib/openssl/ssl.rb (sysclose): Update doc.
- test/openssl/test_ssl.rb: Test this.
- ext/json/lib/
*.rb: Removed some comments. Because these are
unnecessary class description. [ci skip][Bug
[#12255]][ruby-core:74835]
- pack.c (pack_pack): use union instead of bare variable to ease
optimizations and avoid assigning x87 floating point number.
[ruby-core:74496] [Bug #12209]
- pack.c (pack_unpack): ditto.
- lib/webrick/httpservlet/cgihandler.rb (do_GET): delete
HTTP_PROXY
- test/webrick/test_cgi.rb (test_cgi_env): new test
- test/webrick/webrick.cgi (do_GET): new endpoint to dump env
[ruby-core:76511] [Bug #12610]
- test/ruby/test_refinement.rb: skip
test_prepend_after_refine_wb_miss on ARM or MIPS.
[ruby-core:76031] [Bug #12491]
- vm_args.c (vm_caller_setup_arg_block): disable symbol block
argument optimization when tail call optimization is enabled,
in order to avoid SEGV. [ruby-core:76288] [Bug #12565]
- proc.c (passed_block): convert passed block symbol to proc.
based on the patch by Daisuke Sato in [ruby-dev:49695]. [Bug
[#12531]]
- vm_insnhelper.c (vm_throw_start): check if the iseq is symbol
proc, class definition should not be a symbol proc.
[ruby-core:75856] [Bug #12462]
- bignum.c (rb_big_hash): make it public function to be available
in other source files, and remove documentation comment for
Bignum#hash.
- bignum.c (Bignum#hash): remove its definition because it is
unified with Object#hash.
- include/ruby/intern.h (rb_big_hash): add a prototype
declaration.
- hash.c (any_hash): treat Bignum values directly.
- string.c (tr_trans): consider terminator length and fix heap
overflow. reported by Guido Vranken guidovranken.nl>.
- vm.c (invoke_bmethod, invoke_block_from_c_0): revert r52104
partially to avoid \"self has wrong type to call super in this
context\" errors. [ruby-core:72724] [Bug #11954]
- lib/optparse.rb (OptionParser::Completion.candidate): get rid
of nil as key names. [ruby-core:75773] [Bug #12438]
- lib/optparse.rb (OptionParser#make_switch): char class option
cannot be NoArgument, default to RequiredArgument.
- re.c (unescape_nonascii): scan hex up to only 3 characters.
[Bug #12420] [Bug #12423]
- regparse.c (fetch_token_in_cc): raise error if given octal
escaped character is too big. [Bug #12420] [Bug #12423]
- include/ruby/missing.h (isfinite): move from numeric.c.
- ext/bigdecimal/bigdecimal.c (isfinite): get rid of a warning on
cygwin. [Bug #12417][ruby-core:75691]
- ext/bigdecimal/bigdecimal.c (isfinite): isfinite does not
always exist. fixed build error on Windows introduced at
r55123.
- ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): consider
non-finite float values not to raise FloatDomainError.
[ruby-core:75682] [Bug #12414]
- string.c (rb_str_modify_expand): check integer overflow.
[ruby-core:75592] [Bug #12390]
- vm_insnhelper.c (vm_get_ev_const): warn deprecated constant
even in the class context. [ruby-core:75505] [Bug #12382]
- dir.c (dir_close): update RDoc for 2.3 #close change
[ruby-core:75679] [Bug #12413]
- proc.c: fix RDoc of Proc#===/call/yield/[] [Bug #12332]
- variable.c (rb_local_constants_i): exclude hidden constants.
[ruby-core:75575] [Bug #12389]
- insns.def (defineclass): Also raise an error when redeclaring
the superclass of a class as Object and it has another
superclass. [Bug #12367] [ruby-core:75446]
- test/ruby/test_class.rb: test for above.
- process.c (rb_exec_getargs): honor the expected argument types
over the conversion method. the basic language functionality
should be robust. [ruby-core:75388] [Bug #12355]
- win32/win32.c, include/ruby/win32.h (rb_w32_utruncate):
implements new truncate alternative which accepts UTF-8 path.
- file.c (truncate): use above function. [Bug #12340]
- ext/date/date_core.c (Init_date_core): [DOC] Convert DateTime
documentation to RDoc from Markdown. [ruby-core:75136] [Bug
[#12311]]
- regcomp.c (compile_length_tree): return error code immediately
if compile_length_tree raised error [Bug #12418]
- thread.c (recursive_list_access): a object id may be a Bignum.
so, the list must be a objhash, instead of a identhash. this
fixes many test errors on mswin64 CI.
- parse.y (new_if_gen): set newline flag to NODE_IF to trace all
if/elsif statements. [ruby-core:67720] [Bug #10763]
- lib/mkmf.rb (pkg_config): use xsystem consistently to set up
library path environment variable as well as latter pkg-config
calls. [ruby-dev:49619] [Bug #12379]
- lib/optparse.rb: [DOC] fix example code. base on the code by
Semyon Gaivoronskiy in [ruby-core:75224]. [Bug #12323]
- ext/win32ole/win32ole.c (ole_vstr2wc, ole_variant2val): fix
blank string conversion. [Bug #11880] Thanks Akio Tajima for
the patch!
- bignum.c: [DOC] Update result of 123456789
*
* -2.
[ruby-dev:49606] [Bug #12339]
- internal.h (RCOMPLEX_SET_IMAG): undef RCOMPLEX_SET_IMAG instead
of duplicated undef RCOMPLEX_SET_REAL.
- complex.c (rb_complex_set_imag): Fix to properly set imag of
complex.
- refreshed patches:
make-gem-build-reproducible.patch
ruby-1.9.2p290_tcl_no_stupid_rpaths.patch
Wed Apr 27 14:00:00 2016 mrueckertAATTsuse.de
- update to 2.3.1
- doc/extension.rdoc: Improvements to english grammers. [Bug
[#12246]][ruby-core:74792][ci skip]
- doc/extension.rdoc: [DOC] `nul` should be uppercase. change
\'nul\' => \'NUL\'. [Fix GH-1172]
- encoding.c: Fix return value of `Encoding::ISO8859_1.name` [Bug
[#12313]][ruby-core:75147][ci skip]
- ext/bigdecimal/bigdecimal.c: Fix code sample of
`BigDecimal.new`
- configure.in: add missing -lm for AIX.
- configure.in: don\'t use the system-provided round(3) on AIX.
In AIX, round(0.49999999999999994) returns 1.0. Use round() in
numeric.c instead.
- ruby.c: cygwin does not use w32_cmdvector, command line can be
other than UTF-8. [ruby-dev:49519] [Bug #12184]
- eval_jump.c (exec_end_procs_chain): restore previous error info
for each end procs. [ruby-core:75038] [Bug #12302]
- compile.c (new_label_body): initialize bit fields, since
compile_data_alloc does not clear the memory. [Bug #12082]
- compile.c (iseq_optimize): disable tail call optimization in
rescued, rescue, and ensure blocks. [ruby-core:73871] [Bug
[#12082]]
- ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo. [Bug #12202]
[ruby-core:74802]
- ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0. patched by
Anton Sivakov [Bug #12201] [Bug #12202]
- lib/securerandom.rb (gen_random): to avoid blocking on Windows.
On Windows OpenSSL RAND_bytes (underlying implementation is
RAND_poll in crypto/rand/rand_win.c) may be blocked at
NetStatisticsGet.
https://wiki.openssl.org/index.php/Random_Numbers#Windows_Issues
Instead of this, use Random.raw_seed directly (whose
implementation CryptGenRandom is one of the source of entropy
of RAND_poll on Windows).
https://wiki.openssl.org/index.php/Random_Numbers Note:
CryptGenRandom function is PRNG and doesn\'t check its entropy,
so it won\'t block. [Bug #12139]
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa379942.aspx
https://tools.ietf.org/html/rfc4086#section-7.1.3
https://eprint.iacr.org/2007/419.pdf
http://www.cs.huji.ac.il/~dolev/pubs/thesis/msc-thesis-leo.pdf
- miniinit.c (Init_enc): add some common aliases of built-in
encodings. [ruby-core:72481] [Bug #11872]
- lib/forwardable.rb: Convert given accessors to String. r53381
changed to accept only Symbol or String for accessors, but
there are several rubygems that pass classes (e.g. Array, Hash,
...) as accessors. Prior r53381, it was accepted because
Class#to_s returns its class name. After r53381 given accessors
are checked with define_method, but it accepts only Symbol or
String, otherwise raises TypeError. def_delegator Foo,
:some_method This change is to revert unexpected
incompatibility. But this behavior may change in the future.
- configure.in: check if succeeded in creating config.h.
- tool/ifchange: ignore failures when TEST_COLORS unmatched. just
use the default value if expected name is not contained in it.
[ruby-core:75046] [Bug #12303]
- doc/regexp.rdoc (comments): [DOC] terminators cannot appear in
comments. [ruby-core:74838] [Bug #12256]
- extension.rdoc, extension.ja.rdoc: [DOC] Fix some errors.
Renamed files, wrong method names or argument types; the
example GetDBM macro is now updated to the current version of
the actual code. patch by Marcus Stollsteimer in
[ruby-core:74690]. [Bug #12228]
- test/ruby/test_time_tz.rb: Tests depends on Europe/Moscow
removed to avoid test failures due to the tzdata change.
https://github.com/eggert/tz/commit/8ee11a301cf173afb0c76e0315b9f9ec8ebb9d95
Found by naruse.
- configure.in (rb_cv_lgamma_r_m0): fix the condition for
lgamma_r(-0.0). [Bug #12249]
- configure.in (rb_cv_lgamma_r_m0): check if lgamma_r(-0.0)
returns negative infinity. [Bug #12249]
- math.c (ruby_lgamma_r): define by the configured result.
- math.c (ruby_lgamma_r): missing/lgamma_r.c is used on Windows,
since msvcrt does not provide it.
- missing/lgamma_r.c (lgamma_r): fix lgamma(-0.0).
[ruby-core:74823] [Bug #12249]
- math.c (ruby_lgamma_r): mswin\'s lgamma_r also seems to be
wrong. cf. [Bug #12249]
- math.c (ruby_tgamma): fix tgamma(-0.0) on mingw.
[ruby-core:74817] [Bug #12249]
- defs/keywords (alias, undef): symbol literals are allowed.
- parse.y (parse_percent): should parse symbol literals for alias
and undef. [ruby-dev:47681] [Bug #8851]
- struct.c (struct_make_members_list, rb_struct_s_def): member
names should be unique. [ruby-core:74971] [Bug #12291]
- struct.c (struct_make_members_list): extract making member name
list from char
* va_list, with creating symbols without
intermediate IDs.
- ext/win32/lib/win32/registry.rb (DeleteValue, DeleteKey): fix
API names. [ruby-core:74863] [Bug #12264]
- compile.c (iseq_peephole_optimize): should not replace the
current target INSN, not to follow the replaced dangling link
in the caller. [ruby-core:74993] [Bug #11816]
- cont.c (fiber_initialize_machine_stack_context): fix wrong
_MSC_VER check, should be decimal but not hexadecimal.
[ruby-core:74936] [Bug #12279]
- cont.c (fiber_initialize_machine_stack_context): fix wrong
_MSC_VER check, should be decimal but not hexadecimal.
[ruby-core:74936] [Bug #12279]
- vm_core.h (rb_vm_struct): make at_exit a single linked list but
not RArray, not to mark the registered functions by the write
barrier. based on the patches by Evan Phoenix.
[ruby-core:73908] [Bug #12095]
- thread.c (update_coverage): Do not track coverage in loaded
files after Coverage.result. Avoids out-of-bounds access. [Bug
[#12237]]
- ext/coverage/coverage.c (coverage_clear_result_i): document.
- ext/date/date_core.c (Init_date_core): [DOC] fix misplaced doc
of DateTime. [ruby-core:74729] [Bug #12233]
- cygwin/GNUmakefile.in (MSYS2_ARG_CONV_EXCL_PARAM):
* add missing parentheses and remove double quotes. rename to
* get rid of recursive references. as --excludes-dir option is
* for a path name, its argument
should be converted. [ruby-dev:49526] [Bug #12199]
- common.mk (TEST_EXCLUDES, EXCLUDE_TESTFRAMEWORK): use full
spell long option.
- cygwin/GNUmakefile.in (MSYS2_ARG_CONV_EXCL): suppress path name
conversions by msys2. [ruby-dev:49525] [Bug #12199]
- test/lib/test/unit.rb (Options#non_options): make regexp name
options prefixed with \"!\" negative filters.
- common.mk (TEST_EXCLUDES): use negative filter to exclude
memory leak tests. -x option excludes test files, not test
methods.
- parse.y (parse_ident): allow keyword arguments just after a
method where the same name local variable is defined.
[ruby-core:73816] [Bug#12073]
- eval.c (setup_exception): set the cause only if it is
explicitly given or not set yet. [Bug #12068]
- thread.c (rb_thread_setname): defer setting native thread name
set in initialize until the native thread is created.
[ruby-core:74963] [Bug #12290]
- lib/irb/ext/save-history.rb: Fix NoMethodError when method is
not defined.
- lib/forwardable.rb (def_instance_delegator) fix delegating to
\'args\' and \'block\', clashing with local variables in generated
methods. [ruby-core:72579] [Bug #11916]
- lib/forwardable.rb (def_single_delegator): ditto.
- lib/irb/ext/save-history.rb: suppress warning: method
redefined; discarding old save_history=.
- configure.in: improve ICC (Intel C Compiler) support.
- configure.in (CXX): The name of icc\'s c++ compiler is `icpc`.
- configure.in (warnings): Add `-diag-disable=2259` to suppress
noisy warnings: \"non-pointer conversion from \"...\" to \"...\" may
lose significant bits\".
- configure.in (optflags): Add `-fp-model precise` like
- fno-fast-math.
- lib/mkmf.rb: icc supports -Werror=division-by-zero and
- Werror=deprecated-declarations, but doesn\'t support
- Wdivision-by-zero and -Wdeprecated-declarations.
- ext/openssl/extconf.rb: check SSL_CTX_set_next_proto_select_cb
function rather than OPENSSL_NPN_NEGOTIATED macro. it exists
even if it is disabled by OpenSSL configuration.
[ruby-core:74384] [Bug #12182]
- ext/openssl/ossl_ssl.c: update #ifdef(s) as above.
- test/openssl/test_ssl.rb: skip NPN tests if NPN is disabled.
- lib/uri/http.rb (URI::HTTP#initialize): [DOC] fix example,
missing mandatory arguments. [ruby-core:74540] [Bug #12215]
- sprintf.c (rb_str_format): fix buffer overflow, length must be
greater than precision. reported by William Bowling wbowling.info>.
- lib/rubygems/security.rb (DIGEST_ALGORITHM, KEY_ALGORITHM):
should check same name as the used constants.
[ruby-core:72674] [Bug #11940]
- compile.c (compile_massign_lhs): when index ends with splat,
append rhs value to it like POSTARG, since VM_CALL_ARGS_SPLAT
splats the last argument only. [ruby-core:72777] [Bug #11970]
- ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): Fix
Ripper.lex error in dedenting squiggly heredoc. heredoc tree
is also an array of Elem in the outer tree. [Fix GH-1234]
- thread_pthread.c (setup_communication_pipe): delay setting
owner (rb_thread_create_timer_thread): until thread creation
succeeds [ruby-core:72590] [Bug #11922]
- localeinit.c (rb_locale_charmap_index): fix prototype. patched
by Andreas Schwab [Bug #12218]
- thread_pthread.c (reserve_stack): fix reserving position where
the stack growing bottom to top. [Bug #12118]
- win32/file.c (rb_readlink): drop garbage after the substitute
name, as rb_w32_read_reparse_point returns the expected buffer
size but \"\\??\\\" prefix is dropped from the result.
- win32/win32.c (w32_readlink): ditto, including NUL-terminator.
- win32/win32.c (fileattr_to_unixmode, rb_w32_reparse_symlink_p):
volume mount point should be treated as directory, not symlink.
[ruby-core:72483] [Bug #11874]
- win32/win32.c (rb_w32_read_reparse_point): check the reparse
point is a volume mount point or not.
- win32/file.c (rb_readlink): follow above change (but this pass
won\'t be used).
- test/-ext-/time/test_new.rb (test_timespec_new): change a
gmtoff test to a better one that does not depend on whether the
current time is in summer time or not.
- test/-ext-/time/test_new.rb (test_timespec_new): Time#gmtoff
values are the same only when both or neither of the Time
objects are in summer time (daylight-saving time).
- lib/rubygems/test_case.rb: Fix test on Windows for inconsistent
temp path. https://github.com/rubygems/rubygems/pull/1554 [Bug
[#12193]][ruby-core:74431]
- string.c (str_new_frozen): if the given string is embeddedable
but not embedded, embed a new copied string. [Bug #11946]
- doc/extension.ja.rdoc: Fix RDoc markup in doc/extension
*.rdoc.
[ci skip][Bug #12143][ruby-core:74143]
- doc/extension.rdoc: ditto.
- proc.c (proc_binding): proc from symbol can not make a binding.
[ruby-core:74100] [Bug #12137]
- include/ruby/win32.h (O_SHARE_DELETE): change to fit Fixnum
limit. [ruby-core:74285] [Bug #12171]
- test/net/imap/test_imap.rb (test_idle_timeout): Because of the
timeout specified in \"imap.idle(0.2)\", there is no gurantee
that the server thread has done all the work before the client
thread performs the assertions. It depends on the thread
scheduling. Add checks to avoid false positives (on AIX,
particularly).
- test/socket/test_socket.rb (test_udp_recvmsg_truncation): AIX
does not set the MSG_TRUNC flag for a message partially read by
recvmsg(2) with the MSG_PEEK flag set.
- doc/extension.rdoc, doc/extension.ja.rdoc: add editor local
variables, with commenting out by :enddoc: directives which are
just ignored unless code object mode. [Bug #12111]
- doc/extension.ja.rdoc: removed rendering error caused by editor
specific configuration on
http://docs.ruby-lang.org/en/trunk/extension_rdoc.html . [Bug
[#12111]][ruby-core:73990]
- object.c (rb_mod_const_get): make error message at uninterned
string consistent with symbols. [ruby-dev:49498] [Bug #12089]
- dir.c (push_pattern, push_glob): deal with read paths as UTF-8
to stat later, on Windows as well as OS X. [ruby-core:73868]
[Bug #12081]
- ext/extmk.rb: add cygwin case, nothing excluded.
[ruby-core:73806] [Bug#12071]
- iseq.c (rb_iseq_mark): mark parent iseq to prevent dynamically
generated iseq by eval from GC. [ruby-core:72620] [Bug #11928]
- lib/resolv.rb (Resolv::IPv6.create): avoid modifying frozen
- test/resolv/test_dns.rb (test_ipv6_create): test for above [Bug
[#11910]] [ruby-core:72559]
- range.c (range_eqq): revert r11113 because rb_call_super() is
called in range_include() and thus r11113 doesn\'t work when the
receiver Range object consists of non linear objects such as
Date objects. [ruby-core:72908] [Bug #12003]
- vm_eval.c (rb_check_funcall_with_hook): also should call the
given hook before returning Qundef when overridden respond_to?
method returned false. [ruby-core:73556] [Bug #12030]
- compile.c (iseq_peephole_optimize): don\'t apply tailcall
optimization to send/invokesuper instructions with blockiseq.
This is a follow-up to the changes in r51903; blockiseq is now
the third operand of send/invokesuper instructions.
[ruby-core:73413] [Bug #12018]
- parse.y (xstring): reset heredoc indent after dedenting, so
that following string literal would not be dedented.
[ruby-core:72857] [Bug #11990]
- parse.y (string1): reset heredoc indent fore each string
leteral so that concatenated string would not be dedented.
[ruby-core:72857] [Bug #11990]
- parse.y (parser_here_document): update indent for each line in
indented here document with single-quotes. [ruby-core:72479]
[Bug #11871]
- symbol.h (is_attrset_id): ASET is an attrset ID. fix
unexpected safe call instead of an ordinary ASET.
- doc/syntax/calling_methods.rdoc: fix old operator for safe
navigation operator. [ci skip][fix GH-1182] Patch by AATTdougo
- lib/ostruct.rb (freeze): define deferred accessors before
freezing to get rid of an error when just reading frozen
OpenStruct.
- lib/ostruct.rb: Fix new_ostruct_member to correctly avoid
redefinition [#11901]
- lib/ostruct.rb (OpenStruct): make respond_to? working on
just-allocated objects for workaround of Psych.
[ruby-core:72501] [Bug #11884]
- vm_eval.c (rb_f_catch): [DOC] fix malformed RDoc syntax,
\"+...+\" cannot enclose non-identifier characters. a patch by
Sebastian S in [ruby-core:74278]. [Bug#12170]
- test/-ext-/float/test_nextafter.rb: In AIX,
nextafter(+0.0,-0.0)=+0.0, and nextafter(-0.0,+0.0)=-0.0, but
they should return -0.0 and +0.0, respectively. This is a known
bug in nextafter(3) on AIX, so skip related tests.
- string.c (enc_succ_alnum_char): try to skip an invalid
character gap between GREEK CAPITAL RHO and SIGMA.
[ruby-core:74478] [Bug #12204]
- parse.y (parse_numvar): NTH_REF must be less than a half of
INT_MAX, as it is left-shifted to be ORed with back-ref flag.
[ruby-core:74444] [Bug#12192] [Fix GH-1296]
- enc/trans/JIS: update Unicode\'s notice. [Bug #11844]
- marshal.c (r_object0): raise ArgumentError when linking to
undefined object.
- marshal.c (r_object0): Fix Marshal crash for corrupt extended
object.
- ext/openssl/ossl_ssl.c (ossl_sslctx_setup): document as
MT-unsafe [ruby-core:73803] [Bug #12069]
- insns.def (opt_mod): show its method name on ZeroDivisionError.
[Bug #12158]
- net/ftp.rb: add NullSocket#closed? to fix closing not opened
connection. [Fix GH-1232]
- variable.c: Added documentation about order of
`Module#constants` [ci skip][Bug #12121][ruby-dev:49505][fix
GH-1301]
- test/ruby/test_process.rb (test_execopts_gid): Skip a test that
is known to fail on AIX. AIX allows setgid to a supplementary
group, but Ruby does not allow the \"-e\" option when setgid\'ed,
so the test does not work as intended.
- test/socket/test_addrinfo.rb (test_ipv6_address_predicates):
IN6_IS_ADDR_V4COMPAT and IN6_IS_ADDR_V4MAPPED are broken on
AIX, so skip related tests.
- test/rinda/test_rinda.rb (test_make_socket_ipv4_multicast): The
fifth argument to getsockopt(2) should be modified to indicate
the actual size of the value on return, but not in AIX. This is
a know bug. Skip related tests.
- test/rinda/test_rinda.rb (test_ring_server_ipv4_multicast):
ditto.
- test/rinda/test_rinda.rb (test_make_socket_unicast): ditto.
- test/socket/test_basicsocket.rb (test_getsockopt): ditto.
- test/socket/test_sockopt.rb (test_bool): ditto.
- test/zlib/test_zlib.rb (test_adler32_combine,
test_crc32_combine): Skip two tests on AIX because zconf.h in
zlib does not correctly recognize _LARGE_FILES in AIX. The
problem was already reported to zlib, and skip these tests
until it is fixed.
- thread_pthread.c (getstack): __pi_stacksize returned by
pthread_getthrds_np() is wrong on AIX. Use __pi_stackend -
__pi_stackaddr instead.
- lib/irb.rb: avoid to needless truncation when using
back_trace_limit option. [fix GH-1205][ruby-core:72773][Bug
[#11969]]
- ext/tk/lib/tkextlib/tcllib/tablelist_tile.rb: fix method name
typo. [ruby-core:72513] [Bug #11893] The patch provided by
Akira Matsuda.
- ext/tk/lib/tkextlib/tcllib/toolbar.rb: fix method name typo.
[ruby-core:72511] [Bug #11891] The patch provided by Akira
Matsuda.
- ext/tk/lib/tkextlib/blt/tree.rb: fix method name typo.
[ruby-core:72510] [Bug #11890] The patch provided by Akira
Matsuda.
- ext/tk/lib/tk/menubar.rb: fix a typo in font name.
[ruby-core:72505] [Bug #11886] The patch provided by Akira
Matsuda.
- ext/tk/sample/
*.rb: ditto.
- ruby.h: undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P and
HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P on C++.
[ruby-core:72736] [Bug #11962]
- ext/socket/option.c (inspect_tcpi_msec): more accurate
condition for TCPI msec member inspection function.
[ruby-core:74388] [Bug #12185]
- lib/logger.rb: Remove block from Logger.add as it\'s not needed
patch provided by Daniel Lobato Garcia [fix GH-1240] [Bug
[#12054]]
- re.c: Remove deprecated kcode argument from Regexp.new and
compile patch provided by Dylan Pulliam [Bug #11495]
- ext/socket/socket.c (sock_gethostname): support unlimited size
hostname.
- lib/xmlrpc/client.rb: Support SSL options in async methods of
XMLRPC::Client. [Bug #11489] Reported by Aleksandar
Kostadinov. Thanks!!!
- marshal.c (r_object0): honor Marshal.load post proc value for
TYPE_LINK. by Hiroshi Nakamura
https://github.com/ruby/ruby/pull/1204 fix GH-1204
- .travis.yml: removed commented-out code.
- .travis.yml: removed osx code. follow up with r53517
- ext/socket/option.c (sockopt_bool): relax boolean size to be
one too not only sizeof(int). Winsock getsockopt() returns a
single byte as a boolean socket option. [ruby-core:72730] [Bug
[#11958]]
- ext/socket/option.c (check_size): extract a macro to check
binary data size, with a consistent message.
- ext/socket/option.c (sockopt_byte): fix error message,
sizeof(int) differs from sizeof(unsigned char) in general.
- process.c (rb_execarg_parent_start1): need to convert the
encoding to ospath\'s one.
- process.c: use rb_w32_uchdir() instead of plain chdir() on
Windows. reported by naruse via twitter.
- process.c (rb_execarg_addopt): need to convert the encoding to
ospath\'s one.
- ext/stringio/stringio.c (strio_binmode): implement to set
encoding
- test/stringio/test_stringio.rb (test_binmode): new test
[ruby-core:72699] [Bug #11945]
- io.c (io_getpartial): remove unused kwarg from template
- test/ruby/test_io.rb (test_readpartial_bad_args): new [Bug
[#11885]]
- compile.c, cont.c, doc, man: fix common misspelling.
[ruby-core:72466] [Bug #11870]
- parse.y (regexp): set_yylval_num sets u1, should use nd_tag
instead of nd_state. [ruby-core:72638] [Bug #11932]
- parse.y (set_yylval_num): should be used as nd_state, set to
u3. [ruby-core:72638] [Bug #11932]
- gc.c (RVALUE_PAGE_WB_UNPROTECTED): fix a typo of argument name.
[Fix GH-1221]
- Makefile.in (update-rubyspec): fix r53208 like r53451.
- lib/uri/generic.rb (URI::Generic#to_s): change encoding to
UTF-8 as Ruby 2.2/ by Koichi ITO
https://github.com/ruby/ruby/pull/1188 fix GH-1188
- process.c (rb_execarg_parent_start1): need to convert the
encoding to ospath\'s one.
- process.c: use rb_w32_uchdir() instead of plain chdir() on
Windows. reported by naruse via twitter.
- process.c (rb_execarg_addopt): need to convert the encoding to
ospath\'s one.
- include/ruby/missing.h (explicit_bzero_by_memset_s): remove
inline implementation by memset_s, which needs a macro before
including headers and can cause problems in extension libraries
by the order of the macro and headers.
Thu Mar 24 13:00:00 2016 dvaleevAATTsuse.com
- 0001-gc.c-tick-for-POWER-arch.patch to improve performance on
POWER
Wed Mar 2 13:00:00 2016 adrianAATTsuse.de
- fix rubygem provide versions
Sat Dec 26 13:00:00 2015 mrueckertAATTsuse.de
- update to 2.3.0 final
It introduces many new features for example:
A [Frozen String Literal Pragma](https://bugs.ruby-lang.org/issues/11473)
is introduced.
With Ruby 2.1, `\"str\".freeze` has been optimized to reduce object
allocation. Ruby 2.3 introduces a new magic comment and command
line option to freeze all string literals in the source files.
Additionally for debugging, you can get where the object is
created on `\"can\'t modify frozen String\"` error by
`--debug=frozen-string-literal` command line option.
A [safe navigation
operator](https://bugs.ruby-lang.org/issues/11537) ([so-called
lonely operator](https://instagram.com/p/-M9l6mRPLR/)) `&.`,
which already exists in C#, Groovy, and Swift, is introduced to
ease `nil` handling as `obj&.foo`. `Array#dig` and `Hash#dig` are
also added. Note that this behaves as
[try! of ActiveSupport](http://api.rubyonrails.org/v4.2.5/classes/Object.html#method-i-try-21),
which specially handle only nil.
The [did_you_mean gem is bundled](https://bugs.ruby-lang.org/issues/11252).
The did_you_mean gem shows the candidates on the `NameError` and
`NoMethodError` to ease debugging.
[RubyVM::InstructionSequence#to_binary and .load_from_binary](https://bugs.ruby-lang.org/issues/11788) are
introduced as experimental feature. With these features, we can
make a ISeq (bytecode) pre-compilation system.
It also includes many performance improvements for example,
[reconsider method entry data structure](https://bugs.ruby-lang.org/issues/11278),
[introducing new table data structure](https://bugs.ruby-lang.org/issues/11420),
[optimize Proc#call](https://bugs.ruby-lang.org/issues/11569),
machine code level tuning for object allocation and method calling code,
[smarter instance variable data structure](https://bugs.ruby-lang.org/issues/11170),
[Socket and I/O allow to use \"exception:\" keywords for
high-performance non-blocking I/O](https://bugs.ruby-lang.org/issues/11229)
and so on. Check \"Implementation improvements\" section in NEWS file.
For a complete list of new features and compatibility notes, please see
[NEWS](https://github.com/ruby/ruby/blob/v2_3_0/NEWS) and
[ChangeLog](https://github.com/ruby/ruby/blob/v2_3_0/ChangeLog).
With those changes, [2946 files changed, 104057 insertions(+), 59478
deletions(-)](https://github.com/ruby/ruby/compare/v2_2_0...v2_3_0)
since Ruby 2.2.0!
Sat Dec 12 13:00:00 2015 mrueckertAATTsuse.de
- update to preview 2 updated changes and news can be found at:
See [NEWS](https://github.com/ruby/ruby/blob/v2_3_0_preview2/NEWS)
and [ChangeLog](https://github.com/ruby/ruby/blob/v2_3_0_preview2/ChangeLog)
for detail.
- refreshed make-gem-build-reproducible.patch to apply cleanly
again
Wed Nov 11 13:00:00 2015 mrueckertAATTsuse.de
- some files from the system gems were not readable, fixing
permissions
- add more gem provides
Wed Nov 11 13:00:00 2015 mrueckertAATTsuse.de
- update to 2.3.0
Many new features and improvements are included.
[Frozen String Literal Pragma](https://bugs.ruby-lang.org/issues/11473)
is introduced. On Ruby 2.1, \"str\".freeze is optimized to reduce
object allocation. Ruby 2.3 introduces new magic comment and
command line option to specify all the string literals in the
source files. Additionally for debugging, you can get where the
object is created on \"can\'t modify frozen String\" error by
- -enable-frozen-string-literal-debug.
[Safe navigation operator](https://bugs.ruby-lang.org/issues/11537),
which already exists in C#, Groovy, and Swift, is introduced to
ease nil handling as `obj&.foo`. Array#dig and Hash#dig are also
added.
[did_you_mean.gem is bundled](https://bugs.ruby-lang.org/issues/11252).
did_you_mean.gem show the candidates on the NameError and
NoMethodError to ease debbugging.
Try and enjoy programming with Ruby 2.3.0-preview1, and report us
your knowledge!
[#]# Notable Changes since 2.2
* TBD
See [NEWS](https://github.com/ruby/ruby/blob/v2_3_0_preview1/NEWS)
and [ChangeLog](https://github.com/ruby/ruby/blob/v2_3_0_preview1/ChangeLog)
for detail.
With those changes, 1036 files changed, 81312 insertions(+),
51322 deletions(-) since Ruby 2.2.0.
Wed Aug 19 14:00:00 2015 mrueckertAATTsuse.de
- update to 2.2.3 (boo# 936032)
- update rubygems to 2.4.5.1. this version fixed CVE-2015-3900.
- Fix document for Float::MIN and Float::EPSILON.
- should match only char boundaries in wide character encodings.
[ruby-core:70220] [Bug #11413]
- Fixed bad performance in ruby >= 2.2 for Hash with many symbol
keys
- target encoding name can be empty now.
[ruby-core:69841] [Bug #11324]
- fix Float hash. rb_dbl_hash() returns a Fixnum, but not a long.
[Bug #9381]
- raise with messages in UTF-8 encoding.
[ruby-core:67386] [Bug #10705]
- handle O_TRUNC correctly [ruby-core:69779] [Bug #11319]
- FTP close the TCPServer when sending the port fails.
- (Net::HTTPResponse::Inflater#finish): fix a bug that empty
gzipped response body causes Zlib::BufError.
[ruby-core:68846] [Bug #11058]
- (Net::HTTPResponse#inflater): fix TypeError. An exception
object might be nil. [ruby-core:68846] [Bug #11058]
- (module OpenSSL): raise a more helpful exception when verifying
the peer connection and an anonymous cipher has been selected.
[ruby-core:68330] [Bug #10910]
- ruby itself (including numeric.c) is built with strict compile
options including -std=iso9899:1999, but ext/date is not. By
the way -std=iso9899:1999 is not only a warning option but also
changes behavior like MACRO definitions for example INFINITY.
[Bug #10906]
- Fix LocalJumpErrors being raised in OpenSSL tests.
[ruby-core:70020][Bug #11368]
- make Timeout::ExitException an alias of Timeout::Error
[ruby-dev:49179] [Bug #11344]
- (HTTPResponseTest#test_read_body_content_encoding_deflate_uppercase):
fix a failure without zlib.
- copy the arguments to the machine stack before rewinding the
control frame pointer and leaving the arguments outside valid
region of the value stack. [ruby-core:69969] [Bug #11352]
- CONTENT_ENCODING can be upper case. [ruby-core:69670] [Bug #11285]
patched by Andy Chu
- copy the arguments to the machine stack before rewinding the control
frame pointer and leaving the arguments outside valid region of the
value stack. [ruby-core:69969] [Bug #11352]
- keep the arguments region inside the valid value stack.
[ruby-core:69969] [Bug #11352]
- reversed string is not a substring, and should not set coderange of
the original string. [ruby-dev:49189] [Bug #11387]
- pop cmdarg stack for lookahead token. [ruby-core:70067] [Bug
[#11380]]
- Support %s.%N. [ruby-core:68301] [Bug #10904]
- fix transcoder loading race condition, by waiting in require.
[ruby-dev:49106] [Bug #11277]
- check if array size will exceed maximum size to get rid of buffer
overflow. [ruby-dev:49043] [Bug #11235]
- try opening file without gvl not to lock entire process. [Bug
[#11060]]
- split --libs if --libs-only-l option is not available. patch in
[ruby-core:69428] by Hans Mackowiak. [ruby-core:69421] [Bug #11201]
- out of range NTH_REF is always nil.
- check overflow of NTH_REF and range. [ruby-core:69393] [Bug #11192]
- make public and add length parameter.
- resolve refined method entry to check if undefined.
[ruby-core:69064] [Bug #11117]
- undefined refined method is not callable unless using.
[ruby-core:69064] [Bug #11117]
- Fix require paths for released gem. [fix GH-929] Patch by AATTvoxik
- Return empty JSON object when passed object is a special const,
instead of SEGV. Based patch by Kohei Suzuki (eagletmt).
[ruby-core:69692] [Bug #11291]
- relax pattern because long_lived flag and marked flag can be false
at major GC. [Bug #10852]
- use RB_GC_GUARD instead of volatile [ruby-core:69419] [Feature
[#11198]]
- ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode,
ossl_asn1_decode_all): use RB_GC_GUARD instead of volatile
[ruby-core:69371] [Bug #11185]
- seek to the file end only when writing (mode:a), not reading
(mode:a+, read).
- stop returning false negatives for filenames which are trailing
substrings of file extensions. For example, \'b\', which a trailing
substring of \".rb\" should not return false. [Bug
[#11155]][ruby-core:69206]
- register symbol names as strings first so that r_symlink always
returns valid names. [ruby-core:68587] [Bug #10991]
- bsock_recmvsg_internal needs GC guard for control buffer [Bug
[#11123]]
- test if covered for linear objects. [ruby-core:69052] [Bug #11113]
- should work even if body-fld-dsp is omitted. [ruby-core:69093] [Bug
[#11128]]
- added documentation for character sequence \\\' with String#sub [Bug
[#11132]][ruby-core:69121][fix GH-900][ci skip] Patch by AATTshishir127
- Added documentation for rational literal. [Bug #11075][fix
GH-885][ci skip] Patch by AATTshishir127
- preserve errno before other library calls and use rb_syserr_fail.
[ruby-core:68531] [Bug #10975]
- check other events when RETURN is thrown. [Bug #10724]
- fix memory leak of addrinfo. [ruby-dev:48923] [Bug #11051]
- try magic number only if f_type is included. [ruby-dev:48913] [Bug
[#11000]]
- return filesystem name by statfs/statvfs. [ruby-core:68624] [Bug
[#10998]]
- Symbols are compared by the identities always. [ruby-core:68767]
[Bug #11035]
- use same hash values with Float#hash so that -0.0 and +0.0 will be
identical. [ruby-core:68541] [Bug #10979]
- prohibit from accessing internal objects. [ruby-core:68348] [Bug
[#10918]] [ruby-core:58539] [Bug #9144]
- search the target to break from a block with nested rescue, from the
nested blocks. [ruby-core:67765] [Bug #10775] [Fix GH-820]
- protect value stack from calling other methods during complex
parameter setting process (splat, kw, and so on). [Bug #11027]
- allow symbols to just instance_eval/exec, except for definition of
singletons. [ruby-core:68961] [Bug #11086]
- clear NOFREE flag at embedding as embedded strings no longer refer
static strings. [ruby-core:68436] [Bug #10942]
- use getattrlist() if fgetattrlist() is unavailable, on OSX 10.5.
[ruby-core:68829] [Bug #11054]
- replicate env from method object, and allocate the local variable
area for the iseq local table. [ruby-core:68673] [Bug #11012]
- make more realistic data. [ruby-core:68632] [[Bug #10999]
- check if the receiver responds to the given method by
respond_to_missing?.
- create Method object for method_missing. [ruby-core:68564] [Bug
[#10985]]
- need to check the return value of GLOB_REALLOC().
- shouldn\'t create Ruby object before the object system is loaded.
[ruby-core:68430] [Bug #10941]
- Check class equality. (Resolv::DNS::Name#initialize): Normalize
labels as Resolv::DNS::Label::Str objects.
- check source type, must be an IO or a String. [ruby-core:69219]
[Bug #11159]
- make dsym_fstrs a hash compared by identity as the keys are unique
fstrings, to get rid of running hash and compare methods and causing
new object allocation during garbage collection phase.
[ruby-dev:48891] [Bug #10933]
- push and reset cmdarg_stack in lambda body. [ruby-core:69017] [Bug
[#11107]]
- check if a different libruby is loaded by the extension library, and
then bail out to get rid of very frequent reported stale bug
reports.
- show the exact target path in the error message instead of the
destination parent directory name. [ruby-core:68706]. [Bug #11021]
- keep sp safe zone to get rid of crash by -fstack-check.
[ruby-core:68740] [Bug #11030]
- check also procstat_getvmmap, which is not available on FreeBSD 9.
[ruby-core:68468] [Bug #10954]
- use kinfo_getvmmap instead if procstat_getvmmap is not available.
Fri Jun 19 14:00:00 2015 adrianAATTsuse.de
- fix provided rake and rdoc version
- remove generic rubygem-rake provides
Thu Apr 16 14:00:00 2015 mrueckertAATTsuse.de
- update to 2.2.2 (bsc# 926974)
- stricter hostname verification following RFC 6125. with the
patch provided by Tony Arcieri and Hiroshi Nakamura
[ruby-core:61545] [Bug #9644] CVE-2015-1855
- fix segfault by null caused by syntax error. [ruby-core:68851]
[Bug #10957]
- parse.y (primary): empty parentheses at cmdarg can be null.
[ruby-core:68477] [Bug #10957]
- ext/io/wait/wait.c (io_nread): wrap return value with INT2FIX
Thanks to Yura Sokolov
[ruby-core:68369] [Bug#10923]
- test/io/wait/test_io_wait.rb (test_nread_buffered): fix broken
test
- vm_eval.c (vm_call_super): search next super class from the
original class, to get rid of infinite recursion with
prepending. a patch by Seiei Higa at
[ruby-core:68434]. [ruby-core:68093] [Bug #10847]
- class.c (rb_prepend_module): need a WB for klass -> origin.
- ext/fiddle/extconf.rb: needs --enable-shared when linked to
libruby or fiddle.so. since --with-static-linked-ext does no
longer link extensions to ruby program with --enable-shared,
the only combination needs --enable-static is --disable-shared
and --with-static-linked-ext. [ruby-dev:48901] [Bug #10960]
- ext/fiddle/extconf.rb: make PIC objects if it will be linked as
a shared object eventually. [ruby-core:67128]
- spec/default.mspec: use default configuration file name.
https://github.com/ruby/rubyspec/commit/cc69f337b06362e5607ffa3e3ad40ef7494960cf
- spec/default.mspec: remove specific version number.
https://github.com/ruby/rubyspec/commit/7a909e925c1baa9c700bd44af9241aef6e596714
- common.mk: use ruby organization for rubyspec.
For all the changes see /usr/share/doc/packages/ruby2.2/ChangeLog
Wed Mar 11 13:00:00 2015 mrueckertAATTsuse.de
- while merging the changes with the 2.1 package i noticed 2
problems:
- we still rewrote the she bang lines to ruby 2.1.
- the macro files weren\'t marked as config.
Wed Mar 11 13:00:00 2015 mrueckertAATTsuse.de
- Remove the support to have the shared files from ruby-common
intree again.
Wed Mar 11 13:00:00 2015 mrueckertAATTsuse.de
- update to 2.2.1
This release includes the fix for ffi build failure and memory
leak issue on Symbol GC (See Bug #10686).
For more details see /usr/share/doc/packages/ruby2.2/ChangeLog
- match the version number in the rubygems provides to what is
actually shipped with ruby 2.2
Wed Feb 11 13:00:00 2015 cooloAATTsuse.com
- port make-gem-build-reproducible.patch from ruby 2.1
Mon Feb 9 13:00:00 2015 cooloAATTsuse.com
- remove upstreamed drop_content_size_check_in_xmlrpc.patch
- add unapplied patches as sources for now to pass source validator,
we might have use for them later
Thu Dec 25 13:00:00 2014 mrueckertAATTsuse.de
- tk seems to work now with newer tk versions
- convert the conditional for tk to bcond_with(out)
- buildrequire tk-devel only if we want to build with tk. otherwise
we get tk built and packaged even if we dont expect it. this
leads to the rubyX.y-stdlib pulling tk.
Thu Dec 25 13:00:00 2014 mrueckertAATTsuse.de
- sync spec file with 2.1 branch
Thu Dec 25 13:00:00 2014 mrueckertAATTsuse.de
- update to 2.2.0 final:
- Notable Changes since 2.1
- Incremental GC (YARV Maniacs No.12)
- Symbol GC (presentation at RubyKaigi 2014)
- configure –with-jemalloc Feature #9113
- core libraries:
- Support Unicode 7.0 #9092
- New methods:
- Enumerable#slice_after #9071, Enumerable#slice_when #9826
- Float#next_float, Float#prev_float #9834
- File.birthtime, File#birthtime #9647
- String#unicode_normalize #10084
- bundled libraries:
- Update Psych 2.0.8
- Update Rake 10.4.2
- Update RDoc 4.2.0
- Update RubyGems 2.4.5
- Update test-unit 3.0.8 (removed from repository but bundled
in tarball)
- Update minitest 5.4.3 (removed from repository but bundled
in tarball)
- Deprecate mathn
- C API
- Remove deprecated APIs
See https://github.com/ruby/ruby/blob/v2_2_0/NEWS for details.
With those changes, 1557 files changed, 125039 insertions(+),
74376 deletions(-) from v2.1.0!
Wed Sep 24 14:00:00 2014 mrueckertAATTsuse.de
- also make the ghost files match what we generate in the rubygem
based packages
Wed Sep 24 14:00:00 2014 mrueckertAATTsuse.de
- also provide the %{_bindir}/$bin%{rb_binary_suffix} symlinks via
u-a to be consistent with what gem based packages do.
Mon Sep 22 14:00:00 2014 mrueckertAATTsuse.de
- update to ruby-2.2.0-r47678
- drop buildroot patches! finally all upstream:
ruby2.2.x_rbinstall_gem_buildroot.patch
rubygems-1.5.0_buildroot.patch
Mon Sep 22 14:00:00 2014 mrueckertAATTsuse.de
- instead of touch for the files in /etc/alternatives. use the
symlink pointing to itself.
Fri Sep 19 14:00:00 2014 mrueckertAATTsuse.de
- conflict with our own ruby abi
Wed Sep 17 14:00:00 2014 mrueckertAATTsuse.de
- only provide the rdoc and ri symlink on newer than sle11
Wed Sep 17 14:00:00 2014 mrueckertAATTsuse.de
- BR: xz
Mon Sep 15 14:00:00 2014 mrueckertAATTsuse.de
- the ruby(abi) = $interpreter:$abiversion was not a good idea. rpm
treats the $interpreter part as epoch. instead we use now:
$interpreter(abi) = $abiversion
For MRI it means we are basically back to ruby(abi).
Examples for alternative ruby interpreters are rubinius(abi) and
jruby(abi) (bnc#896658)
Wed Sep 3 14:00:00 2014 mrueckertAATTsuse.de
- also in the awk generated provides we should add the
intererpreter part to the provides. also remove the old package
name based provides there.
Wed Sep 3 14:00:00 2014 mrueckertAATTsuse.de
- fix typo in macro
Wed Sep 3 14:00:00 2014 mrueckertAATTsuse.de
- update the ruby abi part in the macros
Wed Sep 3 14:00:00 2014 mrueckertAATTsuse.de
- use the new ruby abi syntax
Wed Jul 16 14:00:00 2014 mrueckertAATTsuse.de
- added ruby2.2.macros:
ruby 2.2 specific macros for the macro based expansion
- added ruby2.2-default.macros:
if ruby 2.2 is default this file will be installed and sets the
rb_default
* variables and rb_build_versions accordingly.
- no longer conflict with the other versioned ruby packages
Tue Jul 15 14:00:00 2014 mrueckertAATTsuse.de
- now we can configure the default ruby version in the project
config.
if the package\'s rb_soname matches the rb_default_ruby_suffix,
the package is default and we create the hardlinks for the
important binaries and the libruby.so symlink.
Tue Jul 15 14:00:00 2014 mrueckertAATTsuse.de
- require ruby-common already in the main package, not every
package we build requires ruby-devel
- update the rubygems provides to the actual version
Wed Jun 25 14:00:00 2014 mrueckertAATTsuse.de
- added ruby2.2.x_rbinstall_gem_buildroot.patch:
we need to pass the destdir to the Gem.install call inside the
ruby build process
Wed Jun 25 14:00:00 2014 mrueckertAATTsuse.de
- first snapshot of 2.2
Wed Jun 18 14:00:00 2014 mrueckertAATTsuse.de
- %ix86 architectures are x86 for rubygems
Wed Jun 18 14:00:00 2014 mrueckertAATTsuse.de
- also package the extensions documentation dir
Wed Jun 18 14:00:00 2014 mrueckertAATTsuse.de
- no longer share the rb_binary_suffix between the library usage
and the binary usage. for the library usage we have now
rb_soname.
- change rb_binary_suffix to .ruby2.1
Wed Jun 18 14:00:00 2014 mrueckertAATTsuse.de
- also provide libruby.so again:
too much broken code relies on the existence of it
Wed Jun 18 14:00:00 2014 mrueckertAATTsuse.de
- also package the extensions dir so we have an owner
Tue Jun 17 14:00:00 2014 mrueckertAATTsuse.de
- no longer provide the ruby macros
Sun Jun 15 14:00:00 2014 mrueckertAATTsuse.de
- remove ruby19-export_init_prelude.patch
Sun Jun 15 14:00:00 2014 mrueckertAATTsuse.de
- dont build ruby-common in here anymore
Fri May 16 14:00:00 2014 kkaempfAATTsuse.com
- Update to 2.1.2
- fix for a regression of Hash#reject in Ruby 2.1.1
- support for build with Readline-6.3 (see Bug #9578)
- updated bundled version of libyaml with psych
- some bug fixes.
Sun Mar 2 13:00:00 2014 kkaempfAATTsuse.com
- make api_version explicit in spec
- adapt versions of embedded gems
Fri Feb 28 13:00:00 2014 adrianAATTsuse.de
- use api version 2.1.0 again to avoid dependency breakages
Fri Feb 28 13:00:00 2014 kkaempfAATTsuse.com
- Update to 2.1.1
Speedup and bugfixes (upstream bug ids):
- rubygems 2.2.2 (#9489)
- fix segfault at unpacking modified String (#9478)
- Struct#send(:setter=, rhs) does not return rhs (#9470)
- Array#uniq behavior change (#9470)
- Timeout behavior change (#9470)
- Hash lookup with #hash and #eql broken (#9470)
- bigdecimal division issue (#9470)
- SizedQueue not working (#9470)
- BidDecimal division (#9316)
- fix \'gem install --ignore-dependencies\' for remote gems (#9282)
- Array#to_h should not ignore badly formed elements (#9270)
- Method#arity for keyword arguments (#8072)
Sat Feb 15 13:00:00 2014 kkaempfAATTsuse.com
- add internal.h to ruby-devel-extra
Mon Feb 10 13:00:00 2014 kkaempfAATTsuse.com
- Don\'t require rpm-with-ruby-provide-hook on SLE11.
It\'s not a runtime requirement but a build-time requirement for
rubygems in SLE11. Buildservice will take care of that.
Fri Feb 7 13:00:00 2014 cooloAATTsuse.com
- reintroduce update-alternatives for rake, rdoc and ri as those
can come from more uptodate gems
Sat Feb 1 13:00:00 2014 cooloAATTsuse.com
- readd old macros - for now at least
Fri Jan 31 13:00:00 2014 kkaempfAATTsuse.com
- generate provides for embedded rubygems
Thu Jan 30 13:00:00 2014 kkaempfAATTsuse.com
- merged ruby-common
Sun Jan 19 13:00:00 2014 kkaempfAATTsuse.com
- new package split - only single Ruby version installable
ruby - binary
libruby2_1-2_0 - ruby runtime library
ruby-stdlib - ruby standard library
ruby-doc - ruby documentation
ruby-devel - ruby development
Sun Jan 19 13:00:00 2014 kkaempfAATTsuse.com
- revert the ruby split (ruby - ruby21)
rename ruby21 to ruby, integrate \'ruby\' and \'ruby-common\'
Thu Jan 9 13:00:00 2014 jreidingerAATTsuse.com
- remove part of rubygems1.5 patch that modify mkmf which is
already fixed upstream
Wed Jan 8 13:00:00 2014 kkaempfAATTsuse.com
- fix rb_arch in spec: append -gnu
- fix native gem builds: create gem native extensions dir
Mon Jan 6 13:00:00 2014 cooloAATTsuse.com
- initial version for ruby 2.1.0 - changes to Ruby 2.0:
VM (method cache)
RGenGC (See ko1’s RubyKaigi presentation and RubyConf 2013 presentation)
refinements #8481 #8571
syntax changes
Rational/Complex Literal #8430
def’s return value #3753
Bignum
use GMP #8796
String#scrub #8414
Socket.getifaddrs #8368
RDoc 4.1.0 and RubyGems 2.2.0
“literal”.freeze is now optimized #9042
add Exception#cause #8257
update libraries like BigDecimal, JSON, NKF, Rake, RubyGems, and RDoc
remove curses #8584
- initial patches:
drop_content_size_check_in_xmlrpc.patch
ruby-1.9.2p290_tcl_no_stupid_rpaths.patch
ruby19-export_init_prelude.patch
rubygems-1.5.0_buildroot.patch