[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Compile problem on cygwin
From: |
Felix Winkelmann |
Subject: |
Re: [Chicken-users] Compile problem on cygwin |
Date: |
Thu, 27 Feb 2003 08:40:55 +0100 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.0) Gecko/20020530 |
Jonah Beckford wrote:
I am not sure if this is particular to my installation of cygwin, but my
gcc 3.2 blows up on syntax-case.c using -O3 optimization:
*************
chicken syntax-case.scm -quiet -debug-level 0 -optimize-level 2
-include-path . -no-warnings -output-file syntax-case.c -explicit-use
/bin/bash ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.
-DC_STACK_GROWS_DOWNWARD=1
-DC_INSTALL_LIB_HOME='"/usr/local/lib/chicken"' -DC_USE_C_DEFAULTS
-O3 -fomit-frame-pointer -DHAVE_ALLOCA_H -fstrict-aliasing -c -o
syntax-case.lo `test -f 'syntax-case.c' || echo './'`syntax-case.c
gcc -DHAVE_CONFIG_H -I. -I. -I. -DC_STACK_GROWS_DOWNWARD=1
-DC_INSTALL_LIB_HOME=\"/usr/local/lib/chicken\" -DC_USE_C_DEFAULTS -O3
-fomit-frame-pointer -DHAVE_ALLOCA_H -fstrict-aliasing -c syntax-case.c
-DPIC -o .libs/syntax-case.o
cc1: Cannot allocate 786992560 bytes after allocating 95600640 bytes
make: *** [syntax-case.lo] Error 1
*************
syntax-case.c should be about 22k lines. Because of exactly this
problem a special declaration was added (compress-literals) to
reduce the amount of code needed to create the relatively large
literal objects in the file.
Actually, the "-no-warnings" option suppresses a warning about the
non-implemented declaration. I will have to fix that.
So: I guess you are using an old version of chicken to build from CVS,
right? What does "chicken -version" show? You need at least build 1088
to compile from sources:
http://www.call-with-current-continuation.org/chicken-0.1088.tar.gz
http://www.call-with-current-continuation.org/chicken-0.1097.tar.gz
(note that 1097 above is slightly older than the current CVS version)
The -O3 is standard for CHICKEN on cygwin ... I could implement a
standard partitioning algorithm (which will have to minimize the number
of cross-file continuation/function calls while maximizing the number
of continuations in a given file, so we get the maximum optimization
possible) to split up CHICKEN generated .c files so they don't get so
large. Anyone have any other suggestions or an objection?
>
> The modification would probably look like:
> % chicken syntax-case.scm -split 4 -output-prefix syntax-case
> which would generate four files: syntax-case[1-4].c
That's a pretty cool idea. How difficult would that be? Wouldn't
you need quite a lot of information about call-sites/-targets?
(which isn't always available).
cheers,
felix