SISC 1.10.0-alpha, the first non-stable release since the 1.9 series, is
now available from the SISC website. This release contains a couple
very exciting enhancements, but for suspense I'll start with the
features:
* The OO system has been simplifed by removing slot initializers
and default values.
* DEFINE-CLASS's syntax has been simplified.
* An implementation of DEFINE-VALUES which works correctly at
the top level and in lexical scopes.
* DEFINE-METHOD definitions are now really definitions, so
they play well with modules.
* LET-MONOMORPHIC allows definitions in its body, more like LET.
* S2J proxy definitions may refer to classes defined in the same
module/scope.
* SRFI-40 is now supported.
* Added the PERMISSIVE-PARSING parameter, which when enabled,
causes the parser to issue warnings rather than errors for
most parsing problems. Helpful for debugging.
* Many bug fixes (all of which are being backported to the stable
tree).
The big architectural improvement in the 1.10 series is the addition of
optimistic microexpressions. This is a framework for optimistically
compiling in more efficient micro expressions which can be backed out at
runtime if the assumptions they make turn out to be false. Initially,
this framework is being used for the fixable primitive inlining of 1.9.
If you recall, in 1.9, using INLINE-USUAL-PRIMITIVES, a more efficient
primitive call microexpression could be used, resulting in a 30-50%
performance boost, but at the expense of not being compatible with R5RS
because it prevents those primitives from being redefined. Now, we will
always *optimistically* emit those efficient calls, and we can detect if
the primitive is redefined and back the change out. This means that
that 30-50% boost is now R5RS compliant, and all code can benefit from
it. I'm anxious to see this tested in the real world, to uncover any
unsightly bugs.
Enjoy,
Scott
--
pgpt48BV1LQxI.pgp
Description: PGP signature
|