home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 549b.lha / EdinburghStandardML / README.SML < prev    next >
Text File  |  1991-09-08  |  3KB  |  94 lines

  1. *** Quoted from original distribution files ***
  2.  
  3.  
  4. This tape contains a version of Standard ML for VAX/UNIX 4.2bsd as
  5. it appears in the revised report after the standardisation meeting
  6. in May 1985.  
  7.  
  8. Before using the system, you will need to perform the following steps:
  9.  
  10.  1) Alter the path in the file sml to point to the directory containing 
  11.     the SML system.
  12.  2) Create the abstract machine with the filename fam by renaming a file of 
  13.     the form fam.machine, if you are running on a vax, sun, pyramid or gould.
  14.     For any other machine, you will need to run the command 'make fam' in the 
  15.     fam.src directory to create a fam file.
  16.  3) Run the command 'sml sml.exp.backup < Configure.Heap' which should
  17.     produce a file called sml.exp
  18.  4) The system may then be invoked by executing the file sml .
  19.  
  20.  
  21. Source files of the abstract machine are in the directory fam.src.
  22.  
  23.  
  24. This version of Standard ML has a number of known deficiencies including...
  25.  
  26.  - The implementation of sharing of structures and types 
  27.    may be flakey.
  28.  
  29.  - The exhaustiveness checking does not always report warnings when it
  30.    should.  Furthermore, the algorithm used to check the patterns is
  31.    exponential, although in many cases this is not a problem.  As a
  32.    temporary measure, if you encounter a case where this checking takes 
  33.    an excessive amount of time, the checking can be temporarily disabled 
  34.    using the CheckMatch flag in the Debug variable, e.g.
  35.       ...
  36.       let val {CheckMatch,...} = Debug in CheckMatch := false end;
  37.       < define function that causes the problem >
  38.       let val {CheckMatch,...} = Debug in CheckMatch := true end;
  39.       ...
  40.  
  41.  
  42. All values in the environment are accessible from one of the structures
  43. Pervasives or Extensions (these have been recursively 'opened').
  44. Thus, nil may be referred to by any of nil, List.nil or Pervasives.List.nil
  45. for example.
  46.  
  47. There are a few non-standard features that are available, 
  48. including
  49.  
  50.    ExportML : string * string * string list -> unit
  51.       This takes a file name, a banner message, and a list of files
  52.       to load on start-up, and saves away the current state of the system
  53.       in the file with the given file name.  Assuming that a saved state
  54.       was placed in file fred.exp, then it may be restarted by
  55.       executing "sml fred.exp".
  56.       Any streams that were open when the export occurred will fail
  57.       with the error "stream link lost" if used when the state
  58.       is reimported.  'New' versions of std_in and std_out may be
  59.       obtained by calling the function stdio: unit -> (instream * outstream).
  60.  
  61.    Print and Debug are variables that affect the underlying compiler.
  62.    They are records, and the field names should indicate what most
  63.    of the fields do.
  64.  
  65.    The basic I/O package is implemented, but not the extended I/O
  66.    primitives.
  67.  
  68.    Equality types are supported, as is a derived form for record
  69.    selection ( #a is a function that extracts the field a from a
  70.    record).
  71.  
  72.  
  73. Please report any other faults encountered to
  74.  
  75.       N. Rothwell
  76.       Computer Science Department,
  77.       Edinburgh University.
  78.  
  79.   UUCP: ... mcvax!ukc!{hwcs,kcl-cs,ucl-cs,edcaad}!cstvax!nick
  80.   ARPA: nick%cstvax.ed@ucl-cs.arpa
  81.   TEL:  +44 31 667 1081 ext. 2697
  82.  
  83. *** end of quotation ***
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.