==============================================================================

           Edinburgh Standard ML 4.1.02   -   Amiga Version

==============================================================================

Description:
------------

    This archive includes the Edinburgh Standard ML interpreter, version 4.

    Version 4 implements standard ML syntax, but does not include any of the
    module system included by systems such as SML-NJ.

Files included:
---------------

  fam                (executable)    Functional Abstract Machine

  smlcore.exp        (data)          Core image containing all core standard
                                     ML features

  config.sml         (script)        Original config supplied with SML

  config_gc_func.sml (script)        Original config + function to toggle
                                     GC messages (see below)

  README.AMIGA       (document)      You're looking at it.

  LIBINFO            (document)      Describes some basic library functions
                                     included in the core (incomplete!!!)

  sml.0              (document)      Nice groff'ed man file, (use "less" or
                                     "man" for best results, "more" is OK too)

  nogc.sml           (ml-source)     Little function added to the core that
                                     toggles GC messages (see below)

  core_array.sml     (ml-source)     array functions

  core_barray.sml    (ml-source)     more array functions
                                     (see below for how to add to core, if
                                      you require them frequently)

System Requirements:
--------------------

  - Amiga with 020+/881+

  - At least 800K contiguous RAM

  - Kickstart 2.0+

  - ixemul.library 39.45+ (tested with ixemul 40 as well)

    The interpreter was compiled for 020+/881+ since any less of a system
would not run it at a reasonable speed anyway!

Running SML:
------------

  One good way of starting the interpreter is:

    1) Assign sml: to the directory where you have unarchived SML

    2) Set your stack up (stack 100000)

    3) Execute the command "sml:fam -h 1000 sml:smlcore.exp"

        (Assigning an alias for "sml" to the above command is a good idea!)
        (You may adjust the heap size of 1000 (meaning 1000K or 1meg) to your
         tastes and system limitations)


  *** To leave the interpreter, type CTRL-\ (Amiga's EOF) ***

Description of the core:
------------------------

  smlcore.exp contains the original core supplied for version 4 of FAM,
  however, I have added one simple function that has proved very useful:

    - GarbageCollection true;

        will turn on garbage collection messages (default), while

    - GarbageCollection false;

        will turn off garbage collection messages

  I suggest you play with SML before turning the messages off to get
  a feel for its speed.  Often, it will seem as if the interpreter is
  doing nothing, when really it is doing many garbage collections which
  you are not being informed of!

  ** ALSO NOTE **  The LIBINFO file states that the command "execute" is
  for unix only, however, I have made this function available on the
  Amiga.  (Thank you's to ixemul.library!)

Reconfiguring the Core:
-----------------------

  If you wish to add functions to the core, see the two config files
  included with this archive for the export syntax.  Then do the following:

    1) copy smlcore.exp smlcore.exp.backup

    2) fam -h 1000 smlcore.backup.exp <config.sml
        where you can replace config.sml with the ML script describing
        which functions to execute before exporting.

  A new smlcore.exp will be created which can then be used with fam.

Who ported it?
--------------

  Dylan Kucera
  djkucera@undergrad.math.uwaterloo.ca   (Internet)

  Feel free to e-mail questions/comments about the operation of this Amiga
  version of FAM.

  Stick to comp.lang.ml for ML questions, I only ported this for a friend,
  and I know little to no ML!

