ISSUE 243

Number 243
Category errata
Synopsis 10.3.1: Call functions "reentrant", not "recursive"
State lrmdraft
Class errata-simple
Arrival-DateJan 01 2003
Originator Paul Graham
Release 2001b: 10.3.1
Environment
http://boydtechinc.com/btf/archive/btf_2002/1794.html
http://boydtechinc.com/btf/archive/btf_2002/1795.html
Description

From Paul Graham, in
http://boydtechinc.com/btf/archive/btf_2002/1794.html :

The definitions of functions and tasks are unnecessarily divergent.

Section 10.2.1 says:

The first syntax shall begin with the keyword task, followed by the
optional keyword automatic, followed by a name for the task and a
semicolon, and ending with the keyword endtask. The keyword automatic
declares an automatic task that is reentrant with all the task
declarations allocated dynamically for each concurrent task entry.

While section 10.3.1 says:

The keyword automatic declares a recursive function with all the
function declarations allocated dynamically for each recursive call.

I think 10.3.1 should use "reentrant" instead of "recursive", since just
declaring a function "automatic" does not make it a recursive function.

The problem occurs only in 10.3.1, para. 3.
Mac also agreed to this change.
Fix

In 10.3.1, change

"The keyword automatic declares a recursive function with
all the function declarations allocated dynamically for
each recursive call."

TO:

"The keyword automatic declares an automatic function that
is reentrant with all the function declarations allocated
dynamically for each concurrent function call."

Audit-Trail
Unformatted


Hosted by Boyd Technology