TWiki
>
P1076 Web
>
VHDL2017
>
LCS2016_049
(2017-07-16,
JimLewis
)
(raw view)
E
dit
A
ttach
---+ Language Change Specification for Map Generics On Subprogram Call ---++ | <sticky><b>LCS Number:</b></sticky> | LCS-2016-049 | | <sticky><b>Version:</b> </sticky> | 7 | | <sticky><b>Date:</b> </sticky> | 21-Mar-2017 | | <sticky><b>Status:</b> </sticky> | Voting | | <sticky><b>Author:</b> </sticky> | Jim Lewis | | <sticky><b>Email:</b> </sticky> | [[Main.JimLewis]] | | <sticky><b>Source Doc:</b></sticky> | [[MapSubprogramGenericOnCall][Map Generics On Subprogram Call]] | | <sticky><b>More Doc:</b></sticky> | [[LCS2016_049_history][history]] | | <sticky><b>Summary:</b> </sticky> | Map Generics On Subprogram Call | ---++ Style Notes <noautolink><sticky> Changes are shown in %RED%red font%ENDCOLOR%. Deletions are %RED%<del>crossed out</del>%ENDCOLOR%. Editing notes in %GREEN%green font%ENDCOLOR%. ---++ Details of Language Change ---++++ 049.1: 3rd paragraph in 4.2.1 General on page 20 An uninstantiated subprogram %RED%without a generic map aspect%ENDCOLOR% shall not be called, except as a recursive call within the body of the uninstantiated subprogram. Moreover, an uninstantiated subprogram %RED%without a generic map aspect%ENDCOLOR% shall not be used as a resolution function or used as a conversion function in an association list. ---++++ 049.2: 5th paragraph in 6.5.7.2 on page 84 <font color="green">[Add new list item as the last item in the list for the list that starts with]</font> The purpose of a generic map aspect is as follows:%BR% <font color="green">[5 other list items unmodified]</font> - A generic map aspect appearing immediately within a subprogram header associates actuals with the formals defined by the same subprogram header. This applies to a generic map aspect appearing in the subprogram header of an explicitly declared generic-mapped subprogram%RED%,<del> or</del>%ENDCOLOR% a generic-mapped subprogram that is equivalent to a subprogram instantiation declaration%RED%, or a generic-mapped subprogram that is implicitly defined when a subprogram call consists of a call to an uninstantiated subprogram with a generic map aspect%ENDCOLOR%. ---+++ Section 9.3.4 Function calls ---++++ <font color="green">049.3: [Edit paragraph: In section 9.3.4 on page 136, 1st paragraph]</font> A function call invokes the execution of a function body. The call specifies the name of the function to be invoked<font color="red">, the actual generics, if any, to be associated with the formal generics of the function,</font> and <font color="red"><strike>specifies</strike></font> the actual parameters, if any, to be associated with the formal parameters of the function. Execution of the function body results in a value of the type declared to be the result type in the declaration of the invoked function. ---++++<font color="green"> 049.4: [Edit paragraph: In section 9.3.4 on page 136, 1st paragraph]</font> <pre> function_call ::= function_name <font color="red">[ generic_map_aspect ]</font>[ <font color="red">parameter_map_aspect <strike>( actual_parameter_part )</strike></font> ] <font color="red">parameter_map_aspect ::= [ <b>parameter map</b> ] ( <i>parameter</i>_association_list )</font> <font color="red"><strike>actual_parameter_part ::= parameter_association_list</strike></font> </pre> ---++++ <font color="green">049.5: [Add paragraph: In section 9.3.4 on page 136, before 3th paragraph counting BNF as one paragraph]</font> <font color="red">For each formal generic of a function, a function call shall specify exactly one corresponding actual generic. This actual generic is specified either explicitly, by an association element (other than the actual part open) in the association list, or in the absence of such an association element, by a default.</font> ---++++ <font color="green">049.6: [Edit paragraph to delete reference to 6.5.2: In section 9.3.4 on page 136, 3th paragraph counting BNF as one paragraph]</font> For each formal parameter of a function, a function call shall specify exactly one corresponding actual parameter. This actual parameter is specified either explicitly, by an association element (other than the actual part open) in the association list, or in the absence of such an association element, by a default expression<font color="red"><strike> (see 6.5.2)</strike></font>. ---++++ <font color="green">049.7: [Edit paragraph: In section 9.3.4 on page 136, 4th paragraph counting BNF as one paragraph]</font> It is an error if the function name denotes an uninstantiated function <font color="red">and the function call does not have a generic map aspect</font>. ---++++ <font color="green">049.8: [Add paragraph: In section 9.3.4 on page 136, after 4th paragraph counting BNF as one paragraph]</font> <font color="red"> For an uninstantiated function call with a generic map aspect there is an implicitly defined subprogram instantiation declaration and a call to the implicitly defined subprogram instance. The implicit subprogram instance is defined prior to the uninstantiated function call in the declaration region that immediately encloses and/or includes the function call. The call to the uninstantiated function is equivalent to a call to the implicitly instantiated function with the same parameters that were specified in the uninstantiated function call. The implicitly instanced function does not create a designator that can be referenced separately from the function call. Hence, ambiguity can not be introduced by the existence of an implicit function instance. </font> ---+++ Section 10.7 Procedure Call Statement ---++++ <font color="green">[049.9: Edit: Change BNF production of procedure_call of 10.7 on page 163 as follows]</font> <pre> procedure_call ::= procedure_name <font color="red">[ generic_map_aspect ]</font>[ <font color="red">parameter_map_aspect <strike>( actual_parameter_part )</strike></font> ]</pre> ---+++ Section 10.7 Procedure Call Statement ---++++ <font color="green">049.10: [Edit paragraph: In section 10.7 on page 163, 3rd paragraph where BNF counts as 1 paragraph]</font> The procedure name specifies the procedure body to be invoked. It is an error if the procedure name denotes an uninstantiated procedure <font color="red">and the procedure call does not have a generic map aspect. The generic map aspect, if present, specifies the association of actual genierics with formal generics of the procedure</font>. The <font color="red"><strike>actual parameter part</strike> parameter map aspect</font>, if present, specifies the association of actual parameters with formal parameters of the procedure. ---+++ Section 10.7 Procedure Call Statement ---++++ <font color="green">049.11: [Add paragraph: In section 10.7 on page 163 after 3rd paragraph where BNF counts as 1 paragraph]</font> <font color="red"> For each formal generic of a procedure, a procedure call shall specify exactly one corresponding actual generic. This actual generic is specified either explicitly, by an association element (other than the actual open) in the association list or, in the absence of such an association element, by a default. </font> ---++++ <font color="green">049.12: [Add paragraph: In section 10.7 on page 163 after 3rd paragraph where BNF counts as 1 paragraph]</font> <font color="red"> For an uninstantiated procedure call with a generic map aspect there is an implicitly defined subprogram instantiation declaration and a call to the implicitly defined subprogram instance. The implicit subprogram instance is defined prior to the uninstantiated procedure call in the declaration region that immediately encloses the procedure call. The call to the uninstantiated procedure is equivalent to a call to the implicitly instantiated procedure with the same parameters that were specified in the uninstantiated procedure call. The implicitly instanced procedure does not create a designator that can be referenced separately from the procedure call. Hence, ambiguity can not be introduced by the existence of an implicit procedure instance. </font> ---+++ Section 11.4 Concurrent procedure calls ---++++ <font color="green">049.13: [Edit: 2nd paragraph of 11.4 on page 173]</font> The procedure call statement consists of the same procedure name<font color="red">, generic map aspect,</font> and <font color="red"><strike>actual parameter part</strike> parameter map aspect</font> that appear in the concurrent procedure call statement. ---++++ <font color="green">049.14: [Edit: Note 2 at the end of 11.4 on page 173]</font> NOTE 2-The value of an implicitly declared signal GUARD has no effect on evaluation of a concurrent procedure call unless it is explicitly referenced in one of the actual parts of the <font color="red"><strike>actual parameter part</strike> parameter map aspect</font> of the concurrent procedure call statement. ---+++ 14.6 Dynamic elaboration ---++++ <font color="green">049.15: [Edit: List item b in section 14.6 on page 213]</font> b) Execution of a subprogram call %RED%that is not an uninstantiated subprogram%ENDCOLOR% involves the elaboration of the parameter association list. This involves the elaboration of the parameter association element or elements in the association list associated with each interface declaration. Elaboration of the parameter association elements associated with a formal parameter declaration proceeds as follows: ---++++ <font color="green">049.16: [Add: New List item c in section 14.6 on page 214]</font> %RED%c) Execution of a subprogram call that is an uninstantiated subprogram involves the elaboration of the implicitly defined subprogram instantiation declaration and elaboration of the call to the implicitly defined subprogram instance.%ENDCOLOR% ---++++ <font color="green">049.17: [Edit: Change current list item c to list item d in section 14.6 on page 214]</font> %RED%d <del>c</del>%ENDCOLOR%) %GREEN%[NOTE: remaining text is unchanged]%ENDCOLOR% ---+++ Annex C ---++++ <font color="green">049.18: [Delete: actual_parameter_part on page 477]</font> <pre><font color="red"><strike>actual_parameter_part ::= parameter_association_list</strike></font></pre> ---++++ <font color="green">049.19: [Edit: function_call on page 487]</font> <pre> function_call ::= function_name <font color="red">[ generic_map_aspect ]</font>[ <font color="red">parameter_map_aspect <strike>( actual_parameter_part )</strike></font> ] </pre> ---++++ <font color="green">049.20: [Add: parameter_map_aspect on page 492]</font> <pre><font color="red">parameter_map_aspect ::= [ <b>parameter map</b> ] ( <i>parameter</i>_association_list )</font></pre> ---++++ <font color="green">049.21: [Edit: procedure_call on page 493]</font> <pre> procedure_call ::= procedure_name <font color="red">[ generic_map_aspect ]</font>[ <font color="red">parameter_map_aspect <strike>( actual_parameter_part )</strike></font> ]</pre> <br> <br> ---++ Comments %COMMENT%</sticky> </noautolink>
E
dit
|
A
ttach
|
P
rint version
|
H
istory
: r29
<
r28
<
r27
<
r26
<
r25
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r29 - 2017-07-16 - 18:07:19 -
JimLewis
P1076
Log In
or
Register
P1076 Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
Webs
Main
P1076
Ballots
LCS2016_080
P10761
P1647
P16661
P1685
P1734
P1735
P1778
P1800
P1801
Sandbox
TWiki
VIP
VerilogAMS
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback