[arch-commits] Commit in pari/repos (6 files)
Gaetan Bisson
bisson at archlinux.org
Sat Feb 14 17:19:37 UTC 2015
Date: Saturday, February 14, 2015 @ 18:19:37
Author: bisson
Revision: 127693
archrelease: copy trunk to community-staging-i686, community-staging-x86_64
Added:
pari/repos/community-staging-i686/
pari/repos/community-staging-i686/PKGBUILD
(from rev 127692, pari/trunk/PKGBUILD)
pari/repos/community-staging-i686/err_handle.patch
(from rev 127692, pari/trunk/err_handle.patch)
pari/repos/community-staging-x86_64/
pari/repos/community-staging-x86_64/PKGBUILD
(from rev 127692, pari/trunk/PKGBUILD)
pari/repos/community-staging-x86_64/err_handle.patch
(from rev 127692, pari/trunk/err_handle.patch)
-------------------------------------------+
community-staging-i686/PKGBUILD | 45 ++++++++++++
community-staging-i686/err_handle.patch | 105 ++++++++++++++++++++++++++++
community-staging-x86_64/PKGBUILD | 45 ++++++++++++
community-staging-x86_64/err_handle.patch | 105 ++++++++++++++++++++++++++++
4 files changed, 300 insertions(+)
Copied: pari/repos/community-staging-i686/PKGBUILD (from rev 127692, pari/trunk/PKGBUILD)
===================================================================
--- community-staging-i686/PKGBUILD (rev 0)
+++ community-staging-i686/PKGBUILD 2015-02-14 17:19:37 UTC (rev 127693)
@@ -0,0 +1,45 @@
+# $Id$
+# Maintainer: Gaetan Bisson <bisson at archlinux.org>
+
+pkgname=pari
+pkgver=2.7.2
+pkgrel=2
+pkgdesc='Computer algebra system designed for fast computations in number theory'
+url='http://pari.math.u-bordeaux.fr/'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gmp' 'readline' 'libx11')
+makedepends=('perl' 'texlive-core')
+optdepends=('perl: gphelp, tex2mail')
+source=("http://pari.math.u-bordeaux.fr/pub/pari/unix/${pkgname}-${pkgver}.tar.gz"
+ 'err_handle.patch')
+sha1sums=('27ef49c39860055ff97608bc323bff2afda1aa51'
+ '182066ab765eddb0b7fd98b441c158304545f5ec')
+
+prepare() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed 's/\$addlib64//g' -i config/get_libpth
+ patch -p1 -i ../err_handle.patch # sage-5.6 uses this¸ from upstream trunk
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./Configure \
+ --prefix=/usr \
+ --with-readline \
+ --mt=pthread \
+ --with-gmp \
+
+ make all
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make bench
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ ln -sf gp.1.gz "${pkgdir}"/usr/share/man/man1/pari.1
+}
Copied: pari/repos/community-staging-i686/err_handle.patch (from rev 127692, pari/trunk/err_handle.patch)
===================================================================
--- community-staging-i686/err_handle.patch (rev 0)
+++ community-staging-i686/err_handle.patch 2015-02-14 17:19:37 UTC (rev 127693)
@@ -0,0 +1,105 @@
+Add cb_pari_err_handle() callback
+
+Backported from upstream commits
+e9e659dc9ecb5ca6a8296c7922528a4ecbb89cb0
+26a7ae0f42918407febe9901ded41faf26ef43a6
+
+diff -ru src/src/headers/paricom.h b/src/headers/paricom.h
+--- src/src/headers/paricom.h 2014-03-25 09:59:21.000000000 +0100
++++ b/src/headers/paricom.h 2015-01-13 19:41:47.430885048 +0100
+@@ -81,6 +81,7 @@
+ extern int (*cb_pari_whatnow)(PariOUT *out, const char *, int);
+ extern void (*cb_pari_sigint)(void);
+ extern int (*cb_pari_handle_exception)(long);
++extern int (*cb_pari_err_handle)(GEN);
+ extern void (*cb_pari_pre_recover)(long);
+ extern void (*cb_pari_err_recover)(long);
+ extern const char *pari_library_path;
+diff -ru src/src/language/init.c b/src/language/init.c
+--- src/src/language/init.c 2015-01-13 19:40:30.643622993 +0100
++++ b/src/language/init.c 2015-01-13 19:41:47.431884833 +0100
+@@ -87,6 +87,7 @@
+
+ void (*cb_pari_ask_confirm)(const char *);
+ int (*cb_pari_handle_exception)(long);
++int (*cb_pari_err_handle)(GEN);
+ int (*cb_pari_whatnow)(PariOUT *out, const char *, int);
+ void (*cb_pari_sigint)(void);
+ void (*cb_pari_pre_recover)(long);
+@@ -732,6 +733,8 @@
+ static void
+ dflt_err_recover(long errnum) { (void) errnum; pari_exit(); }
+
++static int pari_err_display(GEN err);
++
+ /* initialize PARI data. Initialize [new|old]fun to NULL for default set. */
+ void
+ pari_init_opts(size_t parisize, ulong maxprime, ulong init_opts)
+@@ -739,6 +742,8 @@
+ ulong u;
+
+ cb_pari_whatnow = NULL;
++ cb_pari_handle_exception = NULL;
++ cb_pari_err_handle = pari_err_display;
+ cb_pari_pre_recover = NULL;
+ cb_pari_sigint = dflt_sigint_fun;
+ if (init_opts&INIT_JMPm) cb_pari_err_recover = dflt_err_recover;
+@@ -887,9 +892,6 @@
+ evalstate_reset();
+ killallfiles();
+ pari_init_errcatch();
+- out_puts(pariErr, "\n");
+- pariErr->flush();
+-
+ cb_pari_err_recover(numerr);
+ }
+
+@@ -1266,21 +1268,22 @@
+ return NULL; /*NOT REACHED*/
+ }
+
+-static void
++static int
+ pari_err_display(GEN err)
+ {
+ long numerr=err_get_num(err);
++ err_init();
+ if (numerr==e_SYNTAX)
+ {
+ const char *msg = GSTR(gel(err,2));
+ const char *s = (const char *) gmael(err,3,1);
+ const char *entry = (const char *) gmael(err,3,2);
+ print_errcontext(pariErr, msg, s, entry);
+- return;
+ }
+ else
+ {
+ char *s = pari_err2str(err);
++ closure_err(0);
+ err_init_msg(numerr, e_USER);
+ pariErr->puts(s);
+ if (numerr==e_NOTFUNC)
+@@ -1295,6 +1298,8 @@
+ }
+ pari_free(s);
+ }
++ out_term_color(pariErr, c_NONE);
++ pariErr->flush(); return 0;
+ }
+
+ void
+@@ -1315,12 +1320,9 @@
+ global_err_data = E;
+ if (*iferr_env) longjmp(*iferr_env, numerr);
+ mt_err_recover(numerr);
+- err_init();
+- if (numerr != e_SYNTAX) closure_err(0);
+- pari_err_display(E);
+- out_term_color(pariErr, c_NONE);
+ va_end(ap);
+- pariErr->flush();
++ if (cb_pari_err_handle &&
++ cb_pari_err_handle(E)) return;
+ if (cb_pari_handle_exception &&
+ cb_pari_handle_exception(numerr)) return;
+ err_recover(numerr);
Copied: pari/repos/community-staging-x86_64/PKGBUILD (from rev 127692, pari/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2015-02-14 17:19:37 UTC (rev 127693)
@@ -0,0 +1,45 @@
+# $Id$
+# Maintainer: Gaetan Bisson <bisson at archlinux.org>
+
+pkgname=pari
+pkgver=2.7.2
+pkgrel=2
+pkgdesc='Computer algebra system designed for fast computations in number theory'
+url='http://pari.math.u-bordeaux.fr/'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gmp' 'readline' 'libx11')
+makedepends=('perl' 'texlive-core')
+optdepends=('perl: gphelp, tex2mail')
+source=("http://pari.math.u-bordeaux.fr/pub/pari/unix/${pkgname}-${pkgver}.tar.gz"
+ 'err_handle.patch')
+sha1sums=('27ef49c39860055ff97608bc323bff2afda1aa51'
+ '182066ab765eddb0b7fd98b441c158304545f5ec')
+
+prepare() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed 's/\$addlib64//g' -i config/get_libpth
+ patch -p1 -i ../err_handle.patch # sage-5.6 uses this¸ from upstream trunk
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./Configure \
+ --prefix=/usr \
+ --with-readline \
+ --mt=pthread \
+ --with-gmp \
+
+ make all
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make bench
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ ln -sf gp.1.gz "${pkgdir}"/usr/share/man/man1/pari.1
+}
Copied: pari/repos/community-staging-x86_64/err_handle.patch (from rev 127692, pari/trunk/err_handle.patch)
===================================================================
--- community-staging-x86_64/err_handle.patch (rev 0)
+++ community-staging-x86_64/err_handle.patch 2015-02-14 17:19:37 UTC (rev 127693)
@@ -0,0 +1,105 @@
+Add cb_pari_err_handle() callback
+
+Backported from upstream commits
+e9e659dc9ecb5ca6a8296c7922528a4ecbb89cb0
+26a7ae0f42918407febe9901ded41faf26ef43a6
+
+diff -ru src/src/headers/paricom.h b/src/headers/paricom.h
+--- src/src/headers/paricom.h 2014-03-25 09:59:21.000000000 +0100
++++ b/src/headers/paricom.h 2015-01-13 19:41:47.430885048 +0100
+@@ -81,6 +81,7 @@
+ extern int (*cb_pari_whatnow)(PariOUT *out, const char *, int);
+ extern void (*cb_pari_sigint)(void);
+ extern int (*cb_pari_handle_exception)(long);
++extern int (*cb_pari_err_handle)(GEN);
+ extern void (*cb_pari_pre_recover)(long);
+ extern void (*cb_pari_err_recover)(long);
+ extern const char *pari_library_path;
+diff -ru src/src/language/init.c b/src/language/init.c
+--- src/src/language/init.c 2015-01-13 19:40:30.643622993 +0100
++++ b/src/language/init.c 2015-01-13 19:41:47.431884833 +0100
+@@ -87,6 +87,7 @@
+
+ void (*cb_pari_ask_confirm)(const char *);
+ int (*cb_pari_handle_exception)(long);
++int (*cb_pari_err_handle)(GEN);
+ int (*cb_pari_whatnow)(PariOUT *out, const char *, int);
+ void (*cb_pari_sigint)(void);
+ void (*cb_pari_pre_recover)(long);
+@@ -732,6 +733,8 @@
+ static void
+ dflt_err_recover(long errnum) { (void) errnum; pari_exit(); }
+
++static int pari_err_display(GEN err);
++
+ /* initialize PARI data. Initialize [new|old]fun to NULL for default set. */
+ void
+ pari_init_opts(size_t parisize, ulong maxprime, ulong init_opts)
+@@ -739,6 +742,8 @@
+ ulong u;
+
+ cb_pari_whatnow = NULL;
++ cb_pari_handle_exception = NULL;
++ cb_pari_err_handle = pari_err_display;
+ cb_pari_pre_recover = NULL;
+ cb_pari_sigint = dflt_sigint_fun;
+ if (init_opts&INIT_JMPm) cb_pari_err_recover = dflt_err_recover;
+@@ -887,9 +892,6 @@
+ evalstate_reset();
+ killallfiles();
+ pari_init_errcatch();
+- out_puts(pariErr, "\n");
+- pariErr->flush();
+-
+ cb_pari_err_recover(numerr);
+ }
+
+@@ -1266,21 +1268,22 @@
+ return NULL; /*NOT REACHED*/
+ }
+
+-static void
++static int
+ pari_err_display(GEN err)
+ {
+ long numerr=err_get_num(err);
++ err_init();
+ if (numerr==e_SYNTAX)
+ {
+ const char *msg = GSTR(gel(err,2));
+ const char *s = (const char *) gmael(err,3,1);
+ const char *entry = (const char *) gmael(err,3,2);
+ print_errcontext(pariErr, msg, s, entry);
+- return;
+ }
+ else
+ {
+ char *s = pari_err2str(err);
++ closure_err(0);
+ err_init_msg(numerr, e_USER);
+ pariErr->puts(s);
+ if (numerr==e_NOTFUNC)
+@@ -1295,6 +1298,8 @@
+ }
+ pari_free(s);
+ }
++ out_term_color(pariErr, c_NONE);
++ pariErr->flush(); return 0;
+ }
+
+ void
+@@ -1315,12 +1320,9 @@
+ global_err_data = E;
+ if (*iferr_env) longjmp(*iferr_env, numerr);
+ mt_err_recover(numerr);
+- err_init();
+- if (numerr != e_SYNTAX) closure_err(0);
+- pari_err_display(E);
+- out_term_color(pariErr, c_NONE);
+ va_end(ap);
+- pariErr->flush();
++ if (cb_pari_err_handle &&
++ cb_pari_err_handle(E)) return;
+ if (cb_pari_handle_exception &&
+ cb_pari_handle_exception(numerr)) return;
+ err_recover(numerr);
More information about the arch-commits
mailing list