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