New Release of Essence#: ‘Lot’ (Alpha Build 7)

‘Lot’ is a reference to the Biblical personage known in English as Lot, son of Haran and brother of Abraham and Nahor. In Hebrew, the name means covering, and derives from the verb-root lut, which means to wrap or envelop.

The name ‘Lot’ was chosen for this release both because of the Biblical naming theme that’s been established for the Essence# Alpha releases (‘Eden,’ ‘Babel,’ ‘Ark’,) and because the focus of the release is Collections (which wrap, envelop or contain things.) Note that the ‘Lot’ release immediately follows the ‘Ark’ release, just as the story of Lot immediately follows that of Noah in the Hebrew scriptures :-).

Until this release, the support for collections provided by Essence# was limited to Arrays, Dictionaries and IdentityDictionaries, along with basic operations on CLR collections (e.g., #size, #at:, #at:put:, #do:, #from:to:by:do:, #keysAndValuesDo:, and a few other basic operations of that sort, all of which were implemented virtually by the dynamic binding subsystem.)

The Lot release adds most of the standard methods to the abstract classes in the Collection class hierarchy, both for native Essence# collections such as Arrays and Dictionaries, and also for all the CLR collection types.

This release also provides an implementation for Set and OrderedCollection–both of which are actually implemented using the CLR types System.Generic.Collections.HashSet<Object> and System.Collections.Generic.List<Object>. That design choice provides the obvious benefit of maximizing performance, and the perhaps not so obvious benefits of a) maximizing interoperability and b) documenting how to “adopt” a CLR type so that it looks and acts in all respects as though it were native to Essence#.

The release also includes many important bug fixes. It can be dowloaded from the Essence# CodePlex site.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s