Reloading packages: Removed[symbol]
- To: mathgroup at smc.vnet.net
- Subject: [mg57791] Reloading packages: Removed[symbol]
- From: Josef Karthauser <joe at tao.org.uk>
- Date: Wed, 8 Jun 2005 03:21:42 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
I want to reload a package that's already been loaded. (Because it's
been modified in another mathematica session and I want to take
advantage of the new functionality.)
I thought I was being clever by first removing all the package symbols
with Remove[] and then removing the package name from $Packages. This
allows me to reload the package, but I'm left with a dilemma.
Definitions that are in memory that referenced the symbols that have
been removed have been replaced with 'Removed["symbol"]' and I can't
seem to match them to turn them back.
Is there a way of reloading a module? How do I fix this problem?
The string of operations to reload MyPackage was:
Remove["MyPackage`*"]
Unprotect[$Packages];
$Packages = Select[$Packages, =AC StringMatchQ[#, "MyPackage`*"] &];
Needs["MyPackage`"]
My problem now is effectively:
In: a = MyPackage`Foo[]
In: Remove["MyPackage`*"]
In: a // FullForm
Out: Removed["Foo"][]
How do I convert a back?
In: a /. Removed[x_] :> Symbol[x]
Doesn't do anything :(.
Joe
--
Josef Karthauser (joe at tao.org.uk) http://www.josef-k.net/
FreeBSD (cvs meister, admin and hacker) http://www.uk.FreeBSD.org/
Physics Particle Theory (student) http://www.pact.cpes.sussex.ac.uk/
================ An eclectic mix of fact and theory. =================