Language Change Specification for Repair Text on Context Clauses

LCS Number: LCS-2016-I07
Version: 1 {7-Mar-2017}
Date: 7-Mar-2017
Status: Voting
Author: Jim Lewis
Email: Main.JimLewis
Source Doc: Fix 2008 Context Clause
Summary: Repair Text on Context Clauses

Voting Results: Cast your votes here



  1. Jim Lewis - 2017-03-07 ver 1
  2. Patrick Lehmann - 2017-03-13 ver 1
  3. Steve Grout - 2017-0-04 ver 1
  4. Thomas Preusser - 2017-03-15 ver 1
  5. Rob Gaddi - 2017-03-16 ver 1


Revision Notes

Style Notes

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.


Topic revision: r11 - 2020-02-17 - 15:34:42 - JimLewis
Copyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback