Classboxes

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Classboxes

Gilrandir
Hi all,
i'm looking for a decent module system for Squeak and i'm playing with
Classboxes - they seem to be ideal - it's still pure Smalltalk, they
work together with Traits, but there seems to be something broken: in
Classbox>>scope is an attempt to instantiate a class named Environment,
which is nowhere to be found - the base environment seems to be the
Smalltalk system dictionary itself, but i have no idea, which class
should replace it in the Classboxes. The full method source is:
Classbox>>scope
        ^ scope ifNil: [ scope _ Environment new]
...is there a definition of this class somewhere? Or how should it look
like, if it should "replace" the system dictionary for the different
classboxes?
Thanks for any help.
Viktor Svub

Reply | Threaded
Open this post in threaded view
|

Re: Classboxes

Lex Spoon-3
Gilrandir <[hidden email]> writes:
> Hi all,
> i'm looking for a decent module system for Squeak and i'm playing with
> Classboxes - they seem to be ideal - it's still pure Smalltalk, they
> work together with Traits, but there seems to be something broken: in
> Classbox>>scope is an attempt to instantiate a class named
> Environment, which is nowhere to be found


I don't think Classboxes is maintained.  For experimentation, you
should dig up the correct older version of Squeak for it -- does
anyone know what that would be?  If you want to continue using them
beyond experimentation, then either you need to use it with the old
version of Squeak, or you need to update it personally.


By the way, there are some other module-related tools that are
actively maintained.  Monticello is a great for managing code given
the current Squeak design; it won't prevent clashes between packages,
but at least it will tell you when they happen.  Package universes is
my toolkit for helping people manage sets of mutually compatible
packages; given such a toolkit, the need for a good module system is
lessened.


-Lex



Reply | Threaded
Open this post in threaded view
|

Re: Classboxes

Gilrandir
Lex Spoon napsal(a):

> Gilrandir <[hidden email]> writes:
>> Hi all,
>> i'm looking for a decent module system for Squeak and i'm playing with
>> Classboxes - they seem to be ideal - it's still pure Smalltalk, they
>> work together with Traits, but there seems to be something broken: in
>> Classbox>>scope is an attempt to instantiate a class named
>> Environment, which is nowhere to be found
>
>
> I don't think Classboxes is maintained.  For experimentation, you
> should dig up the correct older version of Squeak for it -- does
> anyone know what that would be?  If you want to continue using them
> beyond experimentation, then either you need to use it with the old
> version of Squeak, or you need to update it personally.
>
I'm pretty sure Classboxes is not maintained anymore, though in my
opinion, it't "the module system for Squeak, done right" and i'd like to
test to use it myself. I don't know which version of Squeak is the right
one, and i wanted to update it fo 3.9 - but i'm not able to infer, which
class should i use instead of Environment or how to work around this.

>
> By the way, there are some other module-related tools that are
> actively maintained.  Monticello is a great for managing code given
> the current Squeak design; it won't prevent clashes between packages,
> but at least it will tell you when they happen.  Package universes is
> my toolkit for helping people manage sets of mutually compatible
> packages; given such a toolkit, the need for a good module system is
> lessened.
>
I kind of really like the Squeaks' module and packaging tools, but it
just doesn't feel right to me - i don't like to depend of any tools of
this kind, without the "real" low-level (or first-order, i'm not sure
how to put this in english) facility backing them.

>
> -Lex
>
Though i'm not looking for a solution rigth now, but just for a way to
get Classboxes going, thank you :)

Viktor Svub

Reply | Threaded
Open this post in threaded view
|

Re: Classboxes

Bergel, Alexandre
In reply to this post by Gilrandir
Hi!

I am the author of Classboxes.
An classbox-ified squeak image is available on http://
www.iam.unibe.ch/~scg/Research/Classboxes/classbox.zip

To get into it, a tutorial is available:
http://smallwiki.unibe.ch/classboxes/classboxtutorial/

The squeak version of classboxes is not maintained anymore. The main  
reason stems from the complexity of making all the development tools  
classbox aware. I made a browser, but the inspector and the debugger  
need to be adjusted, which represent a significant amount of work...

Cheers,
Alexandre


Am Feb 10, 2007 um 10:21 PM schrieb Gilrandir:

> Hi all,
> i'm looking for a decent module system for Squeak and i'm playing  
> with Classboxes - they seem to be ideal - it's still pure  
> Smalltalk, they work together with Traits, but there seems to be  
> something broken: in Classbox>>scope is an attempt to instantiate a  
> class named Environment, which is nowhere to be found - the base  
> environment seems to be the Smalltalk system dictionary itself, but  
> i have no idea, which class should replace it in the Classboxes.  
> The full method source is:
> Classbox>>scope
> ^ scope ifNil: [ scope _ Environment new]
> ...is there a definition of this class somewhere? Or how should it  
> look like, if it should "replace" the system dictionary for the  
> different classboxes?
> Thanks for any help.
> Viktor Svub
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.cs.tcd.ie/Alexandre.Bergel
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




Reply | Threaded
Open this post in threaded view
|

Re: Classboxes

Bergel, Alexandre
In reply to this post by Gilrandir
The class LocalRebindingTests contains few tests. You will find a  
relevant one below.


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
testClassExtension5
        "self run: #testClassExtension5"
        "Message sent"
        | cx1 cx2 |
        cx1 _ self createClassboxNamed: #CX1.
        cx2 _ self createClassboxNamed: #CX2.
        "----"
        cx1 import: #Object from: system.
        cx1 createClassNamed: #TestCXA.
        cx1 createClassNamed: #TestCXB.
        cx1 createClassNamed: #TestCXC.
        cx1 addMethod: 'foo ^ TestCXB new foo' for: #TestCXA.
        cx1 addMethod: 'foo ^ TestCXC new foo' for: #TestCXB.
        cx1 addMethod: 'foo ^ 1' for: #TestCXC.
        "----"
        cx2 import: #Object from: system.
        cx2 import: #TestCXC from: cx1.
        cx2 addMethod: 'foo ^ 2' for: #TestCXC.
        cx2 import: #TestCXA from: cx1.
        "----"
        self assert: (cx1 evaluate: 'TestCXA new foo') = 1.
        self assert: (cx2 evaluate: 'TestCXA new foo') = 2.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Cheers,
Alexandre

Am Feb 11, 2007 um 6:10 PM schrieb Viktor Svub:

> Lex Spoon napsal(a):
>> Gilrandir <[hidden email]> writes:
>>> Hi all,
>>> i'm looking for a decent module system for Squeak and i'm playing  
>>> with
>>> Classboxes - they seem to be ideal - it's still pure Smalltalk, they
>>> work together with Traits, but there seems to be something  
>>> broken: in
>>> Classbox>>scope is an attempt to instantiate a class named
>>> Environment, which is nowhere to be found
>> I don't think Classboxes is maintained.  For experimentation, you
>> should dig up the correct older version of Squeak for it -- does
>> anyone know what that would be?  If you want to continue using them
>> beyond experimentation, then either you need to use it with the old
>> version of Squeak, or you need to update it personally.
> I'm pretty sure Classboxes is not maintained anymore, though in my  
> opinion, it't "the module system for Squeak, done right" and i'd  
> like to test to use it myself. I don't know which version of Squeak  
> is the right one, and i wanted to update it fo 3.9 - but i'm not  
> able to infer, which class should i use instead of Environment or  
> how to work around this.
>
>> By the way, there are some other module-related tools that are
>> actively maintained.  Monticello is a great for managing code given
>> the current Squeak design; it won't prevent clashes between packages,
>> but at least it will tell you when they happen.  Package universes is
>> my toolkit for helping people manage sets of mutually compatible
>> packages; given such a toolkit, the need for a good module system is
>> lessened.
> I kind of really like the Squeaks' module and packaging tools, but  
> it just doesn't feel right to me - i don't like to depend of any  
> tools of this kind, without the "real" low-level (or first-order,  
> i'm not sure how to put this in english) facility backing them.
>
>> -Lex
> Though i'm not looking for a solution rigth now, but just for a way  
> to get Classboxes going, thank you :)
>
> Viktor Svub
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.cs.tcd.ie/Alexandre.Bergel
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.