From ada9fcaf882e5d8f50321956d2c0d6986a0710cf Mon Sep 17 00:00:00 2001 From: Tomek Kurcz Date: Wed, 30 Aug 2017 11:24:30 +0200 Subject: [PATCH] texinfo: Add nodes to subsections for cross-referencing --- src/doc/new-doc/standards/arrays.txi | 4 ++++ src/doc/new-doc/standards/characters.txi | 5 +++-- src/doc/new-doc/standards/conses.txi | 1 + src/doc/new-doc/standards/filenames.txi | 3 +++ src/doc/new-doc/standards/files.txi | 4 +++- src/doc/new-doc/standards/hashtables.txi | 1 + src/doc/new-doc/standards/numbers.txi | 5 +++-- src/doc/new-doc/standards/sequences.txi | 1 + src/doc/new-doc/standards/strings.txi | 2 ++ 9 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/doc/new-doc/standards/arrays.txi b/src/doc/new-doc/standards/arrays.txi index a5f7a0d41..501ac24b9 100644 --- a/src/doc/new-doc/standards/arrays.txi +++ b/src/doc/new-doc/standards/arrays.txi @@ -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 diff --git a/src/doc/new-doc/standards/characters.txi b/src/doc/new-doc/standards/characters.txi index 985188890..16aaa3d7e 100644 --- a/src/doc/new-doc/standards/characters.txi +++ b/src/doc/new-doc/standards/characters.txi @@ -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 diff --git a/src/doc/new-doc/standards/conses.txi b/src/doc/new-doc/standards/conses.txi index 32fe072b2..5b7b5cfb7 100644 --- a/src/doc/new-doc/standards/conses.txi +++ b/src/doc/new-doc/standards/conses.txi @@ -1,6 +1,7 @@ @node Conses @section Conses +@node Conses - C Reference @subsection C Reference @subsubsection ANSI Dictionary diff --git a/src/doc/new-doc/standards/filenames.txi b/src/doc/new-doc/standards/filenames.txi index b3a0911d0..3379c0d21 100644 --- a/src/doc/new-doc/standards/filenames.txi +++ b/src/doc/new-doc/standards/filenames.txi @@ -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 diff --git a/src/doc/new-doc/standards/files.txi b/src/doc/new-doc/standards/files.txi index 1048fd263..23983a66a 100644 --- a/src/doc/new-doc/standards/files.txi +++ b/src/doc/new-doc/standards/files.txi @@ -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 diff --git a/src/doc/new-doc/standards/hashtables.txi b/src/doc/new-doc/standards/hashtables.txi index f38157192..c953fbe6a 100644 --- a/src/doc/new-doc/standards/hashtables.txi +++ b/src/doc/new-doc/standards/hashtables.txi @@ -78,6 +78,7 @@ CL-USER> (ext:hash-table-content *ht*) (# . #)) @end lisp +@node Hash tables - C Reference @subsection C Reference @subsubsection Hash tables C dictionary Common Lisp and C equivalence diff --git a/src/doc/new-doc/standards/numbers.txi b/src/doc/new-doc/standards/numbers.txi index 3ee1d3d78..d740b0a8f 100644 --- a/src/doc/new-doc/standards/numbers.txi +++ b/src/doc/new-doc/standards/numbers.txi @@ -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 diff --git a/src/doc/new-doc/standards/sequences.txi b/src/doc/new-doc/standards/sequences.txi index 650f9e259..5b7460633 100644 --- a/src/doc/new-doc/standards/sequences.txi +++ b/src/doc/new-doc/standards/sequences.txi @@ -1,6 +1,7 @@ @node Sequences @section Sequences +@node Sequences - C Reference @subsection C Reference @subsubsection Sequences C dictionary Common Lisp and C equivalence diff --git a/src/doc/new-doc/standards/strings.txi b/src/doc/new-doc/standards/strings.txi index 95497bf6f..79c94713a 100644 --- a/src/doc/new-doc/standards/strings.txi +++ b/src/doc/new-doc/standards/strings.txi @@ -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