This is a biggy (too big in fact). It started as a change to allow arguments to be accessed directly from the stack, and turned into a monster. Arguments and some lvars can now be accessed directly from the stack, making them cheaper to create and use. This turned out to expose a large number of bugs in the VM related to stack access, as well as some in the GC. The big GC change here is that the mark/sweep GC is actually run now, as opposed to before when it would just allocated more and more memory (the source of memory issues I suspect).
…er a checkout and pristine copies of core and bootstrap will always be used to compile files.
>> a = [:call, [:const, :Ruby], :asm, [:array, [:str, "push 1\nsend puts 1", 0]]] In r1089: >> a[0,3] => [:call, [:const, :Ruby], :asm, [:array, [:str, "push 1\nsend puts 1", 0]]] Thats very wrong. In r1088: >> a[0,3] => [:call, [:const, :Ruby], :asm] Thats correct.
…strap and core. * Dumped using kernel/hints, the native/bytecode/system_hints.rb file now has the hints as a hash that is required by bytecode/compiler * A couple of changes to __loader.rb
PortableUContext provides [get|set|make]context on platforms that doen't implement it. We use it to provide the subtend setup operations rather than setjmp/longjmp.
From the top> make && make install && /usr/local/bin/rbx -v Edit shotgun/vars.mk to alter parts of the build process.
…defined in each statement are carried through to the next statement.
… have been replaced with bootstrap.rba and core.rba. Currently both are loaded automatically from main.
only when they need to be. Added more ignores too.
Long live the generational GC!
…an now save new CompiledMethod objects it generates to disk and reuse them later. Also added libzip and some primitives to use it to load files directly from zip files (what I'm calling .rba's for now).
Adds a bunch more stdlib functionality, including a first cut at Array#pack. Also added UI2N on the C side for convert an unsigned int.
…ted, but people can get a feel for their usage from looking at shotgun/lib/primitives/fixnum.rb
Big ol' commit! Lots of fun stuff in here: 1. Added the THANKS file. Everyone who donates money/time to rubinius goes in it. 2. Fixed up the runtime even more so that the compiler works! It's crashing on some things, but getting close! 3. Added ivar_as_index, which lets the compiler know how to map ivar access to fields in self. Makes the code A TON more readable.
finished cleaning up the use of unsigned long as the type for an object address.
…tests out of the box
Fixed ivar hash creation to be lazy and automatic, also supports an external ivars hash for objects which don't contain their own slot for them. (GC is currently broke for this though, oh well.) clasess now have an instance_flags field that is used to initialize the flags of it's instances.