Ilya Zakharevich on Tue, 7 Dec 1999 20:12:21 -0500


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Making CVS compile with Math::Pari


The following changes are needed to make CVS version work with
Math::Pari again.

The change to es.c is self-explanatory: one should NOT reset pariErr
when processing an error, this is what pariErr is for.  (I did not
check whether this change breaks PARI.  ;-)

The changes to gp.c/highlvl.c are more subtle: the current scheme
requires gp.c if you want to compile highlvl.c, which is exactly
opposite to the intent of highlvl.c.  I could not easily fix this
without disabling a "secure" message from install().  Probably secure
should be made global and defined in highlvl.c?

Enjoy,
Ilya

Index: src/gp/gp.c
===================================================================
RCS file: /home/megrez/cvsroot/pari/src/gp/gp.c,v
retrieving revision 1.17
diff -p -u -r1.17 gp.c
--- src/gp/gp.c	1999/12/01 18:33:30	1.17
+++ src/gp/gp.c	1999/12/08 01:06:16
@@ -45,7 +45,6 @@ void   init80(long n);
 void   init_defaults(int force);
 void   init_graph(void);
 void   init_lim_lines(char *s, long max);
-void   install0(char *name, char *code, char *gpname, char *lib);
 void   pari_sig_init(void (*f)(int));
 int    whatnow(char *s, int flag);
 
@@ -2207,17 +2206,6 @@ error0(GEN *g)
   pariputs("###   User error:\n\n   ");
   print0(g,f_RAW); term_color(c_NONE);
   err_recover(talker);
-}
-
-void 
-gpinstall(char *s, char *code, char *gpname, char *lib)
-{
-  if (secure)
-  {
-    fprintferr("[secure mode]: about to install '%s'. OK ? (^C if not)\n",s);
-    hit_return();
-  }
-  install0(s, code, gpname, lib);
 }
 
 void errcontext(char *msg, char *s, char *entry);
Index: src/gp/highlvl.c
===================================================================
RCS file: /home/megrez/cvsroot/pari/src/gp/highlvl.c,v
retrieving revision 1.3
diff -p -u -r1.3 highlvl.c
--- src/gp/highlvl.c	1999/12/01 17:39:46	1.3
+++ src/gp/highlvl.c	1999/12/08 01:06:16
@@ -14,7 +14,6 @@
 #endif
 
 void kill0(entree *ep);
-void gpinstall(char *name, char *code, char *gpname, char *lib);
 
 void
 addhelp(entree *ep, char *s)
@@ -102,6 +101,19 @@ void 
 install0(char *name, char *code, char *gpname, char *lib) { err(archer); }
 #endif
 #endif
+
+void 
+gpinstall(char *s, char *code, char *gpname, char *lib)
+{
+#if 0				/* Breaks separation of gp.c and highlvl.c */
+  if (secure)
+  {
+    fprintferr("[secure mode]: about to install '%s'. OK ? (^C if not)\n",s);
+    hit_return();
+  }
+#endif
+  install0(s, code, gpname, lib);
+}
 
 static long
 get_type_num(char *st)
Index: src/language/init.c
===================================================================
RCS file: /home/megrez/cvsroot/pari/src/language/init.c,v
retrieving revision 1.16
diff -p -u -r1.16 init.c
--- src/language/init.c	1999/12/01 17:41:06	1.16
+++ src/language/init.c	1999/12/08 01:06:17
@@ -786,7 +786,9 @@ disable_dbg(long val)
 void
 err_recover(long numerr)
 {
+#if 0
   initout();
+#endif
   disable_dbg(-1);
   get_timer(-1);
   killallfiles(0);