[packages/parigp/DEVEL-2.13] - updated to 2.13.4, gp2c 0.0.12pl1, Math::Pari 2.030523
qboosh
qboosh at pld-linux.org
Mon May 30 22:15:43 CEST 2022
commit 5a07df353d1ae33abf2e8b242a208272bf3d544b
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Mon May 30 22:16:44 2022 +0200
- updated to 2.13.4, gp2c 0.0.12pl1, Math::Pari 2.030523
Math-Pari-escape-left-braces-in-regex.patch | 22 ---
pari-Math-Pari-diff.patch | 208 ----------------------------
parigp.spec | 28 ++--
perl-Math-Pari-crash-workaround.patch | 18 +--
perl-Math-Pari-update.patch | 68 ---------
5 files changed, 20 insertions(+), 324 deletions(-)
---
diff --git a/parigp.spec b/parigp.spec
index 6baf152..1249de6 100644
--- a/parigp.spec
+++ b/parigp.spec
@@ -7,26 +7,26 @@
# Failed 19/243 test programs. 176/1476 subtests failed.
# compared to 2.11.4 with Math-Pari 2.11-diff-all patch:
# Failed 20/229 test programs. 173/1477 subtests failed.
-%define pari_version 2.13.1
-%define gp2c_version 0.0.12
+%define pari_version 2.13.4
+%define gp2c_version 0.0.12pl1
# because of previous 2.x versions with 8 minor digits, keep trailing zeros in package Version
-%define math_pari_version 2.03051800
-%define math_pari_fversion 2.030518
+%define math_pari_version 2.03052300
+%define math_pari_fversion 2.030523
Summary: Number Theory-oriented Computer Algebra System
Summary(pl.UTF-8): Komputerowy system obliczeń algebraicznych zorientowany na metody teorii liczb
Name: parigp
Version: %{pari_version}
-Release: 20
+Release: 1
License: GPL v2+
Group: Applications/Math
Source0: http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-%{pari_version}.tar.gz
-# Source0-md5: 826064cf75af268be8a482ade6e27501
+# Source0-md5: b624752c00b4b87b940fd98c910d8c09
Source1: http://pari.math.u-bordeaux.fr/pub/pari/packages/galdata.tgz
# Source1-md5: f9f61b2930757a785b568e5d307a7d75
Source2: http://pari.math.u-bordeaux.fr/pub/pari/GP2C/gp2c-%{gp2c_version}.tar.gz
-# Source2-md5: ab29c383985d1b7d339189ecff31d40a
-Source3: http://www.cpan.org/modules/by-module/Math/Math-Pari-%{math_pari_fversion}.zip
-# Source3-md5: f0d1d9f803c92abff0d6349869a82699
+# Source2-md5: 07e5959df2a08e519532a03ff5b8111f
+Source3: http://www.cpan.org/modules/by-module/Math/Math-Pari-%{math_pari_fversion}.tar.gz
+# Source3-md5: e5489cb047989bf6ef3f1fdc590ca736
Source4: %{name}.desktop
Source5: %{name}.png
Patch0: %{name}-target_arch.patch
@@ -35,10 +35,6 @@ Patch3: perl-Math-Pari-crash-workaround.patch
Patch4: perl-Math-Pari-noproccpuinfo.patch
Patch5: %{name}-noproccpuinfo.patch
Patch6: gmp-version.patch
-Patch7: Math-Pari-escape-left-braces-in-regex.patch
-Patch8: perl-Math-Pari-update.patch
-# based on Math-Pari-%{math_pari_fversion}/patches/diff-2.11.0-all
-Patch10: pari-Math-Pari-diff.patch
URL: http://pari.math.u-bordeaux.fr/
BuildRequires: autoconf
BuildRequires: ctags
@@ -184,7 +180,7 @@ Interfejs Perla do biblioteki PARI.
%prep
%setup -q -n pari-%{pari_version} -a 2 -a 3
-%patch10 -p1
+patch -p1 < Math-Pari-%{math_pari_fversion}/patches/diff-2.13.3-all
%patch0 -p1
%patch2 -p1
%patch5 -p1
@@ -192,8 +188,6 @@ Interfejs Perla do biblioteki PARI.
cd Math-Pari-%{math_pari_fversion}
%patch3 -p1
%patch4 -p1
-%patch7 -p0
-%patch8 -p1
%build
# pari & parigp
@@ -235,7 +229,7 @@ ln -sf .. pari
--datadir=%{_datadir}/parigp
%{__make}
-%{?with_tex:%{__make} -j1 -C doc docall}
+%{?with_tex:%{__make} -j1 -C doc}
cd ..
diff --git a/Math-Pari-escape-left-braces-in-regex.patch b/Math-Pari-escape-left-braces-in-regex.patch
deleted file mode 100644
index 8471f44..0000000
--- a/Math-Pari-escape-left-braces-in-regex.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- libPARI/gphelp
-+++ libPARI/gphelp
-@@ -328,7 +328,7 @@ sub apropos
- @sentence_list = @list = "";
- while (<DOC>)
- {
-- if (/^\\(subsubsec[a-z]*|subsec[a-z]*|section|chapter){/)
-+ if (/^\\(subsubsec[a-z]*|subsec[a-z]*|section|chapter)\{/)
- {
- $new = &get_match($_,'{','}');
- &apropos_check();
-@@ -1025,8 +1025,8 @@ sub TeXprint_topod {
- s/\$\$(.*?)\$\$\s*/\n\nS< >$tr{startcode}$1$tr{endcode}\n\n/gs;
- s/\$([^\$]+)\$/$tr{startcode}$1$tr{endcode}/g;
-
-- s/\\s(?:ref|idx){\s*([^{}]*)}/$tr{startindex} . for_index($1) . $tr{endindex}/ge;
-- s/\\(?:ref|idx){\s*([^{}]*)}/$tr{startindex} . for_index($1) . "$tr{endindex}$1"/ge;
-+ s/\\s(?:ref|idx)\{\s*([^{}]*)}/$tr{startindex} . for_index($1) . $tr{endindex}/ge;
-+ s/\\(?:ref|idx)\{\s*([^{}]*)}/$tr{startindex} . for_index($1) . "$tr{endindex}$1"/ge;
-
- # Conflict between different versions of PARI and refcard:
- # s/\\(?:key|li)\s*{(.*)}\s*{(.+)}[ \t]*\n/\n\n=item C<$2>\n\n$1\n\n/msg;
diff --git a/pari-Math-Pari-diff.patch b/pari-Math-Pari-diff.patch
deleted file mode 100644
index a603401..0000000
--- a/pari-Math-Pari-diff.patch
+++ /dev/null
@@ -1,208 +0,0 @@
---- pari-2.13.1/src/language/anal.c.orig 2020-10-26 13:43:04.000000000 +0100
-+++ pari-2.13.1/src/language/anal.c 2021-06-26 11:47:46.571531691 +0200
-@@ -159,6 +159,10 @@ findentry(const char *s, long len, entre
- if (!strncmp(t, s, len) && !t[len]) return ep;
- }
- /* not found */
-+ if (foreignAutoload) { /* Try to autoload. */
-+ ep = foreignAutoload(s,len);
-+ if(ep) return ep;
-+ } /* not found */
- if (insert) { ep = initep(s,len); insertep(ep, T, hash); }
- return ep;
- }
-@@ -214,7 +218,7 @@ gp_read_str_prec(const char *s, long pre
- /* valid return type */
- static int
- isreturn(char c)
--{ return c == 'l' || c == 'v' || c == 'i' || c == 'm' || c == 'u'; }
-+{ return c == 'l' || c == 'v' || c == 'i' || c == 'm' || c == 'u' || c == 'x'; }
-
- /* if is known that 2 commas follow s; base-10 signed integer followed
- * by comma? */
-@@ -241,7 +245,7 @@ check_proto(const char *code)
- {
- long arity = 0;
- const char *s = code;
-- if (isreturn(*s)) s++;
-+ if (isreturn(*s)) { if(*s == 'x') { arity++; } s++; }
- while (*s && *s != '\n') switch (*s++)
- {
- case '&':
-@@ -329,7 +333,11 @@ install(void *f, const char *name, const
- {
- if (ep->valence != EpINSTALL)
- pari_err(e_MISC,"[install] identifier '%s' already in use", name);
-- pari_warn(warner, "[install] updating '%s' prototype; module not reloaded", name);
-+ if (foreignFuncFree && ep->code && (*ep->code == 'x'))
-+ (*foreignFuncFree)(ep); /* function created by foreign interpreter */
-+ else
-+ pari_warn(warner, "[install] updating '%s' prototype; module not reloaded", name);
-+
- if (ep->code) pari_free((void*)ep->code);
- }
- else
-diff -pru pari-2.9.0-ini/src/language/anal.h pari-2.9.0/src/language/anal.h
---- pari-2.9.0-ini/src/language/anal.h 2016-10-01 04:23:18.000000000 -0700
-+++ pari-2.9.0/src/language/anal.h 2019-03-06 02:48:18.136608900 -0800
-@@ -34,6 +34,9 @@ void pari_fill_hashtable(entree **tabl
- void compile_err(const char *msg, const char *str);
- void compile_varerr(const char *str);
-
-+extern entree * (*foreignAutoload)(const char*, long len);
-+extern void (*foreignFuncFree)(entree *);
-+
- #ifdef STACK_CHECK
- extern THREAD void *PARI_stack_limit;
- #endif
-diff -pru pari-2.9.0-ini/src/language/compile.c pari-2.9.0/src/language/compile.c
---- pari-2.9.0-ini/src/language/compile.c 2016-10-05 02:43:38.000000000 -0700
-+++ pari-2.9.0/src/language/compile.c 2019-03-06 02:48:18.027408700 -0800
-@@ -519,9 +519,10 @@ detag(long n)
-
- /* return type for GP functions */
- static op_code
--get_ret_type(const char **p, long arity, Gtype *t, long *flag)
-+get_ret_type(const char **p, long arity, Gtype *t, long *flag, long *is_external)
- {
-- *flag = 0;
-+ *flag = *is_external = 0;
-+ if (**p == 'x') { (*p)++; *is_external = 1; }
- if (**p == 'v') { (*p)++; *t=Gvoid; return OCcallvoid; }
- else if (**p == 'i') { (*p)++; *t=Gsmall; return OCcallint; }
- else if (**p == 'l') { (*p)++; *t=Gsmall; return OCcalllong; }
-@@ -1203,7 +1204,7 @@ compilefunc(entree *ep, long n, int mode
- long j;
- long x=tree[n].x, y=tree[n].y;
- op_code ret_op;
-- long ret_flag;
-+ long ret_flag, is_external;
- Gtype ret_typ;
- char const *p,*q;
- char c;
-@@ -1337,8 +1337,9 @@ compilefunc(entree *ep, long n, int mode
- if (!ep->value)
- compile_err("unknown function",tree[n].str);
- nbopcodes = s_opcode.n;
-- ret_op = get_ret_type(&p, ep->arity, &ret_typ, &ret_flag);
-+ ret_op = get_ret_type(&p, ep->arity, &ret_typ, &ret_flag, &is_external);
- j=1;
-+ if (is_external) op_push(OCpushlong,(long)ep,n); /* as in PPauto */
- if (*p)
- {
- q=p;
-@@ -1661,8 +1663,8 @@ genclosure(entree *ep, const char *loc,
- long arity=0, maskarg=0, maskarg0=0, stop=0, dovararg=0;
- PPproto mod;
- Gtype ret_typ;
-- long ret_flag;
-- op_code ret_op=get_ret_type(&code,ep->arity,&ret_typ,&ret_flag);
-+ long ret_flag, is_external;
-+ op_code ret_op=get_ret_type(&code,ep->arity,&ret_typ,&ret_flag,&is_external);
- p=code;
- while ((mod=parseproto(&p,&c,NULL))!=PPend)
- {
-@@ -1705,6 +1707,7 @@ genclosure(entree *ep, const char *loc,
- if (maskarg) op_push_loc(OCcheckargs,maskarg,loc);
- if (maskarg0) op_push_loc(OCcheckargs0,maskarg0,loc);
- p=code;
-+ if (is_external) op_push_loc(OCpushlong,(long)ep,loc); /* as in PPauto */
- while ((mod=parseproto(&p,&c,NULL))!=PPend)
- {
- switch(mod)
-@@ -2292,14 +2292,14 @@ optimizefunc(entree *ep, long n)
- const char *p;
- char c;
- GEN arg = listtogen(y,Flistarg);
-- long nb=lg(arg)-1, ret_flag;
-+ long nb=lg(arg)-1, ret_flag, is_external /* ignored */;
- if (is_func_named(ep,"if") && nb>=4)
- ep=is_entry("_multi_if");
- p = ep->code;
- if (!p)
- fl=0;
- else
-- (void) get_ret_type(&p, 2, &t, &ret_flag);
-+ (void) get_ret_type(&p, 2, &t, &ret_flag, &is_external);
- if (p && *p)
- {
- j=1;
---- pari-2.13.1/src/language/eval.c.orig 2020-10-26 13:43:04.000000000 +0100
-+++ pari-2.13.1/src/language/eval.c 2021-06-26 11:49:53.724176179 +0200
-@@ -139,6 +139,9 @@ pop_val(entree *ep)
- void
- freeep(entree *ep)
- {
-+ if (foreignFuncFree && ep->code && (*ep->code == 'x'))
-+ (*foreignFuncFree)(ep); /* function created by foreign interpreter */
-+
- if (EpSTATIC(ep)) return; /* gp function loaded at init time */
- if (ep->help) {pari_free((void*)ep->help); ep->help=NULL;}
- if (ep->code) {pari_free((void*)ep->code); ep->code=NULL;}
-@@ -1672,7 +1675,8 @@ evalstate_reset(void)
- reset_break();
- compilestate_reset();
- parsestate_reset();
-- set_avma(pari_mainstack->top);
-+ if (!cb_exception_resets_avma)
-+ set_avma(pari_mainstack->top);
- }
-
- void
-diff -pru pari-2.9.0-ini/src/language/init.c pari-2.9.0/src/language/init.c
---- pari-2.9.0-ini/src/language/init.c 2016-10-25 01:15:32.000000000 -0700
-+++ pari-2.9.0/src/language/init.c 2019-03-06 03:00:07.190054300 -0800
-@@ -113,6 +113,9 @@ static pari_stack s_MODULES;
- const long functions_tblsz = 135; /* size of functions_hash */
- entree **functions_hash, **defaults_hash;
-
-+entree* (*foreignAutoload)(const char*, long len); /* Autoloader */
-+void (*foreignFuncFree)(entree *); /* How to free external entree. */
-+
- char *(*cb_pari_fgets_interactive)(char *s, int n, FILE *f);
- int (*cb_pari_get_line_interactive)(const char*, const char*, filtre_t *F);
- void (*cb_pari_quit)(long);
-@@ -130,6 +133,9 @@ void (*cb_pari_start_output)();
-
- const char * pari_library_path = NULL;
-
-+int cb_exception_resets_avma = 0;
-+int cb_exception_flushes_err = 0;
-+
- static THREAD GEN global_err_data;
- THREAD jmp_buf *iferr_env;
- const long CATCH_ALL = -1;
-@@ -1141,7 +1147,8 @@ pari_sigint(const char *time_s)
- out_puts(pariErr, "user interrupt after ");
- out_puts(pariErr, time_s);
- out_term_color(pariErr, c_NONE);
-- pariErr->flush();
-+ if (!cb_exception_flushes_err)
-+ pariErr->flush();
- if (cb_pari_handle_exception)
- recover = cb_pari_handle_exception(-1);
- if (!recover && !block)
-@@ -1505,7 +1505,9 @@ pari_err_display(GEN err)
- pari_free(s);
- }
- out_term_color(pariErr, c_NONE);
-- pariErr->flush(); return 0;
-+ if (!cb_exception_flushes_err)
-+ pariErr->flush();
-+ return 0;
- }
-
- void
---- pari-2.9.0/src/headers/paricom.h-pre 2011-05-30 02:28:34.000000000 -0700
-+++ pari-2.9.0/src/headers/paricom.h 2018-09-16 00:04:16.527215600 -0700
-@@ -92,6 +92,10 @@ extern void (*cb_pari_start_output)(void
- extern const char *pari_library_path;
- extern THREAD long *varpriority;
-
-+#define CB_EXCEPTION_FLAGS 1
-+extern int cb_exception_resets_avma;
-+extern int cb_exception_flushes_err;
-+
- /* pari_init_opts */
- enum {
- INIT_JMPm = 1,
diff --git a/perl-Math-Pari-crash-workaround.patch b/perl-Math-Pari-crash-workaround.patch
index 6e4d1b5..0918030 100644
--- a/perl-Math-Pari-crash-workaround.patch
+++ b/perl-Math-Pari-crash-workaround.patch
@@ -8,9 +8,9 @@ bless( do{\(my $o = POINTER_VAL)}, 'Math::Pari' );
where POINTER_VAL is just value of pointer to already existing Pari
object (which may be destroyed later!).
---- Math-Pari-2.01080605/Pari.xs.orig 2004-01-31 10:06:08.000000000 +0100
-+++ Math-Pari-2.01080605/Pari.xs 2004-05-15 21:11:38.894463600 +0200
-@@ -1285,6 +1285,13 @@
+--- Math-Pari-2.030523/Pari.xs.orig 2022-04-12 11:03:02.000000000 +0200
++++ Math-Pari-2.030523/Pari.xs 2022-05-30 21:20:23.166166331 +0200
+@@ -1437,6 +1437,13 @@ moveoffstack_newer_than(SV* sv)
SV* nextsv;
long ret=0;
@@ -20,20 +20,20 @@ object (which may be destroyed later!).
+ if((char*)nextsv == GENfirstOnStack)
+ return -1; /* not on stack! */
+ }
-+
++
for (sv1 = PariStack; sv1 != sv; sv1 = nextsv) {
ret++;
- SV_OAVMA_switch(nextsv, sv1, GENmovedOffStack); /* Mark as moved off stack. */
-@@ -3848,7 +3855,7 @@
+ SV_OAVMA_switch(nextsv, sv1, GENmovedOffStack); /* Mark as moved off stack. */
+@@ -4570,7 +4577,7 @@ DESTROY(rv)
long oldavma; /* The value of avma on the entry
* to function having the SV as
* argument. */
- long howmany;
+ long howmany = 0;
SV_OAVMA_PARISTACK_get(sv, oldavma, ostack);
- oldavma += bot;
+ oldavma += myPARI_bot;
#if 1
-@@ -3881,6 +3888,7 @@
+@@ -4603,6 +4610,7 @@ DESTROY(rv)
/* Now fall through: */
/* case (IV)GENfirstOnStack: */
/* Now sv is the newest one on stack. */
@@ -41,7 +41,7 @@ object (which may be destroyed later!).
onStack_dec;
perlavma = oldavma;
if (oldavma > sentinel) {
-@@ -3889,7 +3897,9 @@
+@@ -4611,7 +4619,9 @@ DESTROY(rv)
avma = oldavma; /* Mark the space on stack as free. */
}
PariStack = (SV*)ostack; /* The same on the Perl/PARI side. */
diff --git a/perl-Math-Pari-update.patch b/perl-Math-Pari-update.patch
deleted file mode 100644
index da787de..0000000
--- a/perl-Math-Pari-update.patch
+++ /dev/null
@@ -1,68 +0,0 @@
---- Math-Pari-2.030518/Pari.xs.orig 2021-06-24 18:30:57.496616128 +0200
-+++ Math-Pari-2.030518/Pari.xs 2021-06-24 20:04:03.246355523 +0200
-@@ -1283,7 +1283,7 @@
- /* add to output */
- switch(d->context) {
- case G_VOID:
-- case G_SCALAR: sv_catpvf(d->acc, " %2d: %s\n",
-+ case G_SCALAR: sv_catpvf(d->acc, " %2ld: %s\n",
- d->items - 1, SvPV_nolen(tmp));
- SvREFCNT_dec(tmp); break;
- case G_ARRAY: av_push((AV*)d->acc,tmp); break;
-@@ -2036,11 +2036,11 @@
- # if PARI_VERSION_EXP < 2010000
- # define TAG_community 15 /* "The PARI community" */
- # else /* !(PARI_VERSION_EXP < 2010000) */
--# if PARI_VERSION_EXP < 2012000
-+# if PARI_VERSION_EXP < 2014000
- # define TAG_community 17 /* "The PARI community" */
--# else /* !(PARI_VERSION_EXP < 2012000) */
-+# else /* !(PARI_VERSION_EXP < 2014000) */
- # define TAG_community_unknown
--# endif /* !(PARI_VERSION_EXP < 2012000) */
-+# endif /* !(PARI_VERSION_EXP < 2014000) */
- # endif /* !(PARI_VERSION_EXP < 2010000) */
- #endif /* !(PARI_VERSION_EXP < 2008000) */
-
-@@ -2060,7 +2060,7 @@
- char *
- added_sections()
- {
--#if PARI_VERSION_EXP < 2013000
-+#if PARI_VERSION_EXP < 2014000
- /* Suggestion on format (part of 2.10.0), only use short names: "4: functions related to COMBINATORICS\n13: L-FUNCTIONS" */
- return "";
- #else /* !( PARI_VERSION_EXP < 2011000) */
-@@ -3823,7 +3823,7 @@
- switch (valence) {
- case 0:
- if (!ep->code) {
-- croak("Unsupported Pari function %s, interface 0 code NULL");
-+ croak("Unsupported Pari function %s, interface 0 code NULL", name);
- } else if (ep->code[0] == 'p' && ep->code[1] == 0) {
- DO_INTERFACE(0);
- } else if (ep->code[0] == 0) {
-@@ -3886,10 +3886,10 @@
-
- default:
- if (!ep)
-- croak("Unsupported interface %d for \"direct-link\" Pari function %s",
-+ croak("Unsupported interface %ld for \"direct-link\" Pari function %s",
- valence, olds);
- if (!ep->code)
-- croak("Unsupported interface %d and no code for a Pari function %s",
-+ croak("Unsupported interface %ld and no code for a Pari function %s",
- valence, olds);
- flexible:
- s1 = s = ep->code;
---- Math-Pari-2.030518/libPARI/Makefile.PL.orig 2021-06-24 21:41:42.021282480 +0200
-+++ Math-Pari-2.030518/libPARI/Makefile.PL 2021-06-24 21:41:46.411258697 +0200
-@@ -317,7 +317,7 @@
- $mp = 'mp.c';
- my $kern = "$kernel_dir/none";
- my @dep # Copied from src/kernel/none/MakeLVL1.SH 2.2.10
-- = "$kern/mp.c $kern/cmp.c $kern/gcdll.c $kern/ratlift.c $kern/gcd.c $kern/invmod.c $kern/mp_indep.c $kern/add.c";
-+ = "$kern/mp.c $kern/cmp.c $kern/gcdll.c $kern/halfgcd.c $kern/ratlift.c $kern/invmod.c $kern/gcd.c $kern/mp_indep.c $kern/add.c";
- -f "$main_paridir/src/kernel/$_" and push @dep, "$kernel_dir/$_" for "none/gcdext.c"; # When did it appear? Was: if $pari_version > 2004000
- $create_mp = <<EOS;
- mp.c: @dep
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/parigp.git/commitdiff/5a07df353d1ae33abf2e8b242a208272bf3d544b
More information about the pld-cvs-commit
mailing list