Latest news

70 views
Skip to first unread message

Brian T. Rice

unread,
Feb 2, 2010, 3:42:00 PM2/2/10
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.
Reply all
Reply to author
Forward
0 new messages