         File: guile-1.0-BE01DR8.tar.gz
       Author: Johannes Elg <elg@df.lth.se>
      Release: alpha 0.01 (Feb. 23th, 1997)
Compatibility: DR8
     Location: contrib/lang
  Description: First port of Guile 1.0 to the BeOS: diffs
        Notes: E.g. Socket-support missing, but added some BeOS specifics
				like ability to send BMessages and controlling applications
				which supports the scripting API by John Watte of Metrowerks.


This is quick port of Guile 1.0 to BeOS.

Known bugs:
*	The BeOS has a limited stack size for each task,
	this means you are likely to hit this limit
	for recursive scheme functions (it seems it is
	mostly the guile debug-info that is the culprit
	for tail-recursive functions - should be fixable..).
	If you rewrite the functions as for-loops it should work
	without problems.
*	Several scheme functions are not ported 
	in this release, mostly network/Socket functions
	(help with porting the remaining parts is greatly
	appreciated! I don't think I will do it myself).

Be-specific additions:
*	Experimental support for creating and sending BMessages.
	With this you can write guile-scripts to control applications
	which supports the scripting API suggested by John Watte of Metrowerks.
	To try out the example "site/testscripting.scm" you need to download
	and install the	"ScriptDraw" application from ftp.be.com.

Todo:
*	Compile to a shared-library (maybe a simple relink? haven't tested)
*	Support for add-ons

Note:
*	I believe I found a bug in the original source; in libguile/struct.c (scm_struct_ref())

How to install the binaries and scheme-libraries:
-------------------------------------------------
1)	The Configure scripts doesn't work very well on BeOS DR8.
	Instead use the supplied install shell script
	or do the installation manually.

>	sh Be-install.sh

or:
>	cd guile-1.0-BE01DR8-diffs
>	./mkinstalldirs /boot/local/lib/guile/1.0
>	./mkinstalldirs /boot/local/lib/guile/site
>	cp -r ice-9 /boot/local/lib/guile/1.0
>	cp site/* /boot/local/lib/guile/site
>	cp guile/guile /boot/bin
>	cp libguile/libguile.a /boot/develop/libraries

2)	The following should now work:

>	guile
....
guile>	(+ 1 2)
3


3) You probably also would like to have the
scheme library "slib" by Aubrey Jaffer et. al.,
see:
	http://www-swiss.ai.mit.edu/~jaffer/index.html

Install it in /boot/local/lib/guile/1.0/slib


-------------------------------------------------


How to rebuild the binaries "libguile.a" and "guile" from these diffs:
----------------------------------------------------------------------

1)	Get hold of the original Guile source code (1.2MB):

	ftp://prep.ai.mit.edu/pub/gnu/guile-1.0.tar.gz 

2)	Untar the original sources and then copy the files from this
	archive into the same directory tree:
	
>	zcat guile-1.0.tar.gz | tar xvf -
>	cp -r guile-1.0-BE01DR8-diffs/* guile-1.0

3)	Apply the patches to the original source:

>	cd guile-1.0/libguile
>	sh ../applypatches
>	cd ../ice-9
>	sh ../applypatches

4)	Make the "libguile.a"

>	cd ../libguile
>	make

(note that some of the original source files
have not been ported. The corresponding scheme-functions
will be missing).

5)	Build the "guile" executable (a simple Guile shell):

>	cd ../guile
>	sh Be-make-guile.sh

(it will complain about "strerror" defined twice,
just ignore that warning or fix the source)

You should now have a new "guile" executable.
Dont forget to copy it to /boot/bin

>	cp guile /boot/bin


