Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Commits on Jul 16, 2010
  1. Julien Desrosiers
Commits on Jun 5, 2009
Commits on May 3, 2009
  1. Implement method_missing. Required a couple ugly tweaks in the byteco…

    authored
    …de execution. I'm starting to hate the design for method lookup -> call... Need something better!
    
    LOOKUP instruction will now store the call site on the C stack, not in the regs. I'm not sure if this is bad or not, but since LOOKUP/CALL instructions are always next to each other there's no way this could not work, right, riiiight?
    Also, I found out that a CallSite was created on heap (and never freed) each time a polymorphic call is made, this is an important bug and will require rethinking the method lookup structure in the VM.
    RE method_missing, I got it to work by pading the arguments w/ an empty slot first.
    
    Normal call:
     reg   value
     ===========
     0     receiver
     1     nil
     2     arg #1
     3     arg #2
    
    Method missing call:
     reg   value
     ===========
     0     receiver
     1     method name (replace by CALL instruction)
     2     arg #1
     3     arg #2
    
    You see that most of the time, reg[1] is not used, that's not a big deal since we got plenty of registers left. The compiler needs to set the maximum number of register to be used so we have to set it to the max possible (+1, max number of args).
    
    That is all...
    
    w/ love,
    m-a
Commits on Apr 27, 2009
Commits on Apr 22, 2009
Commits on Apr 21, 2009
Commits on Apr 20, 2009
  1. Propagate exception in frames.

    authored
    Initialize all fields in call frame.
Commits on Apr 17, 2009
  1. Merge branch 'master' into raise

    authored
    * master:
      Store call frames as a linked list and stack on the C stack.
    
    Conflicts:
    
    	vm/call.h
    	vm/vm.c
  2. Store call frames as a linked list and stack on the C stack.

    authored
    Fix khash bug when replaving an existing value w/ the same key.
Commits on Apr 16, 2009
  1. Implement non local return.

    authored
    Add break instruction.
Commits on Apr 15, 2009
Commits on Apr 13, 2009
Commits on Apr 12, 2009
  1. Move inlined functions frequently used in the method calling process …

    authored
    …to call.h.
    
    To be reused to implement proper tr_send and Object#send.
Commits on Apr 11, 2009
  1. Add RegexpError.

    authored
  2. Merge branch 'master' into error

    authored
    * master:
      Add benchmarks for regexp and array.
      Update Makefile and REAME for new bundled PCRE lib.
      Vendor PCRE
      Remove peg binaries
      Add installation note about libpcre on Linux
      Ignore compiled files in vendor/peg
      Freeze peg instead of a git submodule
      Rexexp Rexexp Rexexp Rexexp Rexexp Rexexp!!! ZOMG!
    
    Conflicts:
    
    	Makefile
    	vm/grammar.leg
    	vm/tr.h
Commits on Apr 10, 2009
  1. Vendor PCRE

    authored
Commits on Apr 9, 2009
  1. Remove peg binaries

    authored
  2. Rexexp Rexexp Rexexp Rexexp Rexexp Rexexp!!! ZOMG!

    authored
    I'm using PCRE and it's not bundled cause I'm having lots of
    problems compiling from source. So you need to install it by
    youself for now.
    
      sudo port install pcre
Commits on Apr 8, 2009
Something went wrong with that request. Please try again.