Skip to content

Commit

Permalink
Merge pull request #515 from nasa/issue-514-spec-version
Browse files Browse the repository at this point in the history
Update spec and version number
  • Loading branch information
bocchino authored Oct 2, 2024
2 parents 262b734 + 04f3776 commit 0e3399e
Show file tree
Hide file tree
Showing 58 changed files with 1,921 additions and 623 deletions.
1,206 changes: 974 additions & 232 deletions docs/fpp-spec.html

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions docs/fpp-users-guide.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.20">
<title>The F Prime Prime (FPP) User&#8217;s Guide, Unreleased, after v2.1.0</title>
<title>The F Prime Prime (FPP) User&#8217;s Guide, v2.2.0</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<style>
/*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
Expand Down Expand Up @@ -436,7 +436,7 @@
</head>
<body class="article toc2 toc-left">
<div id="header">
<h1>The F Prime Prime (FPP) User&#8217;s Guide, Unreleased, after v2.1.0</h1>
<h1>The F Prime Prime (FPP) User&#8217;s Guide, v2.2.0</h1>
<div id="toc" class="toc2">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
Expand Down Expand Up @@ -12530,7 +12530,7 @@ <h4 id="Writing-C-Plus-Plus-Implementations_Implementing-Deployments_Public-Symb
</div>
<div id="footer">
<div id="footer-text">
Last updated 2024-08-27 14:20:30 -0700
Last updated 2024-10-01 08:57:40 -0700
</div>
</div>
<script src="code-prettify/run_prettify.js"></script>
Expand Down
10 changes: 5 additions & 5 deletions docs/spec/Analysis-and-Translation.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ Source files for analysis are provided in one of two ways:
2. On standard input, if there are no arguments.

For example, the command `analyze file1.fpp file2.fpp`
says to read in the translation units `file1.fpp` and `file2.fpp` and perform
says to read in the translation units `file1.fpp` and `file2.fpp` and perform
analysis on the model consisting of these two translation units.
The command `cat file1.fpp file2.fpp | analyze` is functionally equivalent.

=== Translation

*Translation* is the process of performing analysis and
*Translation* is the process of performing analysis and
generating code.

Translation usually involves the following steps:
Expand All @@ -36,7 +36,7 @@ Translation usually involves the following steps:
. If step (1) succeeded, code generation.

FPP is intended to support a variety of translation
strategies. For example, we need to generate (1) C++ code for FSW and
strategies. For example, we need to generate (1) C++ code for FSW and
(2) XML, Python, or other code to export to ground tools.

=== Translation Tools
Expand All @@ -54,11 +54,11 @@ For example, when translating a component _C_, a tool may read
in files containing the definitions of the ports used in _C_,
but not translate those files.

Source files for translation are provided as for
Source files for translation are provided as for
<<Analysis-and-Translation_Analysis-Tools,analysis tools>>.
Imported source files are specified as arguments to a `-i` flag.

For example, the command `translate -i file1.fpp,file2.fpp file3.fpp`
says to import `file1.fpp` and `file2.fpp` and translate `file3.fpp`.
The command `translate -i file1.fpp,file2.fpp < file3.fpp` is functionally
The command `translate -i file1.fpp,file2.fpp < file3.fpp` is functionally
equivalent.
6 changes: 3 additions & 3 deletions docs/spec/Comments-and-Annotations.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ To write a multiline comment, precede each line with `#`:
An *annotation* is similar to a
<<Comments-and-Annotations_Comments,comment>>, but it is attached to a
syntactic element of a model, and it is preserved during
<<Analysis-and-Translation,analysis and translation>>. The precise use of
<<Analysis-and-Translation,analysis and translation>>. The precise use of
annotations depends on the translator. A typical use
is to include annotations as comments in generated code.

Expand Down Expand Up @@ -88,13 +88,13 @@ module M {
==== Multiline Annotations

You can write several pre-annotations in a row before an
<<Comments-and-Annotations_Annotations_Where-Annotations-Can-Occur,
<<Comments-and-Annotations_Annotations_Where-Annotations-Can-Occur,
annotatable element>> _e_.
In this case, all the pre-annotations are attached to the
element, in the order that they appear.

Similarly, you can write several post-annotations in a row after an
<<Comments-and-Annotations_Annotations_Where-Annotations-Can-Occur,
<<Comments-and-Annotations_Annotations_Where-Annotations-Can-Occur,
annotatable element>> _e_.
In this case, all the post-annotations are attached to the
element, in the order that they appear.
Expand Down
12 changes: 6 additions & 6 deletions docs/spec/Definitions-and-Uses.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ according to the
A use is a *qualifying use* if it qualifies another use. For example, in
the following code

* The expression `M.a` contains the expression `M`, which is a qualifying use
* The expression `M.a` contains the expression `M`, which is a qualifying use
of the module `M`. It qualifies the use `M.a`.
* The expression `M.a` is not a qualifying use.

Expand All @@ -31,15 +31,15 @@ If a use _u_ is not a qualifying use, then we say it is a *non-qualifying use*.

=== Use-Def Graph

The set of definitions and
The set of definitions and
<<Definitions-and-Uses_Uses,non-qualifying uses>>
in an FPP model induces a directed
graph called the *use-def graph*. In this graph,

. The nodes are the definitions.

. There is an edge from each definition _d_ to the definitions
stem:[d_1, ..., d_n] corresponding to the non-qualifying uses
. There is an edge from each definition _d_ to the definitions
stem:[d_1, ..., d_n] corresponding to the non-qualifying uses
stem:[u_1, ..., u_n] appearing in _d_.

For example, in the following code, the use-def graph has two nodes `a` and
Expand Down Expand Up @@ -86,10 +86,10 @@ However, it is a qualifying use.
=== Order of Definitions and Uses

So long as the
<<Definitions-and-Uses_Use-Def-Graph,use-def graph>> is acyclic, there is no
<<Definitions-and-Uses_Use-Def-Graph,use-def graph>> is acyclic, there is no
constraint either on the ordering of
definitions and uses within a
<<Translation-Units-and-Models,translation unit>>,
<<Translation-Units-and-Models,translation unit>>,
or on the distribution of definitions and uses among translation
units. For example, if the definition `constant c = 0` appears anywhere
in any translation unit of a model _M_, then the use of `c` as a
Expand Down
10 changes: 5 additions & 5 deletions docs/spec/Definitions/Array-Definitions.adoc
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
=== Array Definitions

An *array definition* defines a new array type and associates a name with
An *array definition* defines a new array type and associates a name with
it.

==== Syntax

`array` <<Lexical-Elements_Identifiers,_identifier_>> `=`
`[` <<Expressions,_expression_>> `]` <<Type-Names,_type-name_>>
_[_
`default` <<Expressions,_expression_>>
`default` <<Expressions,_expression_>>
_]_
_[_
`format` <<Expressions_String-Literals,_string-literal_>>
Expand All @@ -17,22 +17,22 @@ _]_
==== Semantics

The identifier is the name _N_ of the new type.
The first expression must evaluate to a compile-time constant numeric value _n_
The first expression must evaluate to a compile-time constant numeric value _n_
whose value is greater than zero and less than or equal to 256.
_type-name_ names the type _T_ of each array element.

The definition associates the name _N_ with a new type _T'_
that represents an array of _n_ elements of type _T_.

The expression following the keyword `default` is optional.
If present, it specifies the <<Types_Default-Values,default value>> associated
If present, it specifies the <<Types_Default-Values,default value>> associated
with the type.
The type of the expression must be
<<Type-Checking_Type-Conversion,convertible to>> _T'_.

The optional format specifier specifies a <<Format-Strings,format string>>.
When displaying the array, the format is applied to each element of the array.
There is one argument to the format string, which is an array member.
There is one argument to the format string, which is an array member.

==== Examples

Expand Down
2 changes: 1 addition & 1 deletion docs/spec/Definitions/Component-Definitions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ active component DeviceMgr {
# ----------------------------------------------------------------------
# Commands
# ----------------------------------------------------------------------
@ Send a Start event to the specified device
async command START(
@ The device number
Expand Down
2 changes: 1 addition & 1 deletion docs/spec/Definitions/Constant-Definitions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ model.
_expression_ must
<<Evaluation,evaluate>>
to a compile-time constant value _v_. At any model point where the
<<Scoping-of-Names_Qualified-Identifiers,qualified identifier>> _Q_ refers to
<<Scoping-of-Names_Qualified-Identifiers,qualified identifier>> _Q_ refers to
the constant definition according to the
<<Scoping-of-Names_Resolution-of-Qualified-Identifiers,scoping
rules for names>>, you can use _Q_ as a name for _v_.
Expand Down
14 changes: 7 additions & 7 deletions docs/spec/Definitions/Enum-Definitions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ An *enum definition* does two things:
. It defines a type stem:[T] and associates a name stem:[N] with stem:[T]. Elsewhere
in the model, you can use stem:[N] to refer to stem:[T].

. It associates several named constants stem:[C_1, ..., C_n] with stem:[T].
. It associates several named constants stem:[C_1, ..., C_n] with stem:[T].
These
constants, called the *enumerated constants* of stem:[T], are the values that
an expression of type stem:[T] may attain. Elsewhere in the model, you can
use the <<Scoping-of-Names_Qualified-Identifiers,qualified
identifiers>> stem:[N] `.` stem:[C_1, ..., N] `.` stem:[C_n]
identifiers>> stem:[N] `.` stem:[C_1, ..., N] `.` stem:[C_n]
to refer to the enumerated
constants.

Expand All @@ -20,7 +20,7 @@ constants.
_[_ `:` <<Type-Names,_type-name_>> _]_
`{` _enum-constant-sequence_ `}`
_[_
`default` <<Expressions,_expression_>>
`default` <<Expressions,_expression_>>
_]_

_enum-constant-sequence_ is an
Expand All @@ -30,9 +30,9 @@ constant definitions>>, and the terminating punctuation is a comma.

==== Semantics

The enumerated constants have the <<Types_Enum-Types,enum type>> defined in the
The enumerated constants have the <<Types_Enum-Types,enum type>> defined in the
enum definition. During
<<Analysis-and-Translation,analysis>>, they are represented as values of
<<Analysis-and-Translation,analysis>>, they are represented as values of
a primitive integer type, called the
*representation type*.

Expand All @@ -45,7 +45,7 @@ representation type.
No two enumerated constants may have the same value after the conversion.

The expression following the keyword `default` is optional.
If present, it specifies the <<Types_Default-Values,default value>> associated
If present, it specifies the <<Types_Default-Values,default value>> associated
with the enum definition.
The type of the expression must be the type of the enum definition.

Expand All @@ -59,7 +59,7 @@ the implied representation type is `I32`.
If _type-name_ appears after the identifier, then the semantic
analyzer does the following:

. Check that _type-name_ names a <<Types_Primitive-Integer-Types,primitive
. Check that _type-name_ names a <<Types_Primitive-Integer-Types,primitive
integer type>>.
If not, throw an error.

Expand Down
4 changes: 2 additions & 2 deletions docs/spec/Definitions/Enumerated-Constant-Definitions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

An *enumerated constant definition* is an element of an
<<Definitions_Enum-Definitions,enum
definition>>. Like a
definition>>. Like a
<<Definitions_Constant-Definitions,constant
definition>>, it associates a value with a named constant. It also
establishes that the constant is one of the values of the type defined
Expand All @@ -20,7 +20,7 @@ _]_
If present, _expression_ must
<<Evaluation,evaluate>>
to a compile-time constant value _v_. At any model point where the
<<Scoping-of-Names_Qualified-Identifiers,qualified identifier>> _Q_ refers to
<<Scoping-of-Names_Qualified-Identifiers,qualified identifier>> _Q_ refers to
the enumerated constant definition according to the
<<Scoping-of-Names_Resolution-of-Qualified-Identifiers,scoping
rules for names>>, you can use _Q_ as a name for the value that results
Expand Down
2 changes: 1 addition & 1 deletion docs/spec/Definitions/Module-Definitions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ It is similar to a namespace in C++ or a package in Java or Scala.
`{` _module-member-sequence_ `}`

_module-member-sequence_ is an
<<Element-Sequences,element sequence>> in
<<Element-Sequences,element sequence>> in
which each element is a *module member*,
and the terminating punctuation is a semicolon.
A module member is one of the following:
Expand Down
Loading

0 comments on commit 0e3399e

Please sign in to comment.