Updates since the latest release
Brian Rice
water at tunes.org
Sun Jun 19 23:45:10 PDT 2005
One more note: configure.in was renamed to Makefile.inc. I used the
darcs mv command, so your local changes should be preserved safely.
On Jun 19, 2005, at 10:22 PM, Brian Rice wrote:
> I've been remiss in keeping you all posted. There are new images
> up, no VM changes.
>
> Summary:
>
> * %-prefix for expressions and selectors now makes properly
> deferred messages. Concurrency is as in E, minus a lot of
> complications right now - just the simplest thing that works. I'm
> still working on the manual updates. The only Process ("Vat" in E
> terms) is REPL driven, running one big loop per REPL turn. All of
> this will improve over time.
>
> * "repl noviceMode" toggle to suppress the debugger (on by default).
>
> * define: with optionals &builder: to call define:using: or
> &parents:&slots: to replace addPrototype:derivedFrom: and bunches
> of simple addSlot:valued: calls. Also, ensureNamespace and
> ensureDelegatedNamespace: now take &slots: (making immutable ones).
> &slots: takes an array of Symbols or Associations (made with ->
> binary selector) between symbols and initial values. I'll shift the
> libraries over to use these; they're shorter and more
> encapsulating, and so people don't fixate on which form to use for
> definitions.
>
> * ExternalPrimitivesHolder as a facade for ExternalLibrary stuff.
> See the end of extlib.slate or the FFI wiki page: http://
> slate.tunes.org:8080/wiki/60
>
> A bunch of fixes and new features...
>
> Here are the NEWS contents just to keep things "brief":
>
> - Added a noviceMode switch slot on the REPL which suppresses the
> Debugger
> for errors encountered as a result of REPL expressions.
> "repl noviceMode: False" disables it.
> - Extended the Parser's error reporting with check: token is:
> {types} and
> expected:butFound: to standardize and clarify Parser error-
> reporting.
> - Added a Converter abstraction with >> support, as well as a Base64
> encoder/decoder in converter.slate.
> - Added a `math macro to handle convential precedence assumptions
> in arithmetic
> code. It however will not handle non-arithmetic code within yet.
> - Fixed the QuickSort algorithm in Sequence sortFrom:to:by: to not
> require
> two executions to reach final sorted state.
> - Added String 'sorted' method.
> - Added Method "adverbial" (called so after their APL/K language
> origins)
> methods: reducer, collector, acrosser, selecter, tracer, injector,
> converger which turn their respective Collection method normal
> variants
> into blocks with the argument block filled-in with the receiver.
> - Added Root converge: which takes a block and runs it on the
> object and
> results until there is a fixed-point or cycle of values.
> - Added Collection trace: which acts like inject:into: but returns
> all the
> intermediate values.
> - Added Method across: Collection which applies the block to matching
> elements of collections in the argument. If it's a binary block, it
> works like reduce:, otherwise the block's arity should be the
> same as
> the number of collections in the argument.
> - Added a Namespace 'new' method.
> - Added &slots: to ensureNamespace: and ensureDelegatedNamespace:
> for the
> simple construction case of a Namespace of simple (immutable)
> values.
> - Added define:&parents:&builder:&slots: to wrap the varying ways
> to define
> immutable and well-known objects and derivations (&builder: triggers
> define:using: but the other two optionals are suitable for
> derivation
> customization).
> - Cleaned up define:using:.
> - Added ExternalPrimitivesHolder as a facade for ExternalLibrary
> facilities
> that are reasonably regular.
> - Cleaned up and simplified the SDL backend, also turning it into a
> plugin.
> - Fixed/cleaned-up AutoLoader database code.
> - Added LineStream R/W/RW variants as attributes / wrappers of R/W/
> RWStreams;
> each LineStream takes/emits whole lines as elements. The generic
> accessor
> "lines" on a Stream instantiates an appropriate type. Reading
> from this
> Stream type will auto-detect line endings.
> - Added Everything and Nothing as PredicateCollections.
> - Made Sequence rotate/rotated efficient, and added
> shiftFrom:by:count:,
> replaceFrom:with:, and reverse (in-place variant of reversed).
> - Fixed Sequence first:/last: to work for N > sequence size.
> - Added Sequence endsWith:, includesSubSeq:.
> - Added UniqueNumber to refactor Infinities and Epsilons.
> - Fixed the SourceWriter's usage of parentheses, and the Parser's
> output of
> them (this did not affect compilation).
> - Added a default grow method for ExtensibleSequences.
> - Added E-style language concurrency, using % to prefix message
> selectors or
> expressions as a whole for deferred-resolution, with dependency
> management
> for nested-eventualness. See concurrency.slate; the initial
> Process used is
> currently REPL-driven.
>
> Enjoy! :)
--
-Brian
More information about the Slate
mailing list