On 2010-09-16, at 10:07 PM, Michael Wirth wrote:
Folks,
Has anyone done an estimate (or measurement!) of the resources required on the target platform to do a port of Gambit? For example, for a given processor architecture, what are the memory requirements to support a port of the interpreter for code, stack space, data RAM, etc. Other HW resources and functional support?
I have in mind the types of processors currently used by "embedded systems", which tend to have lots of processor power, but either simple and small memories or rather baroque memory architectures (e.g., a mixture of ROM, fast and slow RAM, writeable FLASH, etc.) and no VM support or rotating storage.
It would be nice to get some "lessons learned" feedback from Gambit porters before charging down a blind alley myself :-)
To my knowledge recent versions of Gambit have been compiled on the following embedded systems:
- Nintendo DS (ARM CPU, 4 MB RAM) - Linksys WRT54GL (MIPS CPU?, 16 MB RAM) - iPhone/iTouch (ARM CPU, 128 MB RAM) - Xilinx Virtex II FPGA (PowerPC CPU, a few MB of RAM)
Search the Gambit mailing list archive for details.
Gambit was designed to be extremely portable. It has very few library dependencies (libc is enough to have a working system). In the words of the author of the Linksys port (http://weblambdazero.blogspot.com/2008/08/scheme-termite-erlang-alternative....):
"On the other hand, a great advantage of Gambit-C over Erlang is that it can translate Scheme applications to plain C, which than can be compiled to standalone executables using gcc. Thanks to this feature I managed to compile a few Gambit examples with OpenWRT-SDK and ran it on my home Linksys WRT54GL router with OpenWRT firmware - the only thing I had to do was to replace gcc command with mipsel-linux-gcc while compiling gsc output files."
If Gambit does not compile on your target platform, then please report this to me or the Gambit mailing list.
Marc