home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
549b.lha
/
EdinburghStandardML
/
README.SML
< prev
next >
Wrap
Text File
|
1991-09-08
|
3KB
|
94 lines
*** Quoted from original distribution files ***
This tape contains a version of Standard ML for VAX/UNIX 4.2bsd as
it appears in the revised report after the standardisation meeting
in May 1985.
Before using the system, you will need to perform the following steps:
1) Alter the path in the file sml to point to the directory containing
the SML system.
2) Create the abstract machine with the filename fam by renaming a file of
the form fam.machine, if you are running on a vax, sun, pyramid or gould.
For any other machine, you will need to run the command 'make fam' in the
fam.src directory to create a fam file.
3) Run the command 'sml sml.exp.backup < Configure.Heap' which should
produce a file called sml.exp
4) The system may then be invoked by executing the file sml .
Source files of the abstract machine are in the directory fam.src.
This version of Standard ML has a number of known deficiencies including...
- The implementation of sharing of structures and types
may be flakey.
- The exhaustiveness checking does not always report warnings when it
should. Furthermore, the algorithm used to check the patterns is
exponential, although in many cases this is not a problem. As a
temporary measure, if you encounter a case where this checking takes
an excessive amount of time, the checking can be temporarily disabled
using the CheckMatch flag in the Debug variable, e.g.
...
let val {CheckMatch,...} = Debug in CheckMatch := false end;
< define function that causes the problem >
let val {CheckMatch,...} = Debug in CheckMatch := true end;
...
All values in the environment are accessible from one of the structures
Pervasives or Extensions (these have been recursively 'opened').
Thus, nil may be referred to by any of nil, List.nil or Pervasives.List.nil
for example.
There are a few non-standard features that are available,
including
ExportML : string * string * string list -> unit
This takes a file name, a banner message, and a list of files
to load on start-up, and saves away the current state of the system
in the file with the given file name. Assuming that a saved state
was placed in file fred.exp, then it may be restarted by
executing "sml fred.exp".
Any streams that were open when the export occurred will fail
with the error "stream link lost" if used when the state
is reimported. 'New' versions of std_in and std_out may be
obtained by calling the function stdio: unit -> (instream * outstream).
Print and Debug are variables that affect the underlying compiler.
They are records, and the field names should indicate what most
of the fields do.
The basic I/O package is implemented, but not the extended I/O
primitives.
Equality types are supported, as is a derived form for record
selection ( #a is a function that extracts the field a from a
record).
Please report any other faults encountered to
N. Rothwell
Computer Science Department,
Edinburgh University.
UUCP: ... mcvax!ukc!{hwcs,kcl-cs,ucl-cs,edcaad}!cstvax!nick
ARPA: nick%cstvax.ed@ucl-cs.arpa
TEL: +44 31 667 1081 ext. 2697
*** end of quotation ***