John M McIntosh | 1 Mar 01:35

Re: Re: How to profile a server image?

Oops you CANN'T just call checkForInterrupts from  
dispatchFunctionPointer that makes squirrel food of object memory  
later in time (no idea why).

The safe way is to get the before and after time, then if they are  
different then call forceInterruptCheck

On 28-Feb-09, at 3:34 PM, John M McIntosh wrote:

>
> On 28-Feb-09, at 10:45 AM, Andreas Raab wrote:
>
>> ---------------------
>> Unfortunately, recent VMs have a problem with spy accuracy since an  
>> important timer check was removed from the VM (I didn't notice that  
>> at the time it happened). This *heavily* affects the profiler, for  
>> example, try this:
>>
>> 	MessageTally spyOn:[
>> 		1 to: 100 do:[:i|
>> 			Display fillWhite.
>> 			'Hello', ' World'.
>> 		].
>> 	].
>
>
> Ah you mean perhaps the removal of the checkForInterrupts() which  
> *could/might* occur after the call in
>
> dispatchFunctionPointer
(Continue reading)

John M McIntosh | 1 Mar 02:04

Re: [squeak-dev] Re: How to profile a server image?

  Mmmm guessing shows that ensuring forceInterruptCheck is called  
after dispatchFunctionPointer DOESN'T make the profile correct.
So I'll wait for the true answer...

On 28-Feb-09, at 4:35 PM, John M McIntosh wrote:

> Oops you CANN'T just call checkForInterrupts from  
> dispatchFunctionPointer that makes squirrel food of object memory  
> later in time (no idea why).
>
> The safe way is to get the before and after time, then if they are  
> different then call forceInterruptCheck
>

--
= 
= 
= 
========================================================================
John M. McIntosh <johnmci <at> smalltalkconsulting.com>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
= 
= 
= 
========================================================================
Ramon Leon | 1 Mar 03:55

Re: Re: Burn the Squeak Image! (Why I am running for board)

I was trying to guide the discussion back to Matthews proposal which I agree with. I'm not suggesting they should adopt any image.

You misunderstand, I was agreeing with you, the comment about what was absurd wasn't in reply to you but to the previous suggestion that all these different forks could be convinced to come back to a core image; just isn't going to happen.
 
I think getting the various communities to buy in and commit to a vision of shared core packages should be the responsibility of the board. It should be in each communities interest to work on such an activity. This is where the real work will need to be done.

Again, I was agreeing with that position.

Andreas is the only person I've seen proposing anything at all pragmatic for the board to do.  SNIP

What isn't pragmatic about Matthew's proposal? I don't think he suggests  that the board does this themselves - maybe I misunderstood.

I like his proposal, that doesn't make it pragmatic, at least, not as pragmatic as what Andreas is always saying, harvest what's done, rather than making big plans for doing stuff that the past has shown rarely works out.

One of Squeaks big problems, IMHO, is that every version is planned and realised by someone grand idea of features that should be in the next version.  More often than not, this is vaporware, work someone wants to do, or thinks can be done, but isn't done, so everyone waits and waits and waits for a new version.

I'd much rather see releases done by specific dates, like a release every 6 months, each release harvesting the latest fixes and patches of accomplished work.  Make it easier to get new stuff integrated into the core by releasing regularly and often rather than these pie in the sky visions of what might be.  Guaranteed steady gradual evolution and continual progress beats the hell out of revolutionary grand changes that might or might not actually happen.
 
I don't think the board should be following and picking. I don't think that works. The sub communities should be playing an active role in this and I think it should be the boards responsibility to:

 - Convince each community that it's worth doing
 - Find out and agree what needs to be done
 - Enable each community to work
     - Remove barriers
     - Define processes
     - Resources: tools, email lists, servers, etc
 - Manage the overall progress and lend support where necessary

- Zulq

Which is what they've been doing, it's not been working so well.  The Squeak community wouldn't be splintered into so many fragments otherwise.  The Pharo guys forked because it's the only way to get anything done, it takes too long to try and get anything real done in the core Squeak, progress is glacial, so everyone forks.

Keith and Matthew are right, focus on packages and tools for sharing code, Andreas is right, focus on what's done, integrate it, make progress, stop the pie in the sky dreams of the ultimate system, or core kernel image, or whatever other pipe dream people keep chasing that clearly isn't being used by all the sub communities anyway. 

I don't care what image I use, I care what packages I use.  I care that my Collections package is the latest and greatest, or that my Seaside package is up to date, or that I'm using the newest FFI, or the right Polymorph.  I don't care about eToys or Graphics or 3D or anything to do with educating kids.  Packages are more important than images.  The only thing I want from an image is that it isn't bloated with a bunch of unloadable code like eToys that infects everything and breaks everything when you try and remove it.

Elliot is right about building images from scripts as well, I want to automate the builds of the images I use with a script to load onto a base image just the packages I want.  Damien does this now with his dev images, a good starting point for me, then I use a script and Keiths installer to further load and customize it to my liking.

Anyway, now I'm just rambling, so I'll leave it at that.  +1 for tools, Packages, and integrate what's done and get it out.

Ramon Leon
http://onsmalltalk.com

Eliot Miranda | 1 Mar 04:32
Picon

Re: Re: Burn the Squeak Image! (Why I am running for board)



On Sat, Feb 28, 2009 at 6:55 PM, Ramon Leon <ramon.leon <at> allresnet.com> wrote:
I was trying to guide the discussion back to Matthews proposal which I agree with. I'm not suggesting they should adopt any image.

You misunderstand, I was agreeing with you, the comment about what was absurd wasn't in reply to you but to the previous suggestion that all these different forks could be convinced to come back to a core image; just isn't going to happen.
 
I think getting the various communities to buy in and commit to a vision of shared core packages should be the responsibility of the board. It should be in each communities interest to work on such an activity. This is where the real work will need to be done.

Again, I was agreeing with that position.

Andreas is the only person I've seen proposing anything at all pragmatic for the board to do.  SNIP

What isn't pragmatic about Matthew's proposal? I don't think he suggests  that the board does this themselves - maybe I misunderstood.

I like his proposal, that doesn't make it pragmatic, at least, not as pragmatic as what Andreas is always saying, harvest what's done, rather than making big plans for doing stuff that the past has shown rarely works out.

One of Squeaks big problems, IMHO, is that every version is planned and realised by someone grand idea of features that should be in the next version.  More often than not, this is vaporware, work someone wants to do, or thinks can be done, but isn't done, so everyone waits and waits and waits for a new version.

I'd much rather see releases done by specific dates, like a release every 6 months, each release harvesting the latest fixes and patches of accomplished work.  Make it easier to get new stuff integrated into the core by releasing regularly and often rather than these pie in the sky visions of what might be.  Guaranteed steady gradual evolution and continual progress beats the hell out of revolutionary grand changes that might or might not actually happen.
 
I don't think the board should be following and picking. I don't think that works. The sub communities should be playing an active role in this and I think it should be the boards responsibility to:

 - Convince each community that it's worth doing
 - Find out and agree what needs to be done
 - Enable each community to work
     - Remove barriers
     - Define processes
     - Resources: tools, email lists, servers, etc
 - Manage the overall progress and lend support where necessary

- Zulq

Which is what they've been doing, it's not been working so well.  The Squeak community wouldn't be splintered into so many fragments otherwise.  The Pharo guys forked because it's the only way to get anything done, it takes too long to try and get anything real done in the core Squeak, progress is glacial, so everyone forks.

Keith and Matthew are right, focus on packages and tools for sharing code, Andreas is right, focus on what's done, integrate it, make progress, stop the pie in the sky dreams of the ultimate system, or core kernel image, or whatever other pipe dream people keep chasing that clearly isn't being used by all the sub communities anyway. 

I need to point out that unless the various communities can start building their disparate and diverging images form a micro-kernel image I don't see how improved execution technology is going to be adopted by the community.  I'm working hard on a VM that will be potentially 10x the current Squeak VM for Smalltalk intensive benchmarks.  This VM will be source code compatible and bytecode compatible but likely it will not be image compatible as it will use a streamlined object representation that doesn't use compact classes.  The only way I can see this being adopted by the community at large is if the community starts building images form microkernels.

I'm sure you can see there are significant benefits in building images form automatically constructed microkernels.
- images are no longer tied to obsolete image formats and/or object memory layouts and restrictions (such as a single contiguous heap segment with no support for memory-mapped segments, giving memory back to the OS after GC, pinning objects for the FFI, etc, etc).
- bytecode sets, compilation technology and VM technology can evolve and improve performance as ingenuity permits
- platform integration can improve, e.g. allowing Squeak as a DLL

If the various forks maintain different basic images instead of different bootstraps (same end-point, different starting-points) then this just isn't practicable and performance won't improve.

So I hope you're wrong and that starting from kernel images isn't a pipe dream.  Let me emphasisze I am *not* advocating a common development image, only a common microkernel from which all other images can be built, automatically.
 

I don't care what image I use, I care what packages I use.  I care that my Collections package is the latest and greatest, or that my Seaside package is up to date, or that I'm using the newest FFI, or the right Polymorph.  I don't care about eToys or Graphics or 3D or anything to do with educating kids.  Packages are more important than images.  The only thing I want from an image is that it isn't bloated with a bunch of unloadable code like eToys that infects everything and breaks everything when you try and remove it.

Elliot is right about building images from scripts as well, I want to automate the builds of the images I use with a script to load onto a base image just the packages I want.  Damien does this now with his dev images, a good starting point for me, then I use a script and Keiths installer to further load and customize it to my liking.

Anyway, now I'm just rambling, so I'll leave it at that.  +1 for tools, Packages, and integrate what's done and get it out.





Sebastian Sastre | 1 Mar 04:42

recategorize a bunch

hi there, while loading some stuff of mine form an image to another, I was
annoyed/surprised by not finding some methods. Then I've figured out that all
not imported methods where missing because somehow they happen to be under a
category named *-changed some others under *-compilation-issues.

There is a way I can query the system (monticello?) to get the whole and set
them another category (so I can save the packageproperly)?

thanks,

sebastian 

Avi Bryant | 1 Mar 05:02
Favicon

Re: Re: Burn the Squeak Image! (Why I am running for board)

On Sat, Feb 28, 2009 at 7:32 PM, Eliot Miranda <eliot.miranda <at> gmail.com> wrote:

> I need to point out that unless the various communities can start building
> their disparate and diverging images form a micro-kernel image I don't see
> how improved execution technology is going to be adopted by the community.
>  I'm working hard on a VM that will be potentially 10x the current Squeak VM
> for Smalltalk intensive benchmarks.  This VM will be source code compatible
> and bytecode compatible but likely it will not be image compatible as it
> will use a streamlined object representation that doesn't use compact
> classes.  The only way I can see this being adopted by the community at
> large is if the community starts building images form microkernels.

I'm not sure that's true.  Say it becomes yet another fork, separate
(necessarily, at first, because it's a different image format) from
all of the other forks.  As long as most packages can be loaded into
it, it'll get used.  Maybe not by the people doing the forking (by
Scratch, say, or Squeakland), but by the majority of us who have a few
pet packages (in my case, Seaside, OmniBrowser, DabbleDB, etc) that we
can load into nearly any Squeak image and feel at home.  I'm pretty
happy to load those into a MinimalMorphic image this month, a Pharo
image next month, and a Cog image the month after, if there's some
compelling reason to do so - and 10x performance would certainly be
compelling.

A shared microkernel would be nice, but I don't think it's essential
in the short term to drive adoption of a new technology.

Ramon Leon | 1 Mar 05:14

Re: Re: Burn the Squeak Image! (Why I am running for board)

I'm not sure that's true.  Say it becomes yet another fork, separate
(necessarily, at first, because it's a different image format) from
all of the other forks.  As long as most packages can be loaded into
it, it'll get used.  Maybe not by the people doing the forking (by
Scratch, say, or Squeakland), but by the majority of us who have a few
pet packages (in my case, Seaside, OmniBrowser, DabbleDB, etc) that we
can load into nearly any Squeak image and feel at home.  I'm pretty
happy to load those into a MinimalMorphic image this month, a Pharo
image next month, and a Cog image the month after, if there's some
compelling reason to do so - and 10x performance would certainly be
compelling.

A shared microkernel would be nice, but I don't think it's essential
in the short term to drive adoption of a new technology.


Ditto, as I said earlier, I care about my packages, not which squeak image is the base, but for a 10x bump in speed, I'd certainly take the time to port everything I use, if only for deployment.  Getting everyone on a common kernel would take something really compelling them all to feel the same way, a 10x bump in speed *is certainly* compelling.

Ramon Leon
http://onsmalltalk.com

Eliot Miranda | 1 Mar 08:08
Picon

Re: recategorize a bunch



On Sat, Feb 28, 2009 at 7:42 PM, Sebastian Sastre <ssastre <at> seaswork.com> wrote:
hi there, while loading some stuff of mine form an image to another, I was
annoyed/surprised by not finding some methods. Then I've figured out that all
not imported methods where missing because somehow they happen to be under a
category named *-changed some others under *-compilation-issues.

There is a way I can query the system (monticello?) to get the whole and set
them another category (so I can save the packageproperly)?

Let's say that SystemNavigation>>allMethodsInCatergory: answers MethodReference instances instead of 'Classd>selector' string thingies, and if it doesn't that it can by defining it as

SystemNavigation methods for query
allMethodsInCategory: category 
| aCollection |
aCollection := Set new.
Cursor wait showWhile:
[self allBehaviorsDo:
[:x |
((category = ClassOrganizer allCategory
ifTrue: [x organization allMethodSelectors]
ifFalse: [x organization listAtCategoryNamed: category])) do:
[:sel | aCollection add: (MethodReference new setStandardClass: x methodSymbol: sel)]]].
^aCollection.

then you want to say

    (SystemNavigation default allMethodsInCategory: #'* whatever the category * was called') do:
        [:mr|
        mr actualClass organization
            classify: mr methodSymbol
            under: #'what I would like the category to be']
 


thanks,

sebastian




Göran Krampe | 1 Mar 08:25
Picon
Gravatar

Re: [OT]ned konz was:Re: [Election] IMPORTANT: Voter list test mail

Hi all!

Reinhard Handl wrote:
> hi göran,
> 
> sorry for posting just to you,

Mmm, I think you accidentally posted to squeak-dev instead of to me 
privately :)

> but i found the name of ned konz on your list of unreachable people.
> do you know what happened to him?

Ned replied to me privately with a new email address - so Ned is still 
around! Haven't had the chance to check what he is up to these days 
though. :)

> regards, reinhard

regards, Göran

stephane ducasse | 1 Mar 09:59
Picon
Favicon

Re: Re: Burn the Squeak Image! (Why I am running for board)

>
>
> - http://www.google.com/search?q=John+Maloney+MicroSqueak

Were is the code of microSqueak


Gmane