> From: Kevin Brott <[EMAIL PROTECTED]> > I find that this line in numbers.c > > 6081: return scm_from_complex_double (cexp (SCM_COMPLEX_VALUE (z))); > > expands to this: > > return scm_from_complex_double (cexp (((((scm_t_complex *) > ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) > (0? (*(SCM*)0=((((z))))): (((z)))))))) [((1))]))): > (((SCM > *)((scm_t_cell > *) (((scm_t_bits) (0? (*(SCM*)0=((((z))))): (((z)))))))) > [((1))]))))))->real) + __I * (((scm_t_complex *) ((((scm_t_bits) (0? > (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? > (*(SCM*)0=((((z))))): (((z)))))))) [((1))]))): (((SCM *)((scm_t_cell *) > (((scm_t_bits) (0? (*(SCM*)0=((((z))))): (((z)))))))) > [((1))]))))))->imag)))); >
You are correct. There is a value in that macro called "_Complex_I" that is, for some reason, being processed down to "__I", losing the word "Complex". What if you replace "_Complex_I" with "(0.0 + 1.0i)" ? Good Luck, Mike Gran ----- Original Message ---- > From: Kevin Brott <[EMAIL PROTECTED]> > To: Guile-User <guile-user@gnu.org> > Sent: Wednesday, November 14, 2007 10:37:01 AM > Subject: Re: Guile 1.8.2 Compile Error [GAH] > > > On Wed, 2007-11-14 at 09:59 -0800, Kevin Brott wrote: > > > No - it bombs out now, trying to compile numbers.c with this error: > > > > numbers.c: In function 'scm_exp': > > numbers.c:6081: error: '__I' undeclared (first use in this function) > > numbers.c:6081: error: (Each undeclared identifier is reported > only > once > > numbers.c:6081: error: for each function it appears in.) > > > > And I'm trying to work out where that __I is hiding. > > > > Found where it's manifesting, now to figure out why ... from the > guile-1.8.3 directory, if I do: > > cpp -I. -DHAVE_CONFIG_H libguile/numbers.c -o foo.cpp > > I find that this line in numbers.c > > 6081: return scm_from_complex_double (cexp (SCM_COMPLEX_VALUE (z))); > > expands to this: > > return scm_from_complex_double (cexp (((((scm_t_complex *) > ((((scm_t_bits) (0? (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) > (0? (*(SCM*)0=((((z))))): (((z)))))))) [((1))]))): > (((SCM > *)((scm_t_cell > *) (((scm_t_bits) (0? (*(SCM*)0=((((z))))): (((z)))))))) > [((1))]))))))->real) + __I * (((scm_t_complex *) ((((scm_t_bits) (0? > (*(SCM*)0=((((SCM *)((scm_t_cell *) (((scm_t_bits) (0? > (*(SCM*)0=((((z))))): (((z)))))))) [((1))]))): (((SCM *)((scm_t_cell *) > (((scm_t_bits) (0? (*(SCM*)0=((((z))))): (((z)))))))) > [((1))]))))))->imag)))); > > So hunting back to where SCM_COMPLEX_VALUE is defined in numbers.c, we > get > 168 #define SCM_COMPLEX_VALUE(z) \ > 169 (SCM_COMPLEX_REAL (z) + _Complex_I * SCM_COMPLEX_IMAG (z)) > > So it looks like _Complex_I is rendering as __I - and that prpbably > isn't correct. > > -- > #include > /* Kevin Brott > * Unix Systems Engineer - SA Group - Provtech > * Providence Health Systems, Tigard, OR > */ > > > DISCLAIMER: > This message is intended for the sole use of the addressee, and > may > contain information that is privileged, confidential and exempt > from > disclosure under applicable law. If you are not the addressee you are > hereby > notified that you may not use, copy, disclose, or distribute to > anyone > the message or any information contained in the message. If you > have > received this message in error, please immediately advise the sender > by > reply email and delete this message. > > > _______________________________________________ > Guile-user mailing list > Guile-user@gnu.org > http://lists.gnu.org/mailman/listinfo/guile-user > _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://lists.gnu.org/mailman/listinfo/guile-user