ruby2.4-devel-extra-2.4.1-2.7>t  DH`pY_L/=„{lLTrb̌SBͨ[R@S7, Pńl3na;FM. ^61'tz\/z癦{pkJH2ގbjEnxG\@5%!703'(zR=>dY A0e(8cOeA@G-k%HGxUGģ=mv<<}xv9U5qJ**Bk МnUx'l9deb386c43df88216bbd8e1cce72a9f4590886c8{Y_L/=„(r6$pmśҲaB/ BKKaŲ+{A]J^42}$k.yqX-0o Aj4, %&=S봱ش3}\BGkRL_cx">yݾPvs[I e0υCD+xYUE2,%I \Z0tor?) %v1)S*EssiMco8ѫTH)N'48>,\t0hB q.8(Gs5>9 ? d  Z $` ~    _0@(8>9>: >F*G@H|IXY\] ^ b c cd e f l u v w <x xz Cruby2.4-devel-extra2.4.12.7Special development files of ruby, normally not installedDevelopment files to link against Ruby.Y_cloud117}openSUSE Leap 42.3openSUSEBSD-2-Clause or Rubyhttp://bugs.opensuse.orgDevelopment/Languages/Rubyhttp://www.ruby-lang.org/linuxx86_64 1Q}="F؁Y_΄Y_΄Y_΃Y_΃Y_΄Y_΃Y_΄Y_΄Y_΃Y_΄Y_΄Y_΄Y_΄Y_΄Y_΄7cf82cd279db8303ab3489aa3c9b4d6aca5dafbffaca6466927b27a8baac170662bf22bb819331aebec9ba7d833ac1f4000ce04aeb98453c02cf1d8e216e70e5db097b08fca5f96d08f960b3606437739330116c4c126deb1eb6820dc7e1b5bb85f06073884ed83f8dbc1ba731babbd51bad8cd762922b667cfe887ee67e4dc0c771012ff8e188cf6bf3790f7c787f7c17dccb18f1a1b4aca033d11f531f191ce2950a1c74068564959d587b1bbeec3ac6e56005a56d97eab88d408d8b23c49841071dfe317521e1b08eea52cab81bdad914128ed3778f3632104859254ddb05b80401b7a4521da1c244056b366d01dcrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootruby2.4-2.4.1-2.7.src.rpmruby2.4-devel-extraruby2.4-devel-extra(x86-64)   rpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)ruby2.4-develrpmlib(PayloadIsLzma)3.0.4-14.0-12.4.14.4.6-14.11.2Y, @Xg@Xk@Xa@W VVV~@Vl @VC-VC-UoU@U/@U.@U.@U.@TD@Tء@T@T@T@T"@T"@T @T @TTwTwTTTTTSi@SSSSS@S@S@S@S@S-SSSuS@Sz@Sz@RVR@RRR@R>R۾@R۾@RΏ@R=Rʚmrueckert@suse.demrueckert@suse.deadrian@suse.demrueckert@suse.demrueckert@suse.dedvaleev@suse.comadrian@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.deadrian@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.decoolo@suse.comcoolo@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.dekkaempf@suse.comkkaempf@suse.comadrian@suse.dekkaempf@suse.comkkaempf@suse.comkkaempf@suse.comcoolo@suse.comcoolo@suse.comkkaempf@suse.comkkaempf@suse.comkkaempf@suse.comkkaempf@suse.comjreidinger@suse.comkkaempf@suse.comcoolo@suse.com- make the 2.4 macros actually using ruby 2.4- 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- 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- 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 . - 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- 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 . - 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 @dougo - 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.- 0001-gc.c-tick-for-POWER-arch.patch to improve performance on POWER- fix rubygem provide versions- 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!- 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- some files from the system gems were not readable, fixing permissions - add more gem provides- 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.- 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 @voxik - 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 @shishir127 - Added documentation for rational literal. [Bug #11075][fix GH-885][ci skip] Patch by @shishir127 - 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.- fix provided rake and rdoc version - remove generic rubygem-rake provides- 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- 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.- Remove the support to have the shared files from ruby-common intree again.- 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- port make-gem-build-reproducible.patch from ruby 2.1- 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- 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.- sync spec file with 2.1 branch- 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!- also make the ghost files match what we generate in the rubygem based packages- also provide the %{_bindir}/$bin%{rb_binary_suffix} symlinks via u-a to be consistent with what gem based packages do.- 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- instead of touch for the files in /etc/alternatives. use the symlink pointing to itself.- conflict with our own ruby abi- only provide the rdoc and ri symlink on newer than sle11- BR: xz- 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)- also in the awk generated provides we should add the intererpreter part to the provides. also remove the old package name based provides there.- fix typo in macro- update the ruby abi part in the macros- use the new ruby abi syntax- 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- 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.- require ruby-common already in the main package, not every package we build requires ruby-devel - update the rubygems provides to the actual version- added ruby2.2.x_rbinstall_gem_buildroot.patch: we need to pass the destdir to the Gem.install call inside the ruby build process- first snapshot of 2.2- %ix86 architectures are x86 for rubygems- also package the extensions documentation dir- 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- also provide libruby.so again: too much broken code relies on the existence of it- also package the extensions dir so we have an owner- no longer provide the ruby macros- remove ruby19-export_init_prelude.patch- dont build ruby-common in here anymore- 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.- make api_version explicit in spec - adapt versions of embedded gems- use api version 2.1.0 again to avoid dependency breakages- 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)- add internal.h to ruby-devel-extra- 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.- reintroduce update-alternatives for rake, rdoc and ri as those can come from more uptodate gems- readd old macros - for now at least- generate provides for embedded rubygems- merged ruby-common- 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- revert the ruby split (ruby - ruby21) rename ruby21 to ruby, integrate 'ruby' and 'ruby-common'- remove part of rubygems1.5 patch that modify mkmf which is already fixed upstream- fix rb_arch in spec: append -gnu - fix native gem builds: create gem native extensions dir- 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.patchcloud117 1499451633 2.4.1-2.72.4.1-2.7eval_intern.hid.hinsns.incinsns_info.incinternal.hiseq.hmethod.hnode.hrevision.hruby_atomic.hthread_pthread.hversion.hvm_core.hvm_debug.hvm_opts.h/usr/include/ruby-2.4.0/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -gobs://build.opensuse.org/openSUSE:Leap:42.3/standard/230cdcdbf2abb2c752c14fb229df8347-ruby2.4cpiolzma5x86_64-suse-linuxC source, ASCII textASCII textGC%( ??p] crv(vX0D Zs 6ڱ` 0J%<-~cs.Qphh5 _ &+ bLn<9G Kӽ$GKc_s<U2} m0FG5)GDD6)V9/sUدzp4 :%Nɿ񰤝w؋p9"&4TCdCmr$5W}>]@YDL!u~pV+|pذKR¶K/OE2*LTB4Ň 8+`c>\=,+r{[]mԼx[ײ:C3&[{?G.L?{jB거m2*/qmxYyu])(^ե:&KH H'̦tkP>AI6mcS׻,?kܑ-ڿMx6>XD1_Aش]I䔹.?4#&G`!!F6)Tt7ک Iid{d57`6*Jg͉}c9n궖lÞ?@iz|Sgk] eP.Pءa#eUɅk $Z<2i_-RO1SF DaACR e\*wO0DLtNm)Vbq]jHճТ%kBbm)"uCRLP>boOxS=Zc(sC2$MXo"( 0z'aPt+f&[fWm/y~7ݜ1XuHs\h6_[ ?d;O4X2M@n/VboZ Qk>Q=+s3~O:ȇ°/ۘжW»3@ݚA %ڮUFdi^ROoAC6="w] |M$÷MxrC +|W+$d?Wwj]Vsެ3X.,t,r}7>]DFuphuGh}L*2ZKH.Ո;f'@#I5'A (nQsovͿb@VeB,_^ Li ; [%S.nA "0`_\ ^^fQ*LPj04/z -h)cvܯ&bIz?QRQ5 9"f=ddu :LOٝ-Wa{)qܙho].K\3aO@0Pt =bQpui{('][?_M={|́T9a?-{lOЂ8OI(U{LvXrUc*W bByx_m6F*:_B]vѺ~Sbn #fɓ$IkɝR;߿q<?h0saŰ K Ń$輋x"|>PPhUVN<xy֤w&Dխ%l9Kg*P#ߐkJPWK Pb#$. R43mVQjELJV XD6A,族 *G)ʉJɔ\jKw4Oʬ j`6zBے*di6 ժt:X`#ag&=IbG9r >$QX 1a w)IW)\ꚇ`hdT U~R}$ղį\E>b=UM,^:u=m[再gCyr}t/6N Mzt++Гe?Ai} X>J .K~6Yo4 ':HkLb0DSXSd#dע#io  $p~w@R?sr" f~ޮqVrn2{.sw3.[;&$!e'o;a3kFLhAo-$3JZfFx7+w]Y,AE*vgӥpi`+;- 6g߾J/Ɵnmb5Ƿ7kY 9|I1y7tWF_\;57(uvr+=5hM :f no:57 E@5>J;.X\#ϤM6bru/K\F&$Ii a.;j}|Hrk _$*MkeXcgi5C$] v=sk\R=P:샋kήI{6&x#fKʀa|.:B$[)(739٠8"ez]Aa W^ZwՎ|\]ԗW m"};'}r=]4H.;@E8bRcGv,SÝ}~) `:2 Snm9 /諔;GKڭ@X+D+:F6dQ"ƮiR,qU7Zivfv0tP3Jchr-w_!wbtefa#Qڞ-32 `[D4@{K.՝$v#_o(,՝5B&U5=%I}s @a$I*<2ꂥL&yJ78 s 9hd:^xMA07'BJ~ w?FIP6dwGtz{Pm \;"B P#U㻾 }jӮu RMA;qH2.IݹhXajN/`]9j&6RDPq թ4 '5 B~qWg/ltFi| k虇j_q ?+卢(y ^$h+ÙJO|_Kpg7wRRl%ف/W@s^)#6c(Q9.|..Cd{#cY6D%qq^o{ѳ4g\0"4 Bl\Zk7;gU nb0 1(yzv֔?㰧 ,#DEfXeInozڌ|N5rK؋=~ࣨ}QSSpYPw)Lǒ|vʪ fV0\2Z65bj{wwTQaBL .ҠH`. ZkL~3A~dGD .@X}cpmwoWfluh2$Lvb=xu*[MU/`H|7n7sEŗoJVY~==6Ow?w{Cv`B2g)Պ#>c=z?^ȊEY_AE M>O,+:&i<^g;g4;9p;vR+&lZRW []!ϯ St`@KV;fK7!j ;ᢷ̧" 3a#qCHcptj5"Os/Fܽ|ӻAehbʼW;Z++૰V׿RN{n^ql[v29VAt~Z03J^P6 7w |D{lk2!]~fǁiYNaKUSơ+$ }Gjbpc:,\'ZŮ(TÍR2C8B /zՌr;89']ۘv,~ّi&>ŕǐmjp7&bpZr=ʚuy<#Nd X/l+_6@C~Z<b8W͚@&tgf8/V/P+[SWuo U<ݮω68˟9]f&iQf: z"7qΥ%uE#:@w}"0n5}&SK,ʳY!ZBt7I42NI"HHD3EZdJ' V4]:@^Q̳ה\TeQ3 (Ҫ> Bi64mN,u F3i#ƍս?h)=ɊbQZ%GlcUqBNm^ثajԋB,SަZ]w u$% 'L9#i\( V-ec$D4,+LџߕœT۠7CݑP6[R8vJ=-4vETWC;(2ʨ\|2Xb[`ƈ@ybY"Bvpg"rgC!9} 7hZY$m/UME H"gO9a WStS c,^0qADg{,:e}%U{ CxmVK xvH/PC!'R̄#!hM Vy mjhOb(ARzcE^TPtLǵJqr>gV_ٻ'p&̸|X+)BO-ז85މes u D[V=_9pWH9={6ۧn]۸PUa{n%1+'.aT6JOEBL=@܁`wɨ5 I^.ұņ+$ >I϶YVҢQbcdg]%QG9^Gy2f4K=i@ݾۇ%YAt1>/U#f'_^|~j0= z94qӑUKKgq!?!$q$NN9GrP1-:FMXHÉd+Z$ǀzDlǷH~w* BBtzt\]r<3Ԓ:ĮӱDIgu-8+30$RX^s)&^4΢DpxEb!u_ Ɯ#MAd"BGhTLr`H2q}ab&L1MI|ujPNJX Ce$?J2%rSco ԇײFwu̺9^hpu~%̪}ð.m)9L#@&'Ӈ 8UvHIKkZPulDYULI&z94hCnd_) CǸ M]$4&$ƹ]#q!dsӢ \ )`'f`Qyx 5!y3l,张,J1AMo_ JɍşLz3ߑ9=&+m9~[|@j1F; jV7u+&;¾$c(=^dz, H$D#|y$DbxxG>56% O//G_k^ߧO6%m4J~  w^E 1*yub8BqsS hzE.@nMTJ7{'py4ȩFQS zcxOg|MSV9+pgnPLfq7t4wY/E$&zf𑄦>r+c?[+ zeg?QٯT:HڜrijOՌj؟}3[ei/aBrLB!dѽݵwbH. ]@-egjq B/$ēX'r2D=Ϝ(}ȿI8QG0^~RA͏ %803ĕ-NHA+w~)1V~nc1& 洵 aH,,rU- Y6WqO//;E?@p (R (:E z7 W;@ce hOFJyMJ4th~GzڕO,HEܸ$@*'xdⱀ0$a*ڍLEhH(r&UsN')-rɸUߙ1;[F̥i JjjL cdc/S:頞:u{PB›ݾ`et@FQ=tg;=^XFkhy=,=QF;1rS/լpΔRGJ}>AJ f p/sz.vafBF>ztwv5 H_9٥ wO7}iS:9m(hFf5#PE^% (fuބ(ZbK8&=^b7R9N,>:YVm'IVd)=W4m(Vq,既L=ytG+[](@b1snK$g Q80w^?6čp> OֈL/?c@JKͨ]nJ۲݋ݓCu>'I2rcAZJb'6K: Tzck I@Bι1F a+=q28ͳ:vFtj+sf%5K~8Vmȭ$%jNy:E_޲2cn lP?UčsY=Θo=*(I@wiȂ8 {2\3z~H+f5`|d ][0S_r,'foX֞LQG,jB"5 ?q]d!2&Tψj=TjU^e:4l ?As7u4Apf@WDg\IR<^4+Og|IY" <֟R{ܓwg7XPeK| ;+(ˣ㳊[?sLnYJ<go ;z_$Z|0l^ 96l{6-vSuFl $@ӌsG1XJG^NƖ"nY-tC0ȜcuZ :-j.#¦7ӜEemMQeqQUlN$(T9'C@Pg!DPxjQu}s]7~?ESG/AD=lS%[Il6ʂ"&O= 2;u3+2%&B5)|:9!`,]JUe/&fCaB)4$e&YBLyѺǾzPf/B~rDzzzᕅq<\:=t2b%nWY߇zkNm]RTJ59,~VNT1=Duo!Z\_s|u[72X㙆Ac/^kjr@;1'x`!>+twI;!pV2BdٱUjz\J}mvZz;C"%p>ȮQv\Xo~3>iurOn ?;z- o7#H'NHC/DPXEW1B1!4 (EKExO=:oK #0;}5*# Q=d,Z~cRF ûQr~ra ^  4__N!>:r%_gOdC2VCB$gJ'49\iKXI>72?.@KRdr!_?xx N 㶦U(QSf_ Mnube)X P2bfu/ wOSn zIcgtt7]3aN/J %T!N;{<*M+$n9=/fê5;ѓ&AЃŶD}@9*de ]E<2)fSWϵVv9Ӱ|av5Z8,98OCTExS.z| NWwRگWsᨣEQprxraSrz-eD{'}Xb(⾷O[&/6đv?C&rKm1u(qnd|E/P@)d%gYF(Fad2Ӗ5F >@ o=B@UH*}V;jP84##3B*{GMl;6P;_EMImN4I67F[SUZ$GYHH]n{s!kt[QlicO8cD9rerKHWPQHuDo=v_pVΟ]NCFz:ȅ0eZwFa6Bwe+2R'^Cfb|OMim:aUaq]jD-`H]M ^m2 q,σ:(QnHqQ׼n])n,bQ\I;jbsо:S73Ey1 -!>~Z1謲l1ŸK~!ONJϑMPo{d.d0Hxi'UjI* RbCQ#c u-njK&Wm)EQs(1\9,~sO;tpUfGㅌ85@5W>D5JnhB,ï_ARA[ OJ474W2O].cgM.f+c&_U 5@4c ⨹vg3)oM^"|# -溵>CDF#\ Zē3S  P<unQ-y~/e@ȴcx y_I t-nJ ,`Y4){RILU1@X"#'9ӊ<#l}ٮ! 5ZJ 8x^ ;x̠@EP\tr=O/)>7$j {l? {LMk5a@kj8hE_\|O?'8G_Ŧ` $Q%I.Va7d\,K];pG/sh~GDmϞySIi.#B몗fΫ3ǺTЇSqgRt ֌xpY7MK:U=׮i\> uOh[wʰ1|.95wv^ R{!X}B}.)7`o)DsN0rډ@E?;].SVu (j d֕cp>G*ijd/Y~U)$ ξ!\`V`2[닌3D 0=|5VN”nWKW\=tZraO!6fz:y#["._LsIҘpG2~|t8 x@0:Z >oi M<+2D$' cl+GzYC7ϲA34c=&- [jjXDzh Q x?g#Sqs1mZ(ώ@r{[FT|mx>ǿa8 W"ݯ@#'DGH #,ξ!_KIqØaa]V6,7 / ѵXlTZkTM$лn|wI]',! tyZa:ψ~YF,w ,>.ݛc Իh2Jb/< M;z:7ha(CǚYÆ*`K]5G:1v'J.EZ}%Jȧ@k ؚMG*jIO/ubiٻi8,1:k:ܹb/='#\<^Eͤ)d.,gs]I>`M[i Vq>RMYG6HuxꆊnKEӺ"qͪSPus4:s@W5}9uF xy<4E;/o7rl˺)mVHG2^v"#*pgNR-5u洒NT0+BCPl%eBxqz:*eKN*QTiڈxC1,wlFex:D]t>(~\O?xޢ]=MdWKo5s-Qb{.%88]+ep9,2{Cq[}0ơէJi3&u3_YoSLIҏJ{5cp=lvz6sxBEoŬㅷfp1;[IQbcrFVů;'8_=uGaǙPb"hnx 袌] _7F'rsYcG'v1rJly" oӄ"Y3w S JE|U 봗_Ҵ^i6pt.$rh-p|qUW }Nc˫{U*ˁč e%E*3yq~^ RТ/E!. uO)_U johZt7ӏ C7 ^ ~s|b^kz13s%RQq+NGXhǧ|JRK]8WkgO |z]14r2R4\j-1ş ^e^U0؏ ;E傹k7ZL҃kyF8J v{U_CJI(PEAw rQh5`o~,bmd?JO'`$t/o?cj'̢3M# 9iVͳܓt3~ .l&D 98tbg;g_jѷkzlvnw*u90AJ*5!yL +\߲\\ ㊨R1I0it@QzzoFǛ-YsSk*Ю {AXdYk;ލkaP+v0X|m+3ln.OW 犨Kfĵ{5 J5˥*g 3 C5SA4+e(`VVH@0g6h6dx2C8fr;ZÝYgJFMzEhׯ0] |xF؝ҁu.)/X㿯0V;h1<*Og؄mӦќsw3x{ ,o|% P C BxlT@[DX93~b+fRҰuDA9ˌZ] l=- He>" `h^lRQ~\7?OH xpdnzK2Tl3=X=XJnE1a?9iN~QlR:NH>w/L+6>N͹{-0-6\t] AF9G~͑QJUuhE i%rLZtC_ޜ-nZ2n qKX P-TGC9(n$TT'%q@2L޿+jKdxJA5c:Cc='ֻЖIXKj#PƪԌ^U9]+z=jUե@kQHC#~(2u}c=32wq%V3meѷ޶gwp~{Rt" e(טk#o<2Z]}#,ʨNb$7Rr|@Iyh$1sB8$\Hd4ʼeV~!cWfz% zjeʅk_vhX!B┡KMڵZD})Cd z cK67=%2aNb;`0>fzCpoJxzM(. CK߇XͫHV8څF> 2hpX|,}:4M7yfMKpXuJk 'D?8Aj3$"I -=OVS1/f~K/O3ԙϑPb$g~K:\N/C0T9ZP t.x?9NqP0|[i sf)遲3H})[Dz$\\3ugJ!U n s١̽IBBJ2rzIbɜ:)v.{'-)f w0ZwmT>LLxOH}4c4~+Z)w$Mr#j#U X8wEI|Z}vg̔Og7Q6`$޷%ei!>.( Wn(Cؗ)3+OPD*#`P ϳѴ$ޔi1: #޷_Air3xkQ J6v;UpYLOF3@{*n+J)ˎTuia:J EqMӪ:~_IмB[=Os$O5$9B]>5%hppމN2s*%e>I^kY2Q3)2DQTټ(-~bѤgRL2|sCŒH"?c)]tsW}g؁QsYm)s8Mn*DIs 2i+(uָ&SɊ]=ݮlݩ &_Nf$xPӲ#,lAЖEINWq&#)`1O>kr6>Tv,`U_4bZ=; nv@s5$|pńLLxWH)H3Ob ARrGs2+- @nԇF3XYts{,[a6n֤-jpפ!i7:5BUAw{KE&ti# &rԖeϒC+jې,tGْ ^5  vN(E!R{"]7;8Þvzc2)vfReoQIaN5 iú4ZȄC`1ИP./2IFÏ f"S)ߺч3'[O8 Z:d?ˉ1~w@`wFBl\[։|7v͋нqg@὆+X?|r&DCj|Klߛ()ava  czYHrf^6S%ܢw8UrByߦ.wu.[Ӑ=nKd]$v_dD b[s"LZ"P 9|,ӹ{laGwŔ;MoǞ׮9(?1 &?} 4Jb ωHoz/DIq#.g+-m+0$/hM\ &<ԱTd\3&<ǩ;;* c^HV5c9 F7KO5}cqp a]'U0(N(+QX@GdekB$N4K: h6" %nkřEv7 :zc!Od#xoE(9-W*&hdR >ƨ{#hAݠѾM,5c HE%֠6$ 16[*0Ҩq84e "f bZ"\ H )8_N᜻{~ƀYҊ 0b.iU\ݢw@2Je Ű7DU_ZCbe(١9~h13hCa]|QP|D+Tasi%>f@jv80㞌V`ή D .y|ٖ˓*dToj^(yT8*Ƽ9JZ>=T_}#Ɛjd5xP ׋0C{ aUVjb+5k䛷΁|$Z.8WHDM4Fc`$͜yޭՀQ\dN3_.p;>`;Y'Q֝g._*$xz`]r#0"2Ke+P.ͮN@); D9 V6AH[73@Ĥē4QX̍!V+,CdǢlPߤ_}la<=׊{ Wu"t`n" 9aO{\s>XOtbuk通⾠+l3g#xc?6M&#,LOxdo]f,vtIYH6a uG ӷ0d JGYhF?T>.*/V/f_\lͫ‡]Q$yE^_ ߹_H_F`.uM"sSzL@;!!&2D04Er~yn'鑗X* h8Fg ukeISAE>_SaCA9Vx{hYa>S ]*$ʞx+hhJNHJ*(υ;a Œue*5fYs76c٘Dzoj8 /3)=ZTn=2Tr vêh,ps=3ra|xэxq8%1%hpc|g8IWxfxP uQ5ߩO2pWܵ!3z})v/WAi0갪l!<`P|HVF61i 8;TN^vzp#~eb$3ҟ `GmyGZI M#T(v V:a bhg̋?*@}X1pph)LLa3A23i *"I/E jB$)QS:WǔlH +:u (hA(댶ފki-(;ZeI J`yrCSFkȘ]'Krl-!>*oȦn=_L B@[$'~͎~TdT%!vp8tŏ]1>gΒ睸@~CG0z֕jnλWS <=C i3Yŕ4pb ͜#eTJ$#$kG{8pޤ4UT@Dlg7w9*H-~yOJU?<ݤ,Fhi: =4-)6Z~ZG֢,Z$$P#,F)Ud$)80H(EmS2Pq GzҳciB?M87K߂q1}BMJY|{~+M֘dV/ޟJZX2Wo?SنV?_Ib=):Jg7UIzvwYiU%]Yܐq3nDˈ8Qp|u ׼wvg+8 -ph:^͵J9k&5S=ټIƒ,^pTjʼ?6遤ΰ./]?‹'CdoN=B I]*Ԗu*Wu[ fOe>YIUFո{O:f.˜|/HvU7 P  6'&Q5 J~hUx̙u5KR=egX6Dggڍ3mMhS9Ԏ$\j n\4fNi"+iv;fQPᶬ=gQ~|pVܚ UֈҸ߅X~ן(~vZŀZ|UuzB|E؉^D{^Me>2/[F!He~4ѧ;*OO \q[(7&mCs6*J\j.yR"'ߤo[DR$f$T/BϦ U߻AՉVg+Bd{߹ؒBl]q.K@#ǥ#~GD(yχ4R K/A'ԣ;W[7Y Űw'PO1q;e=mya(.R[F8i "ݥO\'G:dכ'C}s-v2~iֲf*"ѿR@I,6kECu2gOo'-${Yd=mTNKϘ9l23PA*ue8CUV;7 jIiw0t6jDTU9+[QW$nf`bPWbl\8\ 8c_$I@Y;k_}s28hg)䎽=R{Ι? gB"l5)Aj4X6Ke^J 5:ΐ5F]T!Ore'_A˵}_Xa4Qƶr&Qv|$i;5Mz1}vJ o-`Wΰ`Af ┟&X-s e|}bZl>uIu^1ʪh;ul1H\*aoßw1F,D*CM&HpqF4qTB3TbͷHKWtyЌ8jfQB'?d2">r;`!P=Ko[? aoQgbWԅPoV#+QudHdx+:aoQf-9\ƝV_!=gKs}nxěK<燍Nc]W +5\+ "vcwMT2VA]}Hgu9ԿhXSES.ޠf/e; t* n*9zIt1|5͝F-[(s0~. ?'syʩ@߆=:eG>k}g]tvT2!D}>^B=."m}{9 !O({z6H޸>b WpH-S+N>sdBQa=RK8y3*TqQ´_ŀ`ST~  T,~~AU >(YOeRk7%o osRq]e]\A?g^f ;&2yyϣ6{410diC$X9P뗺{Cj3`T^|CZKpq8_81`,/o 46 ”ڽi9U&.;^s `=cixTCT⎹)d#;vj50Q ^'4CWBQ{Y :AC@>Z$ [!XS=/M;bzrͅ@}F7?M6嫳CޔAU 1H3 ?94|3$XN+ud,6Q%aCԳ.me1`6w_T@JE>HJhWHje:rG7zC[7fJECC%=y >G,2NA4ƨ E]}!Zy2Uk,tb@8,*>N hx|$wkz.dLu #n^FgŃ!=NъVοۙwydk[I G>3.Cf(OV- dP0oaW2?) 5ONB}WIRj;n T CT#q"m >17GNQ%THP) "c\6N > ECcoX]fLB!9(T7IE  ihMDP9tτ)|B _@L`SN`ᎃv Qs|%H<3껯e9̙00H{^GR*ɜhd &F?z)M^eHCS EݗcI/k0RY;ULQd#$"MF̰.=ty5搔tNIHb'#hQ8Va -FŀvUԟ8,uR:8˯2l :Z( hU4Kd:h}pM`0{/Cs /m+F_"-ywN|dZ}ŊW8~Ƈ:6jDq( A X1l)upefx޶xLJ8K}aj!Wp㢏;&," \b:Fsz(g;?B[<R>\Kc>a%gH*wͼvL򧵵1z!%;\(ν_Ҧ͌\tY^YgCDĞ9$^B=Ԁo`lQ}RcWtDZ%YoJ>Ȋ4b~o '2z)ޟS=cg"ZgU)C|j%/DI.Lk_D 8  @QDZ0ZK7]%b^geԺ)i}>Lu1:!>Z/*yh9}'N\ 6bR.mה]Qu4lccQtj 7 ` Mhi$D{Z2B|W"8!8|E#aKyx#hk78cͺ齨z;J+I@SJ}1DMdmvG)-RK6g3 .Xo L0ܑM /^WpYnpM|W+N< p <BuޡtiIJ!=BWϾ$#BMC ? \T.iY8^@_xL߶"&s:C߄D_mҖ0_'X|,Yy!V1a"Kb1d#-U;~;PfdrҫԦd eo`]EYH?txB ҒW%72X<B"0"K3Eӹ`(`1UY&SaU#Z~&1jYz /5|DSگxtѾ^ FXOWsa9[%̙iRF0!D"X aZnUn"/!hF./T8g2r(-t0__fcszӟ9^nE,/VN[#`]Č/9ۮT= ( i_gS`\KrHhpu*K*liΐc>1ĉ<5 b>;UQ/,C`LvVEj[Zuf(: o,?^ʏ, E' s<7'T ;؛ݏ:g7Dv1y7z4ȥ3[- }YBRǾފ=W~K)+:"L0MiFp[>Mg&J;j(ސ8`;0ۨ84u'm$@}H_0l[@b4ڛDjMnMz qL+ ‘%G,g3r{/%2`S lq^\V+vt_<^4ffNQ88+E\5{}~s:߹uǧrq2!fÎ*{Ow6Y^>;U)$Nn#{\ǟ)R0=ߵeal# Ofwg2V׺NUu6|3؅.h~ aQpe׼a%go3_eڂUP%D)?6tFAܫ'>WVSMS\P3ODę J|9, ~w#1a?[DLx 5S`I&W;O"ptmۃ56%HV`~?Xz<~Rio^j=#@u]:L`nC+NXŽsLY s7 [}6Z })KK̥\:Ϥט>UE$T:a۟/I&B)15v}+P/H~¸WJ>YN>_N)7dH6HWz6YyvENjgͶ iZdtMI%vzP4yqUaBvh|bC@8)_sbԙa4MHzW;߮r4x` #AZχY WEvH8NS:` ehKGH-h4R_46TxWaQj;Ӻ\|1:<~P |y9KzA.m[Y+wj BL.{#z^2|{ב[&=:f™:[Դ G,J;;:_~$DZ3rO cSg3d P[r mC!fE|QS>'/ y*aSK5'fBބDlH/0e]f2iVoZ(rGabwziy@ekF*,rW$鵥@&=HkhPrXA.C,\Ki(阪X pik9Olk z_bjFḴ218Զ@\ LrY9ƼQ_e"i3&P_ ;dzBYqS>g:>;5%u& #-knTSϒ!5[\/:^vă2V ]ʤ`#œVǿF̱R;ښwYv~Y~O6fM9R&i? m=NtB!h!15xKGNfAiO?~,F{!^q4U̦K9 O$4Rđ\[,߫t}ȗƮE#kp -]ԍS{j8._iҿ^uT 7f97½Q8Z 5Oضz|㒓DWs|;&e+ƒ0=Jo@79# AT3M2򤰝\F{hp\DT!HKHVf0m.Dtr*]>n,U}21)HϼM={ -eswOK 8܃cx#fyJsT QK|(P><.$W6v}y``qA$ϜéDڦn`|pmízTNv}^cj" vDkWO퇄?IE$Ef݅ wZ !UVE~0vxc ȃa~'hz9u_; <+qB4wM.lf('}il*B* p2D!~LL㟇y <@?_ @7Dtl?^[\{n>CXIF|Fj} NJhƥ Gt塚^ldQ-W,\ۛ-Y?rX""CpQ wVcmOD]S#LJlkv~ _`~u6a&BVBߏ 2Je엙$u$L*f#-V L?#r^%0=K> `rDƙ 8-,{I+^PlŠ"m~dW/Kn`Í*AUۚ)"~,;QIxr*(R#ϋDeRˏ/x]Flr\U^Fҳkū̶'pdɦl>1)\`B!َ@9ݎ61Qk L^B;ɶ98c~tild b.-D!uhZАx!bN` w*&5xPSU~^k#3yE׷ldc#oP%gʬы*:cj|y9iڸ*al+Oo<|gԩ/ D3 x&icgWTp uUۆr87(#DckURNlDffXPv5R7D"ѝl)F{cfd p؇ɛ#Iv2dŬx:ұIXڼࠔY0Qs#ҾKRX]G>j0WU#ޠGsߩ16!:AJ@YޔK0 ?pY {H]fhs"_i0U>ۍj>HG>x6Ŀ&ւ{{ڼh(Q1FDFJi*ɪk؏}?k f%;*n٪T{h{Bi<`1^MS5Ί_L)`M9T̰vtNW";og!fLG=03]S+v=B'E|Fr?O7[4PN9 bk`>S}ghf{ѳbNF:wE nbzq|48pth%GD{G"+} ]v]- !nf4H7Vݧ}٠z+MBkKƽsk ͏կS7?/9F˷8oYE8:Z^w .qrD^iM-]+FNBSUwD"ޕ\F˺4o/kF%qJ`l6&d:x tW"__$ny}@N}rUm}r_"p}vC{X_ubZcSwu]T-zMċWRj zK(,+l+،1!0; ~H[o#H몘!$p;6i=d6}1i x.^yD롗u^ dG%l=IV`qE D4s.S;P|vU5zCrBNX:[хU>ⱡ޷^z& g~qvmI>N{,,&q"^ZeE) ed(2KY#[}#n!aZ,zJ1`Q%2ПV9C]/2T#[ҾEB;my9xgQ'Ws0)qz?jӒ-EUo*9+Bی9 Oo/^Shak6ǀND$|@eioL)Ncf(+vБXs[udu0Kg M*nthƏpF\z Q=`F |t