I have written a module (let's say MyModule) that I use as a package in a worksheet (with(MyModule)).
At some point in my worksheet I call the procedure MyProc which is part of MyModule.
I find it not to work as expected. So I modify it within MyModule and generate again the archive which contains this module.
Because my worksheet does a lot of things before the call to MyProc, I would like to test quickly the above modifications.
The idea is to do :
unwith(MyModule): # packages() no longer exhibits its name
with(MyModule); # to load the corrected one
Unfortunately, contrary to what happens with a "native" package, the command unwith(MyModule) is ineffective:
- once done showstat(MyProc) still displays the content of the procedure, and running the command MyProc(...) proves that it still "exists" in the worksheet
- forcing a reload of MyModule ( with(MyModule) ) and acanning again MyProc ( showstat(MyProc) ) reveals the code MyProc had when MyModule has been loaded for the first time.
Is it possible to "free" a user package through the "unwith" command ?
Hope to read you soon, TIA
PS : to be clearer
A worksheet contains the definition of N procedures, plus the one of MyModule, and ends with the commands to generate an archive file named MyModule.mla.
MyModule is defined that way
MyModule := module()
export Proc1 := eval(:-Proc1),
MyProc := eval(:-MyProc),
ProcN := eval(:-ProcN):