ChangeLog
1.0.0-rc4
Brian Ford (73):
Updated MSpec source to 8537c769.
Updated CI specs to RubySpec 4fd07cfb.
Enable features for with_feature guard.
Updated CI tags for merged rubyspecs.
Updated CI specs to RubySpec 48fe98c6.
Fix Fixnum#/ coercion from #divide method (from Evan).
Updated CI specs to RubySpec 24ce35c0.
Updated MSpec source to 88d85da8.
Force configure to update version and release date.
Actually write config version to config.rb.
Added specs for masgn with to_ary rhs not calling #to_a.
Tag a, b = x failures pending decision on new insn.
Purged tags for non-matching specs.
Removed tags for passing specs.
Spec for a, b = x calling #to_ary on x.
Removed extconf.h from openssl.
Fix building ext if extconf.h is missing but Makefile exists.
Added stdin and snippet support to compiler CLI.
Added SexpPrinter to render an AST.
Added String#to_sexp and File.to_sexp.
Standardize some AST class names.
Fixed misspelling of snippet.
Use bin/rbx compile instead of bin/rbx describe.
Rewrote the defined? specs.
Fixed defined? for various literals.
Fixed defined? for assignments.
More defined? specs.
Fixed defined? for method receivers.
Some defined? specs for back_ref, nth_ref and stuff.
Fixed defined? for nth_ref and back_ref.
Specs for defined? with constants.
Load gem_prelude from loader.rb.
Refactored defined?() for when values are needed.
Fixed defined?() for constants.
Updated CI tag for description change.
Fixed wrong conflict resolution on rebase.
Small refactoring for Send node.
Fixed compiler specs for defined?() changes.
Small refactor for const_get/const_missing.
Cleanup AST for constants.
Fixed masgn for constants.
Fixed defined?() for self sends.
Updated compiler specs for defined?().
Quarantine more IO.new specs.
Patch from postmodern for LLVM prebuilt checksums. Closes #202.
Fixed sexp for class/module.
Revert IO.new quarantine to fix the specs.
Added #new_io and #new_fd mspec helpers.
Added #and_raise to mspec mocks.
Reworked some IOSpecs helper methods.
Use IOSpecs.closed_io helper in place of closed_file.
Fixed IO specs that used IO.new to alias system file descriptors.
Fixed IO#reopen.
Updated MSpec source to 60fa49cd.
Updated CI specs to RubySpec 2a1a307e.
Reworked handling DATA.
Updated CI tags for IO.
Updated MSpec source to 26e25432.
Updated CI specs to RubySpec 250cb801.
Added Rubinius.invoke_primitive compiler transform.
Improved compilation perf with smarter insn stream labels.
Removed some obsolete code from Generator.
Renamed CompilerNG -> Compiler finally.
Added generated opcode methods instead of #method_missing on Generator.
Reworked stack depth calculation and consistency checking.
Removed StackDepthCalculator.
Use bytecode values rather than symbols in cast_array optimization.
Improved performance of generating a compiled file.
Small optimization for processing nested generators.
Evan's fix for invoke_primitive glue generation.
Small opts for Bignum/Fixnum#to_s.
Use DependencyGrapher in C exts.
Updated CI specs to RubySpec a5abafc7.
Brian Lopez (2):
Add GzipFile#ended? as an alias of GzipFile#closed? for 1.8 compat
put the ended? alias in the wrong class
Charles Remes (2):
Add two new functions to C API to expose Regexp
Changed new RREGEX_SOURCE macro name to RREGEXP_SRC to match ruby 1.9.x
Dirkjan Bussink (13):
Use -fPIC for extensions on Linux by default
Fix a whole bunch of warnings in the OpenSSL extension
More friendly error when a large number of variables is used
Rework melbourne's var_table to use a std::vector
Remove now unused libev external library
Fix incorrect CAPI module specs
Add rb_hash_lookup to CAPI
Add specs for rb_hash_lookup
Remove tags for passing CAPI specs
Readd tags for apparently platform dependent specs
Add rb_mGC because sadly it's used in CAPI extensions
Rubinius needs > as the edge case, since we have a different FIXNUM_MIN
Add edge cases to Fixnum#*
Evan Phoenix (138):
Change version for release
Fix a couple of OS X package building issues
Add release:all task for release management sanity
Add ByteArray#utf8_char and use it to implement String#unpack
Add additional String#split spec
Fix String#split(//) via String#find_character
Add spec for String#gsub + $KCODE
Add spec for String#scan + $KCODE
Teach String#gsub and String#scan about $KCODE
Add String#[]= with Regexp specs
Fix typo
Add proper unicode support to Regexp
Begin pulling in the OpenSSL CAPI extension
Fix building the OpenSSL extension
Force some regexp's to be in Ascii
Add a reminder to update @config_version
Fix copying Frozen and Tainted flags
Merge branch 'master' of git@github.com:evanphx/rubinius
Add cast_multi_value instruction to deal with #to_a vs #to_ary
Reimplement $~, known as last_match.
Add more spec cases for when $~ is set
Add RBX_CAPI_DIR to assign in building extensions
Handle very long lines in the backtrace better
Lame rails ivar conflict fix
Lame rails ivar conflict fix
Fix Regexp#names to return an array of Strings, not Symbols
Change asserts() in interpreter to raise InternalError
Fix exception stomping bug in exception condition check
Lame rails ivar conflict fix
Add spec Autoload for running in an exception condition
StringScanner only return String's, never String subclasses
Add StringScanner test for class of returned values
Introduce better base64 encode/decoding
Update Rubygems to 1.3.6
Cleanup some conditions in #eval
Improve Globals (better hooks, better aliases)
Rails fix: Avoid subclass clash on #[]=
Fix bug in excluding ivars from the Marshal output
Rails fix: Avoid subclass clash on String#<<
Cleanup style of a couple of String methods
Fix $KCODE check
Make reporting the raise location of an exception more robust
Use $stdout for showing, to allow for specing
Fix defined?() checking for a local remote binding
Use underscore methods in defined?() to avoid overriding
Fix being able to specify a line of 1 or less to eval
Fix how $KCODE is checked
Fix method cache/method_missing bug
Fix compiler specs for using underscore methods in defined?
Change when .rbxrc is loaded, so it can be compiled
Fix Regexp#names ordering bug (must be in order of captures)
Flesh out Regexp.union cases
Fix Regexp.union
More Regexp#inspect cases
Fix Regexp#inspect from over-escaping
Spec the order of brace expansions in Dir.glob
Fix brace expansion order in Dir.glob
Fix Proc#binding to pick up the correct self
Don't use #sort! directly, a subclass can override it.
Fix Kernel.Float to be more restrictive
Add more Kernel.Float specs
Fix String#unpack('M')
Add multiline quoted-printable spec
Remove redundent over overtesting specs
raise NameError when hitting method_missing via a private send
Fix $! interactions with long return
Change the @message to @reason_message in Exception to avoid conflicts
Cleanup and flesh out Exception#message specs
Prune and quartine IO.new specs. IO.new is the devil.
Fix JIT bug wrt blocks as methods
Fix #clone, can't implement in terms of #dup
Don't use Array#[] internally to avoid subclass overrides
Maintain Array subclass in #reject
Remove deviates_on for Array#reject and subclasses
Fix typo Array#sort
Make Array#isort! easier to read
Fix ordering of value comparison in Hash#==
Add spec for value comparison order in Hash#==
Add frozen checks to Hash
Fix marshal when used on proxies that remove critical methods
Show file:line in Method#inspect
Call #method_added in #define_method
Add spec for #define_method/#method_added
Rails fix: Don't expect #metaclass to exist or work
Inspect the values rather than using #to_s
Include self:: in the NameError message
Add spec for #const_missing raising NameError
Fix when const_missing is called in defined?()
Clarify specs on defined?/const_missing
Check frozen before setting an ivar
Prevent JIT from accidentally treating a block like a method
rb_ll2inum should return a Fixnum for small values
Remove all caching of super sends
Clarify specs between Hash#== and Hash#eql?
Iron out differences between Hash#== and Hash#eql?
Disable the loop transform, make zlib a little more efficent
Assign exception handlers better
Rails fix: avoid calling an overriden respond_to?
Remember to flush the emit for a block before a super
Fix WeakRef bug. Fixes #216
Fix missing write_barrier calls in the JIT
Add specs for edges of Fixnum#** and Bignum#**
Add more logic to Fixnum#** and Bignum#**
Fix JIT exception handler calculation bug
Quiet down the gem install process
Fix really weird error in Linux g++ 4.3.2
Style fix
Fix strange finalizer bug
Implement proper pipe invocations in IO class methods
Add specs for pipe invocations in IO class methods
Use the correct StaticScope in instance_exec
Don't do critical work in assert! Fixes #197.
Add check when invoking an UnboundMethod. Fixes #32.
Keep track of what's from a vcall. Fixes #36.
Support sync'd writes properly. Fixes #48.
Add missing pos() calls in transforms. Fixes #164.
Minor fix of ftools specs (they need major help still). Fixes #166.
Finish phasing out using #metaclass in the kernel. Fixes #189.
Fix Backtrace from collapsing too many recursive frames
Don't trust Kernel#class in method_missing
Don't track subclasses. Fixes #11.
Lazily start the timer thread. Fixes #199.
Fix a few visibility problems. Fixes #219.
Fixes #224. Merged regexp changes from chuckremes/master.
Exclude some ivars in Exception's yaml output. Fixes #214.
Update C++ Argument objects with the GC. Fixes NASTY GC bug.
Fix bad asserts, add build:nodebug to use NDEBUG. Fixes #227.
Add minor optimization for detecting a substring
Fill out missing initializers in Argument constructors
Document we require pthread currently. Fixes #225.
Flesh out more of capi trying to build a number of extensions
Appease GCC 4.3
Merge OpenSSL changes from MRI
Clamp a random value better. Fixes #218.
Use the absolute path rather than a relative link. Fixes #205.
Use a fallback conversion in string_build. Fixes #34.
Bump version
Fix release task
Ivan Samsonov (15):
Update specs for Array#shift and Array#slice
Repair Array#slice and Array#shift
Speed up Array#inspect
Update specs for Enumerable#cycle and Array#cycle
Fix Array#cycle and Enumerable#cycle
Fix MatchData#inspect
Update spec for Array#hash: Add cases for same arrays with diffrent order
Improve Array#hash
Update defined? spec: defined? for private class methods should return nil
Tag failing defined? spec
Revert "Update spec for Array#hash: Add cases for same arrays with diffrent order"
Remove Hash#dup, since we don't need it
Add some specs for File::basename
Fix some cases for File::basename
Don't forget to close read pipe
Luis Lavena (4):
Removed dead code that refers to libev.
Updated external dependency libffi to 3.0.9
Made libgdtoa aware of runtime definition of RANLIB tool.
Made libtommath aware of runtime definition of RANLIB tool.
Matthew Draper (1):
Remove duplicate module_function call in kernel.rb
Michael Fellinger (2):
Spec behaviour of /g and /G options for Regexp
Implement /g and /G options for Regexp
Michael Neumann (1):
Fix bug with negative indices in Array#at
Sean Bryant (3):
add specs for capi methods added
adding capi functions to get ruby-odbc to work
clean up comments, remove deadcode. thanks matthewd from #rubinius
Sylvain Joyeux (2):
update spec for expand_path(a, b): fixes for 'b' being a relative path
fix File.expand_path(relative_path, relative_path)
1.0.0-rc3
Brian Ford (16):
Fixed building with LLVM disabled.
Moved release date into configure defaults.
Added config version to enable detecting stale configuration.
Updated MSpec source to ddf4bd5a.
Updated CI specs to RubySpec cdce2bd0.
Updated CI tags for merged rubyspecs.
Rewrote Kernel[.#]require specs.
Rewrote Kernel[.#]load specs.
Rewrote rbx-specific Kernel[.#]require specs.
Updated MSpec source to cb6e4ec4.
Rewrote rbx-specific Kernel[.#]load specs.
Fix invocation of shared Kernel#require/load specs.
Omit Kernel#require/load specs from CI for now.
Updated CI specs to RubySpec 10f861de.
Ensure flip-flop operators don't cause unbalanced stack errors.
Updated CI tags for merged rubyspecs.
Burke Libbey (1):
FIXED failing class variable-related specs in C API.
David Pinheiro (1):
Added support to http proxy when download llvm source.
Dirkjan Bussink (19):
There are no secret locals anymore
Throw a proper exception if a thread can't be created
std::tr1::hash is a feature added in GCC 4.1
Add Method#parameters and UnboundMethod#parameters following 1.9
Improve performance of Array#pack's X, see ticket #173
Use the already available 64 bit platform flag
Add spec to verify File.join doesn't mutate the first argument when to_str is used
Be sure we have a fresh copy and don't mutate the argument directly
Add spec for calling exit inside at_exit handler
Fix bug that caused an exception when calling exit inside at_exit handler
Remove tags for now passing specs
Add spec for Kernel#method where an object is extended
Kernel#methods didn't include methods added through extend
Expose rb_gc_register_address and rb_gc_unregister_address in CAPI
Return false if download is erronuous, for example with a 404
Add explicit casts when Fiber isn't supported
FreeBSD doesn't support sticky bit
Move ucontext detection to vm/detection.hpp
Fix ucontext for freebsd
Dmitriy Timokhin (1):
Really use llvm-config flags when building with system LLVM
Evan Phoenix (134):
Allow any (? in a regexp. Fixes #146
Fixes #148. Investigate better escape detection
Add spec for eval/__FILE__ stomping behavior
Don't change a StaticScope in eval. Fixes #149.
Remove using Object#id
Improve File.join performance 5x
Try and report the class a block is in better
Add String#find_string_reverse
Improve String#rindex significantly
Style fix
Remove -P argument, it never worked right
Fix Pathname performance bug
Add missing File.dirname test case
Don't bother outputting anything in benchmarks
Improve File.basename and File.dirname by 75x
Incorporate MRI's custom time_t calculator
Add spec for method_missing + super behavior
Fix method_missing + super behavior. Fixes #157.
Kludge around an immix memory increase boundary case
Big memory usage cleanup
Delete IR after JIT'ing unless -Xjit.debug
Add GC finalization support, fix IO close-on-cleanup bug
Add missing file
Fix profiler bug crash when it sees eval'd code
Speed up File.extname
Speed up String#each_line and String#index
Fix spec description, add another test case
Don't reset promotions, we loose stats.
Fix non-proxy case in configure
Fix JIT block inlining (restricted)
Remove Undefined constant all together
Call StringValue in Dir.mkdir and Dir.rmdir
Fix Time#+ rounding microseconds
Fix how Kernel.require creates a LoadError (rails fix)
Add specs for cases found running active_support
Disable JIT'd code cleanup, it's totally broken
Simplify locals in VariableScope
Fix JIT code unloading
Fix docs a little
Add String#to_inum support for soft bases. Fixes #163.
Cleanup the style and comment String#partition
Fix and expand the Module#include specs
Fix Module#include. Fixes #170.
Add Module#include spec for cache effects
Clear the method cache on Module#include
Fix Module#module_function eval interactions
Fix spec bug in autoload. Autoload uses require internally.
Remove Module#autoload tags
Add missing file
Cleanup GC specs, remove useless tests.
Stub out GC methods, pass all specs.
Use mock_numeric rather than NumericSub
Clarify edge case in Numeric#coerce specs
Fix Numeric#ceil and Numeric#floor
Add Numeric#coerce class checking
Get the numeric tower more compatible with MRI.
Fix UnboundMethod#name to return a String, not a Symbol
Fix some Enumerable edge cases
Clean up Comparable
Remove Range tags
Fix Method#name to return a String
Fix coercion of the argument to Kernel.exit
Remove some Numeric tags
More Numeric tower revisement
Finish cleaning up Numeric failures
Fix IO#print spec to actually test IO#print
Remove IO#print tags
Cleanup the IO#print specs
Cleanup IO#ungetc spec
Cleanup IO#pos=, IO#pos, and IO#seek specs
Fix a whole bunch of IO failures, implement IO#ungetc
Remove errant boundary use, use mock for real test
Remove boundary case
Move Frozen and Tainted to the header, add Ruby.check_frozen
Add a proper guard, expand the 1.8 case
Fix finalizer spec to use captureless proc
Add ObjectSpace.find_object, implement other OS methods
Add ability to store object_id in the header (64bit only)
Refactor System::vm_find_object into it's own file.
Correct a Mutex#lock spec (Mutex is not recursive)
MemoryPointer#address should report signed pointers
Update spec tags
Remove redundent fails tag
Fix Socket#accept
Inliners changed name
Minor cleanup
Check that something is a reference before using it
Use a std::map for marking rather than the header
Improve how the stack depth is checked
Update LLVM generated type info
Add experimental Fiber support
Improve arguments to Fiber.yield and Fiber#resume
Add Module#append_features spec for cyclic includes
Detect cyclic includes properly. Fixes #33.
Fix Resolv specs to not depend on DNS
Add spec for super/alias_method interaction
Fix the super/alias interaction problem
Support early exit from #find_object. Fixes #179.
Add rb_define_global_const to C-API
Add rb_big2ll to C-API
Stub out rb_gc() in C-API
Implement rb_obj_freeze and rb_str_freeze in C-API
Fix rb_str_freeze to return the object passed in
Add ULL2NUM alias for rb_ull2inum
Improve range check for rb_big2ll
Remove errant NULL check
Refactor code out of rubinius::VM
Remove Globals& from VM
Remove VM::mailbox_
The beginning of the core benchmarks
Fix segfault in exiting before JIT actually runs
Reformulate find_candidate
Fix latent typo in Float#== inlining. Fixes #185.
Exception#exception is crazy. Fixes #168.
Cleanup backtraces, add Exception#capture_backtrace!
Speed up String#inspect, implement KCode support
Cleanup Globals.set_hook API
Speed up String#capitalize by using String#escape
Rename String#escape => transform, speed up String#downcase
Only flatten recursion on the same line in the same method
Fix Gem.path to include Gem.user_dir, not Gem.user_home
Fix marshal_dump/_dump ordering issue
Fix Range#=== to use <=>, like MRI.
Respect gmt properly in Time, round a Float in #at() properly
Report immediate values diffrently in NoMethodError#message
Additional Marshal specs (marshal_dump related)
Spec for Range#===, showing <=> must be used
Fix Time#_dump spec
Respect gmt in Time's parsing
Full retooling of Time
Add a few Time edge cases
Fix spec failures on 32bit Linux
Change version for release
Fix a couple of OS X package building issues
Graham (1):
Updated spec for issue when raising an object instance with a message
Ivan Samsonov (11):
Fix String#hex spec
Fix format cases with % u and %+u. Fixies #162
Implement String#partition. Fixies #165
Implement 'w' directive for String#unpack
Speed up Array#pack, String#unpack, and String#rpartition
Repair $~ variable
Add spec for checking that rpartition affects $~
Updates specs for method#arity and proc#arity
Fix some cases for method#arity and proc#arity
Spec for checking that defined_method is private
defined_method should be private
Marc-Andre Lafortune (6):
Array#product: Fixing implementation. Should even be quicker...
Fix recursion for Array#hash, Hash#hash, Struct#hash, #<=>, #eql?
Removing obsolete libs (1.8.7, 1.9)
Thread.detect_outermost_recursion: Fix error spotted by Evan and make much nicer
Array#product: cleaner style
ENV.index: implementation
Mikko Perttunen (2):
Updated specs for Enumerator#each_with_index.
Fix Enumerator#each_with_index.
Yehuda Katz (2):
Add a test that chdir should call to_str on an object if a block is given
call StringValue on the call to chdir whether a block was given or not