GMP Module (perl)

Sisyphus kalinabears@iinet.net.au
Wed, 23 Jul 2003 13:45:13 +1000


Hi,

The GMP-4.1.2 distro contains source code for building the GMP perl module
(in the demos\perl\folder).

Looks interesting - far more extensive than Math::GMP which is currently on
cpan.

Has anyone built this module on Win32 ? I get a long list of errors (see
below - I've included *all* of the errors, but you'll get the idea after the
first few lines).

I have perl 5.6.1, built with gcc-2.95.2 and dmake. (I'm trying to build it
in the cmd.exe shell, but I don't think it's a shell issue anyway.)
Any advice on how to amend GMP.xs would be appreciated.

Cheers,
Rob

GMP.xs: In function `XS_GMP__Mpz_overload_add':
GMP.xs:1229: initializer element is not constant
GMP.xs:1229: (near initialization for `table[0].op')
GMP.xs:1230: initializer element is not constant
GMP.xs:1230: (near initialization for `table[1].op')
GMP.xs:1231: initializer element is not constant
GMP.xs:1231: (near initialization for `table[2].op')
GMP.xs:1232: initializer element is not constant
GMP.xs:1232: (near initialization for `table[3].op')
GMP.xs:1233: initializer element is not constant
GMP.xs:1233: (near initialization for `table[4].op')
GMP.xs:1234: initializer element is not constant
GMP.xs:1234: (near initialization for `table[5].op')
GMP.xs:1235: initializer element is not constant
GMP.xs:1235: (near initialization for `table[6].op')
GMP.xs:1236: initializer element is not constant
GMP.xs:1236: (near initialization for `table[7].op')
GMP.xs: In function `XS_GMP__Mpz_overload_addeq':
GMP.xs:1267: initializer element is not constant
GMP.xs:1267: (near initialization for `table[0].op')
GMP.xs:1268: initializer element is not constant
GMP.xs:1268: (near initialization for `table[1].op')
GMP.xs:1269: initializer element is not constant
GMP.xs:1269: (near initialization for `table[2].op')
GMP.xs:1270: initializer element is not constant
GMP.xs:1270: (near initialization for `table[3].op')
GMP.xs:1271: initializer element is not constant
GMP.xs:1271: (near initialization for `table[4].op')
GMP.xs:1272: initializer element is not constant
GMP.xs:1272: (near initialization for `table[5].op')
GMP.xs:1273: initializer element is not constant
GMP.xs:1273: (near initialization for `table[6].op')
GMP.xs:1274: initializer element is not constant
GMP.xs:1274: (near initialization for `table[7].op')
GMP.xs: In function `XS_GMP__Mpz_overload_lshift':
GMP.xs:1294: initializer element is not constant
GMP.xs:1294: (near initialization for `table[0].op')
GMP.xs:1295: initializer element is not constant
GMP.xs:1295: (near initialization for `table[1].op')
GMP.xs:1296: initializer element is not constant
GMP.xs:1296: (near initialization for `table[2].op')
GMP.xs: In function `XS_GMP__Mpz_overload_lshifteq':
GMP.xs:1320: initializer element is not constant
GMP.xs:1320: (near initialization for `table[0].op')
GMP.xs:1321: initializer element is not constant
GMP.xs:1321: (near initialization for `table[1].op')
GMP.xs:1322: initializer element is not constant
GMP.xs:1322: (near initialization for `table[2].op')
GMP.xs: In function `XS_GMP__Mpz_overload_abs':
GMP.xs:1345: initializer element is not constant
GMP.xs:1345: (near initialization for `table[2].op')
GMP.xs:1346: initializer element is not constant
GMP.xs:1346: (near initialization for `table[3].op')
GMP.xs: In function `XS_GMP__Mpz_overload_inc':
GMP.xs:1367: initializer element is not constant
GMP.xs:1367: (near initialization for `table[0].op')
GMP.xs:1368: initializer element is not constant
GMP.xs:1368: (near initialization for `table[1].op')
GMP.xs: In function `XS_GMP__Mpz_bin':
GMP.xs:1438: initializer element is not constant
GMP.xs:1438: (near initialization for `table[0].op')
GMP.xs:1439: initializer element is not constant
GMP.xs:1439: (near initialization for `table[1].op')
GMP.xs: In function `XS_GMP__Mpz_cdiv':
GMP.xs:1460: initializer element is not constant
GMP.xs:1460: (near initialization for `table[0].op')
GMP.xs:1461: initializer element is not constant
GMP.xs:1461: (near initialization for `table[1].op')
GMP.xs:1462: initializer element is not constant
GMP.xs:1462: (near initialization for `table[2].op')
GMP.xs: In function `XS_GMP__Mpz_cdiv_2exp':
GMP.xs:1488: initializer element is not constant
GMP.xs:1488: (near initialization for `table[0].q')
GMP.xs:1488: initializer element is not constant
GMP.xs:1488: (near initialization for `table[0].r')
GMP.xs:1489: initializer element is not constant
GMP.xs:1489: (near initialization for `table[1].q')
GMP.xs:1489: initializer element is not constant
GMP.xs:1489: (near initialization for `table[1].r')
GMP.xs:1490: initializer element is not constant
GMP.xs:1490: (near initialization for `table[2].q')
GMP.xs:1490: initializer element is not constant
GMP.xs:1490: (near initialization for `table[2].r')
GMP.xs: In function `XS_GMP__Mpz_divexact':
GMP.xs:1539: initializer element is not constant
GMP.xs:1539: (near initialization for `table[0].op')
GMP.xs:1540: initializer element is not constant
GMP.xs:1540: (near initialization for `table[1].op')
GMP.xs: In function `XS_GMP__Mpz_even_p':
GMP.xs:1584: initializer element is not constant
GMP.xs:1584: (near initialization for `table[3].op')
GMP.xs: In function `XS_GMP__Mpz_fac':
GMP.xs:1603: initializer element is not constant
GMP.xs:1603: (near initialization for `table[0].op')
GMP.xs:1604: initializer element is not constant
GMP.xs:1604: (near initialization for `table[1].op')
GMP.xs:1605: initializer element is not constant
GMP.xs:1605: (near initialization for `table[2].op')
GMP.xs: In function `XS_GMP__Mpz_fib2':
GMP.xs:1624: initializer element is not constant
GMP.xs:1624: (near initialization for `table[0].op')
GMP.xs:1625: initializer element is not constant
GMP.xs:1625: (near initialization for `table[1].op')
GMP.xs: In function `XS_GMP__Mpz_gcd':
GMP.xs:1650: initializer element is not constant
GMP.xs:1650: (near initialization for `table[0].op')
GMP.xs:1651: initializer element is not constant
GMP.xs:1651: (near initialization for `table[0].op_ui'
GMP.xs:1652: initializer element is not constant
GMP.xs:1652: (near initialization for `table[1].op')
GMP.xs:1652: initializer element is not constant
GMP.xs:1652: (near initialization for `table[1].op_ui'
GMP.xs: In function `XS_GMP__Mpz_scan0':
GMP.xs:1839: initializer element is not constant
GMP.xs:1839: (near initialization for `table[0].op')
GMP.xs:1840: initializer element is not constant
GMP.xs:1840: (near initialization for `table[1].op')
GMP.xs: In function `XS_GMP__Mpz_setbit':
GMP.xs:1859: initializer element is not constant
GMP.xs:1859: (near initialization for `table[0].op')
GMP.xs:1860: initializer element is not constant
GMP.xs:1860: (near initialization for `table[1].op')
GMP.xs: In function `XS_GMP__Mpq_overload_add':
GMP.xs:2001: initializer element is not constant
GMP.xs:2001: (near initialization for `table[0].op')
GMP.xs:2002: initializer element is not constant
GMP.xs:2002: (near initialization for `table[1].op')
GMP.xs:2003: initializer element is not constant
GMP.xs:2003: (near initialization for `table[2].op')
GMP.xs:2004: initializer element is not constant
GMP.xs:2004: (near initialization for `table[3].op')
GMP.xs: In function `XS_GMP__Mpq_overload_addeq':
GMP.xs:2032: initializer element is not constant
GMP.xs:2032: (near initialization for `table[0].op')
GMP.xs:2033: initializer element is not constant
GMP.xs:2033: (near initialization for `table[1].op')
GMP.xs:2034: initializer element is not constant
GMP.xs:2034: (near initialization for `table[2].op')
GMP.xs:2035: initializer element is not constant
GMP.xs:2035: (near initialization for `table[3].op')
GMP.xs: In function `XS_GMP__Mpq_overload_lshift':
GMP.xs:2055: initializer element is not constant
GMP.xs:2055: (near initialization for `table[0].op')
GMP.xs:2056: initializer element is not constant
GMP.xs:2056: (near initialization for `table[1].op')
GMP.xs: In function `XS_GMP__Mpq_overload_lshifteq':
GMP.xs:2081: initializer element is not constant
GMP.xs:2081: (near initialization for `table[0].op')
GMP.xs:2082: initializer element is not constant
GMP.xs:2082: (near initialization for `table[1].op')
GMP.xs: In function `XS_GMP__Mpq_overload_inc':
GMP.xs:2102: initializer element is not constant
GMP.xs:2102: (near initialization for `table[0].op')
GMP.xs:2103: initializer element is not constant
GMP.xs:2103: (near initialization for `table[1].op')
GMP.xs: In function `XS_GMP__Mpf_overload_add':
GMP.xs:2294: initializer element is not constant
GMP.xs:2294: (near initialization for `table[0].op')
GMP.xs:2295: initializer element is not constant
GMP.xs:2295: (near initialization for `table[1].op')
GMP.xs:2296: initializer element is not constant
GMP.xs:2296: (near initialization for `table[2].op')
GMP.xs:2297: initializer element is not constant
GMP.xs:2297: (near initialization for `table[3].op')
GMP.xs: In function `XS_GMP__Mpf_overload_addeq':
GMP.xs:2323: initializer element is not constant
GMP.xs:2323: (near initialization for `table[0].op')
GMP.xs:2324: initializer element is not constant
GMP.xs:2324: (near initialization for `table[1].op')
GMP.xs:2325: initializer element is not constant
GMP.xs:2325: (near initialization for `table[2].op')
GMP.xs:2326: initializer element is not constant
GMP.xs:2326: (near initialization for `table[3].op')
GMP.xs: In function `XS_GMP__Mpf_overload_lshift':
GMP.xs:2346: initializer element is not constant
GMP.xs:2346: (near initialization for `table[0].op')
GMP.xs:2347: initializer element is not constant
GMP.xs:2347: (near initialization for `table[1].op')
GMP.xs:2348: initializer element is not constant
GMP.xs:2348: (near initialization for `table[2].op')
GMP.xs: In function `XS_GMP__Mpf_overload_lshifteq':
GMP.xs:2377: initializer element is not constant
GMP.xs:2377: (near initialization for `table[0].op')
GMP.xs:2378: initializer element is not constant
GMP.xs:2378: (near initialization for `table[1].op')
GMP.xs:2379: initializer element is not constant
GMP.xs:2379: (near initialization for `table[2].op')
GMP.xs: In function `XS_GMP__Mpf_overload_abs':
GMP.xs:2399: initializer element is not constant
GMP.xs:2399: (near initialization for `table[0].op')
GMP.xs:2400: initializer element is not constant
GMP.xs:2400: (near initialization for `table[1].op')
GMP.xs:2401: initializer element is not constant
GMP.xs:2401: (near initialization for `table[2].op')
GMP.xs: In function `XS_GMP__Mpf_overload_inc':
GMP.xs:2422: initializer element is not constant
GMP.xs:2422: (near initialization for `table[0].op')
GMP.xs:2423: initializer element is not constant
GMP.xs:2423: (near initialization for `table[1].op')
GMP.xs: In function `XS_GMP__Mpf_ceil':
GMP.xs:2498: initializer element is not constant
GMP.xs:2498: (near initialization for `table[0].op')
GMP.xs:2499: initializer element is not constant
GMP.xs:2499: (near initialization for `table[1].op')
GMP.xs:2500: initializer element is not constant
GMP.xs:2500: (near initialization for `table[2].op')
GMP.xs: In function `XS_GMP__Rand_mpz_urandomb':
GMP.xs:2681: initializer element is not constant
GMP.xs:2681: (near initialization for `table[0].fun')
GMP.xs:2682: initializer element is not constant
GMP.xs:2682: (near initialization for `table[1].fun')
dmake.exe:  Error code 1, while making 'GMP.o'