February

15

Progress Report

We’ve been in lurk mode for the last few months, but progress continues. Here are some highlights:
  • The VM was ported from C to C++, allowing some smarter handling by the VM of Slate pointers, which means that our GC is now precise instead of just conservative.
  • Syntactic support for *rest parameter passing in message sends was added, by sequestering the comma (“,”) as special syntax which goes after optional keywords and the main message phrase. Now, collections can be instantiated via, say, “Set new*, 1, 2, 3, 3“, for example. The ”,” selector for creating Points is now named “<>” to avoid collision.
  • Various inefficiency fixes which each resulted in a 10-15% speed gain were implemented. The VM is now substantially faster than a few months ago.
  • A simple inliner (not a JIT) which uses simple type inference to inline bytecode methods to produce inlined versions of the original method has been implemented. It is not yet robust enough to handle optional-argument passing, but is otherwise stable and useful.
  • Further updates are in development: a module system inspired by some recent work in Javascript, better support for concurrency, and trying to adapt interesting parts of the recent “Xtreams“ Smalltalk stream protocol for better inherent stream performance.
RSS Feed

No comments yet.

Leave a comment

« |

google