mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-22 20:42:03 -08:00
texinfo: Add nodes to subsections for cross-referencing
This commit is contained in:
parent
0868e8497d
commit
ada9fcaf88
9 changed files with 21 additions and 5 deletions
|
|
@ -1,6 +1,7 @@
|
|||
@node Arrays
|
||||
@section Arrays
|
||||
|
||||
@node Arrays - Array limits
|
||||
@subsection Array limits
|
||||
ECL arrays can have up to 64 dimensions. Common-Lisp constants related to arrays have the following values in ECL.
|
||||
@multitable @columnfractions .5 .5
|
||||
|
|
@ -10,6 +11,7 @@ ECL arrays can have up to 64 dimensions. Common-Lisp constants related to arrays
|
|||
@item array-total-size-limit @tab array-dimension-limit
|
||||
@end multitable
|
||||
|
||||
@node Arrays - Specializations
|
||||
@subsection Specializations
|
||||
When the elements of an array are declared to have some precise type, such as a small or large integer, a character or a floating point number, ECL has means to store those elements in a more compact form, known as a @emph{specialized array}. The list of types for which ECL specializes arrays is platform dependent, but is summarized in the following table, together with the C type which is used internally and the expected size.
|
||||
|
||||
|
|
@ -35,6 +37,8 @@ When the elements of an array are declared to have some precise type, such as a
|
|||
|
||||
Let us remark that some of these specialized types might not exist in your platform. This is detected using conditional reading and features (@xref{Numbers}).
|
||||
|
||||
|
||||
@node Arrays - C Reference
|
||||
@subsection C Reference
|
||||
@subsubsection Types and constants
|
||||
C types, limits and enumerations
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
ECL is fully ANSI Common-Lisp compliant in all aspects of the character data type, with the following peculiarities.
|
||||
|
||||
|
||||
@node Characters - Unicode vs. POSIX locale
|
||||
@subsection Unicode vs. POSIX locale
|
||||
There are two ways of building ECL: with C or with Unicode character codes. These build modes are accessed using the @code{--disable-unicode} and @code{--enable-unicode} configuration options, the last one being the default.
|
||||
|
||||
|
|
@ -45,12 +45,13 @@ All characters have a name. For non-printing characters between 0 and 32, and fo
|
|||
Note that @code{#\Linefeed} is synonymous with @code{#\Newline} and thus is a member of @code{standard-char}.
|
||||
|
||||
|
||||
@node Characters - Newline characters
|
||||
@subsection @code{#\Newline} characters
|
||||
Internally, ECL represents the @code{#\Newline} character by a single code. However, when using external formats, ECL may parse character pairs as a single @code{#\Newline}, and viceversa, use multiple characters to represent a single @code{#\Newline}.
|
||||
@c TODO: add an @xref to Stream -> External formats once it's written
|
||||
|
||||
|
||||
|
||||
@node Characters - C Reference
|
||||
@subsection C Reference
|
||||
|
||||
@subsubsection C types
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
@node Conses
|
||||
@section Conses
|
||||
|
||||
@node Conses - C Reference
|
||||
@subsection C Reference
|
||||
|
||||
@subsubsection ANSI Dictionary
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
@node Filenames
|
||||
@section Filenames
|
||||
|
||||
@node Filenames - Syntax
|
||||
@subsection Syntax
|
||||
A pathname in the file system of Common-Lisp consists of six elements: host, device, directory, name, type and version. Pathnames are read and printed using the @code{#P} reader macro followed by the namestring. A namestring is a string which represents a pathname. The syntax of namestrings for logical pathnames is well explained in the ANSI and it can be roughly summarized as follows:
|
||||
|
||||
|
|
@ -52,6 +53,7 @@ The following table illustrates how the physical pathnames work with practical e
|
|||
@end multitable
|
||||
@end float
|
||||
|
||||
@node Filenames - Wild pathnames and matching
|
||||
@subsection Wild pathnames and matching
|
||||
ECL accepts four kind of wildcards in pathnames.
|
||||
|
||||
|
|
@ -67,6 +69,7 @@ ECL accepts four kind of wildcards in pathnames.
|
|||
|
||||
The matching rules in Common Lisp and ECL are simple but have some unintuitive consequences when compared to Unix/DOS rules. The most important one is that directories must always end with a trailing slash @code{/}, as in @code{#p"/my/home/directory/"}. Second to that, @code{NIL} values can only be matched by @code{NIL} and @code{:WILD}. Hence, "@code{*}" can only match files without file type. For some examples see @ref{Files}.
|
||||
|
||||
@node Filenames - C Reference
|
||||
@subsection C Reference
|
||||
@subsubsection Filenames C dictionary
|
||||
Common Lisp and C equivalence
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
@node Files
|
||||
@section Files
|
||||
|
||||
@node Files - Dictionary
|
||||
@subsection Dictionary
|
||||
@subsubsection @code{DIRECTORY}
|
||||
|
||||
This function does not have any additional arguments other than the ones described in ANSI. To list files and directories, it follows the rules for matching pathnames described in @ref{Filenames}. In short, you have the following practical examples:
|
||||
This function does not have any additional arguments other than the ones described in ANSI. To list files and directories, it follows the rules for matching pathnames described in @ref{Filenames - Wild pathnames and matching}. In short, you have the following practical examples:
|
||||
|
||||
@float Table, tab:examples-using-directory
|
||||
@caption{Examples of using @code{DIRECTORY}}
|
||||
|
|
@ -17,6 +18,7 @@ This function does not have any additional arguments other than the ones describ
|
|||
@end multitable
|
||||
@end float
|
||||
|
||||
@node Files - C Reference
|
||||
@subsection C Reference
|
||||
Common Lisp and C equivalence
|
||||
|
||||
|
|
|
|||
|
|
@ -78,6 +78,7 @@ CL-USER> (ext:hash-table-content *ht*)
|
|||
(#<weak-pointer 000055b121866390> . #<weak-pointer 000055b121866380>))
|
||||
@end lisp
|
||||
|
||||
@node Hash tables - C Reference
|
||||
@subsection C Reference
|
||||
@subsubsection Hash tables C dictionary
|
||||
Common Lisp and C equivalence
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
@node Numbers
|
||||
@section Numbers
|
||||
|
||||
@node Numbers - Numeric types
|
||||
@subsection Numeric types
|
||||
ECL supports all of the Common Lisp numeric tower, which is shown in @ref{tab:num-types}. The details, however, depend both on the platform on which ECL runs and on the configuration which was chosen when building ECL.
|
||||
|
||||
|
|
@ -24,13 +25,13 @@ ECL supports all of the Common Lisp numeric tower, which is shown in @ref{tab:nu
|
|||
|
||||
In general, the size of a @code{FIXNUM} is determined by the word size of a machine, which ranges from 32 to 64 bits. Integers larger than this are implemented using the @url{http://www.swox.com/gmp/, GNU Multiprecision library}. Rationals are implemented using two integers, without caring whether they are fixnum or not. Floating point numbers include at least the two IEEE types of 32 and 64 bits respectively. In machines where it is supported, it is possible to associate the lisp @code{LONG-FLOAT} with the machine type @code{long double} whose size ranges from 96 to 128 bits, and which are a bit slower.
|
||||
|
||||
|
||||
@node Numbers - Random-States
|
||||
@subsection Random-States
|
||||
ECL relies internally on a 32-bit Mersenne-Twister random number generator, using a relatively large buffer to precompute about 5000 pseud-random bytes. This implies also that random states can be printed readably and also read, using the @code{#$} macro. There is no provision to create random states from user arrays, though. Random state is printed unreadably by default.
|
||||
|
||||
The @code{#$} macro can be used to initialize the generator with a random seed (an integer), an array of random bytes (mainly used for reading back printed random-state) and another random-state (syntactic sugar for copying the random-state).
|
||||
|
||||
|
||||
@node Numbers - C Reference
|
||||
@subsection C Reference
|
||||
|
||||
@subsubsection Number C types
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
@node Sequences
|
||||
@section Sequences
|
||||
|
||||
@node Sequences - C Reference
|
||||
@subsection C Reference
|
||||
@subsubsection Sequences C dictionary
|
||||
Common Lisp and C equivalence
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
@node Strings
|
||||
@section Strings
|
||||
|
||||
@node Strings - String types & Unicode
|
||||
@subsection String types & Unicode
|
||||
The ECL implementation of strings is ANSI Common-Lisp compliant. There are basically four string types as shown in @ref{tab:cl-str-types}. As explained in @ref{Characters}, when Unicode support is disabled, @code{character} and @code{base-character} are the same type and the last two string types are equivalent to the first two.
|
||||
|
||||
|
|
@ -17,6 +18,7 @@ The ECL implementation of strings is ANSI Common-Lisp compliant. There are basic
|
|||
|
||||
It is important to remember that strings with unicode characters can only be printed readably when the external format supports those characters. If this is not the case, ECL will signal a @code{serious-condition}. This condition will abort your program if not properly handled.
|
||||
|
||||
@node Strings - C reference
|
||||
@subsection C reference
|
||||
@subsubsection Base string constructors
|
||||
Building strings of C data
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue