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