From 57c3246511434f42214e113b8902af10ab9cca49 Mon Sep 17 00:00:00 2001
From: xsipewe
Date: Tue, 21 Jun 2016 15:50:34 +0200
Subject: erts: Editorial changes
---
erts/doc/src/erl.xml | 2226 +++++++++++++++++++++++++-------------------------
1 file changed, 1106 insertions(+), 1120 deletions(-)
(limited to 'erts/doc/src/erl.xml')
diff --git a/erts/doc/src/erl.xml b/erts/doc/src/erl.xml
index 37387f2c59..5559aec30e 100644
--- a/erts/doc/src/erl.xml
+++ b/erts/doc/src/erl.xml
@@ -30,86 +30,92 @@
erl.xmlerl
- The Erlang Emulator
+ The Erlang emulator.
The program starts an Erlang runtime system.
- The exact details (for example, whether is a script or
- a program and which other programs it calls) are system-dependent.
-
Windows users probably wants to use the program
+ The exact details (for example, whether is a
+ script or a program and which other programs it calls) are
+ system-dependent.
+
+
Windows users probably want to use the program
instead, which runs in its own window with scrollbars and supports
- command-line editing. The program on Windows provides
- no line editing in its shell, and on Windows 95 there is no way
- to scroll back to text which has scrolled off the screen.
- The program must be used, however, in pipelines or if
+ command-line editing. The program on Windows
+ provides no line editing in its shell, and on Windows 95 there is no way
+ to scroll back to text that has scrolled off the screen. The
+ program must be used, however, in pipelines or if
you want to redirect standard input or output.
-
As of ERTS version 5.9 (OTP-R15B) the runtime system will by
- default not bind schedulers to logical processors.
- For more information see documentation of the
- +sbt system flag.
-
-
+
+
+
As from ERTS 5.9 (Erlang/OTP R15B) the runtime system does by
+ default not bind schedulers to logical processors.
+ For more information, see system flag
+ +sbt.
+
+
erl <arguments>
- Start an Erlang runtime system
+ Start an Erlang runtime system.
-
Starts an Erlang runtime system.
-
The arguments can be divided into emulator flags,
- flags and plain arguments:
-
-
-
Any argument starting with the character is
- interpreted as an emulator flag.
-
As indicated by the name, emulator flags controls
- the behavior of the emulator.
-
-
-
Any argument starting with the character
- (hyphen) is interpreted as a
- flag which should
- be passed to the Erlang part of the runtime system, more
- specifically to the system process, see
- init(3).
-
The process itself interprets some of these
- flags, the init flags. It also stores any
- remaining flags, the user flags. The latter can
- be retrieved by calling .
-
It can be noted that there are a small number of "-"
- flags which now actually are emulator flags, see
- the description below.
-
-
-
Plain arguments are not interpreted in any way. They are
- also stored by the process and can be
- retrieved by calling .
- Plain arguments can occur before the first flag, or after
- a flag. Additionally, the flag
- causes everything that follows to become plain arguments.
-
-
-
Example:
-
+
Starts an Erlang runtime system.
+
The arguments can be divided into emulator flags,
+ flags, and plain arguments:
+
+
+
Any argument starting with character is
+ interpreted as an
+ emulator flag.
+
As indicated by the name, emulator flags control
+ the behavior of the emulator.
+
+
+
Any argument starting with character
+ (hyphen) is interpreted as a
+ flag, which is to
+ be passed to the Erlang part of the runtime system, more
+ specifically to the system process, see
+ init(3).
+
The process itself interprets some of
+ these flags, the init flags. It also stores any
+ remaining flags, the user flags. The latter can be
+ retrieved by calling .
+
A small number of "-" flags exist, which now actually are
+ emulator flags, see the description below.
+
+
+
Plain arguments are not interpreted in any way. They are also
+ stored by the process and can be retrieved
+ by calling .
+ Plain arguments can occur before the first flag, or after a
+ flag. Also, the
+ flag causes everything that follows to become plain arguments.
Here and are emulator flags.
- is an init flag, interpreted by .
- is a user flag, stored by .
- It is read by Kernel and will cause the Erlang runtime system
- to become distributed. Finally, everything after
- (that is, ) is considered as plain arguments.
-
+
Here and are
+ emulator flags. is an init flag,
+ interpreted by .
+ is a user flag, stored by
+ . It is read by Kernel and causes the
+ Erlang runtime system to become distributed. Finally, everything after
+ (that is, ) is
+ considered as plain arguments.
Here the user flag is passed to and stored
- by the process. It is a user defined flag,
- presumably used by some user defined application.
+
Here the user flag is passed to and
+ stored by the process. It is a user-defined
+ flag, presumably used by some user-defined application.
@@ -117,50 +123,54 @@
Flags
-
In the following list, init flags are marked (init flag).
+
In the following list, init flags are marked "(init flag)".
Unless otherwise specified, all other flags are user flags, for
which the values can be retrieved by calling
- . Note that the list of user flags is
- not exhaustive, there may be additional, application specific
- flags which instead are documented in the corresponding
+ . Notice that the list of user
+ flags is not exhaustive, there can be more application-specific
+ flags that instead are doscribed in the corresponding
application documentation.
- (init flag)
+ (init flag)
Everything following up to the next flag
- ( or ) is considered plain arguments
- and can be retrieved using .
+ ( or ) is considered
+ plain arguments and can be retrieved using
+ .
-
Sets the application configuration parameter to
- the value for the application ,
- see app(4) and
- application(3).
+
Sets the application configuration parameter
+ to the value for the application
+ ; see
+ kernel:app(4) and
+
+ kernel:application(3).
-
Command line arguments are read from the file .
- The arguments read from the file replace the
- '' flag on the resulting command line.
-
The file should be a plain text file and may
- contain comments and command line arguments. A comment begins
- with a # character and continues until next end of line character.
- Backslash (\\) is used as quoting character. All command line
- arguments accepted by are allowed, also the
- flag. Be careful not to cause circular
- dependencies between files containing the flag,
- though.
-
The flag is treated specially. Its scope ends
- at the end of the file. Arguments following an
- flag are moved on the command line into the section,
- i.e. the end of the command line following after an
- flag.
+
Command-line arguments are read from the file
+ . The arguments read from the file replace
+ flag '' on the resulting
+ command line.
+
The file is to be a plain text file and
+ can contain comments and command-line arguments. A comment begins
+ with a # character and continues until the next end of line
+ character. Backslash (\\) is used as quoting character. All
+ command-line arguments accepted by are allowed,
+ also flag . Be careful not to
+ cause circular dependencies between files containing flag
+ , though.
+
The flag is treated in special way. Its
+ scope ends at the end of the file. Arguments following an
+ flag are moved on the command line into the
+ section, that is, the end of the command
+ line following after an flag.
The initial Erlang shell does not read user input until
- the system boot procedure has been completed (Erlang 5.4 and
+ the system boot procedure has been completed (Erlang/OTP 5.4 and
later). This flag disables the start synchronization feature
and lets the shell start in parallel with the rest of
the system.
@@ -168,52 +178,56 @@
Specifies the name of the boot file, ,
- which is used to start the system. See
- init(3). Unless
+ which is used to start the system; see
+ init(3). Unless
contains an absolute path, the system searches
- for in the current and
- directories.
+ for in the current and
+ directories.
Defaults to .
-
If the boot script contains a path variable other
- than , this variable is expanded to .
- Used when applications are installed in another directory
- than , see
- systools:make_script/1,2.
+
If the boot script contains a path variable
+ other than , this variable is expanded to
+ . Used when applications are installed in
+ another directory than ; see
+
+ systools:make_script/1,2 in SASL.
-
Enables the code path cache of the code server, see
- code(3).
+
Enables the code path cache of the code server; see
+ kernel:code(3).
Compiles the specified modules and then terminates (with
non-zero exit code if the compilation of some file did not
- succeed). Implies . Not recommended - use
- erlc instead.
+ succeed). Implies .
+
Not recommended; use erlc
+ instead.
Specifies the name of a configuration file,
, which is used to configure
- applications. See
- app(4) and
- application(3).
+ applications; see
+ kernel:app(4) and
+
+ kernel:application(3).
-
If this flag is present, will not maintain a
- fully connected network of distributed Erlang nodes, and then
- global name registration cannot be used. See
- global(3).
+
If this flag is present, does not maintain
+ a fully connected network of distributed Erlang nodes, and then
+ global name registration cannot be used; see
+ kernel:global(3).
Obsolete flag without any effect and common misspelling for
- . Use instead.
+ . Use
+ instead.
@@ -223,8 +237,7 @@
-
Useful for debugging. Prints out the actual arguments
- sent to the emulator.
+
Useful for debugging. Prints the arguments sent to the emulator.
@@ -234,14 +247,16 @@
% erl -env DISPLAY gin:0
In this example, an Erlang runtime system is started with
- the environment variable set to .
+ environment variable set to
+ .
- (init flag)
+ (init flag)
-
Makes evaluate the expression , see
- init(3).
+
Makes evaluate the expression
+ ; see
+ init(3).
- (init flag)
+ (init flag)
Everything following is considered plain
arguments and can be retrieved using
@@ -249,8 +264,9 @@
-
Starts heart beat monitoring of the Erlang runtime system.
- See heart(3).
+
Starts heartbeat monitoring of the Erlang runtime system;
+ see
+ kernel:heart(3).
@@ -258,91 +274,99 @@
run as a distributed node. Hidden nodes always establish
hidden connections to all other nodes except for nodes in the
same global group. Hidden connections are not published on
- either of the connected nodes, i.e. neither of the connected
- nodes are part of the result from on the other
- node. See also hidden global groups,
- global_group(3).
+ any of the connected nodes, that is, none of the connected
+ nodes are part of the result from on the
+ other node. See also hidden global groups;
+
+ kernel:global_group(3).
-
Specifies the IP addresses for the hosts on which Erlang
- boot servers are running, see
- erl_boot_server(3).
- This flag is mandatory if the flag is
- present.
-
The IP addresses must be given in the standard form (four
- decimal numbers separated by periods, for example
- . Hosts names are not acceptable, but
- a broadcast address (preferably limited to the local network)
+
Specifies the IP addresses for the hosts on which Erlang boot servers
+ are running, see
+ kernel:erl_boot_server(3). This flag
+ is mandatory if flag is present.
+
The IP addresses must be specified in the standard form (four
+ decimal numbers separated by periods, for example,
+ . Hosts names are not acceptable,
+ but a broadcast address (preferably limited to the local network)
is.
Specifies the identity of the Erlang runtime system. If it is
run as a distributed node, must be identical to
- the name supplied together with the or
- flag.
+ the name supplied together with flag or
+ .
Makes write some debug information while
interpreting the boot script.
- (emulator flag)
+ (emulator flag)
Selects an instrumented Erlang runtime system (virtual
machine) to run, instead of the ordinary one. When running an
instrumented runtime system, some resource usage data can be
- obtained and analysed using the module .
+ obtained and analyzed using the module.
Functionally, it behaves exactly like an ordinary Erlang
runtime system.
-
Specifies the method used by to load
- Erlang modules into the system. See
- erl_prim_loader(3).
- Two methods are supported, and
- . means use the local file system,
- this is the default. means use a boot server on
- another machine, and the , and
- flags must be specified as well. If
- is something else, the user supplied
+
Specifies the method used by to
+ load Erlang modules into the system; see
+ erl_prim_loader(3).
+ Two methods are supported:
+
+
+
, which means use the local file system,
+ this is the default.
+
+
+
, which means use a boot server on
+ another machine. The flags ,
+ and must
+ also be specified.
+
+
+
If is something else, the user-supplied
port program is started.
-
Makes the Erlang runtime system invoke in
- the current working directory and then terminate. See
- make(3). Implies
+
Makes the Erlang runtime system invoke
+ in the current working directory and then terminate; see
+ tools:make(3). Implies
.
-
Displays the manual page for the Erlang module .
- Only supported on Unix.
+
Displays the manual page for the Erlang module
+ . Only supported on Unix.
-
Indicates if the system should load code dynamically
- (), or if all code should be loaded
- during system initialization (), see
- code(3). Defaults to
- .
+
Indicates if the system is to load code dynamically
+ (), or if all code is to be loaded
+ during system initialization (); see
+ kernel:code(3).
+ Defaults to .
Makes the Erlang runtime system into a distributed node.
This flag invokes all network servers necessary for a node to
- become distributed. See
- net_kernel(3).
- It is also ensured that runs on the current host
- before Erlang is started. See
- epmd(1) and the
+ become distributed; see
+ kernel:net_kernel(3). It is also ensured that
+ runs on the current host before Erlang is
+ started; see epmd(1).and the
-start_epmd option.
-
The name of the node will be , where
- is the fully qualified host name of the current
- host. For short names, use the flag instead.
+
The node name will be , where
+ is the fully qualified host name of the
+ current host. For short names, use flag
+ instead.
@@ -353,115 +377,111 @@
Starts an Erlang runtime system with no shell. This flag
makes it possible to have the Erlang runtime system as a
- component in a series of UNIX pipes.
+ component in a series of Unix pipes.
Disables the sticky directory facility of the Erlang code
- server, see
- code(3).
+ server; see
+ kernel:code(3).
-
Invokes the old Erlang shell from Erlang 3.3. The old shell
+
Invokes the old Erlang shell from Erlang/OTP 3.3. The old shell
can still be used.
Adds the specified directories to the beginning of the code
- path, similar to . See
- code(3).
+ path, similar to ; see
+ kernel:code(3).
As an alternative to -pa, if several directories are
to be prepended to the code path and the directories have a
- common parent directory, that parent directory could be
- specified in the ERL_LIBS environment variable.
- See code(3).
+ common parent directory, that parent directory can be
+ specified in environment variable ERL_LIBS; see
+ kernel:code(3).
Adds the specified directories to the end of the code path,
- similar to . See
- code(3).
+ similar to ; see
+ kernel:code(3).
-
Replaces the path specified in the boot script. See
- script(4).
+
Replaces the path specified in the boot script; see
+ sasl:script(4).
-
Specify a protocol for Erlang distribution.
-
- inet_tcp
-
-
TCP over IPv4 (the default)
-
- inet_tls
-
-
distribution over TLS/SSL
-
- inet6_tcp
-
-
TCP over IPv6
-
+
Specifies a protocol for Erlang distribution:
+
+ inet_tcp
+ TCP over IPv4 (the default)
+ inet_tls
+ Distribution over TLS/SSL
+ inet6_tcp
+ TCP over IPv6
Starts Erlang with a remote shell connected to
+ .
-
Specifies an alternative to for starting a slave
- node on a remote host. See
- slave(3).
+
Specifies an alternative to for starting a
+ slave node on a remote host; see
+ stdlib:slave(3).
- (init flag)
+ (init
+ flag)
-
Makes call the specified function.
- defaults to . If no arguments are provided,
- the function is assumed to be of arity 0. Otherwise it is
- assumed to be of arity 1, taking the list
- as argument. All arguments are passed
- as strings. See
- init(3).
+
Makes call the specified function.
+ defaults to .
+ If no arguments are provided, the function is assumed to be of
+ arity 0. Otherwise it is assumed to be of arity 1, taking the list
+ as argument. All arguments are
+ passed as strings. See
+ init(3).
- (init flag)
+ (init flag)
-
Makes call the specified function.
- defaults to . If no arguments are provided,
- the function is assumed to be of arity 0. Otherwise it is
- assumed to be of arity 1, taking the list
- as argument. All arguments are passed
- as atoms. See
- init(3).
+
Makes call the specified function.
+ defaults to .
+ If no arguments are provided, the function is assumed to be of
+ arity 0. Otherwise it is assumed to be of arity 1, taking the list
+ as argument. All arguments are
+ passed as atoms. See
+ init(3).
-
Sets the magic cookie of the node to , see
- erlang:set_cookie/2.
+
Sets the magic cookie of the node to ; see
+
+ erlang:set_cookie/2.
Specifies how long time (in milliseconds) the
process is allowed to spend shutting down the system. If
- ms have elapsed, all processes still existing are
- killed. Defaults to .
+ milliseconds have elapsed, all processes still
+ existing are killed. Defaults to .
-
Makes the Erlang runtime system into a distributed node,
- similar to , but the host name portion of the node
+
Makes the Erlang runtime system into a distributed node, similar to
+ , but the host name portion of the node
name will be the short name, not fully
qualified.
This is sometimes the only way to run distributed Erlang if
- the DNS (Domain Name System) is not running. There can be no
- communication between nodes running with the
- flag and those running with the flag, as node
+ the Domain Name System (DNS) is not running. No communication can
+ exist between nodes running with flag
+ and those running with flag , as node
names must be unique in distributed Erlang systems.
-start_epmd true | false
@@ -481,19 +501,21 @@
-
-smp enable and -smp starts the Erlang runtime
- system with SMP support enabled. This may fail if no runtime
+
-smp enable and -smp start the Erlang runtime
+ system with SMP support enabled. This can fail if no runtime
system with SMP support is available. -smp auto starts
the Erlang runtime system with SMP support enabled if it is
- available and more than one logical processor are detected.
+ available and more than one logical processor is detected.
-smp disable starts a runtime system without SMP support.
-
NOTE: The runtime system with SMP support will not
- be available on all supported platforms. See also the
- +S flag.
+
+
The runtime system with SMP support is not available on all
+ supported platforms. See also flag
+ +S.
+
- (emulator flag)
+ (emulator flag)
-
Makes the emulator print out its version number. The same
+
Makes the emulator print its version number. The same
as .
@@ -505,133 +527,169 @@
invokes the code for the Erlang emulator (virtual
machine), which supports the following flags:
-
+
+
Suggested stack size, in kilowords, for threads in the
- async-thread pool. Valid range is 16-8192 kilowords. The
- default suggested stack size is 16 kilowords, i.e, 64
+ async thread pool. Valid range is 16-8192 kilowords. The
+ default suggested stack size is 16 kilowords, that is, 64
kilobyte on 32-bit architectures. This small default size
- has been chosen since the amount of async-threads might
- be quite large. The default size is enough for drivers
- delivered with Erlang/OTP, but might not be sufficiently
- large for other dynamically linked in drivers that use the
- driver_async()
- functionality. Note that the value passed is only a
- suggestion, and it might even be ignored on some
- platforms.
+ has been chosen because the number of async threads can
+ be large. The default size is enough for drivers
+ delivered with Erlang/OTP, but might not be large
+ enough for other dynamically linked-in drivers that use the
+
+ driver_async() functionality.
+ Notice that the value passed is only a suggestion,
+ and it can even be ignored on some platforms.
-
Sets the number of threads in async thread pool, valid range
- is 0-1024. If thread support is available, the default is 10.
+
Sets the number of threads in async thread pool. Valid range
+ is 0-1024. Defaults to 10 if thread support is available.
-
The option makes interrupt the current
- shell instead of invoking the emulator break handler.
- The option (same as specifying without an
- extra option) disables the break handler. The option
- makes the emulator ignore any break signal.
-
If the option is used with on Unix,
- will restart the shell process rather than
- interrupt it.
-
Note that on Windows, this flag is only applicable for
- , not (). Note also that
- is used instead of on Windows.
+
Option makes
+ interrupt the current shell instead of invoking the emulator break
+ handler. Option (same as specifying
+ without an extra option) disables the break
+ handler. Option makes the emulator ignore any
+ break signal.
+
If option is used with
+ on Unix, will
+ restart the shell process rather than interrupt it.
+
Notice that on Windows, this flag is only applicable for
+ , not
+ (). Notice also that
+ is used instead of
+ on Windows.
-
Enable or disable
- time correction:
+
Enables or disables
+ time
+ correction:
true
-
Enable time correction. This is the default if
- time correction is supported on the specific platform.
-
- false
-
Disable time correction.
-
-
For backwards compatibility, the boolean value can be omitted.
- This is interpreted as +c false.
-
-
-
-
-
Set
- time warp mode:
-
-
- no_time_warp
-
No Time Warp Mode (the default)
- single_time_warp
-
Single Time Warp Mode
- multi_time_warp
-
Multi Time Warp Mode
-
+ Enables time correction. This is the default if
+ time correction is supported on the specific platform.
+ false
+ Disables time correction.
+
+
For backward compatibility, the boolean value can be omitted.
+ This is interpreted as +c false.
+
+ no_time_warp
+
+ No time warp mode (the default)
+ single_time_warp
+
+ Single time warp mode
+ multi_time_warp
+
+ Multi-time warp mode
+
If the emulator detects an internal error (or runs out of memory),
- it will by default generate both a crash dump and a core dump.
- The core dump will, however, not be very useful since the content
- of process heaps is destroyed by the crash dump generation.
-
-
The +d option instructs the emulator to only produce a
- core dump and no crash dump if an internal error is detected.
-
-
Calling erlang:halt/1 with a string argument will still
- produce a crash dump. On Unix systems, sending an emulator process
- a SIGUSR1 signal will also force a crash dump.
+ it, by default, generates both a crash dump and a core dump.
+ The core dump is, however, not very useful as the content
+ of process heaps is destroyed by the crash dump generation.
+
Option +d instructs the emulator to produce only a
+ core dump and no crash dump if an internal error is detected.
+
Calling
+ erlang:halt/1 with a string argument still
+ produces a crash dump. On Unix systems, sending an emulator process
+ a SIGUSR1 signal also forces a crash dump.
-
Set max number of ETS tables.
+
Sets the maximum number of ets tables.
-
Force the compressed option on all ETS tables.
- Only intended for test and evaluation.
+
Forces option compressed on all ets tables.
+ Only intended for test and evaluation.
-
+
+
-
The VM works with file names as if they are encoded using the ISO-latin-1 encoding, disallowing Unicode characters with codepoints beyond 255.
-
See STDLIB User's Guide for more infomation about unicode file names. Note that this value also applies to command-line parameters and environment variables (see STDLIB User's Guide).
+
The virtual machine works with filenames as if they are encoded
+ using the ISO Latin-1 encoding, disallowing Unicode characters with
+ code points > 255.
+
For more information about Unicode filenames, see section
+ Unicode
+ Filenames in the STDLIB User's Guide. Notice that
+ this value also applies to command-line parameters and environment
+ variables (see section
+ Unicode in Enviroment and Parameters in the STDLIB
+ User's Guide).
-
The VM works with file names as if they are encoded using
- UTF-8 (or some other system specific Unicode encoding). This
- is the default on operating systems that enforce Unicode
- encoding, i.e. Windows and MacOS X.
-
The +fnu switch can be followed by w,
- i, or e to control the way wrongly encoded file
- names are to be reported. w means that a warning is
- sent to the error_logger whenever a wrongly encoded
- file name is "skipped" in directory listings, i means
- that those wrongly encoded file names are silently ignored and
- e means that the API function will return an error
- whenever a wrongly encoded file (or directory) name is
- encountered. w is the default. Note that
- file:read_link/1 will always return an error if the
- link points to an invalid file name.
-
See STDLIB User's Guide for more infomation about unicode file names. Note that this value also applies to command-line parameters and environment variables (see STDLIB User's Guide).
+
The virtual machine works with filenames as if they are encoded
+ using UTF-8 (or some other system-specific Unicode encoding). This is
+ the default on operating systems that enforce Unicode encoding, that
+ is, Windows and MacOS X.
+
The +fnu switch can be followed by w, i, or
+ e to control how wrongly encoded filenames are to be
+ reported:
+
+
+
w means that a warning is sent to the error_logger
+ whenever a wrongly encoded filename is "skipped" in directory
+ listings. This is the default.
+
+
+
i means that those wrongly encoded filenames are silently
+ ignored.
+
+
+
e means that the API function returns an error whenever a
+ wrongly encoded filename (or directory name) is encountered.
+
+
+
Notice that
+ file:read_link/1 always returns an error if the link
+ points to an invalid filename.
+
For more information about Unicode filenames, see section
+ Unicode
+ Filenames in the STDLIB User's Guide. Notice that
+ this value also applies to command-line parameters and environment
+ variables (see section
+ Unicode in Enviroment and Parameters in the STDLIB
+ User's Guide).
Selection between +fnl and +fnu is done based
- on the current locale settings in the OS, meaning that if you
- have set your terminal for UTF-8 encoding, the filesystem is
- expected to use the same encoding for file names. This is
- default on all operating systems except MacOS X and
- Windows.
-
The +fna switch can be followed by w,
- i, or e. This will have effect if the locale
- settings cause the behavior of +fnu to be selected.
- See the description of +fnu above. If the locale
- settings cause the behavior of +fnl to be selected,
- then w, i, or e will not have any
- effect.
-
See STDLIB User's Guide for more infomation about unicode file names. Note that this value also applies to command-line parameters and environment variables (see STDLIB User's Guide).
+ on the current locale settings in the OS. This means that if you
+ have set your terminal for UTF-8 encoding, the filesystem is
+ expected to use the same encoding for filenames. This is
+ default on all operating systems, except MacOS X and Windows.
+
The +fna switch can be followed by w, i, or
+ e. This has effect if the locale settings cause the behavior
+ of +fnu to be selected; see the description of +fnu
+ above. If the locale settings cause the behavior of +fnl to be
+ selected, then w, i, or e have no effect.
+
For more information about Unicode filenames, see section
+ Unicode
+ Filenames in the STDLIB User's Guide. Notice that
+ this value also applies to command-line parameters and environment
+ variables (see section
+ Unicode in Enviroment and Parameters in the STDLIB
+ User's Guide).
@@ -646,26 +704,24 @@
Sets the default maximum heap size of processes to the size
- . If +hmax is not given, the default is 0
- which means that no maximum heap size is used.
- For more information, see the documentation of
+ . Defaults to 0, which means that no
+ maximum heap size is used. For more information, see
- process_flag(max_heap_size, MaxHeapSize).
+ process_flag(max_heap_size, MaxHeapSize).
-
Sets whether to send an error logger message for processes that reach
- the maximum heap size or not. If +hmaxel is not given, the default is true.
- For more information, see the documentation of
-
+
Sets whether to send an error logger message or not for processes
+ reaching the maximum heap size. Defaults to true.
+ For more information, see
+ process_flag(max_heap_size, MaxHeapSize).
-
Sets whether to kill processes that reach the maximum heap size or not. If
- +hmaxk is not given, the default is true. For more information,
- see the documentation of
-
+
Sets whether to kill processes reaching the maximum heap size or not.
+ Default to true. For more information, see
+ process_flag(max_heap_size, MaxHeapSize).
- Sets the default value for the process flag
- message_queue_data. If +hmqd is not
- passed, on_heap will be the default. For more information,
- see the documentation of
- process_flag(message_queue_data,
- MQD).
-
+
+
Sets the default value for process flag message_queue_data.
+ Defaults to on_heap. If +hmqd is not
+ passed, on_heap will be the default. For more information, see
+
+ process_flag(message_queue_data, MQD).
+
-
Enables or disables the kernel poll functionality if
- the emulator supports it. Default is (disabled).
- If the emulator does not support kernel poll, and
- the flag is passed to the emulator, a warning is
+
Enables or disables the kernel poll functionality if supported by
+ the emulator. Defaults to (disabled).
+ If the emulator does not support kernel poll, and flag
+ is passed to the emulator, a warning is
issued at startup.
-
Enables auto load tracing, displaying info while loading
+
Enables autoload tracing, displaying information while loading
code.
-
Don't load information about source file names and line numbers.
- This will save some memory, but exceptions will not contain
- information about the file names and line numbers.
-
+
Prevents loading information about source filenames and line
+ numbers. This saves some memory, but exceptions do not contain
+ information about the filenames and line numbers.
-
Memory allocator specific flags, see
- erts_alloc(3) for
- further information.
-
-
-
-
Control behavior of signals to ports.
-
As of OTP-R16 signals to ports are truly asynchronously
- delivered. Note that signals always have been documented as
- asynchronous. The underlying implementation has, however,
- previously delivered these signals synchronously. Correctly
- written Erlang programs should be able to handle this without
- any issues. Bugs in existing Erlang programs that make false
- assumptions about signals to ports may, however, be tricky to
- find. This switch has been introduced in order to at least
- make it easier to compare behaviors during a transition period.
- Note that this flag is deprecated as of its
- introduction, and is scheduled for removal in OTP-R17.
- Behavior should be one of the following characters:
-
- d
- The default. Asynchronous signals. A process that sends
- a signal to a port may continue execution before the signal
- has been delivered to the port.
- s
- Synchronous signals. A processes that sends a signal
- to a port will not continue execution until the signal has
- been delivered. Should only be used for testing and
- debugging.
- a
- Asynchronous signals. As the default, but a processes
- that sends a signal will even more frequently continue
- execution before the signal has been delivered to the
- port. Should only be used for testing and
- debugging.
-
-
-
-
-
Sets the range of characters that the system will consider printable in heuristic detection of strings. This typically affects the shell, debugger and io:format functions (when ~tp is used in the format string).
-
Currently two values for the Range are supported:
-
- latin1The default. Only characters
- in the ISO-latin-1 range can be considered printable, which means
- that a character with a code point > 255 will never be
- considered printable and that lists containing such
- characters will be displayed as lists of integers rather
- than text strings by tools.
- unicode
- All printable Unicode characters are considered when
- determining if a list of integers is to be displayed in
- string syntax. This may give unexpected results if for
- example your font does not cover all Unicode
- characters.
-
-
Se also
- io:printable_range/0.
-
-
-
-
Sets the maximum number of simultaneously existing processes for this
- system if a Number is passed as value. Valid range for
- Number is [1024-134217727]
-
NOTE: The actual maximum chosen may be much larger than
- the Number passed. Currently the runtime system often,
- but not always, chooses a value that is a power of 2. This might,
- however, be changed in the future. The actual value chosen can be
- checked by calling
- erlang:system_info(process_limit).
-
The default value is 262144
-
If legacy is passed as value, the legacy algorithm for
- allocation of process identifiers will be used. Using the legacy
- algorithm, identifiers will be allocated in a strictly increasing
- fashion until largest possible identifier has been reached. Note that
- this algorithm suffers from performance issues and can under certain
- circumstances be extremely expensive. The legacy algoritm is deprecated,
- and the legacy option is scheduled for removal in OTP-R18.
-
-
-
-
Sets the maximum number of simultaneously existing ports for this
- system if a Number is passed as value. Valid range for Number
- is [1024-134217727]
-
NOTE: The actual maximum chosen may be much larger than
- the actual Number passed. Currently the runtime system often,
- but not always, chooses a value that is a power of 2. This might,
- however, be changed in the future. The actual value chosen can be
- checked by calling
- erlang:system_info(port_limit).
-
The default value used is normally 65536. However, if
- the runtime system is able to determine maximum amount of file
- descriptors that it is allowed to open and this value is larger
- than 65536, the chosen value will increased to a value
- larger or equal to the maximum amount of file descriptors that
- can be opened.
-
On Windows the default value is set to 8196 because the
- normal OS limitations are set higher than most machines can handle.
-
Previously the environment variable ERL_MAX_PORTS was used
- for setting the maximum number of simultaneously existing ports. This
- environment variable is deprecated, and scheduled for removal in
- OTP-R17, but can still be used.
-
If legacy is passed as value, the legacy algorithm for
- allocation of port identifiers will be used. Using the legacy
- algorithm, identifiers will be allocated in a strictly increasing
- fashion until largest possible identifier has been reached. Note that
- this algorithm suffers from performance issues and can under certain
- circumstances be extremely expensive. The legacy algoritm is deprecated,
- and the legacy option is scheduled for removal in OTP-R18.
+
Memory allocator-specific flags. For more information, see
+ erts_alloc(3).
+
+
+
+
+
Sets the range of characters that the system considers printable in
+ heuristic detection of strings. This typically affects the shell,
+ debugger, and io:format functions (when ~tp is used in
+ the format string).
+
Two values are supported for Range:
+
+ latin1
+ The default. Only characters in the ISO Latin-1 range can be
+ considered printable. This means that a character with a code point
+ > 255 is never considered printable and that lists containing
+ such characters are displayed as lists of integers rather than text
+ strings by tools.
+ unicode
+ All printable Unicode characters are considered when
+ determining if a list of integers is to be displayed in
+ string syntax. This can give unexpected results if, for
+ example, your font does not cover all Unicode characters.
+
+
See also
+ io:printable_range/0 in STDLIB.
Sets the compatibility mode.
-
The distribution mechanism is not backwards compatible by
- default. This flags sets the emulator in compatibility mode
+
The distribution mechanism is not backward compatible by
+ default. This flag sets the emulator in compatibility mode
with an earlier Erlang/OTP release .
The release number must be in the range
-2..]]>. This
- limits the emulator, making it possible for it to communicate
- with Erlang nodes (as well as C- and Java nodes) running that
- earlier release.
-
Note: Make sure all nodes (Erlang-, C-, and Java nodes) of
- a distributed Erlang system is of the same Erlang/OTP release,
- or from two different Erlang/OTP releases X and Y, where
- all Y nodes have compatibility mode X.
+ limits the emulator, making it possible for it to communicate
+ with Erlang nodes (as well as C- and Java nodes) running that
+ earlier release.
+
+
Ensure that all nodes (Erlang-, C-, and Java nodes) of
+ a distributed Erlang system is of the same Erlang/OTP release,
+ or from two different Erlang/OTP releases X and Y, where
+ all Y nodes have compatibility mode X.
+
-
Force ets memory block to be moved on realloc.
+
Forces ets memory block to be moved on realloc.
-
Limits the amount of reader groups used by read/write locks
- optimized for read operations in the Erlang runtime system. By
- default the reader groups limit equals 64.
-
When the amount of schedulers is less than or equal to the reader
- groups limit, each scheduler has its own reader group. When the
- amount of schedulers is larger than the reader groups limit,
- schedulers share reader groups. Shared reader groups degrades
- read lock and read unlock performance while a large amount of
- reader groups degrades write lock performance, so the limit is a
- tradeoff between performance for read operations and performance
- for write operations. Each reader group currently consumes 64 byte
- in each read/write lock. Also note that a runtime system using
- shared reader groups benefits from binding
- schedulers to logical processors, since the reader groups
- are distributed better between schedulers.
-
-
-
-
Sets the number of scheduler threads to create and scheduler
- threads to set online when SMP support has been enabled. The maximum for
- both values is 1024. If the Erlang runtime system is able to determine the
- amount of logical processors configured and logical processors available,
- Schedulers will default to logical processors configured, and
- SchedulersOnline will default to logical processors available;
- otherwise, the default values will be 1. Schedulers may be omitted
- if :SchedulerOnline is not and vice versa. The number of schedulers
- online can be changed at run time via
- erlang:system_flag(schedulers_online, SchedulersOnline).
-
-
If Schedulers or SchedulersOnline is specified as a
- negative number, the value is subtracted from the default number of
- logical processors configured or logical processors available, respectively.
-
-
Specifying the value 0 for Schedulers or SchedulersOnline
- resets the number of scheduler threads or scheduler threads online respectively
- to its default value.
-
-
This option is ignored if the emulator doesn't have
- SMP support enabled (see the -smp
- flag).
-
-
-
-
Similar to +S but uses percentages to set the
- number of scheduler threads to create, based on logical processors configured,
- and scheduler threads to set online, based on logical processors available, when
- SMP support has been enabled. Specified values must be greater than 0. For example,
- +SP 50:25 sets the number of scheduler threads to 50% of the logical processors
- configured and the number of scheduler threads online to 25% of the logical processors available.
- SchedulersPercentage may be omitted if :SchedulersOnlinePercentage is
- not and vice versa. The number of schedulers online can be changed at run time via
- erlang:system_flag(schedulers_online, SchedulersOnline).
-
-
This option interacts with +S settings.
- For example, on a system with 8 logical cores configured and 8 logical cores
- available, the combination of the options +S 4:4 +SP 50:25 (in either order)
- results in 2 scheduler threads (50% of 4) and 1 scheduler thread online (25% of 4).
-
-
This option is ignored if the emulator doesn't have
- SMP support enabled (see the -smp
- flag).
-
-
-
-
Sets the number of dirty CPU scheduler threads to create and dirty
- CPU scheduler threads to set online when threading support has been
- enabled. The maximum for both values is 1024, and each value is further
- limited by the settings for normal schedulers: the number of dirty CPU
- scheduler threads created cannot exceed the number of normal scheduler
- threads created, and the number of dirty CPU scheduler threads online
- cannot exceed the number of normal scheduler threads online (see the
- +S and +SP
- flags for more details). By default, the number of dirty CPU scheduler
- threads created equals the number of normal scheduler threads created,
- and the number of dirty CPU scheduler threads online equals the number
- of normal scheduler threads online. DirtyCPUSchedulers may be
- omitted if :DirtyCPUSchedulersOnline is not and vice versa. The
- number of dirty CPU schedulers online can be changed at run time via
- erlang:system_flag(dirty_cpu_schedulers_online, DirtyCPUSchedulersOnline).
-
-
- The amount of dirty CPU schedulers is limited by the amount of
- normal schedulers in order to limit the effect on processes
- executing on ordinary schedulers. If the amount of dirty CPU
- schedulers was allowed to be unlimited, dirty CPU bound jobs would
- potentially starve normal jobs.
-
-
This option is ignored if the emulator doesn't have threading support
- enabled. Currently, this option is experimental and is supported only
- if the emulator was configured and built with support for dirty schedulers
- enabled (it's disabled by default).
-
-
-
-
-
Similar to +SDcpu but uses percentages to set the
- number of dirty CPU scheduler threads to create and number of dirty CPU scheduler threads
- to set online when threading support has been enabled. Specified values must be greater
- than 0. For example, +SDPcpu 50:25 sets the number of dirty CPU scheduler threads
- to 50% of the logical processors configured and the number of dirty CPU scheduler threads
- online to 25% of the logical processors available. DirtyCPUSchedulersPercentage may
- be omitted if :DirtyCPUSchedulersOnlinePercentage is not and vice versa. The
- number of dirty CPU schedulers online can be changed at run time via
- erlang:system_flag(dirty_cpu_schedulers_online, DirtyCPUSchedulersOnline).
-
-
This option interacts with +SDcpu settings.
- For example, on a system with 8 logical cores configured and 8 logical cores available,
- the combination of the options +SDcpu 4:4 +SDPcpu 50:25 (in either order) results
- in 2 dirty CPU scheduler threads (50% of 4) and 1 dirty CPU scheduler thread online (25% of 4).
-
-
This option is ignored if the emulator doesn't have threading support
- enabled. Currently, this option is experimental and is supported only
- if the emulator was configured and built with support for dirty schedulers
- enabled (it's disabled by default).
-
+
Limits the number of reader groups used by read/write locks
+ optimized for read operations in the Erlang runtime system. By
+ default the reader groups limit is 64.
+
When the number of schedulers is less than or equal to the reader
+ groups limit, each scheduler has its own reader group. When the
+ number of schedulers is larger than the reader groups limit,
+ schedulers share reader groups. Shared reader groups degrade
+ read lock and read unlock performance while many
+ reader groups degrade write lock performance. So, the limit is a
+ tradeoff between performance for read operations and performance
+ for write operations. Each reader group consumes 64 byte
+ in each read/write lock.
+
Notice that a runtime system using shared reader groups benefits from
+ binding schedulers to logical
+ processors, as the reader groups are distributed better
+ between schedulers.
+
+
+
+
+
Sets the number of scheduler threads to create and scheduler threads
+ to set online when SMP support has been enabled. The maximum for both
+ values is 1024. If the Erlang runtime system is able to determine the
+ number of logical processors configured and logical processors
+ available, Schedulers defaults to logical processors
+ configured, and SchedulersOnline defaults to logical processors
+ available; otherwise the default values are 1. Schedulers can
+ be omitted if :SchedulerOnline is not and conversely. The
+ number of schedulers online can be changed at runtime through
+
+ erlang:system_flag(schedulers_online,
+ SchedulersOnline).
+
If Schedulers or SchedulersOnline is specified as a
+ negative number, the value is subtracted from the default number of
+ logical processors configured or logical processors available,
+ respectively.
+
Specifying value 0 for Schedulers or
+ SchedulersOnline resets the number of scheduler threads or
+ scheduler threads online, respectively, to its default value.
+
This option is ignored if the emulator does not have SMP support
+ enabled (see flag -smp).
+
+
+
+
Similar to +S but uses
+ percentages to set the number of scheduler threads to create, based
+ on logical processors configured, and scheduler threads to set online,
+ based on logical processors available, when SMP support has been
+ enabled. Specified values must be > 0. For example,
+ +SP 50:25 sets the number of scheduler threads to 50% of the
+ logical processors configured, and the number of scheduler threads
+ online to 25% of the logical processors available.
+ SchedulersPercentage can be omitted if
+ :SchedulersOnlinePercentage is not and conversely. The number
+ of schedulers online can be changed at runtime through
+
+ erlang:system_flag(schedulers_online,
+ SchedulersOnline).
+
This option interacts with +S
+ settings. For example, on a system with 8 logical cores configured
+ and 8 logical cores available, the combination of the options
+ +S 4:4 +SP 50:25 (in either order) results in 2 scheduler
+ threads (50% of 4) and 1 scheduler thread online (25% of 4).
+
This option is ignored if the emulator does not have SMP support
+ enabled (see flag -smp).
+
+
+
+
Sets the number of dirty CPU scheduler threads to create and dirty
+ CPU scheduler threads to set online when threading support has been
+ enabled. The maximum for both values is 1024, and each value is
+ further limited by the settings for normal schedulers:
+
+ The number of dirty CPU scheduler threads created cannot exceed
+ the number of normal scheduler threads created.
+ The number of dirty CPU scheduler threads online cannot exceed
+ the number of normal scheduler threads online.
+
+
For details, see the +S and
+ +SP. By default, the number
+ of dirty CPU scheduler threads created equals the number of normal
+ scheduler threads created, and the number of dirty CPU scheduler
+ threads online equals the number of normal scheduler threads online.
+ DirtyCPUSchedulers can be omitted if
+ :DirtyCPUSchedulersOnline is not and conversely. The number of
+ dirty CPU schedulers online can be changed at runtime through
+
+ erlang:system_flag(dirty_cpu_schedulers_online,
+ DirtyCPUSchedulersOnline).
+
The amount of dirty CPU schedulers is limited by the amount of
+ normal schedulers in order to limit the effect on processes
+ executing on ordinary schedulers. If the amount of dirty CPU
+ schedulers was allowed to be unlimited, dirty CPU bound jobs would
+ potentially starve normal jobs.
+
This option is ignored if the emulator does not have threading
+ support enabled. This option is experimental and
+ is supported only if the emulator was configured and built with
+ support for dirty schedulers enabled (it is disabled by default).
+
+
+
+
Similar to +SDcpu but
+ uses percentages to set the number of dirty CPU scheduler threads to
+ create and the number of dirty CPU scheduler threads to set online
+ when threading support has been enabled. Specified values must be
+ > 0. For example, +SDPcpu 50:25 sets the number of dirty
+ CPU scheduler threads to 50% of the logical processors configured
+ and the number of dirty CPU scheduler threads online to 25% of the
+ logical processors available. DirtyCPUSchedulersPercentage can
+ be omitted if :DirtyCPUSchedulersOnlinePercentage is not and
+ conversely. The number of dirty CPU schedulers online can be changed
+ at runtime through
+
+ erlang:system_flag(dirty_cpu_schedulers_online,
+ DirtyCPUSchedulersOnline).
+
This option interacts with +SDcpu settings. For example, on a
+ system with 8 logical cores configured and 8 logical cores available,
+ the combination of the options +SDcpu 4:4 +SDPcpu 50:25 (in
+ either order) results in 2 dirty CPU scheduler threads (50% of 4) and
+ 1 dirty CPU scheduler thread online (25% of 4).
+
This option is ignored if the emulator does not have threading
+ support enabled. This option is experimental and
+ is supported only if the emulator was configured and built with
+ support for dirty schedulers enabled (it is disabled by default).
-
Sets the number of dirty I/O scheduler threads to create when threading
- support has been enabled. The valid range is 0-1024. By default, the number
- of dirty I/O scheduler threads created is 10, same as the default number of
- threads in the async thread pool
- .
-
-
- The amount of dirty IO schedulers is not limited by the amount of
- normal schedulers like the amount of
- dirty CPU schedulers. This since only I/O bound work is
- expected to execute on dirty I/O schedulers. If the user should schedule CPU
- bound jobs on dirty I/O schedulers, these jobs might starve ordinary
- jobs executing on ordinary schedulers.
-
-
This option is ignored if the emulator doesn't have threading support
- enabled. Currently, this option is experimental and is supported only
- if the emulator was configured and built with support for dirty schedulers
- enabled (it's disabled by default).
-
+
Sets the number of dirty I/O scheduler threads to create when
+ threading support has been enabled. Valid range is 0-1024. By
+ default, the number of dirty I/O scheduler threads created is 10,
+ same as the default number of threads in the async thread pool.
+
The amount of dirty IO schedulers is not limited by the amount of
+ normal schedulers like the amount of
+ dirty CPU schedulers. This since only I/O bound work is
+ expected to execute on dirty I/O schedulers. If the user should schedule CPU
+ bound jobs on dirty I/O schedulers, these jobs might starve ordinary
+ jobs executing on ordinary schedulers.
+
This option is ignored if the emulator does not have threading
+ support enabled. This option is experimental and
+ is supported only if the emulator was configured and built with
+ support for dirty schedulers enabled (it is disabled by default).
@@ -979,238 +962,237 @@
+sbt BindType
-
Set scheduler bind type.
-
Schedulers can also be bound using the
- +stbt flag. The only difference
- between these two flags is how the following errors are handled:
-
- Binding of schedulers is not supported on the specific
- platform.
- No available CPU topology. That is the runtime system
- was not able to automatically detected the CPU topology, and
- no user defined CPU topology
- was set.
-
-
If any of these errors occur when +sbt has been passed,
- the runtime system will print an error message, and refuse to
- start. If any of these errors occur when +stbt has been
- passed, the runtime system will silently ignore the error, and
- start up using unbound schedulers.
-
Currently valid BindTypes:
-
-
- u
-
-
unbound - Schedulers will not be bound to logical
- processors, i.e., the operating system decides where the
- scheduler threads execute, and when to migrate them. This is
- the default.
+
Sets scheduler bind type.
+
Schedulers can also be bound using flag
+ +stbt. The only
+ difference between these two flags is how the following errors
+ are handled:
+
+ Binding of schedulers is not supported on the specific
+ platform.
+ No available CPU topology. That is, the runtime system was
+ not able to detect the CPU topology automatically, and no
+ user-defined CPU topology
+ was set.
+
+
If any of these errors occur when +sbt has been passed,
+ the runtime system prints an error message, and refuses to
+ start. If any of these errors occur when +stbt has been
+ passed, the runtime system silently ignores the error, and
+ start up using unbound schedulers.
+
Valid BindTypes:
+
+ u
+ unbound - Schedulers are not bound to logical
+ processors, that is, the operating system decides where the
+ scheduler threads execute, and when to migrate them. This is
+ the default.
- ns
-
-
no_spread - Schedulers with close scheduler
- identifiers will be bound as close as possible in hardware.
+ ns
+ no_spread - Schedulers with close scheduler
+ identifiers are bound as close as possible in hardware.
- ts
-
-
thread_spread - Thread refers to hardware threads
- (e.g. Intel's hyper-threads). Schedulers with low scheduler
- identifiers, will be bound to the first hardware thread of
- each core, then schedulers with higher scheduler identifiers
- will be bound to the second hardware thread of each core,
- etc.
+ ts
+ thread_spread - Thread refers to hardware threads
+ (such as Intel's hyper-threads). Schedulers with low scheduler
+ identifiers, are bound to the first hardware thread of
+ each core, then schedulers with higher scheduler identifiers
+ are bound to the second hardware thread of each core,and so on.
- ps
-
-
processor_spread - Schedulers will be spread like
- thread_spread, but also over physical processor chips.
+ ps
+ processor_spread - Schedulers are spread like
+ thread_spread, but also over physical processor chips.
- s
-
-
spread - Schedulers will be spread as much as
- possible.
+ s
+ spread - Schedulers are spread as much as possible.
- nnts
-
-
no_node_thread_spread - Like thread_spread,
- but if multiple NUMA (Non-Uniform Memory Access) nodes exists,
- schedulers will be spread over one NUMA node at a time,
- i.e., all logical processors of one NUMA node will be bound
- to schedulers in sequence.
+ nnts
+ no_node_thread_spread - Like thread_spread,
+ but if multiple Non-Uniform Memory Access (NUMA) nodes exist,
+ schedulers are spread over one NUMA node at a time,
+ that is, all logical processors of one NUMA node are bound
+ to schedulers in sequence.
- nnps
-
-
no_node_processor_spread - Like
- processor_spread, but if multiple NUMA nodes exists,
- schedulers will be spread over one NUMA node at a time, i.e.,
- all logical processors of one NUMA node will be bound to
- schedulers in sequence.
+ nnps
+ no_node_processor_spread - Like
+ processor_spread, but if multiple NUMA nodes exist,
+ schedulers are spread over one NUMA node at a time, that is,
+ all logical processors of one NUMA node are bound to
+ schedulers in sequence.
- tnnps
-
-
thread_no_node_processor_spread - A combination of
- thread_spread, and no_node_processor_spread.
- Schedulers will be spread over hardware threads across NUMA
- nodes, but schedulers will only be spread over processors
- internally in one NUMA node at a time.
+ tnnps
+ thread_no_node_processor_spread - A combination of
+ thread_spread, and no_node_processor_spread.
+ Schedulers are spread over hardware threads across NUMA
+ nodes, but schedulers are only spread over processors
+ internally in one NUMA node at a time.
- db
-
-
default_bind - Binds schedulers the default way.
- Currently the default is thread_no_node_processor_spread
- (which might change in the future).
+ db
+ default_bind - Binds schedulers the default way.
+ Defaults to thread_no_node_processor_spread
+ (which can change in the future).
-
-
Binding of schedulers is currently only supported on newer
- Linux, Solaris, FreeBSD, and Windows systems.
-
If no CPU topology is available when the +sbt flag
- is processed and BindType is any other type than
- u, the runtime system will fail to start. CPU
- topology can be defined using the
- +sct flag. Note
- that the +sct flag may have to be passed before the
- +sbt flag on the command line (in case no CPU topology
- has been automatically detected).
-
The runtime system will by default not bind schedulers
- to logical processors.
-
-
NOTE: If the Erlang runtime system is the only operating system
- process that binds threads to logical processors, this
- improves the performance of the runtime system. However,
- if other operating system processes (as for example
- another Erlang runtime system) also bind threads to
- logical processors, there might be a performance penalty
- instead. In some cases this performance penalty might be
- severe. If this is the case, you are advised to not
- bind the schedulers.
+
+
Binding of schedulers is only supported on newer
+ Linux, Solaris, FreeBSD, and Windows systems.
+
If no CPU topology is available when flag +sbt
+ is processed and BindType is any other type than
+ u, the runtime system fails to start. CPU
+ topology can be defined using flag
+ +sct. Notice
+ that flag +sct can have to be passed before flag
+ +sbt on the command line (if no CPU topology
+ has been automatically detected).
+
The runtime system does by default not bind schedulers
+ to logical processors.
+
+
If the Erlang runtime system is the only operating system
+ process that binds threads to logical processors, this
+ improves the performance of the runtime system. However,
+ if other operating system processes (for example
+ another Erlang runtime system) also bind threads to
+ logical processors, there can be a performance penalty
+ instead. This performance penalty can sometimes be
+ severe. If so, you are advised not to
+ bind the schedulers.
+
How schedulers are bound matters. For example, in
- situations when there are fewer running processes than
- schedulers online, the runtime system tries to migrate
- processes to schedulers with low scheduler identifiers.
- The more the schedulers are spread over the hardware,
- the more resources will be available to the runtime
- system in such situations.
-
-
- NOTE: If a scheduler fails to bind, this
- will often be silently ignored. This since it isn't always
- possible to verify valid logical processor identifiers. If
- an error is reported, it will be reported to the
- error_logger. If you want to verify that the
- schedulers actually have bound as requested, call
- erlang:system_info(scheduler_bindings).
-
+ situations when there are fewer running processes than
+ schedulers online, the runtime system tries to migrate
+ processes to schedulers with low scheduler identifiers.
+ The more the schedulers are spread over the hardware,
+ the more resources are available to the runtime
+ system in such situations.
+
+
If a scheduler fails to bind, this is
+ often silently ignored, as it is not always
+ possible to verify valid logical processor identifiers. If
+ an error is reported, it is reported to the
+ error_logger. If you want to verify that the
+ schedulers have bound as requested, call
+
+ erlang:system_info(scheduler_bindings).
Set scheduler busy wait threshold. Default is medium.
- The threshold determines how long schedulers should busy
- wait when running out of work before going to sleep.
-
-
NOTE: This flag may be removed or changed at any time
- without prior notice.
-
Sets scheduler busy wait threshold. Defaults to medium.
+ The threshold determines how long schedulers are to busy
+ wait when running out of work before going to sleep.
+
+
This flag can be removed or changed at any time
+ without prior notice.
+
+
++scl true|false
-
Enable or disable scheduler compaction of load. By default
- scheduler compaction of load is enabled. When enabled, load
- balancing will strive for a load distribution which causes
- as many scheduler threads as possible to be fully loaded (i.e.,
- not run out of work). This is accomplished by migrating load
- (e.g. runnable processes) into a smaller set of schedulers
- when schedulers frequently run out of work. When disabled,
- the frequency with which schedulers run out of work will
- not be taken into account by the load balancing logic.
- +scl false is similar to
- +sub true with the difference
- that +sub true also will balance scheduler utilization
- between schedulers.
-
+
Enables or disables scheduler compaction of load. By default
+ scheduler compaction of load is enabled. When enabled, load
+ balancing strives for a load distribution, which causes
+ as many scheduler threads as possible to be fully loaded (that is,
+ not run out of work). This is accomplished by migrating load
+ (for example, runnable processes) into a smaller set of schedulers
+ when schedulers frequently run out of work. When disabled,
+ the frequency with which schedulers run out of work is
+ not taken into account by the load balancing logic.
+
+scl false is similar to
+ +sub true, but
+ +sub true also balances scheduler utilization
+ between schedulers.
Sets a user-defined CPU topology. The user-defined
+ CPU topology overrides any automatically detected
+ CPU topology. The CPU topology is used when
+ binding schedulers to logical
+ processors.
+
Uppercase letters signify real identifiers and lowercase
+ letters signify fake identifiers only used for description
+ of the topology. Identifiers passed as real identifiers can
+ be used by the runtime system when trying to access specific
+ hardware; if they are incorrect the behavior is
+ undefined. Faked logical CPU identifiers are not accepted,
+ as there is no point in defining the CPU topology without
+ real logical CPU identifiers. Thread, core, processor, and
+ node identifiers can be omitted. If omitted, the thread ID
+ defaults to t0, the core ID defaults to c0,
+ the processor ID defaults to p0, and the node ID is
+ left undefined. Either each logical processor must
+ belong to only one NUMA node, or no logical
+ processors must belong to any NUMA nodes.
+
Both increasing and decreasing ]]>s
+ are allowed.
+
NUMA node identifiers are system wide. That is, each NUMA
+ node on the system must have a unique identifier. Processor
+ identifiers are also system wide. Core identifiers are
+ processor wide. Thread identifiers are core wide.
+
The order of the identifier types implies the hierarchy of the
+ CPU topology. The valid orders are as follows:
+
+
+
]]>,
+ that is, thread is part of a core that is part of a processor,
+ which is part of a NUMA node.
+
+
+
]]>,
+ that is, thread is part of a core that is part of a NUMA node,
+ which is part of a processor.
+
+
+
A CPU topology can consist of both processor external, and
+ processor internal NUMA nodes as long as each logical processor
+ belongs to only one NUMA node. If
+ ]]> is omitted, its default position
+ is before ]]>. That is, the default is
+ processor external NUMA nodes.
+
If a list of identifiers is used in an
+ ]]>:
+
+ ]]> must be a list
+ of identifiers.
+ At least one other identifier type besides
+ ]]> must also have a
+ list of identifiers.
+ All lists of identifiers must produce the
+ same number of identifiers.
-
Set a user defined CPU topology. The user defined
- CPU topology will override any automatically detected
- CPU topology. The CPU topology is used when
- binding schedulers to logical
- processors.
-
-
Upper-case letters signify real identifiers and lower-case
- letters signify fake identifiers only used for description
- of the topology. Identifiers passed as real identifiers may
- be used by the runtime system when trying to access specific
- hardware and if they are not correct the behavior is
- undefined. Faked logical CPU identifiers are not accepted
- since there is no point in defining the CPU topology without
- real logical CPU identifiers. Thread, core, processor, and
- node identifiers may be left out. If left out, thread id
- defaults to t0, core id defaults to c0,
- processor id defaults to p0, and node id will
- be left undefined. Either each logical processor must
- belong to one and only one NUMA node, or no logical
- processors must belong to any NUMA nodes.
-
-
Both increasing and decreasing ]]>s
- are allowed.
-
NUMA node identifiers are system wide. That is, each NUMA
- node on the system have to have a unique identifier. Processor
- identifiers are also system wide. Core identifiers are
- processor wide. Thread identifiers are core wide.
-
The order of the identifier types imply the hierarchy of the
- CPU topology. Valid orders are either
- ]]>,
- or
- ]]>.
- That is, thread is part of a core which is part of a processor
- which is part of a NUMA node, or thread is part of a core which
- is part of a NUMA node which is part of a processor. A cpu
- topology can consist of both processor external, and processor
- internal NUMA nodes as long as each logical processor belongs
- to one and only one NUMA node. If ]]>
- is left out, its default position will be before
- ]]>. That is, the default is
- processor external NUMA nodes.
-
-
If a list of identifiers is used in an
- ]]>:
-
- ]]> have to be a list
- of identifiers.
- At least one other identifier type apart from
- ]]> also have to have a
- list of identifiers.
- All lists of identifiers have to produce the
- same amount of identifiers.
-
-
A simple example. A single quad core processor may be
- described this way:
+
A simple example. A single quad core processor can be
+ described as follows:
A little more complicated example. Two quad core
- processors. Each processor in its own NUMA node.
- The ordering of logical processors is a little weird.
- This in order to give a better example of identifier
- lists:
+ {core,{logical,3}}]}]
+
A more complicated example with two quad core
+ processors, each processor in its own NUMA node.
+ The ordering of logical processors is a bit weird.
+ This to give a better example of identifier lists:
As long as real identifiers are correct it is okay
- to pass a CPU topology that is not a correct
- description of the CPU topology. When used with
- care this can actually be very useful. This in
- order to trick the emulator to bind its schedulers
- as you want. For example, if you want to run multiple
- Erlang runtime systems on the same machine, you
- want to reduce the amount of schedulers used and
- manipulate the CPU topology so that they bind to
- different logical CPUs. An example, with two Erlang
- runtime systems on a quad core machine:
+ {core,{logical,5}}]}]}]
+
As long as real identifiers are correct, it is OK
+ to pass a CPU topology that is not a correct
+ description of the CPU topology. When used with
+ care this can be very useful. This
+ to trick the emulator to bind its schedulers
+ as you want. For example, if you want to run multiple
+ Erlang runtime systems on the same machine, you
+ want to reduce the number of schedulers used and
+ manipulate the CPU topology so that they bind to
+ different logical CPUs. An example, with two Erlang
+ runtime systems on a quad core machine:
% erl +sct L0-3c0-3 +sbt db +S3:2 -detached -noinput -noshell -sname one
-% erl +sct L3-0c0-3 +sbt db +S3:2 -detached -noinput -noshell -sname two
-
-
In this example each runtime system have two
- schedulers each online, and all schedulers online
- will run on different cores. If we change to one
- scheduler online on one runtime system, and three
- schedulers online on the other, all schedulers
- online will still run on different cores.
-
Note that a faked CPU topology that does not reflect
- how the real CPU topology looks like is likely to
- decrease the performance of the runtime system.
-
For more information, see
- erlang:system_info(cpu_topology).
+% erl +sct L3-0c0-3 +sbt db +S3:2 -detached -noinput -noshell -sname two
+
In this example, each runtime system have two
+ schedulers each online, and all schedulers online
+ will run on different cores. If we change to one
+ scheduler online on one runtime system, and three
+ schedulers online on the other, all schedulers
+ online will still run on different cores.
+
Notice that a faked CPU topology that does not reflect
+ how the real CPU topology looks like is likely to
+ decrease the performance of the runtime system.
+
For more information, see
+
+ erlang:system_info(cpu_topology).
+secio true|false
-
Enable or disable eager check I/O scheduling. The default
- is currently true. The default was changed from false
- to true as of erts version 7.0. The behaviour before this
- flag was introduced corresponds to +secio false.
-
The flag effects when schedulers will check for I/O
- operations possible to execute, and when such I/O operations
- will execute. As the name of the parameter implies,
- schedulers will be more eager to check for I/O when
- true is passed. This however also implies that
- execution of outstanding I/O operation will not be
- prioritized to the same extent as when false is
- passed.
-
erlang:system_info(eager_check_io)
- returns the value of this parameter used when starting the VM.
+
Enables or disables eager check I/O scheduling. Defaults
+ to true. The default was changed from false
+ as from ERTS 7.0. The behavior before this
+ flag was introduced corresponds to +secio false.
+
The flag effects when schedulers will check for I/O
+ operations possible to execute, and when such I/O operations
+ will execute. As the parameter name implies,
+ schedulers are more eager to check for I/O when
+ true is passed. This, however, also implies that
+ execution of outstanding I/O operation is not
+ prioritized to the same extent as when false is
+ passed.
+
+ erlang:system_info(eager_check_io)
+ returns the value of this parameter used when starting
+ the virtual machine.
+sfwi Interval
-
Set scheduler forced wakeup interval. All run queues will
- be scanned each Interval milliseconds. While there are
- sleeping schedulers in the system, one scheduler will be woken
- for each non-empty run queue found. An Interval of zero
- disables this feature, which also is the default.
-
-
This feature has been introduced as a temporary workaround
- for long-executing native code, and native code that does not
- bump reductions properly in OTP. When these bugs have be fixed
- the +sfwi flag will be removed.
-
-
+
Sets scheduler-forced wakeup interval. All run queues are
+ scanned each Interval milliseconds. While there are
+ sleeping schedulers in the system, one scheduler is woken
+ for each non-empty run queue found. Interval default
+ to 0, meaning this feature is disabled.
+
+
This feature has been introduced as a temporary workaround
+ for long-executing native code, and native code that does not
+ bump reductions properly in OTP. When these bugs have be fixed,
+ this flag will be removed.
+
+
+ +spp Bool
+
+
Sets default scheduler hint for port parallelism. If set to
+ true, the virtual machine schedules port tasks when it
+ improves parallelism in the system. If set to false, the
+ virtual machine tries to perform port tasks immediately,
+ improving latency at the expense of parallelism. Default to
+ false. The default used can be inspected in runtime by
+ calling
+ erlang:system_info(port_parallelism).
+ The default can be overridden on port creation by passing option
+
+ parallelism to
+
+ erlang:open_port/2
.
+
+
+
+
+
Suggested stack size, in kilowords, for scheduler threads.
+ Valid range is 4-8192 kilowords. The default stack size is
+ OS-dependent.
+ +stbt BindType
-
Try to set scheduler bind type. The same as the
- +sbt flag with the exception of
- how some errors are handled. For more information, see the
- documentation of the +sbt flag.
-
-
+
Tries to set the scheduler bind type. The same as flag
+ +sbt except
+ how some errors are handled. For more information, see
+ +sbt.
+
+sub true|false
-
Enable or disable
- scheduler
- utilization balancing of load. By default scheduler
- utilization balancing is disabled and instead scheduler
- compaction of load is enabled which will strive for a load
- distribution which causes as many scheduler threads as possible
- to be fully loaded (i.e., not run out of work). When scheduler
- utilization balancing is enabled the system will instead try to
- balance scheduler utilization between schedulers. That is,
- strive for equal scheduler utilization on all schedulers.
- +sub true is only supported on
- systems where the runtime system detects and uses a monotonically
- increasing high resolution clock. On other systems, the runtime
- system will fail to start.
- +sub true implies
- +scl false. The difference
- between +sub true and +scl false is that
- +scl false will not try to balance the scheduler
- utilization.
-
+
Enables or disables
+
+ scheduler utilization balancing of load. By default
+ scheduler utilization balancing is disabled and instead scheduler
+ compaction of load is enabled, which strives for a load
+ distribution that causes as many scheduler threads as possible
+ to be fully loaded (that is, not run out of work). When scheduler
+ utilization balancing is enabled, the system instead tries to
+ balance scheduler utilization between schedulers. That is,
+ strive for equal scheduler utilization on all schedulers.
+
+sub true is only supported on systems where the runtime
+ system detects and uses a monotonically increasing high-resolution
+ clock. On other systems, the runtime system fails to start.
+
+sub true implies
+ +scl false. The difference between
+ +sub true and +scl false is that +scl false
+ does not try to balance the scheduler utilization.
- Set scheduler wake cleanup threshold. Default is medium.
- This flag controls how eager schedulers should be requesting
- wake up due to certain cleanup operations. When a lazy setting
- is used, more outstanding cleanup operations can be left undone
- while a scheduler is idling. When an eager setting is used,
- schedulers will more frequently be woken, potentially increasing
- CPU-utilization.
-
-
NOTE: This flag may be removed or changed at any time without prior notice.
-
-
- +sws default|legacy
-
-
- Set scheduler wakeup strategy. Default strategy changed in erts-5.10/OTP-R16A. This strategy was previously known as proposal in OTP-R15. The legacy strategy was used as default from R13 up to and including R15.
-
-
NOTE: This flag may be removed or changed at any time without prior notice.
-
-
- +swt very_low|low|medium|high|very_high
-
-
Set scheduler wakeup threshold. Default is medium.
- The threshold determines when to wake up sleeping schedulers
- when more work than can be handled by currently awake schedulers
- exist. A low threshold will cause earlier wakeups, and a high
- threshold will cause later wakeups. Early wakeups will
- distribute work over multiple schedulers faster, but work will
- more easily bounce between schedulers.
-
-
NOTE: This flag may be removed or changed at any time
- without prior notice.
-
Set default scheduler hint for port parallelism. If set to
- true, the VM will schedule port tasks when doing so will
- improve parallelism in the system. If set to false, the VM
- will try to perform port tasks immediately, improving latency at the
- expense of parallelism. If this flag has not been passed, the
- default scheduler hint for port parallelism is currently
- false. The default used can be inspected in runtime by
- calling erlang:system_info(port_parallelism).
- The default can be overriden on port creation by passing the
- parallelism
- option to open_port/2
.
-
-
-
-
Suggested stack size, in kilowords, for scheduler threads.
- Valid range is 4-8192 kilowords. The default stack size
- is OS dependent.
-
+
Sets scheduler wake cleanup threshold. Defaults to medium.
+ Controls how eager schedulers are to be requesting
+ wakeup because of certain cleanup operations. When a lazy setting
+ is used, more outstanding cleanup operations can be left undone
+ while a scheduler is idling. When an eager setting is used,
+ schedulers are more frequently woken, potentially increasing
+ CPU-utilization.
+
+
This flag can be removed or changed at any time without prior
+ notice.
+
+
+ +sws default|legacy
+
+
Sets scheduler wakeup strategy. Default strategy changed in
+ ERTS 5.10 (Erlang/OTP R16A). This strategy was known as
+ proposal in Erlang/OTP R15. The legacy strategy
+ was used as default from R13 up to and including R15.
+
+
This flag can be removed or changed at any time without prior
+ notice.
Sets scheduler wakeup threshold. Defaults to medium.
+ The threshold determines when to wake up sleeping schedulers
+ when more work than can be handled by currently awake schedulers
+ exists. A low threshold causes earlier wakeups, and a high
+ threshold causes later wakeups. Early wakeups distribute work
+ over multiple schedulers faster, but work does more easily bounce
+ between schedulers.
+
+
This flag can be removed or changed at any time without prior
+ notice.
+
+
-
Set the maximum number of atoms the VM can handle. Default is 1048576.
+
Sets the maximum number of atoms the virtual machine can handle.
+ Defaults to 1,048,576.
-
Enables modified timing and sets the modified timing level.
- Currently valid range is 0-9. The timing of the runtime system
- will change. A high level usually means a greater change than
- a low level. Changing the timing can be very useful for finding
- timing related bugs.
-
Currently, modified timing affects the following:
+
Enables modified timing and sets the modified timing level. Valid
+ range is 0-9. The timing of the runtime system is changed. A high
+ level usually means a greater change than a low level. Changing the
+ timing can be very useful for finding timing-related bugs.
+
Modified timing affects the following:
Process spawning
-
-
A process calling , ,
- , or will be scheduled
- out immediately after completing the call. When higher modified
- timing levels are used, the caller will also sleep for a while
- after being scheduled out.
+ A process calling ,
+ , ,
+ or is scheduled out immediately
+ after completing the call. When higher modified timing levels are
+ used, the caller also sleeps for a while after it is scheduled out.
Context reductions
- The amount of reductions a process is a allowed to
- use before being scheduled out is increased or reduced.
+ The number of reductions a process is allowed to use before it
+ is scheduled out is increased or reduced.
+ Input reductions
- The amount of reductions performed before checking I/O
- is increased or reduced.
+ The number of reductions performed before checking I/O is
+ increased or reduced.
+
-
NOTE: Performance will suffer when modified timing
- is enabled. This flag is only intended for testing and
- debugging. Also note that and
- trace messages will be lost when tracing on the spawn BIFs. This
- flag may be removed or changed at any time without prior notice.
-
-
-
-
Makes the emulator print out its version number.
+
+
Performance suffers when modified timing is enabled. This flag is
+ only intended for testing and debugging.
+
and
+ trace messages are lost when tracing on the spawn BIFs.
+
This flag can be removed or changed at any time without prior
+ notice.
+
Verbose.
+
+
+
Makes the emulator print its version number.
+
-
Sets the mapping of warning messages for .
- Messages sent to the error logger using one of the warning
- routines can be mapped either to errors (),
- warnings (), or info reports
- (). The default is warnings.
+
Sets the mapping of warning messages for
+ . Messages sent to the error logger
+ using one of the warning routines can be mapped to errors
+ (), warnings (), or
+ information reports (). Defaults to warnings.
The current mapping can be retrieved using
- . See
- error_logger(3)
- for further information.
+ . For more information,
+ see
+ error_logger:warning_map/0 in Kernel.
-
Miscellaneous flags.
+
Miscellaneous flags:
+zdbbl size
-
Set the distribution buffer busy limit
- (dist_buf_busy_limit)
- in kilobytes. Valid range is 1-2097151. Default is 1024.
-
A larger buffer limit will allow processes to buffer
- more outgoing messages over the distribution. When the
- buffer limit has been reached, sending processes will be
- suspended until the buffer size has shrunk. The buffer
- limit is per distribution channel. A higher limit will
- give lower latency and higher throughput at the expense
- of higher memory usage.
+
Sets the distribution buffer busy limit
+ (
+ dist_buf_busy_limit)
+ in kilobytes. Valid range is 1-2097151. Defaults to 1024.
+
A larger buffer limit allows processes to buffer
+ more outgoing messages over the distribution. When the
+ buffer limit has been reached, sending processes will be
+ suspended until the buffer size has shrunk. The buffer
+ limit is per distribution channel. A higher limit
+ gives lower latency and higher throughput at the expense
+ of higher memory use.
+zdntgc time
-
Set the delayed node table garbage collection time
- (delayed_node_table_gc)
- in seconds. Valid values are either infinity or
- an integer in the range [0-100000000]. Default is 60.
-
Node table entries that are not referred will linger
- in the table for at least the amount of time that this
- parameter determines. The lingering prevents repeated
- deletions and insertions in the tables from occurring.
-
+
Sets the delayed node table garbage collection time
+ (
+ delayed_node_table_gc)
+ in seconds. Valid values are either infinity or
+ an integer in the range 0-100000000. Defaults to 60.
+
Node table entries that are not referred linger
+ in the table for at least the amount of time that this
+ parameter determines. The lingering prevents repeated
+ deletions and insertions in the tables from occurring.
If the emulator needs to write a crash dump, the value of this
- variable will be the file name of the crash dump file.
- If the variable is not set, the name of the crash dump file will
- be in the current directory.
+ variable is the filename of the crash dump file.
+ If the variable is not set, the name of the crash dump file is
+ in the current directory.
-
Unix systems: If the emulator needs to write a crash dump,
- it will use the value of this variable to set the nice value
- for the process, thus lowering its priority. The allowable range is
- 1 through 39 (higher values will be replaced with 39). The highest
- value, 39, will give the process the lowest priority.
+
Unix systems: If the emulator needs to write a crash dump,
+ it uses the value of this variable to set the nice value
+ for the process, thus lowering its priority. Valid range is
+ 1-39 (higher values are replaced with 39). The highest
+ value, 39, gives the process the lowest priority.
-
Unix systems: This variable gives the number of seconds that
- the emulator will be allowed to spend writing a crash dump. When
- the given number of seconds have elapsed, the emulator will be
- terminated by a SIGALRM signal.
-
-
If the environment variable is not set or it is set to zero seconds, ,
- the runtime system will not even attempt to write the crash dump file. It will just terminate.
-
-
If the environment variable is set to negative valie, e.g. ,
- the runtime system will wait indefinitely for the crash dump file to be written.
-
-
This environment variable is used in conjuction with
- heart if heart is running:
-
-
-
-
- Suppresses the writing a crash dump file entirely,
- thus rebooting the runtime system immediately.
- This is the same as not setting the environment variable.
-
-
-
-
Setting the environment variable to a negative value will cause the
- termination of the runtime system to wait until the crash dump file
- has been completly written.
-
-
-
-
- Will wait for S seconds to complete the crash dump file and
- then terminate the runtime system.
-
-
-
+
Unix systems: This variable gives the number of seconds
+ that the emulator is allowed to spend writing a crash dump. When the
+ given number of seconds have elapsed, the emulator is terminated by a
+ SIGALRM signal.
+
If the variable is not set or set to 0 seconds
+ (), the runtime system does
+ not even attempt to write the crash dump file. It only terminates.
+
If the variable is set to negative value, such as
+ , the runtime system
+ waits indefinitely for the crash dump file to be written.
+
This variable is used with
+ kernel:heart if heart is running:
+
+
+ Suppresses the writing a crash dump file entirely, thus
+ rebooting the runtime system immediately. This is the same as not
+ setting the environment variable.
+
+
+ Setting the environment variable to a negative value causes the
+ termination of the runtime system to wait until the crash dump file
+ has been completly written.
+
+
+ Waits for S seconds to complete the crash dump file and
+ then terminates the runtime system.
+
+
-
The content of this environment variable will be added to the
- beginning of the command line for .
-
The flag is treated specially. Its scope ends
- at the end of the environment variable content. Arguments
- following an flag are moved on the command line into
- the section, i.e. the end of the command line
- following after an flag.
-
- and
-
-
The content of these environment variables will be added to the
- end of the command line for .
-
The flag is treated specially. Its scope ends
- at the end of the environment variable content. Arguments
- following an flag are moved on the command line into
- the section, i.e. the end of the command line
- following after an flag.
+
The content of this variable is added to the beginning of the
+ command line for .
+
Flag is treated in a special way. Its
+ scope ends at the end of the environment variable content. Arguments
+ following an flag are moved on the command
+ line into section , that is, the end of the
+ command line following an flag.
+
+ and
+
+
+
The content of these variables are added to the end of the command
+ line for .
+
Flag is treated in a special way. Its
+ scope ends at the end of the environment variable content. Arguments
+ following an flag are moved on the command
+ line into section , that is, the end of the
+ command line following an flag.
-
This environment variable contains a list of additional library
- directories that the code server will search for applications and
- add to the code path.
- See code(3).
+
Contains a list of additional library directories that the code
+ server searches for applications and adds to the code path; see
+ kernel:code(3).
-
This environment variable may be set to a comma-separated
- list of IP addresses, in which case the
- epmd daemon
- will listen only on the specified address(es) and on the
- loopback address (which is implicitly added to the list if it
- has not been specified).
+
Can be set to a comma-separated list of IP addresses, in which case
+ the epmd daemon listens only
+ on the specified address(es) and on the loopback address (which is
+ implicitly added to the list if it has not been specified).
-
This environment variable can contain the port number to use when
- communicating with epmd. The default
- port will work fine in most cases. A different port can be specified
+
Can contain the port number to use when communicating with
+ epmd. The default port works
+ fine in most cases. A different port can be specified
to allow nodes of independent clusters to co-exist on the same host.
- All nodes in a cluster must use the same epmd port number.
+ All nodes in a cluster must use the same epmd port number.
@@ -1567,59 +1548,64 @@
Configuration
-
The standard Erlang/OTP system can be re-configured to change the default
- behavior on start-up.
+
The standard Erlang/OTP system can be reconfigured to change the default
+ behavior on startup.
- The .erlang Start-up File
-
-
When Erlang/OTP is started, the system searches for a file named .erlang
- in the directory where Erlang/OTP is started. If not found, the user's home
- directory is searched for an .erlang file.
-
If an .erlang file is found, it is assumed to contain valid Erlang expressions.
- These expressions are evaluated as if they were input to the shell.
-
A typical .erlang file contains a set of search paths, for example:
-
-
- user_default and shell_default
-
-
Functions in the shell which are not prefixed by a module name are assumed
- to be functional objects (Funs), built-in functions (BIFs), or belong to the
- module user_default or shell_default.
-
To include private shell commands, define them in a module user_default and
- add the following argument as the first line in the .erlang file.
+ The .erlang startup file
+
+
When Erlang/OTP is started, the system searches for a file named
+ .erlang in the directory where Erlang/OTP is started. If not
+ found, the user's home directory is searched for an .erlang
+ file.
+
If an .erlang file is found, it is assumed to contain valid
+ Erlang expressions. These expressions are evaluated as if they were
+ input to the shell.
+
A typical .erlang file contains a set of search paths, for
+ example:
-
- erl
-
-
If the contents of .erlang are changed and a private version of
- user_default is defined, it is possible to customize the Erlang/OTP environment.
- More powerful changes can be made by supplying command line arguments in the
- start-up script erl. Refer to erl(1) and init(3)
- for further information.
-
+io:format("executing user profile in HOME/.erlang\n",[]).
+code:add_path("/home/calvin/test/ebin").
+code:add_path("/home/hobbes/bigappl-1.2/ebin").
+io:format(".erlang rc finished\n",[]). ]]>
+
+ user_default and shell_default
+
+
Functions in the shell that are not prefixed by a module name are
+ assumed to be functional objects (funs), built-in functions (BIFs),
+ or belong to the module user_default or
+ shell_default.
+
To include private shell commands, define them in a module
+ user_default and add the following argument as the first line
+ in the .erlang file:
+
+
+ erl
+
+
If the contents of .erlang are changed and a private version
+ of user_default is defined, the Erlang/OTP environment can be
+ customized. More powerful changes can be made by supplying
+ command-line arguments in the startup script erl. For more
+ information, see init(3).