Bill Allombert on Thu, 26 Jun 2003 22:07:40 +0200

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

Description system

Hello PARI CVS users,

I have just commited the description system.
This will cause some minor annoyance to CVS users.

1) You need perl in your PATH

2) You need to do cvs update -d this time so that new directory are

3) You will need to rerun Configure so that makefile are rebuild.

If all go well, you just need to run make gp at this stage.

If things go wild, try 
cd src/desc; make veryclean; make; cd ../..

Now, what is the description system ?
This is a database of PARI functions in RFC822 format.

Each PARI function is described by a file:
For poldisc we have:

Function: poldisc
Section: polynomials
C-Name: poldisc0
Prototype: GDn
Help: poldisc(x,{v}): discriminant of the polynomial x, with respect to main
 variable if v is omitted, with respect to v otherwise
 (pol):gen      discsr($1)
 (gen):gen      poldisc0($1, -1)
 (gen, var):gen poldisc0($1, $2)

Function: name of the function under GP
Section: what section the function belong: polynomials is for
7: POLYNOMIALS and power series

C-Name: The name of the C function implementing Function

Prototype: The PARI prototype (for install, etc...)

Help: The help string returned by ?poldisc under GP.

Description: This will be used by GP2C
This show the various C functions available for the same task:
 (pol):gen      discsr($1)
mean that if the argument of poldisc a t_POL, the result is a GEN
and discsr(P) can be used in place of the generic poldisc0(P, -1)

These files are merged to build the full database (src/desc/Def)
which is used to build C files that are linked inside libpari/gp.
(Without that we would need dlopen().)

PARI tarball will already contains all the needed files so that
perl is not needed to build PARI.

This change break gp2c and Math::PARI, but now they can use
the src/desc/Def file instead of parsing the C files.