Changes are shown in red font.
Deletions are crossed out.
Editing notes in green font.
Reviewing Notes
This LCS reflects the actions requested by the proposal.
I think I agree with the proposal.
Section 13.2 Page 196 first text paragraph, last sentence:
A library clause defines logical names for design libraries in the host environment.
A library clause appears as part of a context clause, either at the beginning of a
design unit or within a context declaration.
For the former case, the declaration of each logical name defined by the library clause
occurs immediately within the root declarative region associated with the design unit
For a library clause that appears within a context declarative region,
the logical names are not declared; rather, there is an equivalent
library clause that declares the logical names (see 13.4).
What is meant by "not declared", does this mean not analyzed?
If it means not analyzed, then we should not be checking the
if the library denoted by the context declaration matches the
library denoted by the context reference.
Without the paragraph identified in the proposal (as to be deleted),
a compiler can treat a context declaration design unit as a template
and only do syntax checking on it. Then fully analyze it when
it is referenced in a context reference.
OTOH, if the true intent was to fully analyze the context declaration
unit, and then only use the results of that analysis in a context
reference, then it should be possible to use work to designate the
working library for the context declaration design unit and not have
any issues with that work designating something different from
the design unit has the context reference - however, currently
use of work is forbidden.
OTOH, removal of this constraint would imply that a context
declaration design unit would never be able to reference the
library work. Maybe that is something we want in the future
and should maintain this restriction.
Details of Language Change
13.4 Context clauses
[DELETE pargraph 1 on page 198 ]
It is an error if, during analysis of a design unit, there is a library clause in the expanded context clause of the
design unit that occurs as part of a replacement of a context reference, and a logical name in that library
clause denotes a different design library from the design library denoted by the logical name during analysis
of the context declaration from which the library clause was expanded.