|Bill Allombert on Sat, 29 Jun 2002 18:57:34 +0200|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
|Interface definition for PARI/GP|
Hello PARI/GP developers, Currently most of the interface between the library and the language is built-in the file src/language/init.c as the function_basic array. This scheme has several short-comings: 1) External programs that rely on this interface need to parse this file which is not installed on the system (src/language/init.c, etc). This may cause version mismatch 2) Only the information needed by GP is available. 3) To extend the interface, you need to change several files. We are planning to change this to the following scheme: 1) We put the definition in a database in easy to parse plain text format. 2) We write script that rebuild the tables in src/language/init.c (and other) from the database. 3) We make sure 'make distrib' put the updated src/language/init.c in the tarball, so that only CVS users will need to effectively rebuild the source files. This allows use to write the scripts in perl without requiring perl to rebuild the tarball. 4) `make install' will install the database in /usr/share/pari so that external programs can get the database. 5) External programs not aware of the database can still use the sources directly. Well it may happen that we move functions_basic to a separate file though. 6) We provide scripts to parse the database by external programs. We plan to have the database in RFC 822 format (the mail header format). This format is easily extensible by adding new keys/value pairs. Our current implementation output for bnfinit Function: bnfinit List: basic Section: 6 C-Name: bnfinit0 Prototype: GD0,L,DGp Type: gen Cheers, Bill.