TWiki
>
P1076 Web
>
Vhdl2019CollectedRequirements
>
OptionalSemicolon
>
TopLCS2016_071b
(revision 19) (raw view)
Edit
Attach
---+ Language Change Specification for Optional Commas ---++ <table border="1" cellpadding="0" cellspacing="0" id="table1" rules="all"> <tbody> <tr> <td bgcolor="#ffffff" valign="top"> *LCS Number:* </td> <td bgcolor="#ffffff" valign="top">LCS-2016-071b</td> </tr> <tr> <td bgcolor="#edf4f9" valign="top"> *Version:* </td> <td bgcolor="#edf4f9" valign="top">1</td> </tr> <tr> <td bgcolor="#ffffff" valign="top"> *Date:* </td> <td bgcolor="#ffffff" valign="top">2-Nov-2016</td> </tr> <tr> <td bgcolor="#edf4f9" valign="top"> *Status:* </td> <td bgcolor="#edf4f9" valign="top"> </td> </tr> <tr> <td bgcolor="#ffffff" valign="top"> *Author:* </td> <td bgcolor="#ffffff" valign="top">Rob Gaddi</td> </tr> <tr> <td bgcolor="#edf4f9" valign="top"> *Email:* </td> <td bgcolor="#edf4f9" valign="top"> [[RobGaddi]]</td> </tr> <tr> <td bgcolor="#ffffff" valign="top"> *Source Doc:* </td> <td bgcolor="#ffffff" valign="top"> OptionalSemicolon </td> </tr> <tr> <td bgcolor="#edf4f9" valign="top"> *Summary:* [[OptionalSemicolon][ ]]</td> <td bgcolor="#edf4f9" valign="top">Allow for extra commas at the end of lists</td> </tr> </tbody> </table> ---+++ Voting Results: Cast your votes here Yes: 1 <span data-mce-mark="1">%USERSIG{RobGaddi - 2016-11-17}%</span> 1 <span data-mce-mark="1">%USERSIG{KevinJennings - 2016-11-22}%</span> 1 <span data-mce-mark="1">%USERSIG{MortenZilmer - 2016-12-11}%</span> 1 <span data-mce-mark="1">%USERSIG{MartinThompson - 2016-12-12}%</span> 1 <span data-mce-mark="1">%USERSIG{RyanHinton - 2016-12-14}%</span> - ver 1 1 <span data-mce-mark="1">%USERSIG{MartinZabel - 2017-01-09}%</span> - ver 1 1 <span data-mce-mark="1">%USERSIG{PatrickLehmann - 2017-01-23}%</span> - ver 1 1 %USERSIG{LievenLemiengre - 2017-01-27}% - ver 1 1 %USERSIG{MarkZwolinski - 2017-02-23}% No: 1 <span data-mce-mark="1">%USERSIG{JimLewis - 2016-12-17}%</span> - ver 1 1 <span data-mce-mark="1">%USERSIG{FarrellOstler - 2017-02-12}%</span> - ver 1 <p> </p> <p> </p> <p> </p> 1 %USERSIG{BrentHahoe - 2017-02-16}% Version 1 [[#BrentHahoe20170309][Comment below]] Abstain: 1 <span data-mce-mark="1">%USERSIG{ThomasPreusser - 2016-11-21}%</span> <p> </p> ---+++ Details of Language Change Changes are shown in red font. <sticky> ---++++ Section 5.2.2.1 Enumeration types ---+++++ Middle page 37 <pre>enumeration_type_definition ::= ( enumeration_literal { , enumeration_literal } <font color="red">[ , ]</font> )</pre> ---++++ Section 5.3.2.1 Array types ---+++++ Bottom page 44 <pre>unbounded_array_definition ::= array ( index_subtype_definition { , index_subtype_definition } <font color="red">[ , ]</font> ) of element_subtype_indication</pre> ---+++++ Top page 45 <pre>index_constraint ::= ( discrete_range { , discrete_range } <font color="red">[ , ]</font> )</pre> ---++++ Section 5.3.3 Record types ---+++++ Bottom page 51 <pre>record_constraint ::= ( record_element_constraint { , record_element_constraint } <font color="red">[ , ]</font> )</pre> ---++++ Section 6.5.7.1 Association Lists ---+++++ Top page 81 <pre>association_list ::= association_element { , association_element } <font color="red">[ , ]</font></pre> ---++++ Section 6.9 Group template declarations ---+++++ Middle page 93 <pre>entity_class_entry_list ::= entity_class_entry { , entity_class_entry } <font color="red">[ , ]</font></pre> ---++++ Section 8.4 Indexed names ---+++++ Bottom page 111 <pre>indexed_name ::= prefix ( expression { , expression } <font color="red">[ , ]</font> )</pre> ---++++ Section 9.3.3.1 Aggregates ---+++++ Bottom page 132 <pre>aggregate ::= ( element_association { , element_association } <font color="red">[ , ]</font> )</pre> </sticky> -- Main.RobGaddi - 2016-16-03 ---++ Comments The proposal is about having optional semicolons. Why is the LCS written to define optional commas? -- <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1">%BUBBLESIG{KevinJennings - 2016-11-03}%</span></span></span> Agreed. Split the LCS into [[LCS2016_071a]] for the semicolon and [[TopLCS2016_071b]] for the commas so they can be voted independently. -- <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1">%BUBBLESIG{RobGaddi - 2016-11-16}%</span></span></span> This would have been great in the beginning of VHDL. I am afraid, now it will just be another source of incompatibility. -- <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1">%BUBBLESIG{ThomasPreusser - 2016-11-21}%</span></span></span> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> Patrick just pointed out to me that the optional commas make conditional compilation substantially more useful. Otherwise, if you have to conditionally compile out part of a association list you may have to jump through horrific hoops to make the commas work correctly.</span></span></span> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> Thomas, I'm not sure what you mean about incompatibility. VHDL2017 code requires VHDL2017 support to run; if your tools only support older language revisions then they won't support newer language features.</span></span></span> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> -- <span data-mce-mark="1">%BUBBLESIG{RobGaddi - 2017-01-10}%</span></span></span></span> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> @PL & @RG This is something that is going to make coding 30 seconds faster at the cost of making review significantly more difficult. </span></span></span> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> The conditional compilation argument is intriguing, but I suspect if one properly structures their conditional compilation, then there will be no compelling reason to allow this. Can someone provide an example of the claim about optional commas making conditional compilation more useful - a good place to add it is to the proposal.</span></span></span> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> -- <span data-mce-mark="1">%BUBBLESIG{JimLewis - 2017-01-28}%</span></span></span></span> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> @RG I think Thomas' point is that since tools do not support this now, and it is not a feature everyone is going to be asking for, how long do you think it will take for the feature to be relevant in simulation? Synthesis? </span></span></span> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> -- <span data-mce-mark="1">%BUBBLESIG{JimLewis - 2017-01-28}%</span></span></span></span> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> @JL Why does it make reviews more difficult?</span></span></span> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> Allowing optional trailing comas looks like this and does not decrease readability. </span></span></span> <pre>inst : entity work.foo port map ( X => A, Y => B, ); </pre> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> Instance with conditional compilation and two optional ports. The conditional compilation must take care of comma insertion. </span></span></span> <pre>inst : entity work.foo port map ( `if port1 /= "" then X => A `end if `if port1 /= "" and port2 /= "" then , `end if `if port2 /= "" then Y => B `end if ); </pre> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> The same example with trailing commas allowed: </span></span></span> <pre>inst : entity work.foo port map ( `if port1 /= "" then X => A, `end if `if port2 /= "" then Y => B `end if ); </pre> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> *JL:* [...] optional commas making conditional compilation more useful.</span></span></span> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> *PL:* No it's the other ways around. If we get conditional compilation, we'll need optional commas and semicolons, unless we want to blow up our code with too much conditional code directives to handle corner cases like the last item in a list has no comma or semicolon.</span></span></span> <span data-mce-mark="1"><span data-mce-mark="1"><span data-mce-mark="1"> -- <span data-mce-mark="1">%BUBBLESIG{PatrickLehmann - 2017-01-28}%</span></span></span></span> I agree with the comments about conditional compilation. <span data-mce-mark="1"><span data-mce-mark="1"> -- <span data-mce-mark="1">%BUBBLESIG{MarkZwolinski - 2017-02-23}%</span><span data-mce-mark="1"> #BrentHahoe20170309 My basic objection is that this LCS screws with the grammar of the language. %BUBBLESIG{BrentHahoe - 2017-03-09}% %COMMENT%</span></span></span>
Edit
|
Attach
|
P
rint version
|
H
istory
:
r23
|
r21
<
r20
<
r19
<
r18
|
B
acklinks
|
V
iew topic
|
Raw edit
|
More topic actions...
Topic revision: r1 - 2017-04-02 - 15:44:51 -
TWikiGuest
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-2026 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback