Thanks for the info. I think i am on safe side of things since I dont mess with pharo internals. You say if I override an existing method, that method cannot be recovered, but that is strange since the system does have versions for each method , so I assume here that is not that is not possible rather than none actually implemented this in a convenient way. How you can have class collision , I assumed so far that the system does not allow you to have two classes with the same name. If you have subclasses in another package then I would let them MNU. I think its kinda insane to try to protect the user from all scenarios, at least not before you deal with more pressing issues / bugs. One thing that could help here is to have something similar to when we install a project that warns us that a project depends on other projects/ classes we could have the same warning for when we remove classes. I think also its a good idea to allow user some control, for example maybe the user want to keep those subclasses and make them subclass another class instead. Yeah I will look into unloading with metacello that sounds cleaner this is an issue that really interests me. How to make my project uninstallable and automatically update-able is two areas that deeply interest me. On Fri, Nov 20, 2015 at 12:56 AM Mariano Martinez Peck < marianopeck@gmail.com> wrote:
To unload a package you can do it from Monticello Browser..Select the package (left column), right click, "Unload Package". But not that it will not work properly in cases where you have method overrides (the original methods you override will NOT be recovered), or class collisions (imagine your package has a class name collision with a class name of another package)... Then you can have instances of classes you unload...hence the Obsolete thingy (instances are now instance of an obsolete class). Then you can also have subclasses in ANOTHER package of classes of the package you unload. What you do with the subclasses? and with the instances of such subclasses? So... order of unloading does matter across packages (in the same way that loading does). So for unloading multiple packages you should be using Meacello or similar.
As you can see, it's not an easy task.
On Thu, Nov 19, 2015 at 7:23 PM, milton mamani <akevalion@gmail.com> wrote:
+1 By the way so how one can unload a project from the pharo image ? I never tried that one before.
Use the Force Dimitris
Sorry I dont have the answer for this now, but I am interested on this issue.
2015-11-19 18:05 GMT-04:00 Dimitris Chloupis <kilon.alios@gmail.com>:
I prefer being a technomage to a jedi, jedies are too, well naive and purists.
By the way so how one can unload a project from the pharo image ? I never tried that one before.
On Thu, Nov 19, 2015 at 10:59 PM stepharo <stepharo@free.fr> wrote:
When I was getting to be a Jedi, my Yoda master (Joseph Pelrine) told me the following (yes back in 96)
translated from Yoda language:
you will be a real Jedi when your code will load in one click! you will be a real Jedi when your code will unload in one click and do not let shit behind it!
Simple no. So when do we get real Jedi knights?
Stef
-- Mariano http://marianopeck.wordpress.com