Clause 19.3, Clarifications on definition of compilation unit

PROPOSAL

In clause 19.3, MODIFY the text as follows:

DELETE:

The exact mechanism for defining which files constitute a compilation unit is tool specific. Two extreme cases are:

1) All files make a single compilation unit (in which case the declarations in the compilation-unit scope are accessible anywhere within the design)

2) Each file is a separate compilation unit (in which case the declarations in each compilation-unit scope are accessible only within its corresponding file)

REPLACE WITH:

The exact mechanism for defining which files constitute a compilation unit is tool specific.  However, compliant implementations shall have the same default behavior, and tools shall provide use models that allow both of the following cases:

1) All files on a given compilation command line make a single compilation unit (in which case the declarations within those files are accessible anywhere else within the constructs defined within those files).

2) Each file is a separate compilation unit (in which case the declarations in each compilation-unit scope are accessible only within its corresponding file)

 

DELETE:

The default is that each file is a separate compilation unit.

REPLACE WITH:

The default definition of a compilation unit is defined in case 2) above, in which each file is a separate compilation unit.

 

DELETE:

A tool must also provide a mechanism (such as a command line switch) that specifies that all of the files compiled together are a single compilation unit.   (Since this is now enumerated as item 2) in the list above)