Bishnupriya,
In writing this up, I've uncovered a few more issues.
Precisely when does the breakpoint come between static events and dynamic events? I have chosen the start of the initialization phase. In other words, an event created during start_of_simulation would be a static event, but an event created by a process would be a dynamic event.
Does sc_find_event() return events with implementation-defined names, or only hierarchically named events? To me, it should only return hierarchically named events, but I don't have a compelling argument.
Same question for sc_name_exists(). Does it include or exclude implementation-defined names? If its hierarchical-names-only, should we rename it to sc_hierarchical_name_exists()?
What should sc_event::basename() return for an implementation-defined name? The whole name? Part of the name? Something unrelated to name()?
1666-2005 says: "There shall be a single global namespace for hierarchical names. Each sc_object shall have a unique nonempty hierarchical name. An implementation shall not add any names to this namespace other than the hierarchical names of sc_objects explicitly constructed by an application"
I propose to append  " and the hierarchical names of hierarchically named events."
Does this forbid hierarchically-named kernel events? How about the events within predefined channels? Other kernel events? We have agreed that kernel events should not clutter the name hierarchy, but are they forbidden from doing so?
We need to finalize the rules for implementation-defined names. I propose: "... shall be a legal name as described in [...] but shall contain one or more characters that is not in the recommended character set for application-defined hierarchical names, that is, one or more characters that is not an upper or lower case letter, a decimal digit, an underscore, or a period character."
John A
-----Bishnupriya Bhattacharya <bpriya@cadence.com> wrote: -----
To: "john.aynsley@doulos.com" <john.aynsley@doulos.com>
From: Bishnupriya Bhattacharya <bpriya@cadence.com>
Date: 11/30/2010 04:04PM
Cc: "Martin.Janssen@synopsys.com" <Martin.Janssen@synopsys.com>, P1666 Technical WG <systemc-p1666-technical@eda.org>
Subject: RE: sc_event naming: Cadence position on proposed extension
John,
Â
Thinking more about the name "in_hierarchy", I'm now inlcined towards this name compared to "has_hierarchical_name" because I feel the term "hierarchical_name" may not be as clear to a user in conveying what exactly is meant - there is scope of confusing with "has_name". The user may think "has_hierarchical_name" is the same thing as "has_name". in_hierarchy" at least steers clear of the name and allows the user to think in a clearer context.
Â
My 2 cents.
Â
-Bishnupriya
From: john.aynsley@doulos.com [mailto:john.aynsley@doulos.com]
Sent: Tuesday, November 30, 2010 1:44 AM
To: Bishnupriya Bhattacharya
Cc: john.aynsley@doulos.com; Martin.Janssen@synopsys.com; P1666 Technical WG
Subject: RE: sc_event naming: Cadence position on proposed extension
Bishnupriya,
I fully agree that unlike static user-defined events, static kernel events need not be in the hierarchy - it's implementation-defined.
I fully agree that the spec should be predicated on in_hierarchy(), not has_parent().
Re. the choice of name "in_hierarchy", has_name() would be wrong, has_parent() would be wrong, is_child() would be wrong. Maybe has_hierarchical_name() is quite close? Or name_style() == SC_HIERARCHICAL or SC_IMPLEMENTATION_DEFINED, but I think that's OTT.
John A
-----Bishnupriya Bhattacharya <bpriya@cadence.com> wrote: -----
To: "john.aynsley@doulos.com" <john.aynsley@doulos.com>
From: Bishnupriya Bhattacharya <bpriya@cadence.com>
Date: 11/29/2010 06:14PM
Cc: "Martin.Janssen@synopsys.com" <Martin.Janssen@synopsys.com>, P1666 Technical WG <systemc-p1666-technical@eda.org>
Subject: RE: sc_event naming: Cadence position on proposed extension
John,
Â
I think we are on the same page. Comments below.
From: john.aynsley@doulos.com [mailto:john.aynsley@doulos.com]
Sent: Monday, November 29, 2010 7:02 PM
To: Bishnupriya Bhattacharya
Cc: Martin.Janssen@synopsys.com; P1666 Technical WG
Subject: RE: sc_event naming: Cadence position on proposed extension
Bishnupriya,
Re. sc_event() I was assuming as per your spec, i.e. user-defined static events are always hierarchically named.Â
Â
[ok]
Re. sc_event(const char*) Â (non-null name) I think we should put the user in control i.e. the event is always hierarchically named. (An implementation could give a warning if it wanted)Â
Â
[ok]
Re. hierarchically named events with an implementation-defined basename, I was thinking of kernel events. But we have already ruled out allowing primitive channels to be proper parents, so we would expect implementations to chose the other route (get_parent() == 0) for kernel events. Hence the implementation might as well be required to call sc_gen_unique_name for all hierarchically named events to guarantee uniqueness.Â
Â
[agreed]
sc_event::get_parent_object() does not exactly determine whether an event is hierarchically named in the sense that it would fail for a top-level event. So I would be in favor of bool sc_event::in_hierarchy().ÿ
ÿ
[agreed.ÿShould we explore a better name?]
ÿÿÿÿÿÿÿ Note ev.get_parent_object() != 0 ÿ=> ev.in_hierarchy()
ÿ ÿ ÿ ÿ but ÿ ÿev.get_parent_object() == 0 && ev.in_hierarchy() could hold for a top-level eventÿ
ÿ[indeed]
Re. allowing dots in implementation-defined basenames, I agree this is unnecessary given the above.ÿ
ÿ
[ok good]
Re. kernel events, I still say "as per sc_event()". In other words, whether the event appears in the hierarchy is implementation-defined, but if it does appear in the hierarchy then it shall be a child of its parent module or process instance, so an implementation may wish to take the alternative route. The LRM gives both the user and the implementation an escape hatch to avoid having events with a unique hierarchical name, but the user and implementation still have the choice.ÿ
ÿ
[ok, but just to make explicit oneÿdifferenceÿwith sc_event() - statically created kernel events also areÿsubject to the same implementation-defined rules - in other words statically created kernel events are not forced to be in hierarchy.]
One question: how should we distinguish implementation-defined names? Is "at least one character outside [A-Za-z0-9_.]" okay?ÿ
[well, there is no fulproof way to prevent collision, but I think it is reasonably unlikely to collide if we mandate a special char at beginning and end, like "%mymod.myproc.event_0%"]
ÿÿ
REVISED PARTIAL SPECÿ
ÿ
[agree with your revised spec below, exceptÿto change conditional from testing ev.parent() to testing ev.in_hierarchy(), and mandate what ev.parent() should return based on what ev.in_hierarchy() returns.]
ÿ
-Bishnupriya
ev.name() ÿis always a non-empty string and a well-formed name
If ev.parent() != 0 then
ÿ - ev is a member of ev.parent()->get_child_events()
ÿ - ev.name() == ev.parent()->name() '.' ev.basename()
ÿ - ev.name() is unique in the object hierarchy
ÿ - ev.basename() is seeded with ctor arg or with "event"
If ev.parent() == 0 then
ÿ - ev.name() is well-formed and implementation-defined
- We keep the current recommendation that application-defined string names should use the character set [A-Za-z0-9_]
- We add a recommendation (or a hard rule) that implementation-defined names should include one or more characters outside the set [A-Za-z0-9_], or should start with some specific character we choose (e.g. '%'), or some similar rule (TBD)
Constructor sc_event(const char* arg)
ÿ - ev.parent() != 0
ÿ - ev.basename() seeded from arg
ÿ - ev.name() guaranteed unique in object hierarchy
Constructor sc_event()
ÿ Either (the only choice for user-defined static events)
ÿ ÿ - ev.parent() != 0
ÿ ÿ - ev.basename() seeded with "event"
ÿ ÿ - ev.name() guaranteed unique in object hierarchy
ÿ or (on a case-by-case basis)
ÿ ÿ - ev.parent() == 0
ÿ ÿ - ev.basename() == implementation-defined
Kernel events
ÿ - as per sc_event()
John A
From: Bishnupriya Bhattacharya <bpriya@cadence.com> To: "john.aynsley@doulos.com" <john.aynsley@doulos.com> Cc: "Martin.Janssen@synopsys.com" <Martin.Janssen@synopsys.com>, P1666 Technical WG <systemc-p1666-technical@eda.org> Date: 28/11/2010 18:02 Subject: RE: sc_event naming: Cadence position on proposed extension
John,
ÿ
I think we are converging. Hopefully another iteraion and we will be done.
ÿ
I've made specific comments below to your last two mails.
From: john.aynsley@doulos.com [mailto:john.aynsley@doulos.com]
Sent: Sunday, November 28, 2010 2:10 PM
To: Bishnupriya Bhattacharya
Cc: john.aynsley@doulos.com; Martin.Janssen@synopsys.com; P1666 Technical WG
Subject: RE: sc_event naming: Cadence position on proposed extension
Bishnupriya,
For sc_event(), Either/or meant that the implementation can chose on a case-by-case basis.
ÿ
[ok. But the LRM needs to specify what the cases are. Is that implied? e.g. for static events, sc_event() will always place it in hierarchy, etc.] ÿ
For sc_event(const char* nm) I propose a non-null string arg implies the event is hierarchically named, even for a dynamic event, but only because that is what you wrote in your original spec. If you want all dynamic events to be implementation-defined in this respect regardless of ctor arg, my proposal could be changed accordingly. But I thought the ideas was that if the user passes a string name as an sc_event ctor arg, they wo uld get what they asked for and accept the performance hit. I am not opposed to the change, but I think the WG should discuss it.
[you are right of course. My original spec had indeed proposed that sc_event ctor called with explicit string arg should always appear in hierarchy even for dynamic events. Now, I'm in two minds on this one - does it make sense to leave this decision for dynamic events to the implementation so that it can balance out any possible performance issues? I will go by what the WG consensus is on this topic.]
ÿ
ÿ[please see more comments below to previous mail.]
John A
[snip]
ÿ
From: john.aynsley@doulos.com [mailto:john.aynsley@doulos.com]
Sent: Saturday, November 27, 2010 7:58 PM
To: Bishnupriya Bhattacharya
Cc: john.aynsley@doulos.com; Martin.Janssen@synopsys.com; P1666 Technical WG
Subject: RE: sc_event naming: Cadence position on proposed extension
Bishnupriya,
I am generally aligned with your goals. However, I do have some other concerns. I would like a consistent set of rules that will not surprise casual users and that can be reasoned about.
Hence, I would like the following (pseudocode) to hold:
ev.name() ÿis always a non-empty string and a well-formed name
If ev.parent() != 0 then
ÿ- ev is a member of ev.parent()->get_child_events()
[ok]
ÿ- ev.name() == ev.parent()->name() '.' ev.basename()
[ok]
ÿ- ev.name() is unique in the object hierarchy
[ok]
ÿ- ev.basename() can still be implementation-defined
[why does this need to be implementation-defined? If ev appears in the hierarchy, its basename is either seeded by "event" or by the user provided string arg. Is this implementation defined to accommodate the SNPS extension of naming kernel events as child of owning object? I think that is better accommodated by an implementation allowing an event's parent to be a sc_object other than module/process (need not be in LRM, but implementation can do its own superset), and this maintains a normal, legal basename for the event. Note that for "mymod.mysig.posedge", we do not want that this kernel event is a child of "mymod", and it's basename is "mysig.posedge", if that is what is being implied.] ÿ
If ÿev.parent() == 0 then
ÿ- ev.name() is well-formed and implementation-defined
[ok]
ÿ
[one comment. I'm ok with using sc_event::parent() to determine if an event is in the hierarchy or not, but it might be cleaner if we add an explicit API like "bool sc_event::in_hierarchy()" or something better named.] ÿ
Now for well-formed names. I agree with you that it would be nice for dynamic events and kernel events to have unique names without reference to the regular hierarchical namespace. But the current rules for legal names seem reasonable to me. I don't want to allow pathological names. So I propose:
- We keep the current recommendation that application-defined string names should use the character set [A-Za-z0-9_]
[ok]
- We add a rule that implementation-defined basenames may include embedded dots
[this I'm not sure we need - see my comment above.]
- We add a recommendation (or a hard rule) that implementation-defined names should include one or more characters outside the set [A-Za-z0-9_], or should start with some specific character we choose (e.g. '%'), or some similar rule (TBD)
[ok.]
Summary:
Constructor sc_event(const char* arg)
ÿ- ev.parent() != 0
[ok, except for my dynamic event comment] ÿ
ÿ- ev.basename() seeded from arg
[ok]
ÿ- ev.name() guarenteed unique in object hierarchy
[ok]
Constructor sc_event()
ÿEither
[this choice is mandatory for user-defined static events, and is implementation-defined for dynamic events]
ÿ ÿ- ev.parent() != 0
[ok]
ÿ ÿ- ev.basename() == implementation-defined
[not sure what this means. The basename will be seeded by "event", wouldn't it? just like for sc_signal() etc.]
ÿ ÿ- ev.name() guarenteed unique in object hierarchy
[ok]
ÿor
[this choice is implementation-defined for dynamic events]
ÿ ÿ- ev.parent() == 0
[ok]
ÿ ÿ- ev.basename() == implementation-defined
[ok]
Kernel events
ÿ- as per sc_event()
[I assume you mean how to name kernl event and whteher it appears in hierarchy is implementation defined, like sc_event() ctor. Agreed, except that I think it is important to mention that kernel event should not clutter *current* hierarchy and appear as child of module/process - this is not what SNPS extension proposes either, so that should be ok I think.] ÿ
ÿ
Are we coming close?
ÿ
Thanks,
-Bishnupriya
Does that work?
ÿ
John A
-----Bishnupriya Bhattacharya <bpriya@cadence.com> wrote: -----
To: "john.aynsley@doulos.com" <john.aynsley@doulos.com>
From: Bishnupriya Bhattacharya <bpriya@cadence.com>
Date: 11/25/2010 06:59PM
Cc: Martin Janssen <Martin.Janssen@synopsys.com>, "systemc-p1666-technical@eda.org" <systemc-p1666-technical@eda.org>
Subject: RE: sc_event naming: Cadence position on proposed extension
John,
ÿ
First a warning. This is long and complex! I apologise but hopefully I've covered all the scenarios necessary to drive to a conclusion.
ÿ
I think we need to look at dynamic events and kernel events together, and endeavour to come up with a consistent set of rules for both.
ÿ
First note that all events *could* have a parent. But what is important is that it is not a 2-way list, i.e. all events do not appear in child list of it's parent => you won't see all events in the desig hierarchy because top-down hierarchy traversal won't find all events.
ÿ
For dynamic events, the proposal is
ÿ
- an implementation is free to choose whether to place a dynamic event in the hierarchy or not (i.e. make it visible to parent or not)
- if implementation chooses to place in hierarchy
ÿ ÿ=> event automatically gets a hierarchical, legal name
ÿ ÿ=> name can clash with other user-defined event/object name
- What happens if implementation chooses not to place a dynamic event in the hierachy?
ÿ ÿ- does the event have a name()? if so, what is the name()?
ÿ ÿ=> note by not placing in hierarchy it is already guaranteed that ÿname (if any) will not clash with user-defined event/object name in the sense that user will never see a warning from name clash
ÿ ÿ- according to cadence proposal it is upto the implementation again to determine what it returns for name()
ÿ ÿ- you propose we should make the rule, if not in hierarchy then no name, but this is not good because there can be legitimate use cases where dynamic events appear in sensitivity list of processes, just like kernel events and there is a requirement to print some kind of name that identifies the event
ÿ
ÿ ÿ void run() { // SC_THREAD
ÿ ÿ ÿ sc_event e1;
ÿ ÿ ÿ e1.notify(100, SC_NS);
ÿ ÿ ÿ wait(e1);
ÿ ÿ ÿ// this is pathological; in reality it will be something like run() passes e1 to spawned thread which waits on e1
ÿ ÿ ÿ // and run() notifies e1 at some later point based on some condition
ÿ ÿ }
ÿ
ÿ - suppose we do keep the output of name() implementation-defined, then next consideration is does name() have to be legal? I would say "no". From the use model perspctive it is beneficial to provide unique names for everything, including things in design hierarchy and things not in design hierarchy. It becomes difficult/complex for an implementation to generate a legal name but be able to distinguish from other user-defined object/event names, especially for a dynamic event. In this case, there is not the benefit of an object sitting in between (as happens typically for the kernel event case), so obvious legal names chosen by an implementation can easily clash with user-defined names - "clash" not in the sense that it will generate a warning, but in the practical sense that two names can be identical, then how will user know which object/event is being referred to from the name?
ÿ
It will be beneficial from user's perspective if the LRM says "If an implementation chooses not to place a dynamic event in the design hierarchy, then name() returns an implementation-defined string. It is recommended that for unique identification purposes, an implementation guarantees that the name of an event that does not appear in the deisgn hierarchy is not the same as the name of any object/event in the design hierarchy, or any object/event not in the design hierarchy". The easiest way (and maybe only way) to accomplish this is to return an illegal name (perhaps also appending an incremented global counter to every name). I am also ok if the LRM says nothing on this topic but simply lets the implementation choose an implementation defined name, although I would prefer if the LRM mandates/recommends uniqueness as that will be beneficial to user.
ÿ
Why this complexity? Things would have been much simpler if all events were placed in design hierarchy and had legal names, but we cannot do that for dynamic events because of performance reaons. The other option is to let non-hierarchy events have null names, but that does not fulfil use case reqmnt. - e.g. print sensitivity list of process. Hence the necessity to pick up the complexity.
ÿ
Next kernel events.
ÿ
- the proposal is that kernel events (static or dynamic) will not be placed in *current* design hierarchy; rationale is users do not care to see kernel events cluttering up their design hierarchy
- it is desirable for kernel event to have a name for same reason as dynamic event (can appear in process senisitivity list)
- kernel event name is implementation defined, and similar to dynamic events it will be good to have unique name
- as far as legality of name is concerned, if an implementation chooses the SNPS extension proposal, there is a way to provide unique legal names to kernel events owned by an object. But all kernel events are not owned by an object, and an implementation may not choose to adopt the SNPS extension proposal. So, for the most general use case, LRM should not mandate that kernel event names be legal - this also makes the rules be the same between kernel events and dynamic events.
ÿ
Coming from all this, one choice can be that LRM mandates sc_event::name() always returns a non-empty string for all events. This is generally a useful feature. Then there are two cases.
ÿ
1) for events that appear in design hierarchy the name is automatically a legal name
ÿ ÿ - all static events appear in design hierarchy
ÿ ÿ - dynamic events may or may not appear (implementation defined)
ÿ ÿ - kernel events do not appear (in *current* design hierarchy, implementation can have a superset of LRM specified hierarchy, e.g. the SNPS extension proposal) ÿ ÿ ÿ
ÿ
2) for events that do not appear in design hierarchy the name is implementation defined
ÿ ÿ - not obligated to be legal name
ÿ ÿ - ok to obligate that prefix contains hierarchical name of parent
ÿ ÿ - obligated/recommended to be unique (from names in design hierarchy and from names not in design hierarchy) ÿ
ÿ ÿ - perhaps can add if user provides a string basename as ctor argument then name() should use the user-provided string in the final name - e.g.
ÿ
ÿ ÿ void run() { // SC_THREAD
ÿ ÿ ÿ wait(10, SC_NS);
ÿ ÿ ÿ sc_event e1("myevent");
ÿ ÿ ÿ cout << e1.name() << endl; // legal to print something like "mymod.run. myevent_0"
ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ// not legal to print "mymod.run. event_0" as user-provided string is not used
ÿ ÿ }
ÿ
I'm also ok if LRM does not specify what sc_event::name() will return for not-in-hierarchy event, but leaves the whole thing implementation-defined, although I will prefer if LRM lays down the rules in 2) as IMO that will be beneficial to user. ÿ
ÿ
Are we converging?
ÿ
Thanks,
-Bishnupriya
From: john.aynsley@doulos.com [mailto:john.aynsley@doulos.com]
Sent: Thursday, November 25, 2010 4:40 PM
To: Bishnupriya Bhattacharya
Cc: Martin Janssen; systemc-p1666-technical@eda.org
Subject: RE: sc_event naming: Cadence position on proposed extension
Bishnupriya,
Yes, what you say all makes sense, but I still have some issues.
I would propose that the implementation-defined name shall be a legal name, which I think means
ÿ ÿ ÿ ÿ- Name non-empty
ÿ ÿ ÿ ÿ- No space characters anywhere in the name
ÿ ÿ ÿ ÿ- Dots allowed, but not at the beginning or the end of the name or next to other dots
My reason for this is to reduce the chances of breaking any existing application code
I am okay with the rule that the implementation-defined name shall not clash with a user-defined name. But I think the only way the implementation can guarantee this is, as you say, to put the name in a part of the namespace that is unreachable to the application. As far as I can see, this implies that the implementation-defined name shall have a prefix that is either the name of ÿthe kernel object being constructed or the name of an sc_object whose construction has already finished. Do you agree? In which case, for clarity, I think we should spell this out in the LRM. (At least, I don't see why we wouldn't.)
John A
From: Bishnupriya Bhattacharya <bpriya@cadence.com> To: "john.aynsley@doulos.com" <john.aynsley@doulos.com>, "systemc-p1666-technical@eda.org" <systemc-p1666-technical@eda.org>, Martin Janssen <Martin.Janssen@synopsys.com> Date: 25/11/2010 10:26 Subject: RE: sc_event naming: Cadence position on proposed extension
John,
ÿ
Comments below.
From: john.aynsley@doulos.com [mailto:john.aynsley@doulos.com]
Sent: Wednesday, November 24, 2010 5:46 PM
To: systemc-p1666-technical@eda.org; Martin Janssen; Bishnupriya Bhattacharya
Subject: Re: sc_event naming: Cadence position on proposed extension
All,
Here is an updated summary of the event naming proposal now on the table:
* Events are not sc_objects
* All static events are named (the default constructor generates a name)
* Dynamic events can be named or unnamed
* Kernel events can be named or unnamed, and the names are implementation-defined
* Named events have a parent in the object hierarchy (which can only ÿbe a module or a process)
* Add a method sc_event::get_parent_object() to return this parent (null for unnamed events)
* The prefix to each event's name is the hierarchical name of the event's parent
* An event name shall not clash with an object name (sc_gen_unique_name is called iteratively)
* Add methods get_child_events, get_top_level_events, and sc_find_event that mirror the methods of the object hierarchy
* Add a method sc_name_exists(const char*) that returns true if the name is in either the object or the event namespace
Can everyone now live with that? ÿ
ÿ
Ok with me.
ÿ
One clarification needs to be added for kernel event names. Kernel event names are implementation defined, but they shall not clash with that of user-defined objects and events. This can be ensured in different ways (as you discuss below) - making the kernel event name be illegal, or introducing extra hierarchy with "." for kernel event name. Essentially this is to rule out implementation defined names being something like "mymod.mysig_posedge" which can easily clash with an user-defined object/event in mymod.
ÿ
I have one question regarding the constraints on implementation-defined kernel names. Do they have to be legal names? If so, there might be a risk of a clash with a subsequent user-defined name, which would then get given a suffix from sc_gen_unique_name. If not, the only way to create an illegal name would be to include a space character (the AZaz09_ character set for string names is recommended, but not obligatory).
I would vote for implementation-defined kernel names being legal names. The kernel could always include separators such as -> or / that are unlikely to be used by an application. Moreover, as I read the LRM, I think we could allow implementation-defined hierarchical event names to include extra '.' characters since these would not technically be embedded in string names (arguments passed to ctors) but would be part of the hierarchical name of a new kind of event object.
To clarify, when you construct an sc_object or an sc_event you pass in a string name that must not contain dots. But an implementation-defined kernel event name could include extra dot separators, I think.
yes, I think it is ok for an implementation to compose a name with the "." character, as long as the ctor string argument does not include "." and the name does not clash with user-defined names. e.g. the SNPS extension proposal that uses names like "mymod.mysig.posedge" would be ok since there is no way a user-defined object/event would end up with same name - the namespace "mymod.mysig" is unreachable for user-defined events/objects.
ÿ
However, I do not think that these details should be included in the LRM. This is the part that is implementation-defined. What the LRM should include is that the implementation is obliged to choose a name that does not clash with a user-defined object/event.
ÿ
Does that make sense?
ÿ
-Bishnupriya
Thanks,
John A
From: Martin Janssen <Martin.Janssen@synopsys.com> To: "john.aynsley@doulos.com" <john.aynsley@doulos.com> Cc: "systemc-p1666-technical@eda.org" <systemc-p1666-technical@eda.org> Date: 23/11/2010 17:27 Subject: Re: sc_event naming: Cadence position on proposed extension
Hi John,
To avoid further delays in the process, I'll change my vote to option 2
provided it states that kernel event naming is implementation-defined,
as Bishnupriya proposed in an earlier email.
One more question: How is a vendor supposed to experiment with
developing a sane object/event naming and parent/child relationship
hierarchy while remaining compliant with the 2010 standard if the '.'
character in the name is an error? (not only for kernel event naming)
-Martin
On 2010-11-23 17:35, Bishnupriya Bhattacharya wrote:
John, Martin,
Comments below.
-Bishnupriya
From: owner-systemc-p1666-technical@eda.org [mailto:owner-systemc-p1666-technical@eda.org] On Behalf Of Martin Janssen
Sent: Tuesday, November 23, 2010 7:31 PM
To: john.aynsley@doulos.com
Cc: systemc-p1666-technical@eda.org
Subject: Re: sc_event naming: Cadence position on proposed extension
John,
A lot of nice words from Bishnupriya, but the only objection against our extension
proposal is hierarchical naming of objects, which is not part of our proposal, and
for good reason.
But does this mean that we should do a lousy job on hierarchical event naming?
Or, put differently, should we treat events as first class citizens or not?
-- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Wed Dec 1 14:30:58 2010
This archive was generated by hypermail 2.1.8 : Wed Dec 01 2010 - 16:19:24 PST