On 2013-02-12, at 1:47 PM, Bakul Shah <bakul@bitblocks.com> wrote:
On Tue, 12 Feb 2013 13:38:17 EST Marc Feeley <feeley@iro.umontreal.ca> wrote:
On 2013-02-12, at 1:30 PM, Bakul Shah <bakul@bitblocks.com> wrote:
On Tue, 12 Feb 2013 13:20:13 EST Marc Feeley <feeley@iro.umontreal.ca> = wrote:
Gambit requires *no* external libraries (except for libc) and its code is compilable by C, C++ and Objective-C compilers without any fancy command-line options. =20 This leads me to ask if anyone has tried porting gambit to plan9? Thanks
Not that I know of, but it should be trivial to get something basic going.
Any hints on how to go about a new port?
You could try ./configure make and report back which errors you get. If the configure fails, from a fresh Gambit distribution directory you could: 1) Create a new include/gambit.h file with echo #ifndef ___VOIDSTAR_WIDTH > include/gambit.h echo #define ___VOIDSTAR_WIDTH ___LONG_WIDTH >> include/gambit.h echo #endif >> include/gambit.h echo #ifndef ___MAX_CHR >> include/gambit.h echo #define ___MAX_CHR 0x10ffff >> include/gambit.h echo #endif >> include/gambit.h cat include/gambit.h.in >> include/gambit.h Usually the gambit.h file is created by the configure script, but here we'll avoid using the configure script because it may have issues on plan9. 2) In lib/ compile all the .c files to .o files using -D___LIBRARY and -D___PRIMAL and -D___HAVE_STDIO_H and -D___HAVE_STDLIB_H. Some of the files (os*.c) are operating system dependent, so most of your problems will be in compiling these files. By default, only stdio functions will be called for I/O and only malloc/free are used for memory allocation. Obviously you won't have a bunch of functionality such as sockets, process ports, time measurement, etc but these can be ported one by one as the need arises by adding the appropriate -DHAVE_XXX and adapting the os*.c files. Once step #2 is completed, you are almost done! 3) In gsi/ compile all the .c files to .o files. Then link all the .o files from lib/ and gsi/ to produce the interpreter "gsi". 4) Repeat step #3 in the gsc/ to produce the compiler "gsc". Marc