>>> Brent Benson writes:
> I'm wondering if scsh needs the dynload functions for calling the
> external routines defined with define-foreign?
it uses (get-external ...), which could use any numbder of methods
including dynload or nlist I believe. This is in unix.c and there was a
bug in scheme48 here that we fixed . The define-foreign stuff is a part
of CIG that is actually going to ship with newer version of s48. The
main thing that needs to be done for a new machine type are givein in in
doc/install.txt. I've included the relevant section below.
What to do when your system isn't supported
First of all: DON'T PANIC. It's easy to get scsh to work on a new
system. Besides, you'll be a hero to the masses waiting for the Scheme
Shell on your platform. There is a sample "generic" system in
scsh/generic which you can copy as a base to modify. The modifications
mainly involve pulling some constants in from C header files and hacking
a few lines of C based on your standard I/O internals. I know, its C and
all, together we can survive. If you need some hand holding, feel free
to write to the scsh mailing list at firstname.lastname@example.org.
This is the one C file you have to actually deal with. The code in here
defines two or three simple operations on stdio FILE*'s that are not
part of the stdio.h interface. The main things it needs to be able
to do is see if there is input ready, how much is ready, and to change
the file descriptor associated with a FILE*. Usually how to do this
is fairly obvious from <stdio.h>. Check out the other platforms for ideas.
Scheme defines for C header values found in <errno.h>.
Scheme defines for C header values found in <fcntl.h>.
Scheme defines for C header values found in <sys/signal.h>.
Scheme48 module definitions for the values in the above scheme files.
The script of commands and expressions used to build scsh.
After you've hacked these files together, it'd be nice to also hack
config.scsh to support your new machine. Run config.guess to see what it
thinks your machine is. Then, send us the info, and we'll make sure it
gets in a future release. (That means you, Jonathan.)