Rubinius Changelog

What's new in Rubinius 1.2.4

Sep 21, 2012
  • Closed Issues:
  • 47c3b17 Move prototypes to util to mitigate nokogiri bug. Fixes #1061
  • 45e0601 Add HAVE_ macros for blocking region stuff. Fixes #977
  • f6567b8 Don’t use Kernel#sleep to know how much time has past. Fixes #986
  • ee2bdc2 Make sure that a local addrinfo side is found. Fixes #989
  • 3fa02ec Fix CompiledMethod#locate_line. Fixes #1040
  • f6ac3c8 Include stdint.h where it’s needed. Fixes #1036
  • ecadf56 Fix []= with splats and all that jazz. Fixes #1021
  • 57b1181 Fix Method#parameters for non-CompiledMethods. Fixes #925
  • 6e3be13 Fix Thread.new, .start, and .fork. Fixes #945
  • 5637a52 Guard all NME operations that need an NMF. Fixes #935
  • aeced68 Add rb_check_to_integer, Fixes #933
  • 38a5f97 Add support for -s on the cli. Fixes #879
  • 52532b0 Don’t count a space leader request against the total width. Fixes #893
  • bef7f50 Handle certain operator symbol values specially. Fixes #895
  • 06da168 Handle STDIN being closed by default. Fixes #916
  • a81a80d Only check frozen if there is modification in Array#delete. Fixes #913
  • 75a1817 Create a specific Time subclass. Fixes #902
  • 675e9ca Provide size for converting byte_array into string. Fixes #887
  • 6a5cd94 Handle reopening a module that was included into Object. Fixes #883
  • 185efbf Fix Object.const_defined? wrt include modules. Fixes #865
  • cf9aea7 Exclude singleton classes from OS.each_object. Fixes #867
  • 7c0371e Set -P option to compiler to print the AST. Fixes #861
  • dba9314 Handle detect the ip for a line better. Fixes #719
  • 06c3412 in Array#==, use the raw Tuples. Fixes #822
  • 3973f6d Move Module#constants/constants_table => constant_table. Fixes #735
  • 02330f0 Use an offensive copy in Array#permutation. Fixes #775
  • c401af1 Add Rubinius.current_file. Fixes #841
  • 944a6d1 Fix build on FreeBSD - Fixes #844
  • 9c72fba Conditional SSLv2 usage. Fixes #818
  • f079e72 Handle Marshal’ing a Mutex and Channel better. Fixes #821
  • 9f3d790 Add rb_cMethod. Fixes #816
  • f1c6d65 Remove duplicate local names from #local_variables. Fixes #772
  • 9693227 Don’t screw with vcall new. Fixes #777
  • e70c097 Disable fibers on >= 10.7. Fixes #815
  • 29e5f49 Apply StringScanner speedup patch. Fixes #716
  • 0640ece Apply patch for todo. Fixes #810
  • 087ae79 Handle the GIL around FFI callbacks. Fixes #796
  • d3026d6 Read the static scope for an inlined block properly. Fixes #807
  • c2992f9 Also install tooling extensions. Fixes #806
  • 26b1398 assume RWX memory is available for ffi on linux (jit requirement); selinux users: setsebool allow_execmem true. Fixes #782
  • 115c1a0 improve performance of Time#. Fixes #785
  • cf71b7d correct BigDecimal::ROUND_HALF_DOWN/ROUND_HALF_EVEN behavior. Fixes #781
  • d962458 Ignore requests to set DATA unless in the main script. Fixes #790
  • b653999 Marshal.load raises ArgumentError on unknown class/modules (Fixes #791)
  • 2675eb8 Make sure that String::c_str() unshares before clamping. Fixes #793
  • 596adbb rb_ary_reverse reverses in-place (Fixes #792)
  • 44b68fc Added testrb bin from MRI. Fixes #788
  • bd3deed Put IRB help in the right place. Fixes #783
  • f4210b9 Fix tested braces in Dir.glob (@meadow). Fixes #778
  • Documentation:
  • New blog post: rubinius around the world map and pins of shirts/tshirts
  • New blog post: rubinius summit hollywood edition june twenty oh elleven
  • Added AST docs
  • Add German translation of GC docs
  • Updated spanish translation to the How-To Write Documentation page
  • Translated debugger and memory analysis to Polish
  • New blog Post: 2.0 Developer Preview.
  • Start French documentation
  • Translating Rubinius English Documentation to Portuguese Brazilian - Appendix b
  • New blog post: rubinius rewards
  • Add brief overview of Actors to concurrency docs
  • FreeBSD notice in Requirements
  • Updated RVM section in Readme with more detail and clarity.
  • New blog post: Running Ruby With No Ruby.
  • Platform Fixes:
  • Add a bunch of errno’s from FreeBSD
  • Performance Fixes:
  • Speed up capi::HandleSet by adding an allocationless fast path
  • Increase the malloc threshold to 100M
  • 3x speedup in String#insert
  • String#[] perf improved by 55% for the Fixnum case by removing not needed coerce_to
  • Speed up some easy case for Array#*
  • Speed up Array#map and #map! by 3x
  • Increase performance of Module#public_/private_ and protected_methods
  • Improve perf of Module#instance_methods and LookupTable#each
  • Speed up Dir.glob for realistic workloads
  • Improve the performance of mp_set_long
  • Improve performance of Time#to_f
  • Additions:
  • Added Rubinius::KERNEL_PATH and install kernel .rb files.
  • Add ability to display CAPI methods in backtraces
  • Slow but usable IO.ioctl
  • Add FFI::Pointer.size for compatibility with ruby-ffi
  • Add ability to set the marksweep allocation threshold
  • Added version checking to rbc loading.
  • Improve the details the VM can show about a CompiledMethod
  • New blog post: adam prescott on scopes in rubinius
  • Remove Moment, not in use.
  • Added -Xprofiler.output=name option.
  • Simplify FalseClass#^.
  • Ignore tooling/profiler generated Makefile.
  • Move profiler to generic tooling framework
  • Add rb_struct_getmember to CAPI
  • Add rb_alias to CAPI
  • Add rb_ary_to_ary to CAPI
  • BIG improvement for Time#, credit should go to meadow
  • Add tool for rendering call graph as HTML
  • Add @avibryant’s protobuf decoding benchmark
  • Update to latest OpenSSL extension from 1.8.7
  • Add ability to disable inlining a method preemptively
  • Bug Fixes:
  • Load correct digest file, fixes broken Rubygems
  • Fix Module#dup: use the direct_superclass instead of superclass
  • Fixing inplace edit when no backup extension provided
  • Add CodeLoader.compiled_hook, triggered after a source file is compiled
  • Ported OpenStruct fix from MRI.
  • Tag OpenStruct failures.
  • Let IO#each increase the line count
  • Memory allocated with ALLOC_N not freed by XFREE in edge cases
  • Add spec for File.owned? and fix a bug
  • Fixed memory leak, memory allocated by new[] was freed by delete instead of delete[]
  • Removed characters accessor from String.
  • Add ‘more correct’ -S flag for running gem commands in README
  • Add support for -i CLI option
  • Pick the proper local address to bind with
  • Stop currently running methods to fix profiler results
  • Fix SortedSet to ensure objects comparable with
  • Translate appendix-a-glossary.markdown to pt-br
  • Fixed rb_num2long, rb_num2ulong.
  • Reenter managed mode BEFORE creating an FFI result object
  • Honor Time subclasses in the right places
  • rbx report should not fail silently when Gist submission didn’t work
  • Add bounds checking to to_chars and make sure it’s 0 terminated
  • Add dummy P rules for pack/unpack
  • Have libc include a version number to deal with gentoo
  • Fixed File.directory?.
  • Allow rbx_meta_to_s to raise an exception
  • Make Module#const_get the proper arity (rails fix)
  • Fix Kernel#binding and it’s self(ish) rules
  • Freeze strings returned by ENV.[].
  • Fix = comparisons to avoid trivial object identity comparisons.
  • Bounds check and avoid c_str() in Regexp prims
  • Fix building with LLVM disabled
  • Add workaround for setting ruby_verbose / ruby_debug in C extensions
  • Fix render_profile, scripts, and thread runtimes
  • Use Type.object_kind_of? instead of Class.===.
  • Use object’s #respond_to? in Type.try_convert.
  • Add additional safety checks to using the data of a String in the vm
  • Correct mistaken usage of $stdin instead of $stdout in putc
  • Fix #source_location for methods defined using define_method.
  • Fix Marshal.dump for 64-bit Fixnum
  • Errno::ISCONN -> Errno::EISCONN
  • Marshal.load wraps NameError in ArgumentError
  • Fixed YAML parsing second fraction to microseconds from iso8601 date
  • Fix colliding Hash#entries method name
  • Fix build on OpenBSD
  • Fixed Array.slice!(0) for consecutive calls
  • Fix Enumerable.include?(obj) to use call e_item==(obj), not obj==(e_item)
  • Force LLVM to treat sandy bridge as core2