| Karim BELABAS on Thu, 2 Nov 2000 19:14:34 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: [PARI] |
[Bill:]
> I use the following easy trick:
>
> I create a file 'r' with the install commands and other initialization
> steps. When I finish recompiling, I do
> \q
> gp
> \rr
>
> to restart a fresh session.
I use a slightly more elaborate trick:
1) You can quit with <C-D> saving 1 keypress...
2) You can also use an alias that repeatedly calls a new gp as the old one is
killed, so 'gp' is useless as well [I use GP in a special purpose window
anyway, and kill the window when I really want to get rid of it].
3) And of course, the \rr part is also useless, since you can easily setup a
file that's read on startup from your gprc automagically [ possibly checking
first whether it's there or not via trap(,"",read(myfile)) ].
So all the above can be abbreviated to <C-D>, after a few trivial (generic)
setup efforts.
Another useful trick: on startup, my gprc loads, among others:
tmp_file(n) = Str("$TMPDIR/gp.tmp"n, 1)
rtmp(n) = read(tmp_file(n))
wtmp(x, n) =
{ local(file); file = tmp_file(n);
system("rm -f " file);
write(file, x)
}
I use this to "export" GP variables from one session to another. Example:
? wtmp(bnf)
in one session, and in the other
? bnf = rtmp(); \\ or rtmp; ugly, but saves two keypress...
I use the default tmp_file(0) as temporary storage, the other ones are
available in case I need to preserve a result, e.g
? wtmp(bnf,"K");
and
? bnf = rtmp("K");
(which I'll be able to use for a few days before I choose again the "K"
suffix by mistake...)
[I have analogous trivial statements for gdb to export PARI objects as GP
objects while I'm debugging library programs, so that I can use/check them in
a GP session. Or conversely for the debugger to load a GP object created
somewhere else and use it as a GEN in the C program.]
Unfortunately, this only works for variables, I sometimes wish that ? (as an
operator) would return the help string, so as to be able to
wtmp(?my_function)
for instance. But in that case a general save_session/load_session mechanism
would be preferable [it's in the TODO list].
Cheers,
Karim.
--
Karim Belabas email: Karim.Belabas@math.u-psud.fr
Dep. de Mathematiques, Bat. 425
Universite Paris-Sud Tel: (00 33) 1 69 15 57 48
F-91405 Orsay (France) Fax: (00 33) 1 69 15 60 19
--
PARI/GP Home Page: http://www.parigp-home.de/