1
Fork 0

Strip out over-aggressive pagination in manual.

This commit is contained in:
Graydon Hoare 2010-07-01 09:37:28 -07:00
parent 8bf6ae99f4
commit a0c9d4fe9a

View file

@ -551,7 +551,6 @@ Additional specific influences can be seen from the following languages:
* Ref.Run:: Organization of runtime services. * Ref.Run:: Organization of runtime services.
@end menu @end menu
@page
@node Ref.Lex @node Ref.Lex
@section Ref.Lex @section Ref.Lex
@c * Ref.Lex:: Lexical structure. @c * Ref.Lex:: Lexical structure.
@ -700,7 +699,6 @@ The keywords are:
@tab @code{be} @tab @code{be}
@end multitable @end multitable
@page
@node Ref.Lex.Num @node Ref.Lex.Num
@subsection Ref.Lex.Num @subsection Ref.Lex.Num
@c * Ref.Lex.Num:: Numeric tokens. @c * Ref.Lex.Num:: Numeric tokens.
@ -793,7 +791,6 @@ region). @xref{Ref.Comp.Syntax}.
@emph{TODO: formalize those terms more}. @emph{TODO: formalize those terms more}.
@page
@node Ref.Lex.Sym @node Ref.Lex.Sym
@subsection Ref.Lex.Sym @subsection Ref.Lex.Sym
@c * Ref.Lex.Sym:: Special symbol tokens. @c * Ref.Lex.Sym:: Special symbol tokens.
@ -953,7 +950,6 @@ successful produces a single crate in executable form.
* Ref.Comp.Syntax:: Syntax extensions. * Ref.Comp.Syntax:: Syntax extensions.
@end menu @end menu
@page
@node Ref.Comp.Crate @node Ref.Comp.Crate
@subsection Ref.Comp.Crate @subsection Ref.Comp.Crate
@c * Ref.Comp.Crate:: Units of compilation and linking. @c * Ref.Comp.Crate:: Units of compilation and linking.
@ -1044,7 +1040,6 @@ mod bar @{
@} @}
@end example @end example
@page
@node Ref.Comp.Meta @node Ref.Comp.Meta
@subsection Ref.Comp.Meta @subsection Ref.Comp.Meta
@ -1055,7 +1050,6 @@ directives, denoted by @code{syntax} and @code{use} keywords respectively.
Alternatively, metadata can serve as a simple form of documentation. Alternatively, metadata can serve as a simple form of documentation.
@page
@node Ref.Comp.Syntax @node Ref.Comp.Syntax
@subsection Ref.Comp.Syntax @subsection Ref.Comp.Syntax
@c * Ref.Comp.Syntax:: Syntax extension. @c * Ref.Comp.Syntax:: Syntax extension.
@ -1123,7 +1117,6 @@ consist of @emph{boxes}.
* Ref.Mem.Acct:: Memory accounting model. * Ref.Mem.Acct:: Memory accounting model.
@end menu @end menu
@page
@node Ref.Mem.Alloc @node Ref.Mem.Alloc
@subsection Ref.Mem.Alloc @subsection Ref.Mem.Alloc
@c * Ref.Mem.Alloc:: Memory allocation model. @c * Ref.Mem.Alloc:: Memory allocation model.
@ -1156,8 +1149,6 @@ heap allocation, so executing a long-running destructor does not interrupt
execution of other tasks. execution of other tasks.
@page
@node Ref.Mem.Own @node Ref.Mem.Own
@subsection Ref.Mem.Own @subsection Ref.Mem.Own
@c * Ref.Mem.Own:: Memory ownership model. @c * Ref.Mem.Own:: Memory ownership model.
@ -1180,7 +1171,6 @@ references to boxes (both shared and owned) are dropped.
When a task finishes, its stack is necessarily empty and it therefore has no When a task finishes, its stack is necessarily empty and it therefore has no
references to any boxes. references to any boxes.
@page
@node Ref.Mem.Slot @node Ref.Mem.Slot
@subsection Ref.Mem.Slot @subsection Ref.Mem.Slot
@c * Ref.Mem.Slot:: Stack memory model. @c * Ref.Mem.Slot:: Stack memory model.
@ -1228,7 +1218,6 @@ fn incr(& mutable int i) @{
@} @}
@end example @end example
@page
@node Ref.Mem.Box @node Ref.Mem.Box
@subsection Ref.Mem.Box @subsection Ref.Mem.Box
@c * Ref.Mem.Box:: Heap memory model. @c * Ref.Mem.Box:: Heap memory model.
@ -1284,7 +1273,6 @@ fn main() @{
@end example @end example
@page
@node Ref.Mem.Acct @node Ref.Mem.Acct
@subsection Ref.Mem.Acct @subsection Ref.Mem.Acct
@c * Ref.Mem.Acct:: Memory accounting model. @c * Ref.Mem.Acct:: Memory accounting model.
@ -1330,7 +1318,6 @@ operating-system processes.
* Ref.Task.Sched:: Task scheduling model. * Ref.Task.Sched:: Task scheduling model.
@end menu @end menu
@page
@node Ref.Task.Comm @node Ref.Task.Comm
@subsection Ref.Task.Comm @subsection Ref.Task.Comm
@c * Ref.Task.Comm:: Inter-task communication. @c * Ref.Task.Comm:: Inter-task communication.
@ -1384,7 +1371,6 @@ The asynchronous message-send operator is @code{<+}. The semi-synchronous
message-send operator is @code{<|}. @xref{Ref.Stmt.Send}. The message-receive message-send operator is @code{<|}. @xref{Ref.Stmt.Send}. The message-receive
operator is @code{<-}. @xref{Ref.Stmt.Recv}. operator is @code{<-}. @xref{Ref.Stmt.Recv}.
@page
@node Ref.Task.Life @node Ref.Task.Life
@subsection Ref.Task.Life @subsection Ref.Task.Life
@c * Ref.Task.Life:: Task lifecycle and state transitions. @c * Ref.Task.Life:: Task lifecycle and state transitions.
@ -1426,7 +1412,6 @@ A task in the @emph{dead} state cannot transition to other states; it exists
only to have its termination status inspected by other tasks, and/or to await only to have its termination status inspected by other tasks, and/or to await
reclamation when the last reference to it drops. reclamation when the last reference to it drops.
@page
@node Ref.Task.Dom @node Ref.Task.Dom
@subsection Ref.Task.Dom @subsection Ref.Task.Dom
@c * Ref.Task.Dom:: Task domains @c * Ref.Task.Dom:: Task domains
@ -1448,7 +1433,6 @@ Tasks can own sub-domains, which in turn own their own tasks. Every domain
owns one @emph{root task}, which is the root of the tree of tasks owned by the owns one @emph{root task}, which is the root of the tree of tasks owned by the
domain. domain.
@page
@node Ref.Task.Sched @node Ref.Task.Sched
@subsection Ref.Task.Sched @subsection Ref.Task.Sched
@c * Ref.Task.Sched:: Task scheduling model. @c * Ref.Task.Sched:: Task scheduling model.
@ -1502,7 +1486,6 @@ are no general parametric types.
* Ref.Item.Type:: Items defining the types of values and slots. * Ref.Item.Type:: Items defining the types of values and slots.
@end menu @end menu
@page
@node Ref.Item.Mod @node Ref.Item.Mod
@subsection Ref.Item.Mod @subsection Ref.Item.Mod
@c * Ref.Item.Mod:: Items defining sub-modules. @c * Ref.Item.Mod:: Items defining sub-modules.
@ -1540,7 +1523,6 @@ and outside of it.
* Ref.Item.Mod.Export:: Declarations for restricting visibility. * Ref.Item.Mod.Export:: Declarations for restricting visibility.
@end menu @end menu
@page
@node Ref.Item.Mod.Import @node Ref.Item.Mod.Import
@subsubsection Ref.Item.Mod.Import @subsubsection Ref.Item.Mod.Import
@c * Ref.Item.Mod.Import:: Declarations for module-local synonyms. @c * Ref.Item.Mod.Import:: Declarations for module-local synonyms.
@ -1563,7 +1545,6 @@ fn main() @{
@} @}
@end example @end example
@page
@node Ref.Item.Mod.Export @node Ref.Item.Mod.Export
@subsubsection Ref.Item.Mod.Export @subsubsection Ref.Item.Mod.Export
@c * Ref.Item.Mod.Import:: Declarations for restricting visibility. @c * Ref.Item.Mod.Import:: Declarations for restricting visibility.
@ -1596,8 +1577,6 @@ fn main() @{
@end example @end example
@page
@node Ref.Item.Fn @node Ref.Item.Fn
@subsection Ref.Item.Fn @subsection Ref.Item.Fn
@c * Ref.Item.Fn:: Items defining functions. @c * Ref.Item.Fn:: Items defining functions.
@ -1633,7 +1612,6 @@ fn add(int x, int y) -> int @{
@} @}
@end example @end example
@page
@node Ref.Item.Iter @node Ref.Item.Iter
@subsection Ref.Item.Iter @subsection Ref.Item.Iter
@c * Ref.Item.Iter:: Items defining iterators. @c * Ref.Item.Iter:: Items defining iterators.
@ -1672,7 +1650,6 @@ for each (int x = range(0,100)) @{
@end example @end example
@page
@node Ref.Item.Obj @node Ref.Item.Obj
@subsection Ref.Item.Obj @subsection Ref.Item.Obj
@c * Ref.Item.Obj:: Items defining objects. @c * Ref.Item.Obj:: Items defining objects.
@ -1704,7 +1681,6 @@ c.incr();
check (c.get() == 3); check (c.get() == 3);
@end example @end example
@page
@node Ref.Item.Type @node Ref.Item.Type
@subsection Ref.Item.Type @subsection Ref.Item.Type
@c * Ref.Item.Type:: Items defining the types of values and slots. @c * Ref.Item.Type:: Items defining the types of values and slots.
@ -1769,7 +1745,6 @@ Rust; they cannot be used as user-defined identifiers in any context.
* Ref.Type.Type:: Types describing types. * Ref.Type.Type:: Types describing types.
@end menu @end menu
@page
@node Ref.Type.Any @node Ref.Type.Any
@subsection Ref.Type.Any @subsection Ref.Type.Any
@ -1781,7 +1756,6 @@ Values of type @code{any} can be used in an @code{alt type} statement, in
which the reflection is used to select a block corresponding to a particular which the reflection is used to select a block corresponding to a particular
type extraction. @xref{Ref.Stmt.Alt}. type extraction. @xref{Ref.Stmt.Alt}.
@page
@node Ref.Type.Mach @node Ref.Type.Mach
@subsection Ref.Type.Mach @subsection Ref.Type.Mach
@ -1829,7 +1803,6 @@ The IEEE 754 single-precision and double-precision floating point types:
@code{f32} and @code{f64}, respectively. @code{f32} and @code{f64}, respectively.
@end itemize @end itemize
@page
@node Ref.Type.Int @node Ref.Type.Int
@subsection Ref.Type.Int @subsection Ref.Type.Int
@ -1881,7 +1854,6 @@ The machine-dependent integer and floating-point types.
@end itemize @end itemize
@page
@node Ref.Type.Big @node Ref.Type.Big
@subsection Ref.Type.Big @subsection Ref.Type.Big
@ -1895,7 +1867,6 @@ A Rust @code{big} grows to accommodate extra binary digits as they are needed,
by taking extra memory from the memory budget available to each Rust task, and by taking extra memory from the memory budget available to each Rust task, and
should only exhaust its range due to memory exhaustion. should only exhaust its range due to memory exhaustion.
@page
@node Ref.Type.Text @node Ref.Type.Text
@subsection Ref.Type.Text @subsection Ref.Type.Text
@ -1907,7 +1878,6 @@ unsigned word holding a UCS-4 codepoint.
A value of type @code{str} is a Unicode string, represented as a vector of A value of type @code{str} is a Unicode string, represented as a vector of
8-bit unsigned bytes holding a sequence of UTF-8 codepoints. 8-bit unsigned bytes holding a sequence of UTF-8 codepoints.
@page
@node Ref.Type.Rec @node Ref.Type.Rec
@subsection Ref.Type.Rec @subsection Ref.Type.Rec
@ -1925,7 +1895,6 @@ let point p = rec(x=10, y=11);
let int px = p.x; let int px = p.x;
@end example @end example
@page
@node Ref.Type.Tup @node Ref.Type.Tup
@subsection Ref.Type.Tup @subsection Ref.Type.Tup
@ -1946,7 +1915,6 @@ check (p._1 == "world");
@end example @end example
@page
@node Ref.Type.Vec @node Ref.Type.Vec
@subsection Ref.Type.Vec @subsection Ref.Type.Vec
@ -1985,7 +1953,6 @@ All accessible elements of a vector are always initialized, and access to a
vector is always bounds-checked. vector is always bounds-checked.
@page
@node Ref.Type.Tag @node Ref.Type.Tag
@subsection Ref.Type.Tag @subsection Ref.Type.Tag
@ -2024,7 +1991,6 @@ let list[int] a = cons(7, cons(13, nil));
@end example @end example
@page
@node Ref.Type.Fn @node Ref.Type.Fn
@subsection Ref.Type.Fn @subsection Ref.Type.Fn
@ -2046,7 +2012,6 @@ let binop bo = add;
x = bo(5,7); x = bo(5,7);
@end example @end example
@page
@node Ref.Type.Iter @node Ref.Type.Iter
@subsection Ref.Type.Iter @subsection Ref.Type.Iter
@ -2069,7 +2034,6 @@ for each (int i = range(5,7)) @{
@end example @end example
@page
@node Ref.Type.Port @node Ref.Type.Port
@subsection Ref.Type.Port @subsection Ref.Type.Port
@ -2091,7 +2055,6 @@ let vec[str] v;
v <- p; v <- p;
@end example @end example
@page
@node Ref.Type.Chan @node Ref.Type.Chan
@subsection Ref.Type.Chan @subsection Ref.Type.Chan
@ -2126,7 +2089,6 @@ let vec[str] v = vec("hello", "world");
c <| v; c <| v;
@end example @end example
@page
@node Ref.Type.Task @node Ref.Type.Task
@subsection Ref.Type.Task @subsection Ref.Type.Task
@ -2147,7 +2109,6 @@ holding those references), the released task immediately fails.
@xref{Ref.Task.Life}. @xref{Ref.Task.Life}.
@page
@node Ref.Type.Obj @node Ref.Type.Obj
@subsection Ref.Type.Obj @subsection Ref.Type.Obj
@c * Ref.Type.Obj:: Object types. @c * Ref.Type.Obj:: Object types.
@ -2213,7 +2174,6 @@ give_ints(t2);
@page
@node Ref.Type.Constr @node Ref.Type.Constr
@subsection Ref.Type.Constr @subsection Ref.Type.Constr
@c * Ref.Type.Constr:: Constrained types. @c * Ref.Type.Constr:: Constrained types.
@ -2239,7 +2199,6 @@ let ordered_range rng2 = rec(low=15, high=17);
// implicit: 'check less_than(rng2.low, rng2.high);' // implicit: 'check less_than(rng2.low, rng2.high);'
@end example @end example
@page
@node Ref.Type.Type @node Ref.Type.Type
@subsection Ref.Type.Type @subsection Ref.Type.Type
@c * Ref.Type.Type:: Types describing types. @c * Ref.Type.Type:: Types describing types.
@ -2302,7 +2261,6 @@ actions.
* Ref.Stmt.IfCheck:: Statement for dynamic testing of typestate. * Ref.Stmt.IfCheck:: Statement for dynamic testing of typestate.
@end menu @end menu
@page
@node Ref.Stmt.Stat @node Ref.Stmt.Stat
@subsection Ref.Stmt.Stat @subsection Ref.Stmt.Stat
@c * Ref.Stmt.Stat:: The static typestate system of statement analysis. @c * Ref.Stmt.Stat:: The static typestate system of statement analysis.
@ -2326,7 +2284,6 @@ system.
* Ref.Stmt.Stat.Check:: Relating dynamic state to static typestate. * Ref.Stmt.Stat.Check:: Relating dynamic state to static typestate.
@end menu @end menu
@page
@node Ref.Stmt.Stat.Point @node Ref.Stmt.Stat.Point
@subsubsection Ref.Stmt.Stat.Point @subsubsection Ref.Stmt.Stat.Point
@c * Ref.Stmt.Stat.Point:: Inter-statement positions of logical judgements. @c * Ref.Stmt.Stat.Point:: Inter-statement positions of logical judgements.
@ -2358,7 +2315,6 @@ concerned with constraining the possible states of a task's memory at
``at'' a statement, as each statement is likely to change the contents of ``at'' a statement, as each statement is likely to change the contents of
memory. memory.
@page
@node Ref.Stmt.Stat.CFG @node Ref.Stmt.Stat.CFG
@subsubsection Ref.Stmt.Stat.CFG @subsubsection Ref.Stmt.Stat.CFG
@c * Ref.Stmt.Stat.CFG:: The control flow graph formed by statements. @c * Ref.Stmt.Stat.CFG:: The control flow graph formed by statements.
@ -2372,7 +2328,6 @@ might occur during execution.
This implicit graph is called the @dfn{control flow graph}, or @dfn{CFG}. This implicit graph is called the @dfn{control flow graph}, or @dfn{CFG}.
@page
@node Ref.Stmt.Stat.Constr @node Ref.Stmt.Stat.Constr
@subsubsection Ref.Stmt.Stat.Constr @subsubsection Ref.Stmt.Stat.Constr
@c * Ref.Stmt.Stat.Constr:: Predicates applied to slots. @c * Ref.Stmt.Stat.Constr:: Predicates applied to slots.
@ -2403,7 +2358,6 @@ Predicates can only apply to slots holding immutable values. The slots a
predicate applies to can themselves be mutable, but the types of values held predicate applies to can themselves be mutable, but the types of values held
in those slots must be immutable. in those slots must be immutable.
@page
@node Ref.Stmt.Stat.Cond @node Ref.Stmt.Stat.Cond
@subsubsection Ref.Stmt.Stat.Cond @subsubsection Ref.Stmt.Stat.Cond
@c * Ref.Stmt.Stat.Cond:: Constraints required and implied by a statement. @c * Ref.Stmt.Stat.Cond:: Constraints required and implied by a statement.
@ -2422,7 +2376,6 @@ enforces in the point after the statement.
Any constraint present in the precondition and @emph{absent} in the Any constraint present in the precondition and @emph{absent} in the
postcondition is considered to be @emph{dropped} by the statement. postcondition is considered to be @emph{dropped} by the statement.
@page
@node Ref.Stmt.Stat.Typestate @node Ref.Stmt.Stat.Typestate
@subsubsection Ref.Stmt.Stat.Typestate @subsubsection Ref.Stmt.Stat.Typestate
@c * Ref.Stmt.Stat.Typestate:: Constraints that hold at points. @c * Ref.Stmt.Stat.Typestate:: Constraints that hold at points.
@ -2471,7 +2424,6 @@ prestate. If any preconditions are not satisfied, the mismatch is considered a
static (compile-time) error. static (compile-time) error.
@page
@node Ref.Stmt.Stat.Check @node Ref.Stmt.Stat.Check
@subsubsection Ref.Stmt.Stat.Check @subsubsection Ref.Stmt.Stat.Check
@c * Ref.Stmt.Stat.Check:: Relating dynamic state to static typestate. @c * Ref.Stmt.Stat.Check:: Relating dynamic state to static typestate.
@ -2503,7 +2455,6 @@ and constrained types, and the responsibility to @code{check} a constraint
pushed further and further away from the site at which the program requires it pushed further and further away from the site at which the program requires it
to hold in order to execute properly. to hold in order to execute properly.
@page
@node Ref.Stmt.Decl @node Ref.Stmt.Decl
@subsection Ref.Stmt.Decl @subsection Ref.Stmt.Decl
@c * Ref.Stmt.Decl:: Statement declaring an item or slot. @c * Ref.Stmt.Decl:: Statement declaring an item or slot.
@ -2518,7 +2469,6 @@ before and after the declaration.
* Ref.Stmt.Decl.Slot:: Statement declaring a slot. * Ref.Stmt.Decl.Slot:: Statement declaring a slot.
@end menu @end menu
@page
@node Ref.Stmt.Decl.Item @node Ref.Stmt.Decl.Item
@subsubsection Ref.Stmt.Decl.Item @subsubsection Ref.Stmt.Decl.Item
@c * Ref.Stmt.Decl.Item:: Statement declaring an item. @c * Ref.Stmt.Decl.Item:: Statement declaring an item.
@ -2533,7 +2483,6 @@ block.
Note: there is no implicit capture of the function's dynamic environment when Note: there is no implicit capture of the function's dynamic environment when
declaring a function-local item. declaring a function-local item.
@page
@node Ref.Stmt.Decl.Slot @node Ref.Stmt.Decl.Slot
@subsubsection Ref.Stmt.Decl.Slot @subsubsection Ref.Stmt.Decl.Slot
@c * Ref.Stmt.Decl.Slot:: Statement declaring an slot. @c * Ref.Stmt.Decl.Slot:: Statement declaring an slot.
@ -2562,7 +2511,6 @@ object signatures must always declared types for all argument slots.
@page
@node Ref.Stmt.Copy @node Ref.Stmt.Copy
@subsection Ref.Stmt.Copy @subsection Ref.Stmt.Copy
@c * Ref.Stmt.Copy:: Statement for copying a value. @c * Ref.Stmt.Copy:: Statement for copying a value.
@ -2587,7 +2535,6 @@ x.y = z;
x.y = z + 2; x.y = z + 2;
@end example @end example
@page
@node Ref.Stmt.Spawn @node Ref.Stmt.Spawn
@subsection Ref.Stmt.Spawn @subsection Ref.Stmt.Spawn
@c * Ref.Stmt.Spawn:: Statements creating new tasks. @c * Ref.Stmt.Spawn:: Statements creating new tasks.
@ -2618,7 +2565,6 @@ auto result <- out;
@end example @end example
@page
@node Ref.Stmt.Send @node Ref.Stmt.Send
@subsection Ref.Stmt.Send @subsection Ref.Stmt.Send
@c * Ref.Stmt.Send:: Statements for sending a value into a channel. @c * Ref.Stmt.Send:: Statements for sending a value into a channel.
@ -2649,7 +2595,6 @@ chan[str] c = @dots{};
c <| "hello, world"; c <| "hello, world";
@end example @end example
@page
@node Ref.Stmt.Flush @node Ref.Stmt.Flush
@subsection Ref.Stmt.Flush @subsection Ref.Stmt.Flush
@c * Ref.Stmt.Flush:: Statement for flushing a channel queue. @c * Ref.Stmt.Flush:: Statement for flushing a channel queue.
@ -2666,7 +2611,6 @@ flush c;
@end example @end example
@page
@node Ref.Stmt.Recv @node Ref.Stmt.Recv
@subsection Ref.Stmt.Recv @subsection Ref.Stmt.Recv
@c * Ref.Stmt.Recv:: Statement for receiving a value from a channel. @c * Ref.Stmt.Recv:: Statement for receiving a value from a channel.
@ -2686,7 +2630,6 @@ port[str] p = @dots{};
let str s <- p; let str s <- p;
@end example @end example
@page
@node Ref.Stmt.Call @node Ref.Stmt.Call
@subsection Ref.Stmt.Call @subsection Ref.Stmt.Call
@c * Ref.Stmt.Call:: Statement for calling a function. @c * Ref.Stmt.Call:: Statement for calling a function.
@ -2705,7 +2648,6 @@ An example of a call statement:
let int x = add(1, 2); let int x = add(1, 2);
@end example @end example
@page
@node Ref.Stmt.Bind @node Ref.Stmt.Bind
@subsection Ref.Stmt.Bind @subsection Ref.Stmt.Bind
@c * Ref.Stmt.Bind:: Statement for binding arguments to functions. @c * Ref.Stmt.Bind:: Statement for binding arguments to functions.
@ -2751,7 +2693,6 @@ languages. Rust has no support for lexical closures, but many realistic uses
of them can be achieved with @code{bind} statements. of them can be achieved with @code{bind} statements.
@page
@node Ref.Stmt.Ret @node Ref.Stmt.Ret
@subsection Ref.Stmt.Ret @subsection Ref.Stmt.Ret
@c * Ref.Stmt.Ret:: Statement for stopping and producing a value. @c * Ref.Stmt.Ret:: Statement for stopping and producing a value.
@ -2771,7 +2712,6 @@ fn max(int a, int b) -> int @{
@} @}
@end example @end example
@page
@node Ref.Stmt.Be @node Ref.Stmt.Be
@subsection Ref.Stmt.Be @subsection Ref.Stmt.Be
@c * Ref.Stmt.Be:: Statement for stopping and executing a tail call. @c * Ref.Stmt.Be:: Statement for stopping and executing a tail call.
@ -2801,7 +2741,6 @@ copy of itself.
@page
@node Ref.Stmt.Put @node Ref.Stmt.Put
@subsection Ref.Stmt.Put @subsection Ref.Stmt.Put
@c * Ref.Stmt.Put:: Statement for pausing and producing a value. @c * Ref.Stmt.Put:: Statement for pausing and producing a value.
@ -2821,7 +2760,6 @@ either continuing execution after the @code{put} statement, or terminating its
execution and destroying the iterator frame. execution and destroying the iterator frame.
@page
@node Ref.Stmt.Fail @node Ref.Stmt.Fail
@subsection Ref.Stmt.Fail @subsection Ref.Stmt.Fail
@c * Ref.Stmt.Fail:: Statement for causing task failure. @c * Ref.Stmt.Fail:: Statement for causing task failure.
@ -2831,7 +2769,6 @@ state. In the @emph{failing} state, a task unwinds its stack, destroying all
frames and freeing all resources until it reaches its entry frame, at which frames and freeing all resources until it reaches its entry frame, at which
point it halts execution in the @emph{dead} state. point it halts execution in the @emph{dead} state.
@page
@node Ref.Stmt.Log @node Ref.Stmt.Log
@subsection Ref.Stmt.Log @subsection Ref.Stmt.Log
@c * Ref.Stmt.Log:: Statement for logging values to diagnostic buffers. @c * Ref.Stmt.Log:: Statement for logging values to diagnostic buffers.
@ -2849,7 +2786,6 @@ contains a log statement.
@example @example
@end example @end example
@page
@node Ref.Stmt.Note @node Ref.Stmt.Note
@subsection Ref.Stmt.Note @subsection Ref.Stmt.Note
@c * Ref.Stmt.Note:: Statement for logging values during failure. @c * Ref.Stmt.Note:: Statement for logging values during failure.
@ -2893,7 +2829,6 @@ slot, and then a subsequent failure occurs, the @emph{mutated} value will be
logged during unwinding, @emph{not} the original value that was denoted by the logged during unwinding, @emph{not} the original value that was denoted by the
@var{lval} at the moment control passed through the @code{note} statement. @var{lval} at the moment control passed through the @code{note} statement.
@page
@node Ref.Stmt.While @node Ref.Stmt.While
@subsection Ref.Stmt.While @subsection Ref.Stmt.While
@c * Ref.Stmt.While:: Statement for simple conditional looping. @c * Ref.Stmt.While:: Statement for simple conditional looping.
@ -2928,7 +2863,6 @@ do @{
@} while (i < 10); @} while (i < 10);
@end example @end example
@page
@node Ref.Stmt.Break @node Ref.Stmt.Break
@subsection Ref.Stmt.Break @subsection Ref.Stmt.Break
@c * Ref.Stmt.Break:: Statement for terminating a loop. @c * Ref.Stmt.Break:: Statement for terminating a loop.
@ -2936,7 +2870,6 @@ do @{
Executing a @code{break} statement immediately terminates the innermost loop Executing a @code{break} statement immediately terminates the innermost loop
enclosing it. It is only permitted in the body of a loop. enclosing it. It is only permitted in the body of a loop.
@page
@node Ref.Stmt.Cont @node Ref.Stmt.Cont
@subsection Ref.Stmt.Cont @subsection Ref.Stmt.Cont
@c * Ref.Stmt.Cont:: Statement for terminating a single loop iteration. @c * Ref.Stmt.Cont:: Statement for terminating a single loop iteration.
@ -2951,7 +2884,6 @@ loop.
A @code{cont} statement is only permitted in the body of a loop. A @code{cont} statement is only permitted in the body of a loop.
@page
@node Ref.Stmt.For @node Ref.Stmt.For
@subsection Ref.Stmt.For @subsection Ref.Stmt.For
@c * Ref.Stmt.For:: Statement for looping over strings and vectors. @c * Ref.Stmt.For:: Statement for looping over strings and vectors.
@ -2984,7 +2916,6 @@ for (&foo e in v) @{
@} @}
@end example @end example
@page
@node Ref.Stmt.Foreach @node Ref.Stmt.Foreach
@subsection Ref.Stmt.Foreach @subsection Ref.Stmt.Foreach
@c * Ref.Stmt.Foreach:: Statement for general conditional looping. @c * Ref.Stmt.Foreach:: Statement for general conditional looping.
@ -3003,7 +2934,6 @@ for each (&str s = _str.split(txt, "\n")) @{
@end example @end example
@page
@node Ref.Stmt.If @node Ref.Stmt.If
@subsection Ref.Stmt.If @subsection Ref.Stmt.If
@c * Ref.Stmt.If:: Statement for simple conditional branching. @c * Ref.Stmt.If:: Statement for simple conditional branching.
@ -3016,7 +2946,6 @@ to @code{true}, the consequent block is executed and any @code{else} block is
skipped. If the condition expression evaluates to @code{false}, the consequent skipped. If the condition expression evaluates to @code{false}, the consequent
block is skipped and any @code{else} block is executed. block is skipped and any @code{else} block is executed.
@page
@node Ref.Stmt.Alt @node Ref.Stmt.Alt
@subsection Ref.Stmt.Alt @subsection Ref.Stmt.Alt
@c * Ref.Stmt.Alt:: Statement for complex conditional branching. @c * Ref.Stmt.Alt:: Statement for complex conditional branching.
@ -3039,7 +2968,6 @@ statement following the @code{alt} when the case block completes.
* Ref.Stmt.Alt.Type:: Statement for branching on types. * Ref.Stmt.Alt.Type:: Statement for branching on types.
@end menu @end menu
@page
@node Ref.Stmt.Alt.Comm @node Ref.Stmt.Alt.Comm
@subsubsection Ref.Stmt.Alt.Comm @subsubsection Ref.Stmt.Alt.Comm
@c * Ref.Stmt.Alt.Comm:: Statement for branching on communication events. @c * Ref.Stmt.Alt.Comm:: Statement for branching on communication events.
@ -3073,7 +3001,6 @@ alt @{
@} @}
@end example @end example
@page
@node Ref.Stmt.Alt.Pat @node Ref.Stmt.Alt.Pat
@subsubsection Ref.Stmt.Alt.Pat @subsubsection Ref.Stmt.Alt.Pat
@c * Ref.Stmt.Alt.Pat:: Statement for branching on pattern matches. @c * Ref.Stmt.Alt.Pat:: Statement for branching on pattern matches.
@ -3113,7 +3040,6 @@ alt (x) @{
@end example @end example
@page
@node Ref.Stmt.Alt.Type @node Ref.Stmt.Alt.Type
@subsubsection Ref.Stmt.Alt.Type @subsubsection Ref.Stmt.Alt.Type
@c * Ref.Stmt.Alt.Type:: Statement for branching on type. @c * Ref.Stmt.Alt.Type:: Statement for branching on type.
@ -3147,7 +3073,6 @@ alt type (x) @{
@end example @end example
@page
@node Ref.Stmt.Prove @node Ref.Stmt.Prove
@subsection Ref.Stmt.Prove @subsection Ref.Stmt.Prove
@c * Ref.Stmt.Prove:: Statement for static assertion of typestate. @c * Ref.Stmt.Prove:: Statement for static assertion of typestate.
@ -3157,7 +3082,6 @@ check (and document) that its argument constraint holds at its statement entry
point. If its argument typestate does not hold, under the typestate algorithm, point. If its argument typestate does not hold, under the typestate algorithm,
the program containing it will fail to compile. the program containing it will fail to compile.
@page
@node Ref.Stmt.Check @node Ref.Stmt.Check
@subsection Ref.Stmt.Check @subsection Ref.Stmt.Check
@c * Ref.Stmt.Check:: Statement for dynamic assertion of typestate. @c * Ref.Stmt.Check:: Statement for dynamic assertion of typestate.
@ -3199,7 +3123,6 @@ fn test() @{
@} @}
@end example @end example
@page
@node Ref.Stmt.IfCheck @node Ref.Stmt.IfCheck
@subsection Ref.Stmt.IfCheck @subsection Ref.Stmt.IfCheck
@c * Ref.Stmt.IfCheck:: Statement for dynamic testing of typestate. @c * Ref.Stmt.IfCheck:: Statement for dynamic testing of typestate.
@ -3249,7 +3172,6 @@ communication, reflection, logging and signal handling.
* Ref.Run.Sig:: Runtime signal handler. * Ref.Run.Sig:: Runtime signal handler.
@end menu @end menu
@page
@node Ref.Run.Mem @node Ref.Run.Mem
@subsection Ref.Run.Mem @subsection Ref.Run.Mem
@c * Ref.Run.Mem:: Runtime memory management service. @c * Ref.Run.Mem:: Runtime memory management service.
@ -3264,7 +3186,6 @@ The runtime memory-management system in turn supplies Rust tasks with
facilities for allocating, extending and releasing stacks, as well as facilities for allocating, extending and releasing stacks, as well as
allocating and freeing boxed values. allocating and freeing boxed values.
@page
@node Ref.Run.Type @node Ref.Run.Type
@subsection Ref.Run.Type @subsection Ref.Run.Type
@c * Ref.Run.Mem:: Runtime built-in type services. @c * Ref.Run.Mem:: Runtime built-in type services.
@ -3281,7 +3202,6 @@ The runtime provides C and Rust code to manage several built-in types:
Support for other built-in types such as simple types, tuples, Support for other built-in types such as simple types, tuples,
records, and tags is open-coded by the Rust compiler. records, and tags is open-coded by the Rust compiler.
@page
@node Ref.Run.Comm @node Ref.Run.Comm
@subsection Ref.Run.Comm @subsection Ref.Run.Comm
@c * Ref.Run.Comm:: Runtime communication service. @c * Ref.Run.Comm:: Runtime communication service.
@ -3292,7 +3212,6 @@ queues, as well as code to copy values between queues and their recipients and
to serialize values for transmission over operating-system inter-process to serialize values for transmission over operating-system inter-process
communication facilities. communication facilities.
@page
@node Ref.Run.Refl @node Ref.Run.Refl
@subsection Ref.Run.Refl @subsection Ref.Run.Refl
@c * Ref.Run.Refl:: Runtime reflection system. @c * Ref.Run.Refl:: Runtime reflection system.
@ -3301,7 +3220,6 @@ The runtime reflection system is driven by the DWARF tables emitted into a
crate at compile-time. Reflecting on a slot or item allocates a Rust data crate at compile-time. Reflecting on a slot or item allocates a Rust data
structure corresponding to the DWARF DIE for that slot or item. structure corresponding to the DWARF DIE for that slot or item.
@page
@node Ref.Run.Log @node Ref.Run.Log
@subsection Ref.Run.Log @subsection Ref.Run.Log
@c * Ref.Run.Log:: Runtime logging system. @c * Ref.Run.Log:: Runtime logging system.
@ -3332,7 +3250,6 @@ ownership-path-prefix basis.
Logging is integrated into the language for efficiency reasons, as well as the Logging is integrated into the language for efficiency reasons, as well as the
need to filter logs based on these two built-in dimensions. need to filter logs based on these two built-in dimensions.
@page
@node Ref.Run.Sig @node Ref.Run.Sig
@subsection Ref.Run.Sig @subsection Ref.Run.Sig
@c * Ref.Run.Sig:: Runtime signal handler. @c * Ref.Run.Sig:: Runtime signal handler.