We've pushed out a new release to code.pyret.org
language-feature-wise, will be stable for the fall semester. We still have
some UI improvements and a few enhancements that may show up in the next few
weeks that don't change the language. Aside from a few new keywords and
library functions taking up space that identifiers may have used before, there
aren't any backwards-incompatible language or API changes.
We'll again do feature-by-feature announcements every few days, with a summary
here. Most of these features have been in nontrivial use over the summer on
the development branches, and are efforts we're rolling out to push the
language in new directions.
- We've added an entirely new datatype, called _tables_ to the language. Their
documentation is at
We'll be sharing more examples and tutorial-like materials on tables in the
Tables' syntax is still a bit experimental, and may change based on what we
learn from using them this year. However, we're pretty excited about some of
the things we can pull off with a tabular, data-manipulation primitive in the
language, so tables themselves are here to stay.
- The world library has been redesigned and extended into a new construct
The main new feature here is programmatic control over interaction with the
event-loop, taking steps towards event loops as first-class values. It also
has some useful functions for examining the traced output of an interaction.
Note that the existing world library (with big-bang) is still supported;
we'll announce clearly when and if we make plans to deprecate it.
- We've extended tuple bindings so they can appear anywhere normal bindings
- The type checker, while still in beta, has gotten better at local inference
and generally hardened and robustified. Do try it out if you haven't
- Documentation formatting and presentation has been improved in several
places, especially in documenting language forms (though we're aware that
there's still a lot to do to improve documentation).
The Pyret Crew