public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc/devel/modula-2] More spelling corrections, spacing and minor obvious corrections.
@ 2022-12-11 11:28 Gaius Mulley
0 siblings, 0 replies; only message in thread
From: Gaius Mulley @ 2022-12-11 11:28 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:f6984c8112c22afb86cfff0a03e5a1fdfe13e942
commit f6984c8112c22afb86cfff0a03e5a1fdfe13e942
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date: Sun Dec 11 11:28:10 2022 +0000
More spelling corrections, spacing and minor obvious corrections.
More spelling corrections have been made via emacs-ispell (American).
All sentances have two spaces after the full stop and some
minor improvements describing how third party libraries
are installed.
gcc/ChangeLog:
* doc/gm2.texi: Spelling changed to American. Spacing after full
stops. Spacing in code examples. More detail describing where
third party libraries are installed.
Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
Diff:
---
gcc/doc/gm2.texi | 235 +++++++++++++++++++++++++++----------------------------
1 file changed, 115 insertions(+), 120 deletions(-)
diff --git a/gcc/doc/gm2.texi b/gcc/doc/gm2.texi
index b3597412efb..576e9e994bc 100644
--- a/gcc/doc/gm2.texi
+++ b/gcc/doc/gm2.texi
@@ -70,8 +70,8 @@ Boston, MA 02110-1301, USA@*
@menu
* Overview:: What is GNU Modula-2.
* Using:: Using GNU Modula-2.
-* Licence:: Licence of GNU Modula-2
-* Copying:: GNU Public Licence V3.
+* License:: License of GNU Modula-2
+* Copying:: GNU Public License V3.
* Contributing:: Contributing to GNU Modula-2
* Internals:: GNU Modula-2 internals.
* EBNF:: EBNF of GNU Modula-2
@@ -133,9 +133,9 @@ gm2 can produce swig interface headers to allow access from Python and
other scripting languages. It can also be used with C/C++ and
generate shared libraries.
-The compiler provides semantic analysis and runtime checking (full ISO
+The compiler provides semantic analysis and run time checking (full ISO
Modula-2 checking is implemented) and there is a plugin which can,
-under certain conditions, detect runtime errors at compile time.
+under certain conditions, detect run time errors at compile time.
The compiler supports PIM2, PIM3, PIM4 and ISO dialects of Modula-2,
work is underway to implement M2R10. Many of the GCC builtins are
@@ -145,7 +145,9 @@ same syntax as that used by GCC.
The gm2 driver allows third party libraries to be installed alongside
gm2 libraries. For example if the user specifies library @code{foo}
using @code{-flibs=foo} the driver will check the standard GCC install
-directory for a subdirectory.
+directory for a sub directory @code{foo} containing the library
+contents. The library module search path is altered accordingly
+for compile and link.
@node Release map, Development, Why use GNU Modula-2, Using
@section Release map
@@ -194,8 +196,8 @@ shared libraries can be built.
@item
fixed sized types are now available from @samp{SYSTEM}.
-@item
-support for dynamic @code{ARRAY}s has been added into @samp{gdb}.
+@c @item
+@c support for dynamic @code{ARRAY}s has been added into @samp{gdb}.
@item
variables can be declared at addresses.
@@ -218,7 +220,7 @@ many Logitech libraries have been implemented and can be accessed via:
@item
coroutines have been implemented in the PIM style and these are
-accessible from SYSTEM. A number of supporting libraries (executive
+accessible from SYSTEM. A number of supporting libraries (executive
and file descriptor mapping to interrupt vector libraries are
available through the @samp{-flibs=m2iso,m2pim} switch).
@@ -282,7 +284,7 @@ front end to GCC.
@item
It should support all Niklaus Wirth PIM Dialects [234] and also ISO
-Modula-2 including a reimplementation of all the ISO modules.
+Modula-2 including a re-implementation of all the ISO modules.
@item
There should be an easy interface to C.
@@ -331,7 +333,7 @@ These exist and can be found on the frontends web page on the
* Standard procedures:: Permanently accessible base procedures.
* Dialect:: GNU Modula-2 supported dialects.
* Exceptions:: Exception implementation
-* Semantic checking:: How to detect runtime problems at compile time.
+* Semantic checking:: How to detect run time problems at compile time.
* Extensions:: GNU Modula-2 language extensions.
* Type compatibility:: Data type compatibility.
* Unbounded by reference::Explanation of a language optimization.
@@ -406,7 +408,7 @@ MODULE hello ;
FROM StrIO IMPORT WriteString, WriteLn ;
BEGIN
- WriteString('hello world') ; WriteLn
+ WriteString ('hello world') ; WriteLn
END hello.
@end example
@@ -422,7 +424,7 @@ add the @samp{-v} flag at the command line, for example:
@samp{gm2 -v -g -I. hello.mod}
-This displays the subprocesses initiated by @samp{gm2} which can be useful
+This displays the sub processes initiated by @samp{gm2} which can be useful
when trouble shooting.}
@node Compiler options, Elementary data types, Example usage, Using
@@ -455,7 +457,7 @@ You can specify more than one input file on the @command{gm2} command line,
@item -g
create debugging information so that debuggers such as @file{gdb}
-can inspect and control executables.
+can inspect and control executable.
@item -I
used to specify the search path for definition and implementation
@@ -468,11 +470,11 @@ language dialect library directories.
@item -fauto-init
turns on auto initialization of pointers to NIL. Whenever a block is
-created all pointers declarated within this scope will have their
+created all pointers declared within this scope will have their
addresses assigned to NIL.
@item -fbounds
-turns on runtime subrange, array index and indirection via @code{NIL}
+turns on run time sub range, array index and indirection via @code{NIL}
pointer checking.
@item -fcase
@@ -483,7 +485,7 @@ statement requires an @code{ELSE} clause when on was not specified.
preprocess the source with @samp{cpp -lang-asm -traditional-cpp}
For further details about these options @xref{Invocation, , ,cpp}.
If @samp{-fcpp} is supplied then all definition modules and
-implementation modules which are parsed will be preprocessed by
+implementation modules which are parsed will be prepossessed by
@samp{cpp}.
@c fcpp-end
@@ -517,7 +519,7 @@ it allows users to single step code into a real function.
@item -fdef=
recognize the specified suffix as a definition module filename.
-The default implmentation and module filename suffix is @file{.def}.
+The default implementation and module filename suffix is @file{.def}.
If this option is used GNU Modula-2 will still fall back to this
default if a requested definition module is not found.
@@ -528,16 +530,16 @@ This is an internal command line option.
@item -fexceptions
turn on exception handling code. By default this option is on.
Exception handling can be disabled by @samp{-fno-exceptions}
-and no references are made to the runtime exception libraries.
+and no references are made to the run time exception libraries.
@item -fextended-opaque
-allows opaque types to be implemented as any type. This is a GNU
+allows opaque types to be implemented as any type. This is a GNU
Modula-2 extension and it requires that the implementation module
defining the opaque type is available so that it can be resolved when
compiling the module which imports the opaque type.
@item -ffloatvalue
-turns on runtime checking to check whether a floating point number is
+turns on run time checking to check whether a floating point number is
about to exceed range.
@item -fgen-module-list=@file{filename}
@@ -551,10 +553,10 @@ generate code to check whether array index values are out of bounds.
Array index checking can be disabled via @samp{-fno-index}.
@item -fiso
-turn on ISO standard features. Currently this enables the ISO
+turn on ISO standard features. Currently this enables the ISO
@code{SYSTEM} module and alters the default library search path so
that the ISO libraries are searched before the PIM libraries. It also
-effects the behaviour of @code{DIV} and @code{MOD} operators.
+effects the behavior of @code{DIV} and @code{MOD} operators.
@xref{Dialect, , ,gm2}.
@item -flibs=
@@ -563,7 +565,7 @@ m2pim, m2iso, m2min, m2log and m2cor. These map onto the
Programming in Modula-2 base libraries, ISO standard libraries, minimal
library support, Logitech compatible library and Programming in
Modula-2 with coroutines.
-Multiple libraries can be specified and are comma separated with precidence
+Multiple libraries can be specified and are comma separated with precedence
going to the first in the list. It is not necessary to use -flibs=m2pim or
-flibs=m2iso if you also specify -fpim, -fpim2, -fpim3, -fpim4 or
-fiso. Unless you are using -flibs=m2min you should include m2pim as
@@ -587,11 +589,11 @@ where multiple @code{END} keywords are mapped onto a sequence of
render keywords in error messages using lower case.
@item -fm2-plugin
-insert plugin to identify runtime errors at compiletime (default on).
+insert plugin to identify run time errors at compile time (default on).
@item -fm2-statistics
generates quadruple information: number of quadruples generated,
-number of quadruples remaining after optimisation and number of source
+number of quadruples remaining after optimization and number of source
lines compiled.
@item -fm2-strict-type
@@ -606,9 +608,9 @@ performance improvements.
@item -fmod=
recognize the specified suffix as implementation and module filenames.
-The default implmentation and module filename suffix is @file{.mod}.
+The default implementation and module filename suffix is @file{.mod}.
If this option is used GNU Modula-2 will still fall back to this
-default if it needs to read an implmentation module and the specified
+default if it needs to read an implementation module and the specified
suffixed filename does not exist.
@item -fnil
@@ -617,27 +619,27 @@ pointer. Dereferencing checking through a @code{NIL} pointer can be
disabled by @samp{-fno-nil}.
@item -fpim
-turn on PIM standard features. Currently this enables the PIM
+turn on PIM standard features. Currently this enables the PIM
@code{SYSTEM} module and determines which identifiers are pervasive
-(declared in the base module). If no other @samp{-fpim[234]} switch is
+(declared in the base module). If no other @samp{-fpim[234]} switch is
used then division and modulus operators behave as defined in PIM4.
@xref{Dialect, , ,gm2}.
@item -fpim2
-turn on PIM-2 standard features. Currently this removes @code{SIZE}
+turn on PIM-2 standard features. Currently this removes @code{SIZE}
from being a pervasive identifier (declared in the base module). It
places @code{SIZE} in the @code{SYSTEM} module. It also effects the
-behaviour of @code{DIV} and @code{MOD} operators.
+behavior of @code{DIV} and @code{MOD} operators.
@xref{Dialect, , ,gm2}.
@item -fpim3
-turn on PIM-3 standard features. Currently this only effects the
-behaviour of @code{DIV} and @code{MOD} operators.
+turn on PIM-3 standard features. Currently this only effects the
+behavior of @code{DIV} and @code{MOD} operators.
@xref{Dialect, , ,gm2}.
@item -fpim4
-turn on PIM-4 standard features. Currently this only effects the
-behaviour of @code{DIV} and @code{MOD} operators.
+turn on PIM-4 standard features. Currently this only effects the
+behavior of @code{DIV} and @code{MOD} operators.
@xref{Dialect, , ,gm2}.
@item -fpositive-mod-floor-div
@@ -667,18 +669,18 @@ and do not fall out at the end. Return checking can be disabled
via @samp{-fno-return}.
@item -fruntime-modules=
-specify, using a comma separated list, the runtime modules and their
+specify, using a comma separated list, the run time modules and their
order. These modules will initialized first before any other modules
-in the application dependency. By default the runtime modules list is
+in the application dependency. By default the run time modules list is
set to @code{Storage,SYSTEM,M2RTS,RTExceptions,IOLink}. Note that
these modules will only be linked into your executable if they are
-required. So adding a long list of dependant modules will not effect
+required. So adding a long list of dependent modules will not effect
the size of the executable it merely states the initialization order
should they be required.
@item -fscaffold-dynamic
the option ensures that @samp{gm2} will generate a dynamic scaffold
-infastructure when compiling implementation and program modules.
+infrastructure when compiling implementation and program modules.
By default this option is on. Use @samp{-fno-scaffold-dynamic}
to turn it off or select @samp{-fno-scaffold-static}.
@@ -695,7 +697,7 @@ necessary if the @samp{-c} is omitted.
@item -fscaffold-static
the option ensures that @samp{gm2} will generate a static scaffold
within the program module. The static scaffold consists of sequences
-of calls to all dependent module initialization and finalialization
+of calls to all dependent module initialization and finalization
procedures. The static scaffold is useful for debugging and single
stepping the initialization blocks of implementation modules.
@@ -703,7 +705,7 @@ stepping the initialization blocks of implementation modules.
generate a shared library from the module.
@item -fsoft-check-all
-turns on all runtime checks. This is the same as invoking
+turns on all run time checks. This is the same as invoking
GNU Modula-2 using the command options
@code{-fnil} @code{-frange} @code{-findex}
@code{-fwholevalue}
@@ -720,7 +722,7 @@ generate a swig interface file.
@item -funbounded-by-reference
enable optimization of unbounded parameters by attempting to pass non
@code{VAR} unbounded parameters by reference. This optimization
-avoids the implicit copy inside the callee procedure. GNU Modula-2
+avoids the implicit copy inside the callee procedure. GNU Modula-2
will only allow unbounded parameters to be passed by reference if,
inside the callee procedure, they are not written to, no address is
calculated on the array and it is not passed as a @code{VAR}
@@ -802,7 +804,7 @@ generate code to detect whole number overflow and underflow.
@section Elementary data types
This section describes the elementary data types supported by GNU
-Modula-2. It also describes the relationship between these data types
+Modula-2. It also describes the relationship between these data types
and the equivalent C data types.
The following data types are supported: @code{INTEGER},
@@ -851,7 +853,7 @@ in Modula-2 and ISO Modula-2: @code{NEW}, @code{DISPOSE}, @code{INC},
functions are: @code{ABS}, @code{CAP}, @code{CHR}, @code{FLOAT},
@code{HIGH}, @code{LFLOAT}, @code{LTRUNC}, @code{MIN}, @code{MAX},
@code{ODD}, @code{SFLOAT}, @code{STRUNC} @code{TRUNC} and
-@code{VAL}. All these functions and procedures (except @code{HALT},
+@code{VAL}. All these functions and procedures (except @code{HALT},
@code{NEW}, @code{DISPOSE} and, under non constant conditions,
@code{LENGTH}) generate in-line code for efficiency.
@@ -870,7 +872,7 @@ PROCEDURE ABS (i: <any signed type>) : <any signed type> ;
(*
CAP - returns the capital of character ch providing
- ch lies within the range 'a'..'z'. Otherwise ch
+ ch lies within the range 'a'..'z'. Otherwise ch
is returned unaltered.
*)
@@ -981,7 +983,7 @@ PROCEDURE HALT ;
(*
HIGH - returns the last accessible index of an parameter declared as
- ARRAY OF CHAR. Thus
+ ARRAY OF CHAR. Thus
PROCEDURE foo (a: ARRAY OF CHAR) ;
VAR
@@ -1210,7 +1212,7 @@ PROCEDURE LENGTH (a: ARRAY OF CHAR) : CARDINAL ;
@end example
This function is evaluated at compile time, providing that string
-@code{a} is a constant. If @code{a} cannot be evaluated then a call is
+@code{a} is a constant. If @code{a} cannot be evaluated then a call is
made to @code{M2RTS.Length}.
@example
@@ -1278,9 +1280,9 @@ The most dangerous set of mutually exclusive features found in the
four dialects supported by GNU Modula-2 are the @code{INTEGER}
division, remainder and modulus arithmetic operators. It is important
to note that the same source code can be compiled to give different
-runtime results depending upon these switches! The reference manual
+run time results depending upon these switches! The reference manual
for the various dialects of Modula-2 are quite clear about this
-behaviour and sadly there are three distinct definitions.
+behavior and sadly there are three distinct definitions.
The table below illustrates the problem when a negative operand is
used.
@@ -1298,14 +1300,14 @@ lval rval DIV MOD DIV MOD DIV MOD / REM
See also P24 of PIM2, P27 of PIM3, P29 of PIM4 and P201 of the ISO
Standard. At present all dialect division, remainder and modulus are
implemented as above, apart from the exception calling in the ISO
-dialect. Instead of exception handling the results are the same as the
-PIM4 dialect. This is a temporary implementation situation.
+dialect. Instead of exception handling the results are the same as the
+PIM4 dialect. This is a temporary implementation situation.
@node Exceptions, Semantic checking, Dialect, Using
@section Exception implementation
This section describes how exceptions are implemented in GNU Modula-2
-and how command line switches affect their behaviour. The option
+and how command line switches affect their behavior. The option
@samp{-fsoft-check-all} enables all software checking of nil
dereferences, division by zero etc. Additional code is produced to
check these conditions and exception handlers are invoked if the
@@ -1322,11 +1324,11 @@ architecture it does not. Therefore to ensure portability it is
recommended to use @samp{-fsoft-check-all}.
@footnote{@samp{-fsoft-check-all} can be effectively combined with
-@samp{-O2} to semantically analyse source code for possible runtime
+@samp{-O2} to semantically analyze source code for possible run time
errors at compile time.}
@node Semantic checking, Extensions, Exceptions, Using
-@section How to detect runtime problems at compile time
+@section How to detect run time problems at compile time
Consider the following program:
@@ -1344,7 +1346,7 @@ END bad ;
VAR
foo: CARDINAL ;
BEGIN
- (* the m2rte plugin will detect this as an error, post
+ (* The m2rte plugin will detect this as an error, post
optimization. *)
foo := bad ()
END assignvalue.
@@ -1356,7 +1358,7 @@ the code with the following options:
@example
$ gm2 -g -fsoft-check-all -O2 -c assignvalue.mod
-assignvalue.mod:16:0:inevitable that this error will occur at runtime,
+assignvalue.mod:16:0:inevitable that this error will occur at run time,
assignment will result in an overflow
@end example
@@ -1386,7 +1388,7 @@ assembly language.
GNU Modula-2 provides support for the special tokens @code{__LINE__},
@code{__FILE__}, @code{__FUNCTION__} and @code{__DATE__}. Support for
these tokens will occur even if the @samp{-fcpp} option is not
-supplied. A table of these identifiers and their data type and values
+supplied. A table of these identifiers and their data type and values
is given below:
@example
@@ -1399,13 +1401,13 @@ anywhere __LINE__ Constant Literal compatible
anywhere __FILE__ Constant string compatible
with parameter ARRAY OF CHAR or
an ARRAY whose SIZE is >= string
- length. Example
+ length. Example
"hello.mod"
procedure __FUNCTION__ Constant string compatible
with parameter ARRAY OF CHAR or
an ARRAY whose SIZE is >= string
- length. Example
+ length. Example
"calc"
module __FUNCTION__ Example
@@ -1414,10 +1416,10 @@ module __FUNCTION__ Example
anywhere __DATE__ Constant string compatible
with parameter ARRAY OF CHAR or
an ARRAY whose SIZE is >= string
- length. Example
+ length. Example
"Thu Apr 29 10:07:16 BST 2004"
-anywhere __COLUMN__ Gives a contant literal number
+anywhere __COLUMN__ Gives a constant literal number
determining the left hand column
where the first _ appears in
__COLUMN__. The left most column
@@ -1426,7 +1428,7 @@ anywhere __COLUMN__ Gives a contant literal number
@end example
The preprocessor @samp{cpp} can be invoked via the @samp{-fcpp}
-command line option. This in turn invokes @samp{cpp} with the
+command line option. This in turn invokes @samp{cpp} with the
following arguments @samp{-traditional -lang-asm}. These options
preserve comments and all quotations. @samp{gm2} treats a @samp{#}
character in the first column as a preprocessor directive.
@@ -1444,9 +1446,9 @@ PROCEDURE FatalError (a, file: ARRAY OF CHAR;
line: CARDINAL;
func: ARRAY OF CHAR) ;
BEGIN
- printf("%s:%d:fatal error, %s, in %s\n",
- ADR(file), line, ADR(a), ADR(func)) ;
- exit(1)
+ printf ("%s:%d:fatal error, %s, in %s\n",
+ ADR (file), line, ADR (a), ADR (func)) ;
+ exit (1)
END FatalError ;
#define ERROR(X) FatalError(X, __FILE__, __LINE__, __FUNCTION__)
@@ -1454,10 +1456,10 @@ END FatalError ;
VAR
pc: POINTER TO CARDINAL;
BEGIN
- pc := malloc(SIZE(CARDINAL)) ;
- IF pc=NIL
+ pc := malloc (SIZE (CARDINAL)) ;
+ IF pc = NIL
THEN
- ERROR('out of memory')
+ ERROR ('out of memory')
END
END cpp.
@end example
@@ -1495,7 +1497,7 @@ END doDSdbEnter ;
PROCEDURE doDSdbExit (s: String) ;
BEGIN
- s := PopAllocationExemption(TRUE, s)
+ s := PopAllocationExemption (TRUE, s)
END doDSdbExit ;
PROCEDURE DSdbEnter ;
@@ -1514,9 +1516,9 @@ END DSdbExit ;
PROCEDURE Sprintf1 (s: String; w: ARRAY OF BYTE) : String ;
BEGIN
DSdbEnter ;
- s := FormatString(HandleEscape(s), w) ;
- DSdbExit(s) ;
- RETURN( s )
+ s := FormatString (HandleEscape (s), w) ;
+ DSdbExit (s) ;
+ RETURN s
END Sprintf1 ;
@end example
@@ -1528,7 +1530,7 @@ the optimization passes of the GCC backend.
@subsection Optional procedure parameter
GNU Modula-2 allows the last parameter to a procedure or function
-parameter to be optional. For example in the ISO library
+parameter to be optional. For example in the ISO library
@file{COROUTINES.def} the procedure @code{NEWCOROUTINE} is defined as
having an optional fifth argument (@code{initProtection}) which, if
absent, is automatically replaced by @code{NIL}.
@@ -1563,8 +1565,8 @@ END NEWCOROUTINE ;
@end example
Note that it is illegal for this declaration to contain an initializer
-value for @code{initProtection}. However it is necessary to surround
-this parameter with the brackets @code{[} and @code{]}. This serves to
+value for @code{initProtection}. However it is necessary to surround
+this parameter with the brackets @code{[} and @code{]}. This serves to
remind the programmer that the last parameter was declared as optional
in the definition module.
@@ -1582,7 +1584,7 @@ are all exported from the @code{SYSTEM} module.
This section discuss the issues surrounding assignment, expression
and parameter compatibility, their effect of the additional
-fixed sized datatypes and also their effect of runtime checking.
+fixed sized datatypes and also their effect of run time checking.
The data types supported by the compiler are:
@example
@@ -1637,7 +1639,7 @@ COMPLEX128 SYSTEM
@end example
The Modula-2 language categorizes compatibility between entities of
-possibly differing types into three subcomponents: expressions,
+possibly differing types into three sub components: expressions,
assignments, and parameters. Parameter compatibility is further
divided into two sections for pass by reference and pass by value
compatibility.
@@ -1688,7 +1690,7 @@ not know which of the two bytes from @code{WORD32} should be copied
into @code{WORD16} and which two should be ignored. Currently the
types @code{BITSET8}, @code{BITSET16} and @code{BITSET32} are
assignment incompatible. However this restriction maybe lifted when
-further runtime checking is achieved.
+further run time checking is achieved.
Modula-2 does allow @code{INTEGER} to be assignment compatible with
@code{WORD} as they are the same size. Likewise GNU Modula-2 allows
@@ -1699,14 +1701,14 @@ assignment between @code{WORD} and @code{WORD32} even though on many
systems these sizes will be the same. The reasoning behind this rule
is that the extended fixed sized types are meant to be used by
applications requiring fixed sized data types and it is more portable
-to forbid the bluring of the boundaries between fixed sized and
-machine dependant sized types.
+to forbid the blurring of the boundaries between fixed sized and
+machine dependent sized types.
-Intemediate code runtime checking is always generated by the front
-end. However this intemediate code is only translated into actual
+Intermediate code run time checking is always generated by the front
+end. However this intermediate code is only translated into actual
code if the appropriate command line switches are specified. This
allows the compiler to perform limited range checking at compile time.
-In the future it will allow the extensive GCC optimisations to
+In the future it will allow the extensive GCC optimizations to
propagate constant values through to the range checks which if they
are found to exceed the type range will result in a compile time
error message.
@@ -1722,16 +1724,16 @@ the same size and family. Furthermore @code{INTEGER} and
reference case.
The types @code{BYTE}, @code{LOC}, @code{WORD} and @code{WORD}n
-derivitives are assignment and parameter compatible with any data type
+derivatives are assignment and parameter compatible with any data type
of the same size.
@node Unbounded by reference, Building a shared library, Type compatibility, Using
@section Unbounded by reference
This section documents a GNU Modula-2 compiler switch which implements
-a language optimisation surrounding the implementation of unbounded
+a language optimization surrounding the implementation of unbounded
arrays. In GNU Modula-2 the unbounded array is implemented by
-utilising an internal structure @code{struct @{dataType *address,
+utilizing an internal structure @code{struct @{dataType *address,
unsigned int high@}}. So given the Modula-2 procedure declaration:
@example
@@ -1811,7 +1813,7 @@ passed three times to @code{StrConCat}. Clearly even though parameters
@code{b} and @code{c} are never modified it would be incorrect to
implement them as pass by reference. Therefore the compiler checks to
see if any non @code{VAR} parameter is type compatible with any
-@code{VAR} parameter and if so it generates runtime procedure entry
+@code{VAR} parameter and if so it generates run time procedure entry
checks to determine whether the contents of parameters @code{b} or
@code{c} matches the contents of @code{a}. If a match is detected
then a copy is made and the @code{address} in the unbounded
@@ -1841,7 +1843,7 @@ END bar ;
Here we see that although parameter, @code{a}, is a candidate for the
passing by reference, it would be incorrect to use this
transformation. Thus the compiler detects that parameters, @code{a}
-and @code{f} are type compatible and will produce runtime checking
+and @code{f} are type compatible and will produce run time checking
code to test whether the address range of their respective contents
intersect.
@@ -1850,7 +1852,7 @@ intersect.
This section describes the linking related options. There are three
linking strategies available which are dynamic scaffold, static
scaffold and user defined. The dynamic scaffold is enabled by default
-and each module will register itself to the runtime @samp{M2RTS} via
+and each module will register itself to the run time @samp{M2RTS} via
a constructor. The static scaffold mechanism will invoke each modules
@samp{_init} and @samp{_finish} function in turn via a sequence of
calls from within @samp{main}. Lastly the user defined strategy
@@ -1943,7 +1945,7 @@ libtool --tag=CC --mode=compile gm2 -g -c c.mod -o c.lo
The second step is to generate the shared library initialization and
finalization routines. We can do this by asking gm2 to generate a
-list of dependant modules and then use this to generate the scaffold.
+list of dependent modules and then use this to generate the scaffold.
We also must compile the scaffold.
@example
@@ -2091,7 +2093,7 @@ block of a procedure.
@node Producing a Python module, Interface to C, Interface for Python, Using
@section How to produce a Python module
-This section descibes how it is possible to produce a Python module
+This section describes how it is possible to produce a Python module
from Modula-2 code. There are a number of advantages to this
approach, it ensures your code reaches a wider audience, maybe it is
easier to initialize your application in Python.
@@ -2311,9 +2313,9 @@ in the object file.
The @code{printf} declaration states that the first parameter
semantically matches @code{ARRAY OF CHAR} but since the module is for
-the C language it will be mapped onto @code{char *}. The token
+the C language it will be mapped onto @code{char *}. The token
@code{...} indicates a variable number of arguments (varargs) and all
-parameters passed here are mapped onto their C equivalents. Arrays and
+parameters passed here are mapped onto their C equivalents. Arrays and
constant strings are passed as pointers. Lastly @code{[ INTEGER ]}
states that the caller can ignore the function return result if desired.
@@ -2325,7 +2327,7 @@ MODULE hello ;
FROM libprintf IMPORT printf ;
BEGIN
- printf("hello world\n")
+ printf ("hello world\n")
END hello.
@end example
@@ -2348,8 +2350,8 @@ Actual Parameter | Default conversion | Type of actual
===============================================================
123 | none | long long int
"hello world" | none | const char *
-a: ARRAY OF CHAR | ADR(a) | char *
-a: ARRAY [0..5] OF CHAR| ADR(a) | char *
+a: ARRAY OF CHAR | ADR (a) | char *
+a: ARRAY [0..5] OF CHAR| ADR (a) | char *
3.14 | none | long double
@end example
@@ -2366,7 +2368,7 @@ identical to GNU C. The only alterations are that the keywords
@code{asm} and @code{volatile} are in capitals, following the Modula-2
convention.
-A simple, but highly non optimal, example is given below. Here we want
+A simple, but highly non optimal, example is given below. Here we want
to add the two @code{CARDINAL}s @code{foo} and @code{bar} together and
return the result. The target processor is assumed to be executing
the x86_64 instruction set.
@@ -2428,7 +2430,7 @@ ByteAlignment := '<*' AttributeExpression '*>' =:
AlignmentExpression := "(" ConstExpression ")" =:
@end example
-The @code{Alignment} ebnf statement may be used during contruction of
+The @code{Alignment} ebnf statement may be used during construction of
types, records, record fields, arrays, pointers and variables. Below
is an example of aligning a type so that the variable @code{bar} is
aligned on a 1024 address.
@@ -2632,13 +2634,13 @@ of a six bit set type followed by a 2 bit integer subrange.
This section describes the built-in constants and functions defined in
GNU Modula-2. The following compiler constants can be accessed using
-the @code{__ATTRIBUTE__} @code{__BUILTIN__} keywords. These are not
+the @code{__ATTRIBUTE__} @code{__BUILTIN__} keywords. These are not
part of the Modula-2 language and they may differ depending upon the
target architecture but they provide a method whereby common
libraries can interface to a different underlying architecture.
The built-in constants are: @code{BITS_PER_UNIT}, @code{BITS_PER_WORD},
-@code{BITS_PER_CHAR} and @code{UNITS_PER_WORD}. They are integrated into
+@code{BITS_PER_CHAR} and @code{UNITS_PER_WORD}. They are integrated into
GNU Modula-2 by an extension to the @code{ConstFactor} rule:
@example
@@ -2657,10 +2659,10 @@ CONST
LOCSPERWORD = __ATTRIBUTE__ __BUILTIN__ ((UNITS_PER_WORD)) ;
@end example
-Built-in functions are transparent to the end user. All built-in
+Built-in functions are transparent to the end user. All built-in
functions are declared in @code{DEFINITION MODULE}s and are imported
as and when required. Built-in functions are declared in definition
-modules by using the @code{__BUILTIN__} keyword. Here is a section of
+modules by using the @code{__BUILTIN__} keyword. Here is a section of
the ISO library @code{LongMath.def} which demonstrates this feature.
@example
@@ -2675,10 +2677,10 @@ function (for example if the programmer requested the address of
implemented in the @code{IMPLEMENTATION} @code{MODULE}.
Sometimes a function exported from the @code{DEFINITION} @code{MODULE}
-will have a different name from the built-in function within gcc. In
+will have a different name from the built-in function within gcc. In
such cases the mapping between the GNU Modula-2 function name and the
gcc name is expressed using the keywords @code{__ATTRIBUTE__}
-@code{__BUILTIN__} @code{((Ident))}. For example the function
+@code{__BUILTIN__} @code{((Ident))}. For example the function
@code{sqrt} in @code{LongMath.def} maps onto the gcc built-in function
@code{sqrtl} and this is expressed as:
@@ -2689,7 +2691,7 @@ PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((sqrtl)) sqrt
@end example
The following module @code{Builtins.def} enumerates the list of
-built-in functions which can be accessed in GNU Modula-2. It also
+built-in functions which can be accessed in GNU Modula-2. It also
serves to define the parameter and return value for each function:
@include m2/Builtins.texi
@@ -2698,7 +2700,7 @@ Although this module exists and will result in the generation of
in-line code if optimization flags are passed to GNU Modula-2, users
are advised to utilize the same functions from more generic libraries.
The built-in mechanism will be applied to these generic
-libraries where appropriate. Note for the mathematical routines to
+libraries where appropriate. Note for the mathematical routines to
be in-lined you need to specify the @samp{-ffast-math -O} options.
@node The PIM system module, The ISO system module, Built-ins, Using
@@ -2744,13 +2746,13 @@ There are also a variety of fixed sized @code{INTEGER} and
@code{CARDINAL} types. The variety of the fixed sized types will
depend upon the target architecture.
-@node Licence, Copying, The ISO system module, Top
-@section Licence of GNU Modula-2
+@node License, Copying, The ISO system module, Top
+@section License of GNU Modula-2
GNU Modula-2 is free software, the compiler is held under the GPL v3
@uref{http://www.gnu.org/licenses/gpl.txt},
its libraries (pim, iso and Logitech compatible) are under the
-GPL v3 with the GCC runtime library exception clause.
+GPL v3 with the GCC run time library exception clause.
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
@@ -2761,7 +2763,7 @@ a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>.
-More information on how these licences work is available
+More information on how these licenses work is available
@uref{http://www.gnu.org/licenses/licenses.html} on the GNU web site.
@c Copying node is inside the gpl_v3.texi
@@ -2770,7 +2772,7 @@ More information on how these licences work is available
@node Contributing, Internals, Copying, Top
@section Contributing to GNU Modula-2
-Please do. But also please read the GNU Emacs info under
+Please do and please read the GNU Emacs info under
@example
* Standards: (standards). GNU coding standards.
@@ -2794,9 +2796,9 @@ This section is still being written.
@node EBNF, Libraries, Internals, Top
@chapter EBNF of GNU Modula-2
-This chapter contains the EBNF of GNU Modula-2. This grammer currently
+This chapter contains the EBNF of GNU Modula-2. This grammar currently
supports both PIM and ISO dialects. The rules here are automatically
-extracted from the grammer files in GNU Modula-2 and serve to document
+extracted from the crammer files in GNU Modula-2 and serve to document
the syntax of the extensions described earlier and how they fit in
with the base language.
@@ -2810,13 +2812,6 @@ phase.
This chapter contains M2F, PIM and ISO libraries.
-@c Permission has been kindly granted by
-@c the authors of the ULM libraries to include them with GNU
-@c Modula-2.
-@c These libraries (under the GNU GPL) were written at the
-@c University of Ulm and were originally shipped with the ULM sparc
-@c Modula-2 compiler.
-
@include m2/gm2-libs.texi
@node Indices, , Libraries, Top
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-12-11 11:28 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-11 11:28 [gcc/devel/modula-2] More spelling corrections, spacing and minor obvious corrections Gaius Mulley
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).