Brian T. Rice
unread,Feb 2, 2010, 3:42:00 PM2/2/10Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to slate-language
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 for
production use; we're still tracking down a bug that rears its head
during bootstrap, and it punts on optional keyword passing.
- Further updates which are still being worked out. I'm working on a
module system inspired by some recent work in Javascript, better
support for concurrency, and trying to adapt the recent "Xtreams"
Smalltalk stream protocol to Slate for better inherent stream
performance.