[squeak-dev] The Inbox: Environments-cwp.1.mcz

Colin Putney colin at wiresong.com
Fri Jul 20 19:26:43 UTC 2012

On Fri, Jul 20, 2012 at 11:55 AM,  <commits at source.squeak.org> wrote:
> A new version of Environments was added to project The Inbox:
> http://source.squeak.org/inbox/Environments-cwp.1.mcz
> ==================== Summary ====================
> Name: Environments-cwp.1
> Author: cwp
> Time: 20 July 2012, 11:55:20.793 am
> UUID: aa58b5e6-eb76-4ef3-9299-e2407616aebe
> Ancestors:
> Introduce environments.

This is a first step: basic implementation of Environment, plus a test
case (Tests-cwp.150) and a tweak to LookupKey (Collections-cwp.470)
that's necessary to let the tests pass.

Here's how I see the roadmap:

Replace SystemDictionary
    - move these packages over to trunk
    - replace the SystemDictionary in Smalltalk globals with an
Environment (see Environment class>>install)
    - fix bugs and tweak code that manipulates globals

Refactor the Compiler
    - introduce CompilationContext and the protocol that uses it
    - make the existing public protocol of Compiler call through the
new protocol
    - fix bugs and tweak Compiler clients where that makes sense

Implement FileIn
    - Introduce EnvironmentLoader
    - refactor the fileIn code to use it
    - fix bugs and tweak fileIn clients where that makes sense

Implement tool support
    - Update Browser and friends to be environment-aware
    - Update Monticello to be environment-aware
    - fix bugs

I think those are major bits needed for Squeak 4.4. There are
undoubtedly pieces that aren't obvious now, but I doubt there's
anything big hidden in the weeds. Note that there's nothing here that
requires multiple environments, or even exposes environments to the
casual programmer. Squeak 4.4 should ship with a single environment,
plus the capability to create more, if you know what you're doing.


More information about the Squeak-dev mailing list