SV-EC Meeting Minutes 6 January 2003 Active (At one or more of last 4 meetings) (-----a----aaaaa) v Arturo Salz (Synopsys) (-----aa-aaaaaaa) v Brad Pierce (Synopsys) (a-aaaa-aaa-aaaa) v Cliff Cummings (Sunburst) (aaaaa-aaaa-aaaa) v David Smith (Synopsys) (---aaa-a-aaaaaa) v Francoise Martinolle (Cadence) (------------aaa) v Jay Lawrence (Cadence) (aaaaaaaaaaaa---) v Karen Pieper (Synopsys) (aaa-aaaaaaaaaaa) v Kevin Cameron (National) (aaaapaaaaaaaaaa) v Mehdi Mohtashemi (Synopsys) (-aaaaaaaa-aaaaa) v Neil Korpusik (Sun) (-aaaaaaa-aaaaaa) v Stefen Boyd (Boyd Technology, Inc.) (-aaa-a-aaaa---a) n Dennis Brophy (ModelTech) (-----a-a-a-a---) n Tim Corcoran (WHDL) (---------aa-a-a) n Don Mills (LCDM Engineering) (--------aa-a-a-) n Stu Sutherland (Sutherland-HDL) (---a-aa-----a--) n Kurt Takara (0-in) Inactive (Missed last 4 meetings) (--a------------) n Adam Krolnik (LSI Logic) (---a-a---------) n Alec Stanculescu (Fintronic) (-aaa-----------) n Dave Kelf (Co-Design) (aa-aa----------) n Heath Chambers (HMC) (--a--a-a-------) n Michael McNamara (Verisity) (aaa------------) n Paul Graham (Cadence) (aapaa----------) n Peter Flake (Co-Design) (a--------------) n Roy Armoni (Intel) (aapa-a---------) n Simon Davidmann (Co-Design) (aa---a---------) n Steven Sharp (Cadence) (-----a---------) n Stephen Meier (Synopsys) (-aaaaa--a------) n Tom Fitzpatrick (Co-Design) (-----a---------) n Zeev Kirshenbaum (Verisity) a => Attended p => Attended by proxy - => Missed v => Eligible to vote at next meeting (based on attendance only) n => Not eligible to vote at next meeting (based on attendance only) Action Items: 1. Arturo: provide builtin operator method section in Section 7. Set groundwork for builtin operator methods. Use guidelines discussed during meeting. (left over from last meeting). 2. Francoise: find all types with ranges on them. Check to see if shorthand notation can be specified and if it's already present. 3. David: provide information on Jan 21 meeting. 4. David: raise issue with BC of enumerated type strong typing vs. static cast vs. dynamic cast. 5. Arturo: incorporate Jay's proposal into formal proposal for LRM. This is the removal of increment and decrement on enums replaced with prev, next, first, and last methods (with offset arguments as appropriate). 6. Arturo: provide better use (or term) for the term "scalar" (or handle conflict with the use of scalar in 1364). 7. David: raise issue of shared namespace of system tasks and system functions ($cast) with Stu 8. Arturo: hold discussion on reflector and propose solution for system task/system function namespace problem. Minutes taken by Stefen Boyd 1. Review minutes from the 16 December meeting and approve Moved to approve - Dennis, Second - Mehdi, passed 2. Review Action items (see minutes from 16 December meeting) 1) Arturo: add information on string conversion (for implicit and explict casts) to section 3.13. Handled in CH-21. 2) David: raise unicode issue with SV-BC and SV-CC (pass to SV-BC) Passed to SV-BC. They are deciding to deprecate Unicode support. 3) Arturo: provide builtin operator method section in Section 7. Set groundwork for builtin operator methods. Use guidelines discussed during meeting. Incomplete. 4) Mehdi: add examples for 3.8 Handled in CH-11 (clarified). 5) Arturo: look at clarifying wording in CH-11 related to triggered and new syncrhonization object. Handled in CH-11. 3. Update on meeting schedule 1) go to weekly meetings Stefen - Can we make some of them be non-voting David proposal - Between regular meetings have 1hr meeting between regular meetings (not required for voting rights). Will use same conf call number. 2) Full day meeting on January 21. David - Need to setup location. Looking into time during EC full day (Jan 21) and BC full day for covering common issues. 4. Review LRM 1) Review and approve CH-21 on section 3.7. Abstain - Kevin, Neil; passed 2) Review and approve CH-12, CH-13, CH-14, CH-15 for section 3.10 passed 3) Finish review of 3.10 and through CH. 4. Section 3.10 Jay - Section at end of 3.10 seems to overlap with section 3.10.3 Arturo - The end of 3.10 should just point to section 3.10.3 David - You are suggesting only replacing the first sentence? Arturo - yes Jay - Pointing out dynamic checking of discontiguous ranges is very expensive Arturo - Issue needs to be raised with BC on how to change how casting is done. Look at end of 3.14 - where point is made that static checking doesn't do strong typing Jay - Issue is whether strong typing should happen by default or if it is available only when needed. Kevin - I would like it to work like ANSI C. Arturo - We need to send this to BC if we want to either open the door to weak typing or take Jay's suggestion that we allow assignments without casting. Jay - Can we add note about performance? CH-26: At end of Section 3.10 REPLACE: The type is checked in assignments, arguments and relational operators (which check the values) WITH: Type checking of enumerated types used in assignments, as arguments and with operators is covered in Section 3.10.3. CH-27: At end of Section 3.10.3 REPLACE: Casting can be used to perform an assignment of a different data type to an enumerated type. WITH: Casting can be used to perform an assignment of a different data type, or an out of range value, to an enumerated type. Section 3.10.5 Arturo - Likes proposal to change ++ and -- for enum David - Big change... now section needs to be rewritten to show new use of Arturo - Only thing lost is access to nth item Jay - not if you allow a parameter Discussion of how arguments might be given to methods to access a given number. Decision was to remove the increment/decrement operators for enumerated types and add first, last, next, and previous methods with optional offset argument (to be proposed). Section 3.11 no changes Section 3.12 will postpone discussion until chapter 11 Section 3.13 no changes Section 3.14 - dynamic casting Arturo - Will resend example that shows need for dynamic cast Francoise - Why do we need task and function? Why not parameterize it differently? With error it returns uninitialized value? Arturo - Returning uninitialized value is wrong. Stefen - I would use function form and prefer task/function behavior to the use of parameter. Arturo - Need for this could be an untyped mailbox that can get either one class A or class B by testing with $cast Francoise - This is bigger issue where we have task and functions with slightly different behavior Cliff - We looked at this in 1364 and it didn't make it into 1364 standard Dave - Issue is that user can't redefine combo task/function. Can either stick with combo task/function, use parameter, or create separate names for task vs function. Motion to accept proposal as written - David, second - Brad Francoise, Neil - opposed; Cliff, Kevin - abstain; 7 yes David - Changes noted: fatal removed from runtime error, task call now will not change value on failure, scalar. CH-28: Section 3.14 Paragraph starting "When called as task" REPLACE: "a fatal runtime error occurs." WITH: "a runtime error occurs and the destination variable is left unchanged." CH-29: Section 3.14 Paragraph starting "When called as a function," REPLACE: When called as a function, no runtime error occurs, and the destination variable is set to its corresponding uninitialized value, which depends on the type of the variable. WITH: When called as a function, no runtime error occurs, and the destination variable is left unchanged. Jay - scalar has meaning in 1364 as a single bit. David - Can we redefine scalar or come up with a better word? How about one in the bnf "scalared"? Stefen - Have we used atomic? Jay - Why not handle arrays? Arturo - Not sure how that should be handled... would need to consider every case. David - What do we actually call these? Arturo - Looking at 1364, the timing checks state that they are not system tasks and they can't be used in procedural code. Stefen - but that doesn't solve our problem since these get used in procedural code David - Consider alternatives to deal with $cast name space issue. Hold email discussion and make proposal. Jay raised the question of when should we discuss some of his open issues with respect to persistent events. Jay - Suggesting that non-blocking event would better suit the purpose than persistent event David - Some discussion needs to occur on the reflector. Events are handled in more detail in Chapter 12. Section 4.2 David - Jay noted that VeraLite is still mentioned Jay - top of p.22 and in note CH-30: Section 4.2 in paragraphs starting "Unpacked arrays" and "Note:" REPLACE: VeraLite WITH: SystemVerilog Propose - Reject the shorthand notation for array definitions (remove paragraph beginning with Note:) Proposed - Stefen Second - Francoise Abstain - Abstain Opposed - David, Kevin, Brad, Mehdi, Arturo Support - 4 Not passed. Shorthand notation remains. Jay - Should it be able to be used on every type?AA General agreement that it should be used consistently. Francoise to investigate where this should be done. 5. Next Meeting David - Will meet next on Jan 13th. 6. Meeting closed