The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 2.030520

  • Use PARI's precision, and not our cached values (if possible). (Fixes discrepancy between tests on 64-bit and 32-bit compiles.) D:\Programs\cygwin2016\bin\perl -Mblib -MMath::Pari -wle "Math::Pari::parse_as_gp('default(realprecision,100);Pi;default(realprecision,50);'); print PARI 'default(realprecision)'; print Math::Pari::setprecision(100); print PARI 'default(realprecision)'; print Math::Pari::setprecision()" XXX Can this be done earlier than 2.3.5 ???
  • Separate coding macros for access to the local version of precision and the global one. XXX Currently gpui() uses the PARI-local version of precision. Disable bindVariable() and (except for changevalue()) findVariable(). Switch PariVar to SV*. For loop variables, store SV* instead of entree* (after 2.4.2). XXX Temporary macro AssignPariExprR0 for interface*. XXX How to call setSVpari_keep_avma() ???
  • XXX Should not arg to sub($) … be made mortal??? Should not it be cleared on exit? Is not it done downwind already???
  • Support 'P' used with 'D' (as in elltaniyama()). XXX When the meaning of 'P' started to be encoded as "DP" ??? Between 2.3.5 and 2.5.0 (we use 2.4.2). Update TAG_community for 2.13.* (no change). XXX Should not we scan src/test/32/help to cover at least cases when it does not change??? New argument type 'b' for bitprecision. XXX Since some tests use localprec(), (temporarily???) pass global precision. XXX Temporarily keep the code for debugging local-vs.-global issues.
    • Testout.pl: test with new sub ($) {...} interface (for closure arguments).
      • when reading PARI matrix output, strip whitespace near [].
      • In a matrix/vector, remove space after [.
      • Smarter detection of !-for-factorial.
      • Evaluate a user function in PARI if we cannot parse its definition. Skip subtests using PARI user functions which call print().
      • Better "skipping" message for subtests using methods.
      • Support conversion of decimals with an exponent.
      • Recognize fractions after = as well.
      • Recognize multi-arg user functions. Do not skip if can redefine in PARI (+= ~10 subtests of intnum fail).
      • Attempt to process non-echoing blocks (as in 'ff'). Process Mat(x) in our output (why it does not appear in PARI's???). Skip when -> is in the test code. (UNUSED??? XXX)
      • Do not pass to PARI user functions which mention variables converted to Perl earlier.
      • Process \pb.
      • Processing of \ps seems to be wrong before. Include a no-echo pre-group as a separate test, and eval{} it. Compensate for difference in spaces in Mod() output: our vs PARI's. Handle no-echo blocks defining user functions using print() (XXXX but not error(), and we do not restore back when the same user function is redefined). Handle user functions using error() the same way as for print(). (XXXX no changes???)
    • PariInit.pm: * Enable 'strict'. Pari.pm: * Make 'strict'-safe, and enable 'strict'.
      • parse_as_gp(): more flexible handling of braces (still too strict, to not worry about strings). Allow the second argument to be 'quote' (grandfathered TRUE); it may also be either 'define', or a reference to a sub to filter the name. (XXXX Undocumented, not in 00_Pari.t.) Was: contrary to documentation, every evaluation was echoed. Do not return value from non-last cmds. XXX Not now: Now return the new value of the counter. (Contradicts returning the result of the last command.)
      • detect parisize changes inside parse_as_gp().
    • PariBuild.pm: Filter PARI directories with the same version by the length of directory name. XXXX Bug in perl 5.22: does not work without local()??? Patching was not working unless in a subdirectory of ./. Report $@ (per Net::FTP docs) after a failure of Net::FTP->new(). patches/diff-2.13.3-all: Updated for 2.13.3. libPARI/Makefile.PL Compile a new component halfgcd.c of mp.c (needed for 2.13.3). Makefile.PL More intelligent report of auto-applied patches. auto-dbg/* t/zzz_debug-crash.t New files (based on Audio::FindChunks; docs updated). t/000_load-problem.t t/00-Pari.t t/01_no_extra_newlines.t t/02_sections.t t/zz_leak.t t/PlotRect.t test_eng/ex.t Trigger auto-debug.
  • XXX Complex regular subexpression recursion limit (32766) exceeded at ./test_eng/Testout.pm line 479. when the code to avoid sub{} (when creating sub ...{}) is not instrumented for ($).
    • Failed 8/227 test programs. 90/1517 subtests failed. with 2.11.1 and -g The only crash is in: D:\Programs\cygwin2016\bin\perl -Mblib -MMath::Pari -wle "Math::Pari::matsolvemod(PARImat_tr([[]]),2,PARIcol(1),1)"
    • Failed 12/227 test programs. 45/1199 subtests failed. with -O2 and 2.11.1 Failed 12/243 test programs. 33/1159 subtests failed. with 2.13.3 -O2 (~5 crashes) Failed 9/243 test programs. 84/1500 subtests failed. with 2.13.3 and -g (1 extra crash in ff.t) Failed 8/243 test programs. 93/1557 subtests failed. after 'b' (with ff early exit from preamble in parisize=10M) Failed 8/243 test programs. 77/1557 subtests failed. with early exit fixed Out of the failing subtests, 12 are generating "Argument-types" messages.

Modules

Perl interface to PARI.
load Math::Pari with specified $primelimit and $initmem.
utility functions used during configuration of Math::Pari.

Provides

in PariInit.pm
in Pari.pm