Language Change Specification for Anonymous Types

LCS Number: LCS-2016-016
Version: 5
Date: 21-Mar-2017
Status: Voting
Author: Jim Lewis
Email: Main.JimLewis
Source Doc: Anonymous Types
More Doc: History
Related LCS': Interface Type Declarations - LCS_2016_059
Generics on subprogram call - LCS_2016_049
All interface lists are ordered - LCS_2016_086
Summary: Leverages interface type definitions introduced in generic lists to create an anonymous type declaration for interface lists

Voting Results: Cast your votes here


  1. Jim Lewis - 21-Mar-2017 ver 5
  2. Patrick Lehmann - 2017-03-21 - ver 5
  3. Lieven Lemiengre - 2017-01-20 - ver 3
  4. Hendrik Eeckhaut - 2017-01-27 ver 3
  5. Thomas Preusser - 2017-01-31 ver 3



  1. Kevin Jennings - 2017-2-9 Ver 3
  2. Brent Hayhoe - 2017-02-16 Version 3 - Abstain due to lack of personal time for review.

Revision Notes

Version 5: 21-Mar-2017
  • anonymous_type_indication move to LCS 059
  • change "type ; " to "type is private ;"
  • Added clarifications to edit in section on page 81 after

Version 4: 11-Mar-2017

  • in added:
    • It is an error if the subtype of the port or parameter is not determinable from the context.

Version 3: 25-Jan-2017

  • Fixed reference to interface type definition
  • In paragraphs on p74 and p81 added create generic list if it does not already exist.
  • In paragraph on p81 changed actual generic to association element

Version 2: 17-Jan-2017

  • Review with Patrick
  • Now uses type is interface_type_definition
  • Added 2nd port to example showing scalar type

Revision 1: 13-Jan-2017

Style Notes

Changes are shown in red font. Deletions are crossed out. Editing notes in green font.


Version 2

On a second reading, I found some ambiguities:
  • The term "anonymous type declaration" is not introduced (yes by EBNF, but not textual).
  • "a corresponding anonymous formal generic type added to the end of the generic list"
    What if for example a procedures has no generic list? Does every entity have an empty generic list by default OR is a sentence missing, that such a list is created if it doesn't exist?

Other changes:

  • For any VHDL construct with a port or parameter association list whose corresponding interface object declaration has a type defined by a an anonymous type declaration, there is a corresponding construct with a generic association list and a port or parameter list. For each port or parameter whose type is specified as an anonymous type declaration, an actual genericassociation element is added to the end of the generic association list to associate the anonymous formal generic type with the subtype of the actual parameter. The original port or parameter list is unchanged.

-- Patrick Lehmann - 2017-01-19

Is there a typo in the syntax definition of anonymous_type_definition ?

-- Tristan Gingold - 2017-01-19

What kind of typo? The difference to LCS 059 is the missing (not required) identifier.

-- Patrick Lehmann - 2017-01-19

interface_type_definition is defined in LCS 059, so this LCS fully depends on 059. In fact, only the editing note has the typo.

-- Tristan Gingold - 2017-01-19

Created Version 3. @TG and @PL thanks for the updates.

  • @TG Updated typo in editing note
  • @PL.1 Not sure how to address this, not all terms are "introduced".
  • @PL.2 Updated p74 and p81 paragraphs to create the generic list if it did not already exist.
  • @PL.3 Changed actual generic to association element

-- Jim Lewis - 2017-01-26

Fixed some typos in the example for section 6.5.2.

-- Martin Zabel - 2017-01-30

@MZ Thanks.

-- Jim Lewis - 2017-01-30

Moved anonymous_type_declaration to LCS 059.

-- Patrick Lehmann - 2017-03-12

Topic revision: r1 - 2017-07-16 - 04:01:53 - JimLewis
Copyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback