Language Change Specification for Report Calling Path

LCS Number: LCS-2016-015
Version: 6
Date: 20-Mar-2017
Status: Voting
Author: Jim Lewis
Email: Main.JimLewis and Main.PatrickLehmann
Source Doc: LCS Examples Report Calling Path
Summary: CALL_..._NAME = Call stack with SIMPLE_NAME, PATH_NAME, INSTANCE_NAME

Voting Results: Cast your votes here

Yes:

  1. Jim Lewis - 20-Mar-2017 ver 6
  2. Mark Zwolinski - 2017-03-07 ver 3
  3. Rob Gaddi - 2017-03-19 ver 5
  4. Lieven Lemiengre - 2017-03-20 ver 5 - it's ok in it's current form but I would like to see Patrick Lehmann proposed changes applied
  5. Patrick Lehmann - 2017-03-20 ver 6
  6. Lars Asplund - 2017-03-23 ver 6 - Some typos need fixing but otherwise it's ok

No:

Abstain:

  1. Martin Zabel - 2017-02-15 any version - tool should be enhanced instead.
  2. Martin Thompson- 2017-02-17 Ditto

Revision Notes

Revision 7: 24-Mar-2017 * Added text about GET_CALL_PATH return value " The value designated by the return value has an ascending index range and a left-most index that is 0"

Revision 6: 20-Mar-2017 * Updated naming of the types to mostly match Patrick's request. * only CALL_PATH_VECTOR_PTR is different.

Revision 5: 18-Mar-2017 * Per meeting 16-Mar-2017, changed to function in std.env

Revision 4: 10-Mar-2017

  • Updated and reconciled with 015a.

revision 3: 19-Feb-2017

  • Selected array version as the one to go forward with

revision 2 15-Feb-2017

  • Updated contents of record to current file and line.

revision 1 Original 14-Feb-2017

Style Notes

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

Reviewing Notes

Similar to Option 2 of ReportCallingPath

Comments

1) I fixed the LCS number.

2) I think the tool should be enhanced instead to include more information in the report statement. Simulator brand "M" already shows the complete instance path the block which contains the report statement (in a process).

-- Martin Zabel - 2017-02-15

@MZ. Whether the user wants it or not, the report statement should provide this information? This proposal provides a simple way for a user to do this on their own:

report "Yada Yada" & to_string(MySubprogram'CALL_SIMPLE_NAME) ;

Why don't you show us how you are going to get the report statement to print this information when requested. You might get something slightly less complex, but it will only work exactly where you define it - report statements. For those of us who don't use the report statement, this give us the option to be able to print the information before calling std.env.stop (which I would prefer to stop quietly).

-- Jim Lewis - 2017-02-18

I have updated the proposal to show the trade-offs between a solution with report vs. a solution with 'CALL_SIMPLE_NAME

-- Jim Lewis - 2017-02-18

Suggested changes for 5.3.2.3 Predefined array types:

  • change CALL_PATH_ARRAY_TYPE to CALL_PATH_VECTOR
  • ... predefined record type CALL_PATH_TYPE ...

Suggested changes for 5.3.2.4 Predefined operations on array types

  • use another default separator sign: TAB or LF, because a call_path will never fit onto one simulator console line

Suggested changes for 5.3.3.2 Predefined record types

  • change name of CALL_PATH_TYPE to CALL_PATH_ELEMENT
  • Record element CurrentLineNumber should be of type POSITIVE instead of INTEGER

Suggested changes for 5.3.3.3 Predefined operations on record types

  • TO_STRING should also have a Separator parameter, defaulted to colon

Suggested changes for 5.3.4.4 Predefined access types

  • Now the access type name can be simplified to CALL_STACK

-- Patrick Lehmann - 2017-02-19

I suggest the type names:

  • CALL_PATH_ELEMENT
  • CALL_PATH_VECTOR
  • CALL_PATH
To get rid of the _TYPE suffix.

-- Patrick Lehmann - 2017-03-14

Some typos

  • type CALL_PATH_ELEMENT is record - Both CALL_PATH_ELEMENT and CALL_PATH_TYPE is used in the text
  • either the name a subprogram or the name of the construct - Missing an of
  • name element of each record, except the last one, contains - Maybe last one shoud be replaced by rightmost one. Not sure if last means the same for people reading from right to left...
  • The overloaded function TO_STRING[CALL_PATH_VECTOR, STRING return STRING] converts a CALL_PATH_TYPE to type STRING. - CALL_PATH_TYPE -> CALL_PATH_VECTOR
  • The overloaded function TO_STRING[CALL_PATH_VECTOR_PTR, STRING return STRING] converts a CALL_PATH_TYPE to type STRING. - CALL_PATH_TYPE =-> =CALL_PATH_VECTOR_PTS

-- Lars Asplund - 2017-03-23

Topic revision: r2 - 2017-04-24 - 22:18:48 - 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