Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Jan 2007 17:40:40 +0100 (CET)
From:      clemens fischer <ino-qc@spotteswoode.de.eu.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        clemens fischer <ino-qc@spotteswoode.de.eu.org>
Subject:   ports/108267: ports/lang/guile: please update
Message-ID:  <20070123164040.638952287F@spotteswoode.dnsalias.org>
Resent-Message-ID: <200701231650.l0NGoJDc086123@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         108267
>Category:       ports
>Synopsis:       ports/lang/guile: please update
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jan 23 16:50:18 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     clemens fischer
>Release:        FreeBSD 6.2-PRERELEASE i386
>Organization:
none
>Environment:
System: FreeBSD spotteswoode.dnsalias.org 6.2-PRERELEASE
FreeBSD 6.2-PRERELEASE #14: Sat Jan 6 17:32:43 CET 2007
root@spotteswoode.dnsalias.org:/usr/obj/usr/src/sys/spott i386

>Description:

i would like ports/lang/guile to get updated to version 1.8.1 (latest
stable), unless other ports break or whatever. also, it is not clear to
me if the upcoming R6RS (see <URL:http://www.r6rs.org/>) has any bearing
on guile in the near future.

>How-To-Repeat:
	
>Fix:

this is what i had to do to get guile-1.8.1 compiled.

1.  a (build-?)dependency on "libltdl" is needed in addition to the libs
    guile-1.6.8 needed.  this can be installed via
    "ports/devel/libltdl15".

2.  the "CONFIGURE_ENV=..." line can propably stay the same, i used:
    "CFLAGS='-I/l/include' LDFLAGS='-L/l/lib -lltdl' ./configure \
    --with-threads --disable-nls" for a successful configuration step.

3.  "src/guile-1.8.1/libguile/eval.c" needed the patch:

    0  $ rrcsdiff eval.c
    rcsdiff --unified eval.c
    ===================================================================
    RCS file: eval.c,v
    retrieving revision 1.1
    diff --unified -r1.1 eval.c
    --- eval.c      2007/01/22 16:55:16     1.1
    +++ eval.c      2007/01/22 16:55:52
    @@ -41,6 +41,8 @@
     #if HAVE_ALLOCA_H
     # include <alloca.h>
     #elif defined __GNUC__
    +// -ino:
    +# undef alloca
     # define alloca __builtin_alloca
     #elif defined _AIX
     # define alloca __alloca

    and "src/guile-1.8.1/libguile/numbers.c" needed:

    0  $ rrcsdiff numbers.c
    rcsdiff --unified numbers.c
    ===================================================================
    RCS file: numbers.c,v
    retrieving revision 1.1
    diff --unified -r1.1 numbers.c
    --- numbers.c   2007/01/22 17:18:19     1.1
    +++ numbers.c   2007/01/22 18:10:09
    @@ -168,14 +168,15 @@
     #define SCM_COMPLEX_VALUE(z)                                    \
       (SCM_COMPLEX_REAL (z) + _Complex_I * SCM_COMPLEX_IMAG (z))
    
    -/* Convert a C "complex double" to an SCM value. */
    -#if HAVE_COMPLEX_DOUBLE
    -static SCM
    -scm_from_complex_double (complex double z)
    -{
    -  return scm_c_make_rectangular (creal (z), cimag (z));
    -}
    -#endif /* HAVE_COMPLEX_DOUBLE */
    +//      // -ino:
    +///* Convert a C "complex double" to an SCM value. */
    +//#if HAVE_COMPLEX_DOUBLE
    +//static SCM
    +//scm_from_complex_double (complex double z)
    +//{
    +//  return scm_c_make_rectangular (creal (z), cimag (z));
    +//}
    +//#endif /* HAVE_COMPLEX_DOUBLE */
    
    @@ -6018,14 +6019,17 @@
     {
       if (SCM_COMPLEXP (z))
         {
    -#if HAVE_COMPLEX_DOUBLE
    -      return scm_from_complex_double (clog (SCM_COMPLEX_VALUE (z)));
    -#else
    +//#if HAVE_COMPLEX_DOUBLE
    +//      // -ino:
    +//      // complex double clog(scm_t_complex *);
    +//      complex double clog(double);
    +//      return scm_from_complex_double (clog (SCM_COMPLEX_VALUE (z)));
    +//#else
           double re = SCM_COMPLEX_REAL (z);
           double im = SCM_COMPLEX_IMAG (z);
           return scm_c_make_rectangular (log (hypot (re, im)),
                                          atan2 (im, re));
    -#endif
    +//#endif
         }
       else
         {
    @@ -6084,12 +6088,14 @@
     {
       if (SCM_COMPLEXP (z))
         {
    -#if HAVE_COMPLEX_DOUBLE
    -      return scm_from_complex_double (cexp (SCM_COMPLEX_VALUE (z)));
    -#else
    +//#if HAVE_COMPLEX_DOUBLE
    +//      // -ino:
    +//      complex double cexp(complex double);
    +//      return scm_from_complex_double (cexp (SCM_COMPLEX_VALUE (z)));
    +//#else
           return scm_c_make_polar (exp (SCM_COMPLEX_REAL (z)),
                                    SCM_COMPLEX_IMAG (z));
    -#endif
    +//#endif
         }
       else
         {

i didn't want to "#undef HAVE_COMPLEX_DOUBLE" alltogether, for it seems
to work at a few other places, but there's bound to be a better way.

regards, clemens
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070123164040.638952287F>