[Ecls-list] Request to mailing list Ecls-list rejected
Gabriel Dos Reis
gdr at cs.tamu.edu
Fri Aug 13 09:35:41 UTC 2010
ecls-list-bounces at lists.sourceforge.net writes:
| "Gabriel, your message was too large for the mailing list, but it was
| automatically forwarded to me this morning. I will commut the changes
| to number.h and have a look at the rest. Thanks a lot for your help.
|
| Juanjo"
Hi Juanjo,
After having restructured src/c/load.d as I indicted in my earlier
message [1], I needed to apply the patch below (which fixes an obvious
thinko). Then I could successfully build ecl_min. However, it crashed
when used to bootstrap ECL. The codes that are guarded by
ECL_LONG_BITS < FIXNUM_BITS
do not seem to have been tested in recent years (for they do not compile).
The reason for that is simple: ECL seems to have been tested only on ILP
or LP platforms.
So, I am wondering why ECL is making that distinction? That is, why does
ECL need to distinguish 'long' from ECL_FIXNUM_TYPE? Should not
the distinction between GMP_LIMB_BITS vs. FIXNUM_BITS be sufficient?
[1] I introduced the following CPP macro
#if defined(__MINGW32__) || defined(__MINGW64__) || defined(_MSC_VER)
# define ECL_MS_WINDOWS_TARGET 1
#endif
in src/h/ecl.h. to abstract over the various targets that run native
windows.
For Windows 7 64-bit I recommend testing also for __MINGW64__. The
difference between __MINGW32__ and __MINGW64__ matters only for
selecting 32-bit v 64-bit specific code.
I'm not sending the patch against src/c/load.d yet since I did not
manage to resolve all issues.
-- Gaby
Index: big.d
===================================================================
RCS file: /cvsroot/ecls/ecl/src/c/big.d,v
retrieving revision 1.43
diff -p -r1.43 big.d
*** big.d 1 Feb 2010 13:55:16 -0000 1.43
--- big.d 13 Aug 2010 09:17:09 -0000
*************** _ecl_fix_times_fix(cl_fixnum x, cl_fixnu
*** 160,166 ****
ECL_WITH_TEMP_BIGNUM(w,4);
mpz_set_si(z->big.big_num, x);
mpz_set_si(w->big.big_num, y);
! mpz_mu(z->big.big_num, z->big.big_num, w->big.big_num);
#endif
{
cl_object y = big_normalize(z);
--- 160,166 ----
ECL_WITH_TEMP_BIGNUM(w,4);
mpz_set_si(z->big.big_num, x);
mpz_set_si(w->big.big_num, y);
! mpz_mul(z->big.big_num, z->big.big_num, w->big.big_num);
#endif
{
cl_object y = big_normalize(z);
More information about the ecl-devel
mailing list