[ANN] Fix to issue 825

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

[ANN] Fix to issue 825

hernan.wilkinson
Hi,
 I uploaded the following package to pharo-inbox:
---------------------
Name: SLICE-ChangesFile-Fixes-Hernan_Wilkinson.2
Author: Hernan Wilkinson
Time: 26 June 2009, 7:31:40 pm
UUID: 54cc49c6-ee34-4d99-b8fe-6b8b3446ea6c
Ancestors: SLICE-ChangesFile-Fixes-Hernan Wilkinson.1
Dependencies: Kernel-Hernan Wilkinson.350, KernelTests-Hernan Wilkinson    .119, Traits-Hernan Wilkinson.281, Files-Hernan_Wilkinson.ducasse.57

2009-06-26: Fixes to save class changes in the changes file
---------------------

With this fix, all changes made to classes like adding instance variables, class variables, changing method categories, changing class package, etc. are saved to the changes file. I spend some time trying to find the best way to do it, like Stef said some time ago, the code is not easy to understand, so I decided to do it the simplest way. So each method that changes something in the class, it also logs the change. The good thing is that no matter where the change is made, it is saved. The drawback is that when changing a class from the browser's code panel, it saves the definition twice. All the changes are saved as "doit", so no change to the file in was necessary.
Ironically, I had a power down issue when testing it, so I did not loose anything! (and help me to find a bug).
All the changes are tested. See ClassOrganizerTest, ClassTest and StandardSourceFileArrayTest

Bye,
Hernan.



_______________________________________________
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: [ANN] Fix to issue 825

Stéphane Ducasse

> Hi,
>  I uploaded the following package to pharo-inbox:
> ---------------------
> Name: SLICE-ChangesFile-Fixes-Hernan_Wilkinson.2
> Author: Hernan Wilkinson
> Time: 26 June 2009, 7:31:40 pm
> UUID: 54cc49c6-ee34-4d99-b8fe-6b8b3446ea6c
> Ancestors: SLICE-ChangesFile-Fixes-Hernan Wilkinson.1
> Dependencies: Kernel-Hernan Wilkinson.350, KernelTests-Hernan  
> Wilkinson    .119, Traits-Hernan Wilkinson.281, Files-
> Hernan_Wilkinson.ducasse.57
>
> 2009-06-26: Fixes to save class changes in the changes file
> ---------------------
>
> With this fix, all changes made to classes like adding instance  
> variables, class variables, changing method categories, changing  
> class package, etc. are saved to the changes file. I spend some time  
> trying to find the best way to do it, like Stef said some time ago,  
> the code is not easy to understand, so I decided to do it the  
> simplest way. So each method that changes something in the class, it  
> also logs the change. The good thing is that no matter where the  
> change is made, it is saved.

Did you pay attention that certain operation are silent (do not add to  
the change)

> The drawback is that when changing a class from the browser's code  
> panel, it saves the definition twice. All the changes are saved as  
> "doit", so no change to the file in was necessary.

What do you mean by doit?
Normally only class def (which is a mistake) are saved like doit.

> Ironically, I had a power down issue when testing it, so I did not  
> loose anything! (and help me to find a bug).
> All the changes are tested. See ClassOrganizerTest, ClassTest and  
> StandardSourceFileArrayTest

Hernan can you open an issue in the Bugtracker


Stef
>
> Bye,
> Hernan.
>
>
> _______________________________________________
> 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: [ANN] Fix to issue 825

hernan.wilkinson
>
> With this fix, all changes made to classes like adding instance
> variables, class variables, changing method categories, changing
> class package, etc. are saved to the changes file. I spend some time
> trying to find the best way to do it, like Stef said some time ago,
> the code is not easy to understand, so I decided to do it the
> simplest way. So each method that changes something in the class, it
> also logs the change. The good thing is that no matter where the
> change is made, it is saved.

Did you pay attention that certain operation are silent (do not add to
the change)

right now is saving all the changes to the log. I saw something about doit silent but I do not understand why a change should not be save, why is that?
 


> The drawback is that when changing a class from the browser's code
> panel, it saves the definition twice. All the changes are saved as
> "doit", so no change to the file in was necessary.

What do you mean by doit?
Normally only class def (which is a mistake) are saved like doit.

I agree that it is a mistake, but I think that the first steep is to save everything. The next one should be to change the format. 
I needed this fix becuase I lost a lot of work because pharo hanged on me many times...



> Ironically, I had a power down issue when testing it, so I did not
> loose anything! (and help me to find a bug).
> All the changes are tested. See ClassOrganizerTest, ClassTest and
> StandardSourceFileArrayTest

Hernan can you open an issue in the Bugtracker

I did, it is the 825, it is in the subject :-)





Stef
>
> Bye,
> Hernan.
>
>
> _______________________________________________
> 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: [ANN] Fix to issue 825

Stéphane Ducasse

On Jun 27, 2009, at 9:24 PM, Hernan Wilkinson wrote:

> >
> > With this fix, all changes made to classes like adding instance
> > variables, class variables, changing method categories, changing
> > class package, etc. are saved to the changes file. I spend some time
> > trying to find the best way to do it, like Stef said some time ago,
> > the code is not easy to understand, so I decided to do it the
> > simplest way. So each method that changes something in the class, it
> > also logs the change. The good thing is that no matter where the
> > change is made, it is saved.
>
> Did you pay attention that certain operation are silent (do not add to
> the change)
>
> right now is saving all the changes to the log. I saw something  
> about doit silent but I do not understand why a change should not be  
> save, why is that?

because sometimes you want to install code without polluting the  
changes set
        - halt
        - breakpoint
        and all kinds of trickery

>  > The drawback is that when changing a class from the browser's code
> > panel, it saves the definition twice. All the changes are saved as
> > "doit", so no change to the file in was necessary.
>
> What do you mean by doit?
> Normally only class def (which is a mistake) are saved like doit.
>
> I agree that it is a mistake, but I think that the first steep is to  
> save everything. The next one should be to change the format.

yes having something more declarative and object-oriented

> I needed this fix becuase I lost a lot of work because pharo hanged  
> on me many times...

argh. Let us know if you can reproduce that.
I think that we changed a lot and pharo 1.0 may be less stable than  
Squeak3.9



>
> > Ironically, I had a power down issue when testing it, so I did not
> > loose anything! (and help me to find a bug).
> > All the changes are tested. See ClassOrganizerTest, ClassTest and
> > StandardSourceFileArrayTest
>
> Hernan can you open an issue in the Bugtracker
>
> I did, it is the 825, it is in the subject :-)

OK :)

>
>
>
>
>
> Stef
> >
> > Bye,
> > Hernan.
> >
> >
> > _______________________________________________
> > 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


_______________________________________________
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: [ANN] Fix to issue 825

Schwab,Wilhelm K
In reply to this post by hernan.wilkinson
Hernan,
 
I've had some hangups, some of which I think were OB related; either it took a terribly long time to respond, or it got confused over package names - not sure which - I finally recovered what I could and started a new image.  A few times, I have successfully broken out of an apparent lockup.  BTW, that's another argument for keeping notifiers - why add add an extra second or two for the full debugger to open when a notifier is enough to let the user know the interrupt was "seen."
 
The other place I have lost work is accepts in either the debugger or (less of a problem) a browser going into the ether.  In the case of the browser, I wonder whether the category or other context was correctly set??
 
Concerns over response times aside, which OS are you using? 
 
Bill
 
 


From: [hidden email] [mailto:[hidden email]] On Behalf Of Hernan Wilkinson
Sent: Saturday, June 27, 2009 2:24 PM
To: [hidden email]
Subject: Re: [Pharo-project] [ANN] Fix to issue 825

>
> With this fix, all changes made to classes like adding instance
> variables, class variables, changing method categories, changing
> class package, etc. are saved to the changes file. I spend some time
> trying to find the best way to do it, like Stef said some time ago,
> the code is not easy to understand, so I decided to do it the
> simplest way. So each method that changes something in the class, it
> also logs the change. The good thing is that no matter where the
> change is made, it is saved.

Did you pay attention that certain operation are silent (do not add to
the change)

right now is saving all the changes to the log. I saw something about doit silent but I do not understand why a change should not be save, why is that?
 


> The drawback is that when changing a class from the browser's code
> panel, it saves the definition twice. All the changes are saved as
> "doit", so no change to the file in was necessary.

What do you mean by doit?
Normally only class def (which is a mistake) are saved like doit.

I agree that it is a mistake, but I think that the first steep is to save everything. The next one should be to change the format. 
I needed this fix becuase I lost a lot of work because pharo hanged on me many times...



> Ironically, I had a power down issue when testing it, so I did not
> loose anything! (and help me to find a bug).
> All the changes are tested. See ClassOrganizerTest, ClassTest and
> StandardSourceFileArrayTest

Hernan can you open an issue in the Bugtracker

I did, it is the 825, it is in the subject :-)





Stef
>
> Bye,
> Hernan.
>
>
> _______________________________________________
> 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: [ANN] Fix to issue 825

Schwab,Wilhelm K
In reply to this post by Stéphane Ducasse
Stef,

Sometimes I wonder whether the response times are to blame.  <forDebate>Something that should happen in 0.1 seconds ends up taking several seconds, user gets suspicious that image has locked up, pokes around with the mouse (almost instinctive), and confuses the image</forDebate>.

Bill



-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Stéphane Ducasse
Sent: Saturday, June 27, 2009 3:37 PM
To: [hidden email]
Subject: Re: [Pharo-project] [ANN] Fix to issue 825


argh. Let us know if you can reproduce that.
I think that we changed a lot and pharo 1.0 may be less stable than
Squeak3.9


_______________________________________________
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: [ANN] Fix to issue 825

Stéphane Ducasse

> Stef,
>
> Sometimes I wonder whether the response times are to blame.  
> <forDebate>Something that should happen in 0.1 seconds ends up  
> taking several seconds, user gets suspicious that image has locked  
> up, pokes around with the mouse (almost instinctive), and confuses  
> the image</forDebate>.

I think that the input sensor was complex and that some existing code  
should be really fix
and may be the sensor code contain some bugs.
For example, we got some problem with moose and we could not bring a  
debugger.

Stef

>

_______________________________________________
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: [ANN] Fix to issue 825

hernan.wilkinson
In reply to this post by Stéphane Ducasse
>
> right now is saving all the changes to the log. I saw something
> about doit silent but I do not understand why a change should not be
> save, why is that?

because sometimes you want to install code without polluting the
changes set
       - halt
       - breakpoint
       and all kinds of trickery

I did not change anything of that. This fix saves class definition changes (like add a variable, change a class category, rename a class, etc) and method categorization changes. I did not modify anything related to changing methods so this should work as before.
Now, about polluting the changes file (no the changes set, I think they are two different things) I would not be so conservative, I mean disk space is not a big issue now don't you think?
I think it is better to save all the necessary info in the changes file to get back to what you have before a hang. That is how VisualWorks and VisualAge works.
 


> I needed this fix becuase I lost a lot of work because pharo hanged
> on me many times...

argh. Let us know if you can reproduce that.
I think that we changed a lot and pharo 1.0 may be less stable than
Squeak3.9

yes, I did. Some were related to MouseOverHandler (I uploaded a new version of that class to the pharo-inbox too), others to the inputsensor change.
But it is ok, I understand that pharo is getting better and it takes time to have an stable system.

Bye,
Hernan.
 
>
>
> Stef
> >
> > Bye,
> > Hernan.
> >
> >
> > _______________________________________________
> > 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


_______________________________________________
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: [ANN] Fix to issue 825

hernan.wilkinson
In reply to this post by Schwab,Wilhelm K
Hi Bill,
 I have a good machine now... I'm running Ubuntu 9.04, 64 bits.
 I agree with you that OB is slow for some tasks like adding a package. I also lost code when not saving a method, going to another browser to change another method and going back to the original or things like that... I'll try to reproduce them and fix them.

Hernan.

2009/6/27 Schwab,Wilhelm K <[hidden email]>
Hernan,
 
I've had some hangups, some of which I think were OB related; either it took a terribly long time to respond, or it got confused over package names - not sure which - I finally recovered what I could and started a new image.  A few times, I have successfully broken out of an apparent lockup.  BTW, that's another argument for keeping notifiers - why add add an extra second or two for the full debugger to open when a notifier is enough to let the user know the interrupt was "seen."
 
The other place I have lost work is accepts in either the debugger or (less of a problem) a browser going into the ether.  In the case of the browser, I wonder whether the category or other context was correctly set??
 
Concerns over response times aside, which OS are you using? 
 
Bill
 
 


From: [hidden email] [mailto:[hidden email]] On Behalf Of Hernan Wilkinson
Sent: Saturday, June 27, 2009 2:24 PM
To: [hidden email]
Subject: Re: [Pharo-project] [ANN] Fix to issue 825

>
> With this fix, all changes made to classes like adding instance
> variables, class variables, changing method categories, changing
> class package, etc. are saved to the changes file. I spend some time
> trying to find the best way to do it, like Stef said some time ago,
> the code is not easy to understand, so I decided to do it the
> simplest way. So each method that changes something in the class, it
> also logs the change. The good thing is that no matter where the
> change is made, it is saved.

Did you pay attention that certain operation are silent (do not add to
the change)

right now is saving all the changes to the log. I saw something about doit silent but I do not understand why a change should not be save, why is that?
 


> The drawback is that when changing a class from the browser's code
> panel, it saves the definition twice. All the changes are saved as
> "doit", so no change to the file in was necessary.

What do you mean by doit?
Normally only class def (which is a mistake) are saved like doit.

I agree that it is a mistake, but I think that the first steep is to save everything. The next one should be to change the format. 
I needed this fix becuase I lost a lot of work because pharo hanged on me many times...



> Ironically, I had a power down issue when testing it, so I did not
> loose anything! (and help me to find a bug).
> All the changes are tested. See ClassOrganizerTest, ClassTest and
> StandardSourceFileArrayTest

Hernan can you open an issue in the Bugtracker

I did, it is the 825, it is in the subject :-)





Stef
>
> Bye,
> Hernan.
>
>
> _______________________________________________
> 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


_______________________________________________
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: [ANN] Fix to issue 825

Stéphane Ducasse
In reply to this post by hernan.wilkinson

> >
> > right now is saving all the changes to the log. I saw something
> > about doit silent but I do not understand why a change should not be
> > save, why is that?
>
> because sometimes you want to install code without polluting the
> changes set
>        - halt
>        - breakpoint
>        and all kinds of trickery
>
> I did not change anything of that. This fix saves class definition  
> changes (like add a variable, change a class category, rename a  
> class, etc) and method categorization changes. I did not modify  
> anything related to changing methods so this should work as before.

ok we should have a look at your fixes.

> Now, about polluting the changes file (no the changes set, I think  
> they are two different things) I would not be so conservative, I  
> mean disk space is not a big issue now don't you think?
> I think it is better to save all the necessary info in the changes  
> file to get back to what you have before a hang. That is how  
> VisualWorks and VisualAge works.

there are two answers:
        in Squeak the changes file gets full too quickly

        even in VW you do now want to log generated code so having the  
possibility to choose is good.

>
>
>
> > I needed this fix becuase I lost a lot of work because pharo hanged
> > on me many times...
>
>
> yes, I did. Some were related to MouseOverHandler (I uploaded a new  
> version of that class to the pharo-inbox too), others to the  
> inputsensor change.

can you post an email in a  separate thread to ask for review?

> But it is ok, I understand that pharo is getting better and it takes  
> time to have an stable system.

Thanks.

>
> Bye,
> Hernan.
>
> >
> >
> > Stef
> > >
> > > Bye,
> > > Hernan.
> > >
> > >
> > > _______________________________________________
> > > 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
>
>
> _______________________________________________
> 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: [ANN] Fix to issue 825

hernan.wilkinson

there are two answers:
       in Squeak the changes file gets full too quickly

Ups, I did not know about that. what is the limit? why?
 

can you post an email in a  separate thread to ask for review?

I did, it is under the subject: [ANN] MouseOverHandler refactoring
I hope it helps!
Bye,
Hernan.



> But it is ok, I understand that pharo is getting better and it takes
> time to have an stable system.

Thanks.

>
> Bye,
> Hernan.
>
> >
> >
> > Stef
> > >
> > > Bye,
> > > Hernan.
> > >
> > >
> > > _______________________________________________
> > > 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
>
>
> _______________________________________________
> 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


_______________________________________________
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: [ANN] Fix to issue 825

Marcus Denker-3

On 29.06.2009, at 22:19, Hernan Wilkinson wrote:

>
> there are two answers:
>        in Squeak the changes file gets full too quickly
>
> Ups, I did not know about that. what is the limit? why?
>

Smalltalk was originally realized for a *very* resource contrained  
machine.
(a self-build, very impressive design. Amazing for the time and in  
some aspects
even today). But: Lots of design desicions had to be made that where  
purely driven
by resource constraints.

So for the sources and changes this meant:

a) changes and sources use the same mechanism.
b) they are not nicely object-oriented in the image but outside.
c) the way this is done is a wonderful ugly hack.

The last bytecodes of any method are not bytecodes at all, but instead  
they form a pointer
to the sources and changes files. The end of the story is that this  
means that both can be
max. 32MB in size. Plenty even 10 years ago, not enough to update from  
3.8 to 3.9 today.
(changes file needs to be reseted at some point).

I personally think that with today's resources (my laptop has 4GB of  
Ram, not 256Kb), we should
rethink some of the design-desicions taken 30 years ago. But many  
people are violently against
this, fighting a battle by citing "embedded systems". If one manages  
to convince them
that "embedded" these days does not equal "small", they mumble about  
"smart dust" and obscure things
just to be able to fight for hacks not needed these days...

Exploring new ways with the resources we have today does not mean that  
everything needs to live in the
image. It means that one can affort to invest resources into very  
general, reusable solution to problems
like this.

One interesting aspect of the source/changes "outside the image" is  
that this problem of data that is
not used often and thus can live on disk vs. memory is a general one.  
Hacking it into the system just
for the sources is just that: a hack. Providing a general, scalable  
way to let objects live on disk
that are not needed is much better, as everyone can than use it. The  
system can use it for other resources
(fonts, images...). Programmers can use it to keep their domain data  
on disk automatically.

        Marcus

--
Marcus Denker - http://marcusdenker.de
PLEIAD Lab - Computer Science Department (DCC) - University of Chile


_______________________________________________
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: [ANN] Fix to issue 825

Douglas Brebner
Marcus Denker wrote:

> I personally think that with today's resources (my laptop has 4GB of
> Ram, not 256Kb), we should rethink some of the design-desicions taken
> 30 years ago. But many people are violently against this, fighting a
> battle by citing "embedded systems". If one manages to convince them
> that "embedded" these days does not equal "small", they mumble about
> "smart dust" and obscure things just to be able to fight for hacks
> not needed these days...
>
> Exploring new ways with the resources we have today does not mean
> that everything needs to live in the image. It means that one can
> affort to invest resources into very general, reusable solution to
> problems like this.

Didn't Tim change CompiledMethods so they referred to their source using
a pointer so the source could be stored anywhere?

> One interesting aspect of the source/changes "outside the image" is
> that this problem of data that is not used often and thus can live on
> disk vs. memory is a general one. Hacking it into the system just for
> the sources is just that: a hack. Providing a general, scalable way
> to let objects live on disk that are not needed is much better, as
> everyone can than use it. The system can use it for other resources
> (fonts, images...). Programmers can use it to keep their domain data
> on disk automatically.


You mean something like LOOM? I would love to have that :)


_______________________________________________
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: [ANN] Fix to issue 825

Marcus Denker-3

On 30.06.2009, at 11:44, Douglas Brebner wrote:

> Marcus Denker wrote:
>> I personally think that with today's resources (my laptop has 4GB of
>> Ram, not 256Kb), we should rethink some of the design-desicions taken
>> 30 years ago. But many people are violently against this, fighting a
>> battle by citing "embedded systems". If one manages to convince them
>> that "embedded" these days does not equal "small", they mumble about
>> "smart dust" and obscure things just to be able to fight for hacks
>> not needed these days...
>>
>> Exploring new ways with the resources we have today does not mean
>> that everything needs to live in the image. It means that one can
>> affort to invest resources into very general, reusable solution to
>> problems like this.
>
> Didn't Tim change CompiledMethods so they referred to their source  
> using
> a pointer so the source could be stored anywhere?
>

Yes, Tim did some changes (in 1998) to make compiledMethods normal  
objects
that have a ByteArray for the bytecode and a normal instvar for the  
pointer to
the source. IMHO the way to go, but it was never added to squeak...  
mostly because
people feared the overhead (there are 40.000 methods, so adding  
another 40.000 is
indeed noticable, as we have seen in 3.9 with the MethodProperties...).

I personally like this change, as it makes the implementation higher-
level and more
OO, which I think is a good thing. I personally think that "more OO"  
is better than
"more compact", considering that a laptop these days has 4GB (this is  
GIGABYTES) of RAM.
I always wonder how Smaltalk would look like if it was disgned with  
the same philosophy
in 1976 that people apply today. Using the "but it costs memory"  
philosphy that everyone
favors today, Smalltalk would never have been done in 1976 at all.

There is another patch floating around that allows larger sources/
changes without
changing the mechanism too much.

>> One interesting aspect of the source/changes "outside the image" is
>> that this problem of data that is not used often and thus can live on
>> disk vs. memory is a general one. Hacking it into the system just for
>> the sources is just that: a hack. Providing a general, scalable way
>> to let objects live on disk that are not needed is much better, as
>> everyone can than use it. The system can use it for other resources
>> (fonts, images...). Programmers can use it to keep their domain data
>> on disk automatically.
>
>
> You mean something like LOOM? I would love to have that :)
>
Yes! :-)

        Marcus


_______________________________________________
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: [ANN] Fix to issue 825

hernan.wilkinson
I agree with you Marcus, I think the driver should be the future, not the past, and more OO is definitely better. It is clear now that hardware is not the problem but the cost of maintaining software...


On Tue, Jun 30, 2009 at 6:54 AM, Marcus Denker <[hidden email]> wrote:

On 30.06.2009, at 11:44, Douglas Brebner wrote:

> Marcus Denker wrote:
>> I personally think that with today's resources (my laptop has 4GB of
>> Ram, not 256Kb), we should rethink some of the design-desicions taken
>> 30 years ago. But many people are violently against this, fighting a
>> battle by citing "embedded systems". If one manages to convince them
>> that "embedded" these days does not equal "small", they mumble about
>> "smart dust" and obscure things just to be able to fight for hacks
>> not needed these days...
>>
>> Exploring new ways with the resources we have today does not mean
>> that everything needs to live in the image. It means that one can
>> affort to invest resources into very general, reusable solution to
>> problems like this.
>
> Didn't Tim change CompiledMethods so they referred to their source
> using
> a pointer so the source could be stored anywhere?
>

Yes, Tim did some changes (in 1998) to make compiledMethods normal
objects
that have a ByteArray for the bytecode and a normal instvar for the
pointer to
the source. IMHO the way to go, but it was never added to squeak...
mostly because
people feared the overhead (there are 40.000 methods, so adding
another 40.000 is
indeed noticable, as we have seen in 3.9 with the MethodProperties...).

I personally like this change, as it makes the implementation higher-
level and more
OO, which I think is a good thing. I personally think that "more OO"
is better than
"more compact", considering that a laptop these days has 4GB (this is
GIGABYTES) of RAM.
I always wonder how Smaltalk would look like if it was disgned with
the same philosophy
in 1976 that people apply today. Using the "but it costs memory"
philosphy that everyone
favors today, Smalltalk would never have been done in 1976 at all.

There is another patch floating around that allows larger sources/
changes without
changing the mechanism too much.

>> One interesting aspect of the source/changes "outside the image" is
>> that this problem of data that is not used often and thus can live on
>> disk vs. memory is a general one. Hacking it into the system just for
>> the sources is just that: a hack. Providing a general, scalable way
>> to let objects live on disk that are not needed is much better, as
>> everyone can than use it. The system can use it for other resources
>> (fonts, images...). Programmers can use it to keep their domain data
>> on disk automatically.
>
>
> You mean something like LOOM? I would love to have that :)
>
Yes! :-)

       Marcus


_______________________________________________
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: [ANN] Fix to issue 825

Douglas Brebner
In reply to this post by Marcus Denker-3
Marcus Denker wrote:

> On 30.06.2009, at 11:44, Douglas Brebner wrote:
>
>> Marcus Denker wrote:
>>> I personally think that with today's resources (my laptop has 4GB
>>>  of Ram, not 256Kb), we should rethink some of the
>>> design-desicions taken 30 years ago. But many people are
>>> violently against this, fighting a battle by citing "embedded
>>> systems". If one manages to convince them that "embedded" these
>>> days does not equal "small", they mumble about "smart dust" and
>>> obscure things just to be able to fight for hacks not needed
>>> these days...
>>>
>>> Exploring new ways with the resources we have today does not mean
>>>  that everything needs to live in the image. It means that one
>>> can affort to invest resources into very general, reusable
>>> solution to problems like this.
>> Didn't Tim change CompiledMethods so they referred to their source
>> using a pointer so the source could be stored anywhere?
>>
>
> Yes, Tim did some changes (in 1998) to make compiledMethods normal
> objects that have a ByteArray for the bytecode and a normal instvar
> for the pointer to the source. IMHO the way to go, but it was never
> added to squeak... mostly because people feared the overhead (there
> are 40.000 methods, so adding another 40.000 is indeed noticable, as
> we have seen in 3.9 with the MethodProperties...).

I so wish that had made it in.

> I personally like this change, as it makes the implementation higher-
>  level and more OO, which I think is a good thing. I personally think
>  that "more OO" is better than "more compact", considering that a
> laptop these days has 4GB (this is GIGABYTES) of RAM.

Yes, it feels like an optimisation that simply isn't necessary any more.
Worse, it makes it hard for tools to work on them. I can imagine quite a
few tools that could be made with Tim style CompiledMethods.

> I always wonder how Smaltalk would look like if it was disgned with
> the same philosophy in 1976 that people apply today. Using the "but
> it costs memory" philosphy that everyone favors today, Smalltalk
> would never have been done in 1976 at all.

Smalltalk (and Lisp too) have always looked to me like they were
designed for future hardware rather than whatever was contemporary.
Didn't Alan say something about that?

The mind boggles at what a Smalltalk properly designed today would look
like. Though I do believe it would feel similar to todays since the
basic ideas of message passing and a live systems containing the tools
would probably remain though on a much larger scale with multiple images
working together.

Personally, I feel that people are looking too hard at the artefacts
like the image, the class structure and forgetting *why* they were built
the way they were.

>>> One interesting aspect of the source/changes "outside the image"
>>> is that this problem of data that is not used often and thus can
>>> live on disk vs. memory is a general one. Hacking it into the
>>> system just for the sources is just that: a hack. Providing a
>>> general, scalable way to let objects live on disk that are not
>>> needed is much better, as everyone can than use it. The system
>>> can use it for other resources (fonts, images...). Programmers
>>> can use it to keep their domain data on disk automatically.
>>
>> You mean something like LOOM? I would love to have that :)
>>
> Yes! :-)

I'd also like to be able to store on remote images or even internet
sites. Something like Craigs Spoon perhaps :)



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