Commits on Jan 27, 2014
  1. Update

    esstrifork committed Jan 27, 2014
  2. Very crude stack trace support for interpreted mode. Prevents some er…

    esstrifork committed Jan 27, 2014
    …rors, though.
    (E.g. for "erlang:halt()" in interpreted mode.)
  3. Make PP of binaries work again: Emulate write_binary_body/2 faithfully.

    esstrifork committed Jan 27, 2014
    This is a replacement for the earlier hack of emulating write_binary/2
    crudely, but we keep the "do not recurse" property.
    NB: This introduces an incompatibility with earlier translations of io_lib.
    Flush the jar from the cache...
Commits on Jan 24, 2014
  1. Make jnif compile (though not yet link) on Linux.

    esstrifork committed Jan 24, 2014
    Hoping this didn't break things for Mac...
Commits on Jan 20, 2014
  1. Make EFun{arity}Guard invocation work correctly.

    esstrifork committed Jan 20, 2014
    This is done by overriding invoke() rather than go().
  2. Add EFun specialization for guard functions (EFun{arity}Guard).

    esstrifork committed Jan 20, 2014
    This is to handle return value 'null' correctly; it has a different meaning for guards.
    Problems remain, though...
Commits on Jan 17, 2014
Commits on Dec 3, 2013
  1. Make the erlang:'div'/2 BIF return more specific type

    krestenkrab committed Dec 3, 2013
    This just improves type inference a tiny bit.
  2. Handle file:read_file/1 for an empty file

    krestenkrab committed Dec 3, 2013
    The file reading logic returned an error when
    reading an empty file.
    With this fix Erjang can run elixir+weber!
Commits on Dec 2, 2013
Commits on Nov 29, 2013
  1. Make sure `binary` BIFs are preloaded

    krestenkrab committed Nov 29, 2013
    This causes external calls to BIFs defined
    for `binary` to be invoked non-pausable, which
    has significant impact for tight-loop binary
Commits on Nov 28, 2013
  1. Updated kilim.jar

    krestenkrab committed Nov 28, 2013
  2. Special case binary matching BE sub-32-bit ints

    krestenkrab committed Nov 28, 2013
    This is a common fast-path that now gets code
    generated as ESmall. This should give the 
    VM a fair change to spot the temp objects.
    It would be ideal to be able to code generate it
    as int, but then we need to have more control over
    the case when such a type is later merged after
    a branch.
  3. Special case switch(n) for sets of integers

    krestenkrab committed Nov 28, 2013
    Elixir has some codegen (for unicode) that creates
    huge switches of integers, which all branch to one
    or two different targets.  
    This code special cases such code (that would
    otherwise be lookupswitch) so that we use one or
    two bit sets to determine the outcome. This reduces
    generated code size significantly for this particular
Commits on Nov 26, 2013
  1. Short-circuit tail calls

    krestenkrab committed Nov 26, 2013
    If function A calls B in tail position, make all
    call sites in A GOTO the same call code sequence.
    (Tail calls are never under exception handling)
Commits on Nov 10, 2013
  1. Fix the build

    krestenkrab committed Nov 10, 2013
Commits on Nov 8, 2013
  1. Misc cleanup

    krestenkrab committed Nov 8, 2013
Commits on Oct 24, 2013
  1. Complete the NIF API to 100%

    krestenkrab committed Oct 24, 2013
    With this batch of changes, all the enif_XXX
    functions in the NIF API should be complete.
Commits on Oct 13, 2013