Marc Feeley wrote:
Can you explain how you fixed the problem? The file include/gambit.h contains ifdefs to automatically figure out what the endianness is. In particular it contains:
I simply did:
#ifdef ___CPU_arm
#define _LITTLE_ENDIAN
#ifdef _LITTLE_ENDIAN #define ___LITTLE_ENDIAN #endif #ifdef __LITTLE_ENDIAN__ #define ___LITTLE_ENDIAN #endif #ifdef __LITTLE_ENDIAN_DATA__ #define ___LITTLE_ENDIAN #endif #endif
For some reason, nothing sets a _LITTLE_ENDIAN flag in the DS development environment. <shrug>
It also probably doesn't help that I'm cross compiling from OS X PPC which is big endian. So, all of the configure and makefiles run under that to produce the C code. My scons files then handle the cross compiling to the DS.
As of now, I have a 3 Mibibyte binary which produces a repl with a console and emulated keyboard on the screen and touchscreen. It works on both hardware and under the no$gba emulator. It's still a little strange in that it evaluates before I hit return if there is a parenthesis, eg.:
Gambit Version 4.0 beta 20
(+ 1 2 3)6 (cons 'a '(1 2))(a 1 2) 1
1
'a
a
So, my next step is to try to bring networking up. Is the fact that I have no native threading system going to impact that?
Thanks, -a