Hi Nikos,
If you don't want to use 'csc' and really want to go the 'C way', you
will need more then the 'chicken.h' file. You will need at least the
following files: 'buildtag.h', 'build-version.c', 'chicken.h',
'library.c' and 'runtime.c'. All of them can be found in the top
directory of the chicken source.
Once you have these - and put them in a subdirectory called e.g.
'chicken' - you can compile the application like this:
chicken array1.scm -explicit-use -uses library -optimize-level 5
CHICKEN_FILES="chicken/runtime.c chicken/library.c
chicken/build-version.c"
gcc -static -I./chicken array1.c $CHICKEN_FILES -O3
-fno-strict-aliasing -fomit-frame-pointer -lm -o array1
This will also give you a statically linked 'array1', which - in my case
- has about the same speed as the one using 'csc -O5'.
Good Luck,
Wiffel
On 12/06/14 17:27, wiffel wrote:
Hi Nikos,
If you remove the definition of the 'main' function and add an
expression like this:
(time (go 200000))
and compile it with:
csc -static -O5 array1.scm
you should end up with a statically linked application 'array1'
that is optimized for speed (because of the -O5).
Runs in about half a second on my computer.
Good Luck,
Wiffel
On 12/06/14 15:11, Nikos Vasilakis wrote:
Hello everyone,
I am trying to compile a simple scheme program down executable through
C, with no success. My program is array1 from the Kernighan and Van
Wyk Benchmarks, as implemented here [1]. I am using chicken 4.7 on
ubuntu 12.04 (details: [2]) and grabbed the chicken.h header file from
a github repo [3].
In particular, `chicken array1.scm` creates array1.c, but running `gcc
array1.c` throws a big number of "undefined reference to .." ending
with "collect2: ld returned 1 exit status" [4].
So that people help out most, my eventual goal is to compile a
statically linked executable binary. Ideally, therefore, I would need
to have a "chicken.c" or the chicken runtime linked in.
Thanks so much!
Nikos
[1]
http://www.ccs.neu.edu/home/will/Twobit/src/array1.scm
[2]
Version 4.7.0
linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
compiled 2011-10-17 on allspice (Linux)
[3]
https://github.com/scottbronikowski/rootfs/blob/2f5ad469b3ad3186ed7767c99c69d2b6fe8da429/usr/include/chicken/chicken.h
[4] http://pastebin.com/xNEiVeZG
_______________________________________________
Chicken-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-users
_______________________________________________
Chicken-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-users
_______________________________________________
Chicken-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-users