ecls-list-boun...@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); ------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ Ecls-list mailing list Ecls-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ecls-list