SML(1)
======
:doctype:	manpage
:man source:	SML/NJ
:man version:	{version}

NAME
----
sml - the interactive Standard ML of New Jersey system

SYNOPSIS
--------
*sml* ['SML-OPTIONS'] ['OPTIONS'] ['FILES']

DESCRIPTION
-----------
*Standard ML of New Jersey* is an incremental, interactive compiler that
accepts *SML* declarations and expressions to be evaluated from standard input.

OPTIONS
-------

*-32*::
  run the 32-bit version of the SML/NJ system (currently the default).

*-64*::
  run the 64-bit version of the SML/NJ system.  This option only applies to
  the **x86-64** (aka **amd64**) architecture.

*@SMLwordsize*::
  echo the wordsize (_i.e._, either `32` or `64`) of the system to standard
  output and then exit.  (This option was added in version 110.97).

*@SMLversion*::
  echo the command name and SML/NJ version (_e.g._, "++sml {version}++")
  to standard output and then exit.

*@SMLload*='IMAGE'::
  specifies the name of the heap-image file to load.  The heap suffix can be omitted
  as long as there there is not a file of the same name.

*@SMLcmdname*='NAME'::
  set the command name; this is the value returned by +CommandLine.name()+.

*@SMLsuffix*::
  echo the heap suffix for the system to standard output and then exit

*@SMLalloc*='SIZE'::
  Specify the prefered size of the allocation area

*@SMLrun*='RUNTIME'::
  specifies runtime system

*@SMLquiet*::
  load heap image silently (default)

*@SMLverbose*::
  show heap image load progress

*@SMLobjects*::
  show list of executable objects

*@SMLdebug*='FILE'::
  write debugging info to file

*-C*'ctl'='value'::
  set the control 'ctl' to 'value'.

*-D*'name'='value'::
  define the CM variable 'name' to have the given value.

*-D*'name::
  define the CM variable 'name' to have the value 1.

*-U*'name'::
  remove any definition of the CM variable 'name'.

*-H*::
  produce complete help listing

*-h*::
  produce minimal help listing

*-h*'level'::
  help with obscurity limit

*-S*::
  list all the controls along with their default value

*-s*'level'::
  print a limited list of settings.
  The number of levels of the control heirarchy is controled by 'level', with 0 printing
  just the root of the heirarchy.

*-E*::
  list all the controls along with their corresponding environment variables

*-e*'level'::
  print a limited list of environment variables;
  The number of levels of the control heirarchy is controled by 'level', with 0 printing
  just the root of the heirarchy.

*-m*::
  switch to CM.make

*-a*::
  switch to CM.autoload; default

'file.cm'::
  run +CM.make+ or +CM.autoload+ on 'file.cm' and then return to the SML prompt.
  Which command is run is determined by the *-m* and *-a* flags.

'file.sig'::
  execute +use+ 'file.sig' before entering the SML top-level loop.

'file.sml'::      (use)
  execute +use+ 'file.sml' before entering the SML top-level loop.

'file.fun'::       (use)
  execute +use+ 'file.fun' before entering the SML top-level loop.

AUTHOR
------
sml(1) was originally created by Andrew Appel and David MacQueen in 1987.
The system is currently maintained by Matthias Blume, David MacQueen, and John Reppy.

SEE-ALSO
--------
smlnj(7)

https://smlnj.org[_Standard ML of New Jersey website_]

COPYING
-------
Copyright (C) 2020 The Fellowship of SML/NJ

This is free software; see the source for copying  conditions.   There  is  NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
