1. 31 May, 2018 1 commit
  2. 09 Dec, 2017 1 commit
    • Yorick Peterse's avatar
      Added basic keyword argument optimisation · 91e9b274
      Yorick Peterse authored
      The pass OptimizeKeywordArguments replaces keyword arguments with
      positional arguments whenever the keyword arguments are passed in the
      same order as they are defined. This should reduce the need for special
      VM instructions for most message sends that involve keyword arguments.
      91e9b274
  3. 21 Sep, 2017 1 commit
    • Yorick Peterse's avatar
      Improve code generation and bootstrapping · d8d3a23e
      Yorick Peterse authored
      The bootstrap module no longer defines any objects magically, allowing
      for the VM to finally run the bytecode files without crashing (ignoring
      any instructions not yet supported by the compiler).
      d8d3a23e
  4. 19 Sep, 2017 1 commit
  5. 12 Sep, 2017 2 commits
  6. 30 Aug, 2017 1 commit
  7. 04 Aug, 2017 1 commit
  8. 28 Jul, 2017 1 commit
    • Yorick Peterse's avatar
      Start moving the compiler to Ruby · cdcecbe6
      Yorick Peterse authored
      While Rust is a great language overall, I wasn't making as much progress
      writing a compiler in it as I hoped for. In particular I found myself
      fighting Rust more often than should be necessary. Perhaps I am to
      blame, perhaps Rust was too strict.
      
      Either way, since the goal is to make the compiler self hosting there's
      no point in spending months trying to implement a Rust based compiler.
      As such I decided to write the compiler in Ruby. Ruby has many flaws,
      but it makes it much easier to quickly write a compiler without having
      to fight the language all the time, at the cost of the occasional
      runtime error during development. For example, porting over most of the
      Rust code _and_ using a linear IR (instead of the tree IR used in the
      Rust compiler) only took a few days.
      cdcecbe6