Fwd: [squeak-dev] Re: [Vm-dev] Re: squeak VM 5.0

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

Fwd: [squeak-dev] Re: [Vm-dev] Re: squeak VM 5.0

Stéphane Ducasse
> excellent
> can you sync with marcus?
> We will have to clean SystemDictionary because this is not a namespace but a kind of clean trash. (when I compared to what is was).
> I will start to think about what we want. but in a nutshell
>
> - a namespace class that only deals with binding (may be class Smalltalk)
> - a class that deals with image and VM code (may be called SmalltalkImage)
>
> Stef
>
> On Dec 17, 2009, at 7:44 AM, Laval Jannik wrote:
>
>> Hi,
>>
>> I modify the variable in the method "clonePreStartup".
>> So, it works fine.
>>
>> =====
>> !SystemTracer2 methodsFor: 'clone startup' stamp: 'ajh 8/22/2002 11:15'!
>> clonePreStartup
>> "This will be executed right away when the new clone starts up, before processStartup.  Subclasses may want to rehash all objects or something"
>> SystemDictionary wordSize: self wordSize.! !
>> =====
>>
>> Now, there are some tests which does not pass.
>> So, I will publish the code and the pharoImage64, and with the community, we can check this.
>>
>> Cheers,
>> Jannik
>>
>>
>> On Dec 17, 2009, at 02:32 , John M McIntosh wrote:
>>
>>> Ok, well I created Mantis
>>> http://bugs.squeak.org/view.php?id=7430
>>> to document.
>>>
>>> Personally I would do
>>> Smalltalk wordSize
>>> versus
>>> SystemDictionary wordSize
>>>
>>> Also the issue is when to change the WordSize variable.
>>>
>>> I think in
>>> SmalltalkImage>>snapshot: andQuit: embedded:  
>>> right at the
>>> ifTrue: [self quitPrimitive].
>>> Cursor normal show.
>>> you want to set things so that wordSize is reset.
>>>
>>> At quit time you could do the reset before the
>>> "self quitPrimitive"
>>> then you know the value is reset and needs to be recalculated at startup time.
>>> or you can reset it before the
>>> Cursor normal show.
>>> which runs after startup time
>>>
>>> Somehow I think there is more risk resetting it after startup since I'm not sure
>>> when something could leap in wanting a valid value.
>>>
>>>
>>>
>>> On 2009-12-16, at 2:44 PM, Laval Jannik wrote:
>>>
>>>> Hi Eliot, hi John,
>>>>
>>>> This is what I do:
>>>> - create a class var in SystemDictionary
>>>> - accessors (wordSize and wordSize:), the first one can initialize the variable if nil, the second is to modify the value in case of 64bits image.
>>>> Maybe the second one could be integrated in System-Tracing file.
>>>> - in CompiledMethod, initialPC use it.
>>>>
>>>> Maybe we could integrate it in pharoCore.
>>>>
>>>
>>> --
>>> ===========================================================================
>>> John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
>>> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
>>> ===========================================================================
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
>


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Fwd: [squeak-dev] Re: [Vm-dev] Re: squeak VM 5.0

Henrik Sperre Johansen
I agree it seems to belong more in SmalltalkImage current than Smalltalk .

TBH, I wouldn't mind if we split off a SmalltalkVM class as well :)

I'm wondering about the comment in  vmParameterAt: though, which states 40 is "VM word size - 4 or 8 (read only)"

1) Jannik provided a wordSize: method for setting... Does this work?
2) In Interpreter >> primitiveVMParameter, the comment reads "40 BytesPerWord for this image"

I'd recon the VM comment is the correct one, and this is dependant on the image and not the VM, seeing as how it returns 4 for a 32bit image on the 64bit VM.
In which case, I definately feel wordSize semantically belongs to SmalltalkImage (and thus should be cached there rather than SystemDictionary) ;)

Cheers,
Henry

On Dec 17, 2009, at 8:44 46AM, Stéphane Ducasse wrote:

>> excellent
>> can you sync with marcus?
>> We will have to clean SystemDictionary because this is not a namespace but a kind of clean trash. (when I compared to what is was).
>> I will start to think about what we want. but in a nutshell
>>
>> - a namespace class that only deals with binding (may be class Smalltalk)
>> - a class that deals with image and VM code (may be called SmalltalkImage)
>>
>> Stef
>>
>> On Dec 17, 2009, at 7:44 AM, Laval Jannik wrote:
>>
>>> Hi,
>>>
>>> I modify the variable in the method "clonePreStartup".
>>> So, it works fine.
>>>
>>> =====
>>> !SystemTracer2 methodsFor: 'clone startup' stamp: 'ajh 8/22/2002 11:15'!
>>> clonePreStartup
>>> "This will be executed right away when the new clone starts up, before processStartup.  Subclasses may want to rehash all objects or something"
>>> SystemDictionary wordSize: self wordSize.! !
>>> =====
>>>
>>> Now, there are some tests which does not pass.
>>> So, I will publish the code and the pharoImage64, and with the community, we can check this.
>>>
>>> Cheers,
>>> Jannik
>>>
>>>
>>> On Dec 17, 2009, at 02:32 , John M McIntosh wrote:
>>>
>>>> Ok, well I created Mantis
>>>> http://bugs.squeak.org/view.php?id=7430
>>>> to document.
>>>>
>>>> Personally I would do
>>>> Smalltalk wordSize
>>>> versus
>>>> SystemDictionary wordSize
>>>>
>>>> Also the issue is when to change the WordSize variable.
>>>>
>>>> I think in
>>>> SmalltalkImage>>snapshot: andQuit: embedded:  
>>>> right at the
>>>> ifTrue: [self quitPrimitive].
>>>> Cursor normal show.
>>>> you want to set things so that wordSize is reset.
>>>>
>>>> At quit time you could do the reset before the
>>>> "self quitPrimitive"
>>>> then you know the value is reset and needs to be recalculated at startup time.
>>>> or you can reset it before the
>>>> Cursor normal show.
>>>> which runs after startup time
>>>>
>>>> Somehow I think there is more risk resetting it after startup since I'm not sure
>>>> when something could leap in wanting a valid value.
>>>>
>>>>
>>>>
>>>> On 2009-12-16, at 2:44 PM, Laval Jannik wrote:
>>>>
>>>>> Hi Eliot, hi John,
>>>>>
>>>>> This is what I do:
>>>>> - create a class var in SystemDictionary
>>>>> - accessors (wordSize and wordSize:), the first one can initialize the variable if nil, the second is to modify the value in case of 64bits image.
>>>>> Maybe the second one could be integrated in System-Tracing file.
>>>>> - in CompiledMethod, initialPC use it.
>>>>>
>>>>> Maybe we could integrate it in pharoCore.
>>>>>
>>>>
>>>> --
>>>> ===========================================================================
>>>> John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
>>>> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
>>>> ===========================================================================
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Fwd: [squeak-dev] Re: [Vm-dev] Re: squeak VM 5.0

jannik laval
Hi,

On Dec 17, 2009, at 10:22 , Henrik Johansen wrote:

> I agree it seems to belong more in SmalltalkImage current than Smalltalk .
>
> TBH, I wouldn't mind if we split off a SmalltalkVM class as well :)
>
> I'm wondering about the comment in  vmParameterAt: though, which states 40 is "VM word size - 4 or 8 (read only)"
>
> 1) Jannik provided a wordSize: method for setting... Does this work?

Yes it works :)

> 2) In Interpreter >> primitiveVMParameter, the comment reads "40 BytesPerWord for this image"
>
> I'd recon the VM comment is the correct one, and this is dependant on the image and not the VM, seeing as how it returns 4 for a 32bit image on the 64bit VM.
> In which case, I definately feel wordSize semantically belongs to SmalltalkImage (and thus should be cached there rather than SystemDictionary) ;)

So, we could do a cache class variable in SmalltalkImage instead of SystemDictonary.
This is just a structural problem, not technical.

I would do the better for pharo :)

Jannik

>
> Cheers,
> Henry
>
> On Dec 17, 2009, at 8:44 46AM, Stéphane Ducasse wrote:
>
>>> excellent
>>> can you sync with marcus?
>>> We will have to clean SystemDictionary because this is not a namespace but a kind of clean trash. (when I compared to what is was).
>>> I will start to think about what we want. but in a nutshell
>>>
>>> - a namespace class that only deals with binding (may be class Smalltalk)
>>> - a class that deals with image and VM code (may be called SmalltalkImage)
>>>
>>> Stef
>>>
>>> On Dec 17, 2009, at 7:44 AM, Laval Jannik wrote:
>>>
>>>> Hi,
>>>>
>>>> I modify the variable in the method "clonePreStartup".
>>>> So, it works fine.
>>>>
>>>> =====
>>>> !SystemTracer2 methodsFor: 'clone startup' stamp: 'ajh 8/22/2002 11:15'!
>>>> clonePreStartup
>>>> "This will be executed right away when the new clone starts up, before processStartup.  Subclasses may want to rehash all objects or something"
>>>> SystemDictionary wordSize: self wordSize.! !
>>>> =====
>>>>
>>>> Now, there are some tests which does not pass.
>>>> So, I will publish the code and the pharoImage64, and with the community, we can check this.
>>>>
>>>> Cheers,
>>>> Jannik
>>>>
>>>>
>>>> On Dec 17, 2009, at 02:32 , John M McIntosh wrote:
>>>>
>>>>> Ok, well I created Mantis
>>>>> http://bugs.squeak.org/view.php?id=7430
>>>>> to document.
>>>>>
>>>>> Personally I would do
>>>>> Smalltalk wordSize
>>>>> versus
>>>>> SystemDictionary wordSize
>>>>>
>>>>> Also the issue is when to change the WordSize variable.
>>>>>
>>>>> I think in
>>>>> SmalltalkImage>>snapshot: andQuit: embedded:  
>>>>> right at the
>>>>> ifTrue: [self quitPrimitive].
>>>>> Cursor normal show.
>>>>> you want to set things so that wordSize is reset.
>>>>>
>>>>> At quit time you could do the reset before the
>>>>> "self quitPrimitive"
>>>>> then you know the value is reset and needs to be recalculated at startup time.
>>>>> or you can reset it before the
>>>>> Cursor normal show.
>>>>> which runs after startup time
>>>>>
>>>>> Somehow I think there is more risk resetting it after startup since I'm not sure
>>>>> when something could leap in wanting a valid value.
>>>>>
>>>>>
>>>>>
>>>>> On 2009-12-16, at 2:44 PM, Laval Jannik wrote:
>>>>>
>>>>>> Hi Eliot, hi John,
>>>>>>
>>>>>> This is what I do:
>>>>>> - create a class var in SystemDictionary
>>>>>> - accessors (wordSize and wordSize:), the first one can initialize the variable if nil, the second is to modify the value in case of 64bits image.
>>>>>> Maybe the second one could be integrated in System-Tracing file.
>>>>>> - in CompiledMethod, initialPC use it.
>>>>>>
>>>>>> Maybe we could integrate it in pharoCore.
>>>>>>
>>>>>
>>>>> --
>>>>> ===========================================================================
>>>>> John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
>>>>> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
>>>>> ===========================================================================
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Fwd: [squeak-dev] Re: [Vm-dev] Re: squeak VM 5.0

Stéphane Ducasse
In reply to this post by Henrik Sperre Johansen

On Dec 17, 2009, at 10:22 AM, Henrik Johansen wrote:

> I agree it seems to belong more in SmalltalkImage current than Smalltalk .
>
> TBH, I wouldn't mind if we split off a SmalltalkVM class as well :)

:)
What would you be an extreme abstractor :)

BTW henrik it is snowing at your place because here eveyrthing is white but not deep enough to have fun with it.

> I'm wondering about the comment in  vmParameterAt: though, which states 40 is "VM word size - 4 or 8 (read only)"
>
> 1) Jannik provided a wordSize: method for setting... Does this work?
> 2) In Interpreter >> primitiveVMParameter, the comment reads "40 BytesPerWord for this image"
>
> I'd recon the VM comment is the correct one, and this is dependant on the image and not the VM, seeing as how it returns 4 for a 32bit image on the 64bit VM.
> In which case, I definately feel wordSize semantically belongs to SmalltalkImage (and thus should be cached there rather than SystemDictionary) ;)


We will have to have a really neat and clean namespace class instead of systemDictionary. argh too many todos
so one by one....

>
> Cheers,
> Henry
>
> On Dec 17, 2009, at 8:44 46AM, Stéphane Ducasse wrote:
>
>>> excellent
>>> can you sync with marcus?
>>> We will have to clean SystemDictionary because this is not a namespace but a kind of clean trash. (when I compared to what is was).
>>> I will start to think about what we want. but in a nutshell
>>>
>>> - a namespace class that only deals with binding (may be class Smalltalk)
>>> - a class that deals with image and VM code (may be called SmalltalkImage)
>>>
>>> Stef
>>>
>>> On Dec 17, 2009, at 7:44 AM, Laval Jannik wrote:
>>>
>>>> Hi,
>>>>
>>>> I modify the variable in the method "clonePreStartup".
>>>> So, it works fine.
>>>>
>>>> =====
>>>> !SystemTracer2 methodsFor: 'clone startup' stamp: 'ajh 8/22/2002 11:15'!
>>>> clonePreStartup
>>>> "This will be executed right away when the new clone starts up, before processStartup.  Subclasses may want to rehash all objects or something"
>>>> SystemDictionary wordSize: self wordSize.! !
>>>> =====
>>>>
>>>> Now, there are some tests which does not pass.
>>>> So, I will publish the code and the pharoImage64, and with the community, we can check this.
>>>>
>>>> Cheers,
>>>> Jannik
>>>>
>>>>
>>>> On Dec 17, 2009, at 02:32 , John M McIntosh wrote:
>>>>
>>>>> Ok, well I created Mantis
>>>>> http://bugs.squeak.org/view.php?id=7430
>>>>> to document.
>>>>>
>>>>> Personally I would do
>>>>> Smalltalk wordSize
>>>>> versus
>>>>> SystemDictionary wordSize
>>>>>
>>>>> Also the issue is when to change the WordSize variable.
>>>>>
>>>>> I think in
>>>>> SmalltalkImage>>snapshot: andQuit: embedded:  
>>>>> right at the
>>>>> ifTrue: [self quitPrimitive].
>>>>> Cursor normal show.
>>>>> you want to set things so that wordSize is reset.
>>>>>
>>>>> At quit time you could do the reset before the
>>>>> "self quitPrimitive"
>>>>> then you know the value is reset and needs to be recalculated at startup time.
>>>>> or you can reset it before the
>>>>> Cursor normal show.
>>>>> which runs after startup time
>>>>>
>>>>> Somehow I think there is more risk resetting it after startup since I'm not sure
>>>>> when something could leap in wanting a valid value.
>>>>>
>>>>>
>>>>>
>>>>> On 2009-12-16, at 2:44 PM, Laval Jannik wrote:
>>>>>
>>>>>> Hi Eliot, hi John,
>>>>>>
>>>>>> This is what I do:
>>>>>> - create a class var in SystemDictionary
>>>>>> - accessors (wordSize and wordSize:), the first one can initialize the variable if nil, the second is to modify the value in case of 64bits image.
>>>>>> Maybe the second one could be integrated in System-Tracing file.
>>>>>> - in CompiledMethod, initialPC use it.
>>>>>>
>>>>>> Maybe we could integrate it in pharoCore.
>>>>>>
>>>>>
>>>>> --
>>>>> ===========================================================================
>>>>> John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
>>>>> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
>>>>> ===========================================================================
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Fwd: [squeak-dev] Re: [Vm-dev] Re: squeak VM 5.0

Henrik Sperre Johansen
On 17.12.2009 11:45, Stéphane Ducasse wrote:

> On Dec 17, 2009, at 10:22 AM, Henrik Johansen wrote:
>
>    
>> I agree it seems to belong more in SmalltalkImage current than Smalltalk .
>>
>> TBH, I wouldn't mind if we split off a SmalltalkVM class as well :)
>>      
> :)
> What would you be an extreme abstractor :)
>
> BTW henrik it is snowing at your place because here eveyrthing is white but not deep enough to have fun with it.
>    
Not much snow here either, supposedly coming next week. Colder than I
like though, -9C this morning :S
BTW, I somehow ended up reading the Squeak mailing list from Dec. 2004
yesterday, the correct quote for what I believe you allude to would be
"Random reorganizer" ;)

>    
>> I'm wondering about the comment in  vmParameterAt: though, which states 40 is "VM word size - 4 or 8 (read only)"
>>
>> 1) Jannik provided a wordSize: method for setting... Does this work?
>> 2) In Interpreter>>  primitiveVMParameter, the comment reads "40 BytesPerWord for this image"
>>
>> I'd recon the VM comment is the correct one, and this is dependant on the image and not the VM, seeing as how it returns 4 for a 32bit image on the 64bit VM.
>> In which case, I definately feel wordSize semantically belongs to SmalltalkImage (and thus should be cached there rather than SystemDictionary) ;)
>>      
>
> We will have to have a really neat and clean namespace class instead of systemDictionary. argh too many todos
> so one by one....
>    
One step at a time...
For all the people interested in learning in the Squeak community, it
somewhat surprises me not one of them seems concerned of the experience
for anyone above the age of 10.
IE. If you're a student looking for an open-source implementation of
Smalltalk to learn from and dive in all the way to the turtles, even if
you made it past the UI of squeak, you'd still be running away screaming
from the mess underneath, instead of admiring its structure and
beautiful code...

Cheers,
Henry

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Fwd: [squeak-dev] Re: [Vm-dev] Re: squeak VM 5.0

Stéphane Ducasse
>>> :)
>> What would you be an extreme abstractor :)
>>
>> BTW henrik it is snowing at your place because here eveyrthing is white but not deep enough to have fun with it.
>>
> Not much snow here either, supposedly coming next week. Colder than I
> like though, -9C this morning :S
> BTW, I somehow ended up reading the Squeak mailing list from Dec. 2004
> yesterday, the correct quote for what I believe you allude to would be
> "Random reorganizer" ;)

lol

>>>
> One step at a time...
> For all the people interested in learning in the Squeak community, it
> somewhat surprises me not one of them seems concerned of the experience
> for anyone above the age of 10.
> IE. If you're a student looking for an open-source implementation of
> Smalltalk to learn from and dive in all the way to the turtles, even if
> you made it past the UI of squeak, you'd still be running away screaming
> from the mess underneath, instead of admiring its structure and
> beautiful code...

amen! Now this is changing so we should also learn from them and stay humble.
working and learning.

I used to teach and to never lie to smart students else they think and know
that you are an idiot. So I always said: this is a cool concept, the implementation
is suboptimal but we are working on fixing it.
Now we do it.

Stef
_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project