= Proposed System Wide Change: Ruby 2.4 = https://fedoraproject.org/wiki/Changes/Ruby_2.4 Change owner(s): * Vít Ondruch <vondruch AT redhat DOT com> Ruby 2.4 is the latest stable version of Ruby. Many new features and improvements are included for the increasingly diverse and expanding demands for Ruby. With this major update from Ruby 2.3 in Fedora 24 to Ruby 2.4 in Fedora 26, Fedora becomes the superior Ruby development platform. == Detailed Description == Ruby 2.4 is upstream's new major release of Ruby. Many new features and improvements are included. * Introduce hash table improvement (by Vladimir Makarov) Improve the internal structure of hash table (st_table) by introducing open addressing and an inclusion order array. This improvement has been discussed with many people, especially with Yura Sokolov. * Binding#irb: Start a REPL session similar to binding.pry While you are debugging, you may often use p to see the value of variables. With pry you can use binding.pry in your application to launch a REPL and run any Ruby code. r56624 introduces binding.irb which behaves like that with irb. * Unify Fixnum and Bignum into Integer Though ISO/IEC 30170:2012 doesn’t specify details of the Integer class, Ruby had two visible Integer classes: Fixnum and Bignum. Ruby 2.4 unifies them into Integer. All C extensions which touch the Fixnum or Bignum class need to be fixed. * String supports Unicode case mappings String/Symbol#upcase/downcase/swapcase/capitalize(!) now handle Unicode case mappings instead of only ASCII case mappings. * Performance improvements Ruby 2.4 also contains the following performance improvements including language changes: -- Array#max, Array#min [x, y].max and [x, y].min are optimized to not create a temporary array under certain conditions. -- Regexp#match? Added Regexp#match?, which executes a regexp match without creating a back reference object and changing $~ to reduce object allocation. -- Speed up instance variable access * Debugging Thread#report_on_exception and Thread.report_on_exception Ruby ignores exceptions in threads unless another thread explicitly joins them. With report_on_exception = true, you can notice if a thread has died due to an unhandled exception. Thread deadlock detection now shows threads with their backtrace and dependency Ruby has deadlock detection around waiting threads, but its report doesn’t include enough information for debugging. Ruby 2.4’s deadlock detection shows threads with their backtrace and dependent threads. == Scope == * Proposal owners: - Finish packaging of Ruby 2.4. Current changes available in private-ruby-2.4 branch of ruby package in dist-git. - Rebuilding of Ruby packages providing native extensions (i.e. packages which depends on libruby). * Other developers: Rebuild of packages with binary extensions (i.e. packages which depends on libruby) will be handled automatically, but some packages might need fixes/updates to support Ruby 2.4 properly. * Release engineering: * Separate Koji tag for package rebuild will be needed. * Policies and guidelines: N/A (not needed for this Change) * Trademark approval: N/A (not needed for this Change) -- Jan Kuřík Platform & Fedora Program Manager Red Hat Czech s.r.o., Purkynova 99/71, 612 45 Brno, Czech Republic _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx