texinfo: Add nodes to subsections for cross-referencing

This commit is contained in:
Tomek Kurcz 2017-08-30 11:24:30 +02:00
parent 0868e8497d
commit ada9fcaf88
9 changed files with 21 additions and 5 deletions

View file

@ -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

View file

@ -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

View file

@ -1,6 +1,7 @@
@node Conses
@section Conses
@node Conses - C Reference
@subsection C Reference
@subsubsection ANSI Dictionary

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,6 +1,7 @@
@node Sequences
@section Sequences
@node Sequences - C Reference
@subsection C Reference
@subsubsection Sequences C dictionary
Common Lisp and C equivalence

View file

@ -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