Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ANN: Sagittarius Scheme 0.3.7

127 views
Skip to first unread message

ktaka...@gmail.com

unread,
Oct 19, 2012, 3:47:42 AM10/19/12
to
Dear all,

Sagittarius Scheme 0.3.7 has been released.

http://code.google.com/p/sagittarius-scheme/

Sagittarius Scheme is R6RS and R7RS(draft 5) Scheme implementation.

Thanks,

Takashi

Marco Maggi

unread,
Oct 19, 2012, 7:28:20 AM10/19/12
to
"ktaka...@gmail.com" wrote:
>Sagittarius Scheme 0.3.7 has been released.

Ciao,

Google code is read-only, so I post here; on my
i686-pc-linux-gnu I get the following error while build from
the .tar.gz:

[ 37%] Building C object build/ext/ffi/libffi/CMakeFiles/libffi.dir/src/x86/sysv.S.o
/home/marco/var/build/devel/sagittarius-0.3.7/ext/ffi/libffi-3.0.10/src/x86/sysv.S:369:2: error: #error missing .ascii/.string
make[2]: *** [build/ext/ffi/libffi/CMakeFiles/libffi.dir/src/x86/sysv.S.o] Error 1
make[1]: *** [build/ext/ffi/libffi/CMakeFiles/libffi.dir/all] Error 2
make: *** [all] Error 2

--
Marco Maggi

ktaka...@gmail.com

unread,
Oct 19, 2012, 10:04:10 AM10/19/12
to
Hi,

> /home/marco/var/build/devel/sagittarius-0.3.7/ext/ffi/libffi-3.0.10/src/x86/sysv.S:369:2: error: #error missing .ascii/.string

This is an implicit known issue (written in Build tips section on the projcect site), the easiest way to resolve is install libffi on your machine. If your linux has apt, then just install libffi-dev. (and please make sure to remove CMakeCache.txt)

Sorry for inconvenience and thank you for reporting!

Takashi

Aleksej Saushev

unread,
Oct 19, 2012, 2:05:51 PM10/19/12
to
In general it is a bad style to bundle third-party libraries with your software.

In particular, you seem not to be bothered about building libffi, let alone
keeping it up-to-date in your source. You would serve your users better,
if you just report libffi requirement than bundling it.


--
HE CE3OH...

Marco Maggi

unread,
Oct 19, 2012, 2:29:06 PM10/19/12
to
ktaka...@gmail.com wrote:
> This is an implicit known issue (written in Build tips section on the
> projcect site), the easiest way to resolve is install libffi on your
> machine. If your linux has apt, then just install libffi-dev. (and
> please make sure to remove CMakeCache.txt)

Actually, I have libffi 3.0.10 already installed.
--
Marco Maggi

ktaka...@gmail.com

unread,
Oct 20, 2012, 2:55:26 AM10/20/12
to
> Actually, I have libffi 3.0.10 already installed.
Seems CMake couldn't find ffi.h on your environment. If you are sure your compiler can find the file, please try following steps;

1. add following line to ${expanded dir}/ext/ffi/CMakeLists.txt
CHECK_INCLUDE_FILE(ffi.h HAVE_FFI_H) # below this line
+ SET(HAVE_FFI_H TRUE)

2. remove CMakeCache.txt
3. run CMake

Can you tell me where your ffi.h is located? And maybe your compiler and platform? I would like to check what is going wrong and fix it.

Thanks,

Takashi

Marco Maggi

unread,
Oct 20, 2012, 3:09:25 AM10/20/12
to
Mh, this is maybe because I have it installed under
"/usr/local"; but how do I specify this kind of thing under
CMake?
--
Marco Maggi

ktaka...@gmail.com

unread,
Oct 20, 2012, 3:57:07 AM10/20/12
to
> Mh, this is maybe because I have it installed under
> "/usr/local"; but how do I specify this kind of thing under
> CMake?
As far as I understand, the command I'm using to check the header file tries to compile a file which contains the header. So, I believe if your compiler can find the file without any additional include directory, it should be able to find it.

But I guess this is not the case. I found some environment variables which can specify include directories. CMAKE_INCLUDE_PATH is the one. I'm not sure if this works as I expect, though.

This document might help you.
http://www.cmake.org/Wiki/CMake_Useful_Variables#Environment_Variables

Cheers,

Takashi

Cyprien Nicolas

unread,
Oct 20, 2012, 6:25:46 AM10/20/12
to
ktaka...@gmail.com wrote:
>> Actually, I have libffi 3.0.10 already installed.
> Seems CMake couldn't find ffi.h on your environment. If you are sure your compiler can find the file, please try following steps;

I have the same issue here. ffi.h is installed into

/usr/lib/libffi-3.0.11/include/ffi.h

(Gentoo Linux i686 stable)


> 1. add following line to ${expanded dir}/ext/ffi/CMakeLists.txt
> CHECK_INCLUDE_FILE(ffi.h HAVE_FFI_H) # below this line
> + SET(HAVE_FFI_H TRUE)

That won't work, because the path are non-standards. However, my libffi
provide a pkg-config file that should be used.

I added and changed a bit the following code to

sagittarius/ext/ffi/CMakeFiles.txt:

INCLUDE(FindPkgConfig)
pkg_check_modules(LIBFFI REQUIRED libffi)
CHECK_INCLUDE_FILE(ffi.h HAVE_FFI_H ${LIBFFI_CFLAGS})


Then cmake find my system libffi :)


However; I'm not a cmake expert, so I don't know if pkg_check_modules is
the way to do (there exist pkg_search_module). Hope you have a clue.

Cheers,

--
Cyprien/Fulax

ktaka...@gmail.com

unread,
Oct 20, 2012, 6:50:54 AM10/20/12
to
> That won't work, because the path are non-standards. However, my libffi
> provide a pkg-config file that should be used.
>
> I added and changed a bit the following code to
> sagittarius/ext/ffi/CMakeFiles.txt:
>
> INCLUDE(FindPkgConfig)
> pkg_check_modules(LIBFFI REQUIRED libffi)
> CHECK_INCLUDE_FILE(ffi.h HAVE_FFI_H ${LIBFFI_CFLAGS})
>
> Then cmake find my system libffi :)
Excellent! Thank you for your very helpful tip! I will check and make build process detect required files better.

Thanks,

Takashi

Marco Maggi

unread,
Oct 21, 2012, 1:53:42 AM10/21/12
to
Cyprien Nicolas wrote:
> I added and changed a bit the following code to

> sagittarius/ext/ffi/CMakeFiles.txt:

> INCLUDE(FindPkgConfig)
> pkg_check_modules(LIBFFI REQUIRED libffi)
> CHECK_INCLUDE_FILE(ffi.h HAVE_FFI_H ${LIBFFI_CFLAGS})

> Then cmake find my system libffi :)

Indeed, CMake finds it. But then, on my system, compilation
fails with:

[ 37%] Building C object build/ext/ffi/CMakeFiles/sagittarius--ffi.dir/sagittarius-ffi.c.o
In file included from /home/marco/var/build/devel/sagittarius-0.3.7/ext/ffi/sagittarius-ffi.c:37:0:
/home/marco/var/build/devel/sagittarius-0.3.7/ext/ffi/sagittarius-ffi.h:36:32: fatal error: ffi.h: No such file or directory
compilation terminated.
make[2]: *** [build/ext/ffi/CMakeFiles/sagittarius--ffi.dir/sagittarius-ffi.c.o] Error 1
make[1]: *** [build/ext/ffi/CMakeFiles/sagittarius--ffi.dir/all] Error 2
make: *** [all] Error 2

In the end I was able to compile Sagittarius, from a clean
and unmodified unpacked archive, by putting in the path an
executable script named "gcc" containing:

#!/bin/bash

exec /usr/local/bin/gcc \
-L/usr/local \
-I/usr/local/include \
-I/usr/local/lib/libffi-3.0.11/include \
"$@"

### end of file

--
Marco Maggi
0 new messages