commit e932965a3e5800ef5976450e1eb62d79d716e28a
parent 867f24ca42703d1a23ac1006f7b4904c7aacfd93
Author: Wolfgang Corcoran-Mathe <wcm@sigwinch.xyz>
Date: Tue, 30 Jan 2024 02:25:06 -0500
More @deffns.
Diffstat:
1 file changed, 174 insertions(+), 115 deletions(-)
diff --git a/doc/r7rs-small/r7rs-small.texinfo b/doc/r7rs-small/r7rs-small.texinfo
@@ -1946,7 +1946,7 @@ expression)) might not. Thus iterative lazy algorithms that might result in a lo
chains of delay and force can be rewritten using delay-force to prevent consuming
unbounded space during evaluation.
-lazy library procedure: (force promise)
+@deffn {lazy library procedure} force promise
The force procedure forces the value of a
@@ -2049,6 +2049,7 @@ are supported in some implementations:
(list (delay (* 3 7)) 13)) @result{} a promise
@end example
+@end deffn
@deffn {lazy library procedure} promise? obj
@@ -3898,8 +3899,7 @@ z is both exact and an integer; otherwise returns #f.
@end example
-inexact library procedure: (finite? z)
-
+@deffn {inexact library procedure} finite? z
The finite? procedure returns #t on all real numbers except +inf.0, -inf.0, and +nan.0, and
on complex numbers if their real and imaginary parts are both finite. Otherwise it returns
@@ -3912,9 +3912,9 @@ on complex numbers if their real and imaginary parts are both finite. Otherwise
(finite? 3.0+inf.0i) @result{} #f
@end example
+@end deffn
-inexact library procedure: (infinite? z)
-
+@deffn {inexact library procedure} infinite? z
The infinite? procedure returns #t on the real numbers +inf.0 and -inf.0, and on complex
numbers if their real or imaginary parts or both are infinite. Otherwise it returns #f.
@@ -3927,9 +3927,9 @@ numbers if their real or imaginary parts or both are infinite. Otherwise it retu
(infinite? 3.0+inf.0i) @result{} #t
@end example
+@end deffn
-inexact library procedure: (nan? z)
-
+@deffn {inexact library procedure} nan? z
The nan? procedure returns #t on +nan.0, and on complex numbers if their real or
imaginary parts or both are +nan.0. Otherwise it returns #f.
@@ -3942,6 +3942,7 @@ imaginary parts or both are +nan.0. Otherwise it returns #f.
(nan? 1+2i) @result{} #f
@end example
+@end deffn
@deffn procedure = z1 z2 z3 @dots{}
@deffnx procedure < x1 x2 x3 @dots{}
@@ -5361,23 +5362,24 @@ monotonically non-decreasing, or monotonically non-increasing.
These predicates are required to be transitive.
@end deffn
-char library procedure: (char-ci=? char1 char2 char3 @dots{})
-char library procedure: (char-ci<? char1 char2 char3 @dots{})
-char library procedure: (char-ci>? char1 char2 char3 @dots{})
-char library procedure: (char-ci<=? char1 char2 char3 @dots{})
-char library procedure: (char-ci>=? char1 char2 char3 @dots{})
+@deffn {char library procedure} char-ci=? char1 char2 char3 @dots{}
+@deffnx {char library procedure} char-ci<? char1 char2 char3 @dots{}
+@deffnx {char library procedure} char-ci>? char1 char2 char3 @dots{}
+@deffnx {char library procedure} char-ci<=? char1 char2 char3 @dots{}
+@deffnx {char library procedure} char-ci>=? char1 char2 char3 @dots{}
These procedures are similar to char=? et cetera, but they treat upper case and lower
case letters as the same. For example, (char-ci=? #\A #\a) returns #t.
Specifically, these procedures behave as if char-foldcase were applied to their
arguments before they were compared.
+@end deffn
-char library procedure: (char-alphabetic? char)
-char library procedure: (char-numeric? char)
-char library procedure: (char-whitespace? char)
-char library procedure: (char-upper-case? letter)
-char library procedure: (char-lower-case? letter)
+@deffn {char library procedure} char-alphabetic? char
+@deffnx {char library procedure} char-numeric? char
+@deffnx {char library procedure} char-whitespace? char
+@deffnx {char library procedure} char-upper-case? letter
+@deffnx {char library procedure} char-lower-case? letter
These procedures return #t if their arguments are alphabetic, numeric, whitespace,
upper case, or lower case characters, respectively, otherwise they return #f. Specifically,
@@ -5385,8 +5387,9 @@ they must return #t when applied to characters with the Unicode properties Alpha
Numeric_Type=Decimal, White_Space, Uppercase, and Lowercase respectively, and #f
when applied to any other Unicode characters. Note that many Unicode characters are
alphabetic but neither upper nor lower case.
+@end deffn
-char library procedure: (digit-value char)
+@deffn {char library procedure} digit-value char
This procedure returns the numeric value (0 to 9) of its argument if it is a numeric digit
(that is, if char-numeric? returns #t), or #f on any other character.
@@ -5399,6 +5402,7 @@ This procedure returns the numeric value (0 to 9) of its argument if it is a num
(digit-value #\x0EA6) @result{} #f
@end example
+@end deffn
@deffn procedure char->integer char
@deffnx procedure integer->char n
@@ -5413,9 +5417,9 @@ Given an exact integer that is the value returned by a character when char->inte
applied to it, integer->char returns that character.
@end deffn
-char library procedure: (char-upcase char)
-char library procedure: (char-downcase char)
-char library procedure: (char-foldcase char)
+@deffn {char library procedure} char-upcase char
+@deffnx {char library procedure} char-downcase char
+@deffnx {char library procedure} char-foldcase char
The char-upcase procedure, given an argument that is the lowercase part of a Unicode
casing pair, returns the uppercase member of the pair, provided that both characters
@@ -5434,6 +5438,7 @@ character that results from folding is not supported by the implementation, the
argument is returned. See UAX #44 [11] (part of the Unicode Standard) for details.
Note that many Unicode lowercase characters do not have uppercase equivalents.
+@end deffn
@node Strings
@section Strings
@@ -5583,12 +5588,12 @@ Returns #t if all the strings are the same length and contain exactly the same c
in the same positions, otherwise returns #f.
@end deffn
-char library procedure: (string-ci=? string1 string2 string3 @dots{})
-
+@deffn {char library procedure} string-ci=? string1 string2 string3 @dots{}
Returns #t if, after case-folding, all the strings are the same length and contain the same
characters in the same positions, otherwise returns #f. Specifically, these procedures
behave as if string-foldcase were applied to their arguments before comparing them.
+@end deffn
@deffn procedure string<? string1 string2 string3@dots{}
@deffnx {char library procedure} string-ci<? string1 string2 string3@dots{}
@@ -5622,9 +5627,9 @@ The ``-ci'' procedures behave as if they applied string-foldcase to their argume
invoking the corresponding procedures without ``-ci''.
@end deffn
-char library procedure: (string-upcase string)
-char library procedure: (string-downcase string)
-char library procedure: (string-foldcase string)
+@deffn {char library procedure} string-upcase string
+@deffnx {char library procedure} string-downcase string
+@deffnx {char library procedure} string-foldcase string
These procedures apply the Unicode full string uppercasing, lowercasing, and
case-folding algorithms to their arguments and return the result. In certain cases, the
@@ -5635,6 +5640,7 @@ treatment of the Greek letter Σ, whose normal lower-case form is σ but which b
at the end of a word. See UAX #44 [11] (part of the Unicode Standard) for details.
However, implementations of string-downcase are not required to provide this
behavior, and may choose to change Σ to σ in all cases.
+@end deffn
@deffn procedure substring string start end
@@ -6923,8 +6929,7 @@ output port on a file, respectively. Otherwise, it returns #f.
@node Environments and evaluation
@section Environments and evaluation
-eval library procedure: (environment list1 @dots{})
-
+@deffn {eval library procedure} environment list1 @dots{}
This procedure returns a specifier for the environment that results by starting with an
empty environment and then importing each
@@ -6932,8 +6937,9 @@ empty environment and then importing each
list, considered as an import set, into it. (See section 5.6 for a description of import sets.)
The bindings of the environment represented by the specifier are immutable, as is the
environment itself.
+@end deffn
-r5rs library procedure: (scheme-report-environment version)
+@deffn {r5rs library procedure} scheme-report-environment version
If
@@ -6954,8 +6960,9 @@ signaled.
The effect of defining or assigning (through the use of eval) an identifier bound in a
scheme-report-environment (for example car) is unspecified. Thus both the
environment and the bindings it contains may be immutable.
+@end deffn
-r5rs library procedure: (null-environment version)
+@deffn {r5rs library procedure} null-environment version
If
@@ -6976,15 +6983,17 @@ signaled.
The effect of defining or assigning (through the use of eval) an identifier bound in a
scheme-report-environment (for example car) is unspecified. Thus both the
environment and the bindings it contains may be immutable.
+@end deffn
-repl library procedure: (interaction-environment)
+@deffn {repl library procedure} interaction-environment
This procedure returns a specifier for a mutable environment that contains an
implementation-defined set of bindings, typically a superset of those exported by
(scheme base). The intent is that this procedure will return the environment in which the
implementation would evaluate expressions entered by the user into a REPL.
+@end deffn
-eval library procedure: (eval expr-or-def environment-specifier)
+@deffn {eval library procedure} eval expr-or-def environment-specifier
If
@@ -7007,6 +7016,7 @@ eval to allow other objects.
@result{} error is signaled
@end example
+@end deffn
@node Input and output
@section Input and output
@@ -7064,9 +7074,10 @@ to escape from the current continuation but later to resume it. If implementatio
were permitted to close the port on any escape from the current continuation, then
it would be impossible to write portable code using both
call-with-current-continuation and call-with-port.
+@end deffn
-file library procedure: (call-with-input-file string proc)
-file library procedure: (call-with-output-file string proc)
+@deffn {file library procedure} call-with-input-file string proc
+@deffnx {file library procedure} call-with-output-file string proc
It is an error if
@@ -7076,37 +7087,41 @@ These procedures obtain a textual port obtained by opening the named file for in
output as if by open-input-file or open-output-file. The port and
proc are then passed to a procedure equivalent to call-with-port.
+@end deffn
-@deffn procedure input-port? obj
-@deffn procedure output-port? obj
-@deffn procedure textual-port? obj
-@deffn procedure binary-port? obj
-@deffn procedure port? obj
+@deffn procedure input-port? obj
+@deffnx procedure output-port? obj
+@deffnx procedure textual-port? obj
+@deffnx procedure binary-port? obj
+@deffnx procedure port? obj
These procedures return #t if
obj is an input port, output port, textual port, binary port, or any kind of port,
respectively. Otherwise they return #f.
+@end deffn
-@deffn procedure input-port-open? port
-@deffn procedure output-port-open? port
+@deffn procedure input-port-open? port
+@deffnx procedure output-port-open? port
Returns #t if
port is still open and capable of performing input or output, respectively, and #f
otherwise.
+@end deffn
-@deffn procedure current-input-port
-@deffn procedure current-output-port
-@deffn procedure current-error-port
+@deffn procedure current-input-port
+@deffnx procedure current-output-port
+@deffnx procedure current-error-port
Returns the current default input port, output port, or error port (an output port),
respectively. These procedures are parameter objects, which can be overridden with
parameterize (see section 4.2.6). The initial bindings for these are
implementation-defined textual ports.
+@end deffn
-file library procedure: (with-input-from-file string thunk)
-file library procedure: (with-output-to-file string thunk)
+@deffn {file library procedure} with-input-from-file string thunk
+@deffnx {file library procedure} with-output-to-file string thunk
The file is opened for input or output as if by open-input-file or open-output-file, and the
new port is made to be the value returned by current-input-port or current-output-port
@@ -7123,18 +7138,20 @@ thunk does not accept zero arguments. Both procedures return the values yielded
thunk. If an escape procedure is used to escape from the continuation of these
procedures, they behave exactly as if the current input or output port had been bound
dynamically with parameterize.
+@end deffn
-file library procedure: (open-input-file string)
-file library procedure: (open-binary-input-file string)
+@deffn {file library procedure} open-input-file string
+@deffnx {file library procedure} open-binary-input-file string
Takes a
string for an existing file and returns a textual input port or binary input port that is
capable of delivering data from the file. If the file does not exist or cannot be opened, an
error that satisfies file-error? is signaled.
+@end deffn
-file library procedure: (open-output-file string)
-file library procedure: (open-binary-output-file string)
+@deffn {file library procedure} open-output-file string
+@deffnx {file library procedure} open-binary-output-file string
Takes a
@@ -7142,10 +7159,11 @@ string naming an output file to be created and returns a textual output port or
output port that is capable of writing data to a new file by that name. If a file with the
given name already exists, the effect is unspecified. If the file cannot be opened, an error
that satisfies file-error? is signaled.
+@end deffn
-@deffn procedure close-port port
-@deffn procedure close-input-port port
-@deffn procedure close-output-port port
+@deffn procedure close-port port
+@deffnx procedure close-input-port port
+@deffnx procedure close-output-port port
Closes the resource associated with
@@ -7158,16 +7176,19 @@ such as sockets; the close-input-port and close-output-port procedures can then
to close the input and output sides of the port independently.
These routines have no effect if the port has already been closed.
+@end deffn
@deffn procedure open-input-string string
Takes a string and returns a textual input port that delivers characters from the string. If
the string is modified, the effect is unspecified.
+@end deffn
@deffn procedure open-output-string
Returns a textual output port that will accumulate characters for retrieval by
get-output-string.
+@end deffn
@deffn procedure get-output-string port
@@ -7192,16 +7213,19 @@ the order they were output. If the result string is modified, the effect is unsp
@result{} "piece by piece by piece.\n"
@end example
+@end deffn
@deffn procedure open-input-bytevector bytevector
Takes a bytevector and returns a binary input port that delivers bytes from the
bytevector.
+@end deffn
@deffn procedure open-output-bytevector
Returns a binary output port that will accumulate bytes for retrieval by
get-output-bytevector.
+@end deffn
@deffn procedure get-output-bytevector port
@@ -7211,6 +7235,7 @@ port was not created with open-output-bytevector.
Returns a bytevector consisting of the bytes that have been output to the port so far in
the order they were output.
+@end deffn
@node Input
@subsection Input
@@ -7220,8 +7245,8 @@ If
port is omitted from any input procedure, it defaults to the value returned by
(current-input-port). It is an error to attempt an input operation on a closed port.
-read library procedure: (read)
-read library procedure: (read port)
+@deffn {read library procedure} read
+@deffnx {read library procedure} read port
The read procedure converts external representations of Scheme objects into the
objects themselves. That is, it is a parser for the non-terminal <datum> (see sections
@@ -7241,9 +7266,10 @@ further attempts to read will also return an end-of-file object. If an end of fi
encountered after the beginning of an object's external representation, but the external
representation is incomplete and therefore not parsable, an error that satisfies
read-error? is signaled.
+@end deffn
-@deffn procedure read-char
-@deffn procedure read-char port
+@deffn procedure read-char
+@deffnx procedure read-char port
Returns the next character available from the textual input
@@ -7251,9 +7277,10 @@ port, updating the
port to point to the following character. If no more characters are available, an end-of-file
object is returned.
+@end deffn
-@deffn procedure peek-char
-@deffn procedure peek-char port
+@deffn procedure peek-char
+@deffnx procedure peek-char port
Returns the next character available from the textual input
@@ -7270,9 +7297,10 @@ port. The only difference is that the very next call to read-char or peek-char o
port will return the value returned by the preceding call to peek-char. In particular, a
call to peek-char on an interactive port will hang waiting for input whenever a call to
read-char would have hung.
+@end deffn
-@deffn procedure read-line
-@deffn procedure read-line port
+@deffn procedure read-line
+@deffnx procedure read-line port
Returns the next line of text available from the textual input
@@ -7287,6 +7315,7 @@ object is returned. For the purpose of this procedure, an end of line consists o
linefeed character, a carriage return character, or a sequence of a carriage return
character followed by a linefeed character. Implementations may also recognize other
end of line characters or sequences.
+@end deffn
@deffn procedure eof-object? obj
@@ -7295,13 +7324,15 @@ Returns #t if
obj is an end-of-file object, otherwise returns #f. The precise set of end-of-file objects
will vary among implementations, but in any case no end-of-file object will ever be an
object that can be read in using read.
+@end deffn
@deffn procedure eof-object
Returns an end-of-file object, not necessarily unique.
+@end deffn
-@deffn procedure char-ready?
-@deffn procedure char-ready? port
+@deffn procedure char-ready?
+@deffnx procedure char-ready? port
Returns #t if a character is ready on the textual input
@@ -7318,9 +7349,10 @@ Any input editors associated with such ports must ensure that characters whose
existence has been asserted by char-ready? cannot be removed from the input. If
char-ready? were to return #f at end of file, a port at end of file would be
indistinguishable from an interactive port that has no ready characters.
+@end deffn
-@deffn procedure read-string k
-@deffn procedure read-string k port
+@deffn procedure read-string k
+@deffnx procedure read-string k port
Reads the next
@@ -7328,9 +7360,10 @@ k characters, or as many as are available before the end of file, from the textu
port into a newly allocated string in left-to-right order and returns the string. If no
characters are available before the end of file, an end-of-file object is returned.
+@end deffn
-@deffn procedure read-u8
-@deffn procedure read-u8 port
+@deffn procedure read-u8
+@deffnx procedure read-u8 port
Returns the next byte available from the binary input
@@ -7338,9 +7371,10 @@ port, updating the
port to point to the following byte. If no more bytes are available, an end-of-file object is
returned.
+@end deffn
-@deffn procedure peek-u8
-@deffn procedure peek-u8 port
+@deffn procedure peek-u8
+@deffnx procedure peek-u8 port
Returns the next byte available from the binary input
@@ -7348,9 +7382,10 @@ port, but without updating the
port to point to the following byte. If no more bytes are available, an end-of-file object is
returned.
+@end deffn
-@deffn procedure u8-ready?
-@deffn procedure u8-ready? port
+@deffn procedure u8-ready?
+@deffnx procedure u8-ready? port
Returns #t if a byte is ready on the binary input
@@ -7360,9 +7395,10 @@ the given
port is guaranteed not to hang. If the
port is at end of file then u8-ready? returns #t.
+@end deffn
-@deffn procedure read-bytevector k
-@deffn procedure read-bytevector k port
+@deffn procedure read-bytevector k
+@deffnx procedure read-bytevector k port
Reads the next
@@ -7370,11 +7406,12 @@ k bytes, or as many as are available before the end of file, from the binary inp
port into a newly allocated bytevector in left-to-right order and returns the bytevector. If
no bytes are available before the end of file, an end-of-file object is returned.
+@end deffn
-@deffn procedure read-bytevector! bytevector
-@deffn procedure read-bytevector! bytevector port
-@deffn procedure read-bytevector! bytevector port start
-@deffn procedure read-bytevector! bytevector port start end
+@deffn procedure read-bytevector! bytevector
+@deffnx procedure read-bytevector! bytevector port
+@deffnx procedure read-bytevector! bytevector port start
+@deffnx procedure read-bytevector! bytevector port start end
Reads the next end − start bytes, or as many as are available before the end of file, from
the binary input
@@ -7391,6 +7428,7 @@ bytevector has been reached. If
start is not supplied, reads beginning at position 0. Returns the number of bytes read. If
no bytes are available, an end-of-file object is returned.
+@end deffn
@node Output
@subsection Output
@@ -7400,8 +7438,8 @@ If
port is omitted from any output procedure, it defaults to the value returned by
(current-output-port). It is an error to attempt an output operation on a closed port.
-write library procedure: (write obj)
-write library procedure: (write obj port)
+@deffn {write library procedure} write obj
+@deffnx {write library procedure} write obj port
Writes a representation of
@@ -7423,24 +7461,27 @@ Implementations may support extended syntax to represent record types or other t
that do not have datum representations.
The write procedure returns an unspecified value.
+@end deffn
-write library procedure: (write-shared obj)
-write library procedure: (write-shared obj port)
+@deffn {write library procedure} write-shared obj
+@deffnx {write library procedure} write-shared obj port
The write-shared procedure is the same as write, except that shared structure must be
represented using datum labels for all pairs and vectors that appear more than once in
the output.
+@end deffn
-write library procedure: (write-simple obj)
-write library procedure: (write-simple obj port)
+@deffn {write library procedure} write-simple obj
+@deffnx {write library procedure} write-simple obj port
The write-simple procedure is the same as write, except that shared structure is never
represented using datum labels. This can cause write-simple not to terminate if
obj contains circular structure.
+@end deffn
-write library procedure: (display obj)
-write library procedure: (display obj port)
+@deffn {write library procedure} display obj
+@deffnx {write library procedure} display obj port
Writes a representation of
@@ -7461,28 +7502,31 @@ The display procedure returns an unspecified value.
Rationale: The write procedure is intended for producing machine-readable output
and display for producing human-readable output.
+@end deffn
-@deffn procedure newline
-@deffn procedure newline port
+@deffn procedure newline
+@deffnx procedure newline port
Writes an end of line to textual output
port. Exactly how this is done differs from one operating system to another. Returns an
unspecified value.
+@end deffn
-@deffn procedure write-char char
-@deffn procedure write-char char port
+@deffn procedure write-char char
+@deffnx procedure write-char char port
Writes the character
char (not an external representation of the character) to the given textual output
port and returns an unspecified value.
+@end deffn
-@deffn procedure write-string string
-@deffn procedure write-string string port
-@deffn procedure write-string string port start
-@deffn procedure write-string string port start end
+@deffn procedure write-string string
+@deffnx procedure write-string string port
+@deffnx procedure write-string string port start
+@deffnx procedure write-string string port start end
Writes the characters of
@@ -7493,20 +7537,22 @@ start to
end in left-to-right order to the textual output
port.
+@end deffn
-@deffn procedure write-u8 byte
-@deffn procedure write-u8 byte port
+@deffn procedure write-u8 byte
+@deffnx procedure write-u8 byte port
Writes the
byte to the given binary output
port and returns an unspecified value.
+@end deffn
-@deffn procedure write-bytevector bytevector
-@deffn procedure write-bytevector bytevector port
-@deffn procedure write-bytevector bytevector port start
-@deffn procedure write-bytevector bytevector port start end
+@deffn procedure write-bytevector bytevector
+@deffnx procedure write-bytevector bytevector port
+@deffnx procedure write-bytevector bytevector port start
+@deffnx procedure write-bytevector bytevector port start end
Writes the bytes of
@@ -7517,12 +7563,14 @@ start to
end in left-to-right order to the binary output
port.
+@end deffn
-@deffn procedure flush-output-port
-@deffn procedure flush-output-port port
+@deffn procedure flush-output-port
+@deffnx procedure flush-output-port port
Flushes any buffered output from the buffer of output-port to the underlying file or
device and returns an unspecified value.
+@end deffn
@node System interface
@section System interface
@@ -7530,8 +7578,8 @@ device and returns an unspecified value.
Questions of system interface generally fall outside of the domain of this report.
However, the following operations are important enough to deserve description here.
-load library procedure: (load filename)
-load library procedure: (load filename environment-specifier)
+@deffn {load library procedure} load filename
+@deffnx {load library procedure} load filename environment-specifier
It is an error if
@@ -7553,8 +7601,9 @@ returns an unspecified value.
Rationale: For portability, load must operate on source files. Its operation on other
kinds of files necessarily varies among implementations.
+@end deffn
-file library procedure: (file-exists? filename)
+@deffn {file library procedure} file-exists? filename
It is an error if
@@ -7563,7 +7612,7 @@ filename is not a string.
The file-exists? procedure returns #t if the named file exists at the time the procedure is
called, and #f otherwise.
-file library procedure: (delete-file filename)
+@deffn {file library procedure} delete-file filename
It is an error if
@@ -7572,15 +7621,17 @@ filename is not a string.
The delete-file procedure deletes the named file if it exists and can be deleted, and
returns an unspecified value. If the file does not exist or cannot be deleted, an error that
satisfies file-error? is signaled.
+@end deffn
-process-context library procedure: (command-line)
+@deffn {process-context library procedure} command-line
Returns the command line passed to the process as a list of strings. The first string
corresponds to the command name, and is implementation-dependent. It is an error to
mutate any of these strings.
+@end deffn
-process-context library procedure: (exit)
-process-context library procedure: (exit obj)
+@deffn {process-context library procedure} exit
+@deffnx {process-context library procedure} exit obj
Runs all outstanding dynamic-wind
@@ -7599,9 +7650,10 @@ The exit procedure must not signal an exception or return to its continuation.
Note: Because of the requirement to run handlers, this procedure is not just the
operating system's exit procedure.
+@end deffn
-process-context library procedure: (emergency-exit)
-process-context library procedure: (emergency-exit obj)
+@deffn {process-context library procedure} emergency-exit
+@deffnx {process-context library procedure} emergency-exit obj
Terminates the program without running any outstanding dynamic-wind
@@ -7610,8 +7662,9 @@ manner as exit.
Note: The emergency-exit procedure corresponds to the _exit procedure in Windows
and Posix.
+@end deffn
-process-context library procedure: (get-environment-variable name)
+@deffn {process-context library procedure} get-environment-variable name
Many operating systems provide each running process with an environment consisting of
environment variables. (This environment is not to be confused with the Scheme
@@ -7630,8 +7683,9 @@ resulting string.
@result{} "/usr/local/bin:/usr/bin:/bin"
@end example
+@end deffn
-process-context library procedure: (get-environment-variables)
+@deffn {process-context library procedure} get-environment-variables
Returns the names and values of all the environment variables as an alist, where the car
of each entry is the name of an environment variable and the cdr is its value, both as
@@ -7644,8 +7698,9 @@ or the alist itself.
@result{} (("USER" . "root") ("HOME" . "/"))
@end example
+@end deffn
-time library procedure: (current-second)
+@deffn {time library procedure} current-second
Returns an inexact number representing the current time on the International Atomic
Time (TAI) scale. The value 0.0 represents midnight on January 1, 1970 TAI (equivalent to
@@ -7655,8 +7710,9 @@ returning Coordinated Universal Time plus a suitable constant might be the best
implementation can do.
As of 2018, a TAI-UTC offset table can be found at [40].
+@end deffn
-time library procedure: (current-jiffy)
+@deffn {time library procedure} current-jiffy
Returns the number of jiffies as an exact integer that have elapsed since an arbitrary,
implementation-defined epoch. A jiffy is an implementation-defined fraction of a second
@@ -7671,8 +7727,9 @@ inappropriate for some implementations: a microsecond is too long for a very fas
machine, while a much smaller unit would force many implementations to return
integers which have to be allocated for most calls, rendering current-jiffy less
useful for accurate timing measurements.
+@end deffn
-time library procedure: (jiffies-per-second)
+@deffn {time library procedure} jiffies-per-second
Returns an exact integer representing the number of jiffies per SI second. This value is
an implementation-specified constant.
@@ -7687,6 +7744,7 @@ an implementation-specified constant.
(jiffies-per-second))))
@end example
+@end deffn
@deffn procedure features
@@ -7703,6 +7761,7 @@ modify this list. Here is an example of what features might return:
space-ship-control-system)
@end example
+@end deffn
@node Formal syntax and semantics
@chapter Formal syntax and semantics