3.6 "full" packages
Colin Putney
cputney at wiresong.ca
Thu Jul 31 19:02:01 UTC 2003
On Thursday, July 31, 2003, at 08:41 AM, Lex Spoon wrote:
>> Still with the following approach if you have the declarative object
>> you can load a code without installing it. and if you want to have
>> that
>> with the chunk format for class you have to introduce
>> PseudoClass too. So the question is really what should be the
>> precondition we want in terms of code representation.
>
> True, but things like PseudoClass aren't a big deal to implement and in
> fact someone has already implemented them for Squeak. People
> overestimate the difficulty of parsing the handfull of chunk-types that
> the a changeset can emit.
>
>> From scratch, your way looks better.
Hi guys,
You seem to be designing a new file format here, but I sort of missed
the 'why' part. Would you mind explaining the motivation to me?
If you look at a Monticello fileout, (.mc or .mcv, they're quite
similar), you'll see that we've done something very similar to
Stephane's proposal. Here's a (reflexive) example:
MCClassDefinition
name: #MCClassDefinition
superclassName: #MCDefinition
category: #'Monticello-Modeling'
instVarNames: #('name' 'superclassName' 'variables' 'category' 'type'
'comment' )
classVarNames: #()
poolDictionaryNames: #()
classInstVarNames: #()
comment: ''!
And yes, we do have the option of treating it declaratively or
imperatively. Normally Monticello parses it declaratively, and you can
(among other things) browse the definitions without loading them. We
also have a small bootstrap loader that just creates the equivalent
structures in the image.
You're right Lex, that parsing this type of file format isn't very
difficult. The limiting factor, I think, is that the Squeak runtime
uses a pretty bare-bones model of Smalltalk code, one that is just
adequate for running Squeak. This kind of file format is a bit better
than a regular fileout because the chunks are self contained; they
don't rely on, for example, #methodsFor:timestamp: chunks earlier in
the stream. But semantically, it's exactly equivalent to a regular
fileout.
There are a lot of things I'd like to do with Monticello that just
aren't possible (yet) because the code model, whether expressed
declaratively or imperatively, can't encompass them.
So, depending on what you'd like to accomplish with a new file format,
it may also be necessary to work on the Squeak runtime.
Colin
More information about the Squeak-dev
mailing list
|