home *** CD-ROM | disk | FTP | other *** search
- GNU Scheme 4e1
- --------------
- This is the (fourth?) release of the GNU scheme interpreter.
- As ever read the provided documentation carefully ;-)
-
- Things to note :
- if you keep you scheme source in !Scm.scm then
- (load "<scm$dir>.foo")
-
- will load !Scm.scm.foo - as you might expect.
-
- Source is available from :
- altdorf.ai.mit.edu
- /pub/jaffer
- /pub/scm
- (depending on how they are feeling :)
- and it'll no doubt eventually arrive at
- ftp.cs.indiana.edu
- /pub/scheme-repository
- [note this is the new home of the scheme repository]
- [note2 - the archimedes extension routines aren't yet in the source package,
- if you desperately want to see how then email me ;)
- ]
-
-
- Running SCM
- -----------
- Three ways depending on how you like it :
- o double click on the icon
- o an alias 'scm' is setup to use
- o an alias 'taskscm' runs scm in a taskwindow; however the first
- of the three ways is preferred as it enables the graphics
- routines to work - if you run in a taskwindow then they tend
- not to...(unfortunately)
- (You'll need OS3 for the taskwindow alias to work of course)
-
- It _might_ be nice if everything ran in a window; but having seen EdScheme
- doing this the speed really is depressing - I think that having it run under
- the WIMP with windows etc would add to the code something chronic and also
- make the performance suffer when doing graphics (mind you, configurable time
- slices might sort it)....opinions anyone?
-
-
-
- Large Announcement
- ------------------
- Due to some diligent interference with the source we now have some really
- fun primitives to play with - at last you can have graphics!
- See the docs in !ArcExtns, please note that its still in a somewhat wild
- state due to the fact I wanted to have something for folks to play with
- uploaded before I trundle off home at the end of term - I only ever check
- my mail every week at best thereafter, so expect the odd update to happen;
- particularly some demo code of using the new graphics routines
- (they do work - honest ;-) as well as turtle graphics written using them
- (this should take an afternoon to hack up I'm guessing...)
-
- This should significantly improve the fun factor of Scheme for the masses.
- I would be EXTREMELY grateful to hear of any bugs present in the new routines
- - I'll fix anything thats probably brain damaged.
- SCM should load the new routines as I've set it up - the source is VERY self
- explanatory (the scheme support routines) - the C interface is not yet
- available as I'm not quite done fiddling it yet.
- (Few more routines to add..)
-
- I'll include any nice graphics routines that anyone writes with full credit.
- (so get doodling)
-
-
-
- Features
- --------
- As ever don't remove the alarm-interrupt handler at the end of !Scm.Init and
- then call
- (alarm <n>)
- because you'll get a stack backtrace. You've been warned :-)
-
-
- Other than that it seems to suffice as the fastest LISPy type language I've
- found on the Arc... (I have a couple of other Schemes kicking about -
- mostly in a state of disarray... email me if you want to fiddle with them -
- VSCM I may or may not get working - its got a weird feature last I was
- hacking it about...)
- Oh - and this is the only one with graphics and which is capable of
- supporting large applications (see JACAL).
-
-
-
- Bonuses
- -------
- Small items that are included in this little bundle that you wouldn't
- otherwise get :
- !Scm.scm.macros
- !Scm.scm.arc_ext
- !Scm.scm.arc_demos
-
- Taking each in turn we have :
-
- o a miniscule demonstration of how to do macros. Nobody actually
- asked but I was interested as it's the only bit I hadn't figured
- out how to do in SCM. Suck 'em and see.
-
- o the support code for the archi graphics routines - feel free to add
- to this - I'll include _anything_ useful with credit.
-
- o the demonstration code using the new primitives provided. Again
- I'll include _anything_ useful with credit.
-
-
-
- Other toys for GNU Scheme
- -------------------------
- There should be the Symbolic Algebra package JACAL available for use with
- GNU Scheme at the same place you got this from - if not email me and I'll
- send you it bundled up ready to go for the arc.
- (It actually installs moderately painlessly once you've fiddled the paths
- and a few redundant defines out)
-
- WB - database package. Haven't tried. Needs Hobbit?
-
- Hobbit - Scheme->C compiler. May look at this soonish once I get graphics
- finished or once GCC 2.5.8 comes out for RiscOS - until then it would
- slow it down to compile it with GCC (pity..).
-
- XSCM - interface to X - errm you are joking aren't you?
- Actually if someone could come up with a port of this it would be really
- really spiffy and make writing desktop apps a doddle; the only problem is
- that it's horribly non-trivial. (could do Tcl/Tk instead?)
-
- SLIB - I've included the major bits of the package that I thought were
- useable on the arch - the docs aren't included for space - see FTP sites
- given above (if someone would fix that 77 file per directory 'feature' then
- we would have been able to fit all of SLIB in...).
-
- (the list goes on and on....see the FAQs)
-
-
-
- BUGS
- ----
- One slightly annoying one -
- If you fiddle the !Boot file to pass arguments to the alias `scm', then it
- doesn't load the file most of the time due to erroneous expansion of
- aliases of paths; even if you don't it tends to do this.
- Slightly irksome but easily worked around - the `load' primitive copes
- with anything thrown at it generally, including paths / aliases and if you
- need something loaded at each invocation then add it into your ScmInit.
-
- Second one :
- If you load a file and it is syntactically invalid (aherm) - for that read -
- you botched up and put in one too many / few parentheses :
- SCM complains and then if you go back and edit it and try to save it you get
- a file open error. This is because SCM doesn't shut open files - simply
- do a (system "shut") or alternatively similar from your favourite editor
- (!shut in vi does the trick).
-
-
-
- Bug reports / comments / notice of anyone actually using it to :
-
- ams@uk.ac.abdn.csd ;;; available til summer '95
-
-
-
- snailmail
- (I'm ever optimistic someone might send me something novel / a postcard) :
-
- kintail,
- barclay park,
- aboyne,
- aberdeenshire.
- ab34 5jf.
-
-
- happy scheming,
-
- al slater.
- 13/6/94
-
- (
- PPS : if you want to be really tight and nasty then you can easily throw
- out all of !Scm.slib if you dont use it - but dont expect JACAL or any
- of the extensions (excepting the Archi ones) to work thereafter.
- It'll easily fit into small machines as SCM isn't a terribly large language
- and as of 4e0 it's properly tail recursive (that doesn't mean you can't
- make it run out of memory though..)
- )
- [ PPS2 : Some things in SLIB _really_ eat memory.
- The worst I know of is if you do :
-
- (require 'syntax-case)
- ;;; goes away and thinks about it
- ;;; then reports about 1meg worth of cells exercised
-
- Most of SLIB works - I know that macros-that-work loads but the test seems
- to fail for the first case and work for the second.
- (This is also true for a version I compiled up under RISCiX...)
- ]