Hi Andy:
Thanks for your patient help. GNU make and friends is entirely new to me at the
detail level.
I did the following (starting from scratch):
(0) Starting with the guile-2.0.7 tar ball
./configure && make && make check
This used gcc and had 77 warnings and 1 test failure
bad return from expression `(f-sum -1 2000 -30000 40000000000)': expected
39999971999; got 39999972255
FAIL: test-ffi
(1) Then I did
make clean && ./configure CC=/usr/bin/clang && make && make check
This used clang and had 87 warnings and 2 test failures
bad return from expression `(f-sum -1 2000 -30000 40000000000)': expected
39999971999; got 39999972255
FAIL: test-ffi
fail: scm_is_unsigned_integer ((- (expt 2 64) 1), 0, 18446744073709551615) == 1
FAIL: test-conversion
(2) Comments:
Many of the warnings were common to both compilers.
Based on the above tests I still maintain that the compilers are not at fault
in their code generation.
Instead I suspect something is amiss in the interpreter.
(3) Next step:
I would like to step through the interpreter as it handles the Scheme/guile
code.
Although I looked at the manual I am not sure what to do.
(4) Questions:
(a) Do I need to build a debug version of guile?
I note there is a debug flag that can be set. But I don't know where to
set it.
(b) From previous emails I understand I have to run the meta uninstalled
version.
Ideally I would like to run from the terminal and stop the interpreter
before it executes
the byte code for test-ffi.
That way one can look at the bytes representing the int8_t and see if the
sign bit
is set and interpreted correctly for this data type.
NOTE: In stdint.h there is a typedef signed char int8_t
Again thanks for the patient replies and help
respect…
Peter