Changes for version 2.030503
- XXX (Temporarily) add new GEN code_return_1 which is a closure returning 1. XXX (Temporarily) use code_return_1 as an argument to all PARI functions taking a t_CLOSURE (in fill_argvect() and T_PariExpr) XXX Are DE, DI supported types in PARI/GP??? XXX disttest does something like -I ../../pari-2.3.5 ...... -I ./pari-2.5.0 (due to PASSTHRU ???) - won't hurt anyway! XXX new Prototype-prefix letter 'm' for return type of no-copy??? XXX The prototype letter 'V' _stores_ the variable numbers, and not passes them as arguments. So translates (X=A,B,sin(X)) to (A,B, X -> sin(X)). XXX No access to low-level iterators (as in forvec_init()). XXX Can we use closure_func_err() in our error handler? (Also: it may be used in a warning handler???) XXX (Temporarily) ignore the variables of type `V' in prebuilt interfaces: remove them from the arglist of the called C function. Failed 16/82 test programs. 67/595 subtests failed. XXX (Temporarily) same for flexible interfaces. Failed 16/82 test programs. 102/647 subtests failed. (6 crashes) Handling of Prototype code 'x' in GP/PARI was missing. Failed 16/82 test programs. 120/678 subtests failed (7 crashes). XXX Code to generate closure out of external function (genclosure() with is_external) may be completely bogus. ForeignFuncFree may have caused double free()s. Adding/free()ing ->help for our installed subroutines was completely busted. Re-installing in GP/PARI was ignoring the foreignFuncFree handler. Remove pre-junk in precode. (Is not used for a long time.) Failed 16/82 test programs. 104/650 subtests failed. The code to handle more than 1 optional argument was completely busted. XXX Test for this??? Failed 16/82 test programs. 122/681 subtests failed. XXX Our exception handler does not work as it should: the warning is already issued, so the error is empty. Failed 16/82 test programs. 92/632 subtests failed. (without -O2 -s) gclone() our tmp handlers ((x)->1), etc Failed 16/82 test programs. 133/1249 subtests failed. (4 crashes) We did not detach_stack() on restart. Now grows 6.7M on 1e5 iterations with 2.3.5 32bit windows (takes about 15min): perl -Mblib -le "for (1..shift) {delete $INC{q(Math/Pari.pm)}; require Math::Pari; print sin Math::Pari::PARI(1)} END{warn 1; sleep 500}" 100000 XXX Probably worksv and workErrsv leaking??? XXX But this crashes with 100 (but not with 20): perl -Mblib -wle "for (1..shift) {delete $INC{q(Math/Pari.pm)}; %Math::Pari::=(); require Math::Pari; $n=q(Math::Pari::PARI); *PARI = \&$n; print sin PARI(1)}" 100 To avoid warnings on redefinition, avoid function names in the script being resolved at compile time. perl -Mblib -wle "for (1..shift) {delete $INC{q(Math/Pari.pm)}; %Math::Pari::=(); delete $::{PARI}; require Math::Pari; $n=q(Math::Pari::PARI); $N=q(PARI); *$N = \&$n; print sin &$N(1)}" 1000 but this cannot survive more than a few dozens of iterations...
Modules
Perl interface to PARI.
load Math::Pari with specified $primelimit and $initmem.
utility functions used during configuration of Math::Pari.
Provides
in Pari.pm