I essentially agree with John in this regard. The focus of this committee is languge interoperability. The base foundation of such interoperability comes from specifying how certain entities/objects interact with each other across the language boundary. For example the LRM should specify the conditions under which I can connect a sc_lv<N> to logic[N:0]. In some cases we may need to define APIs (for example the DPI-C) to ensure that the two languages interoperate at a higher level. But these APIs can only be layered on top of a base interoperability foundation (which we are working on). Also some of these APIs may be very specific to a simulator implementation. Thanks Logie. ________________________________ From: owner-sv-xc@eda.org [mailto:owner-sv-xc@eda.org] On Behalf Of John Shields Sent: Tuesday, June 12, 2007 1:18 PM To: K. Cameron [SV] Cc: Kathy McKinley; sv-xc@eda.org Subject: Re: Strong typing and shared packages Hi Kevin, I'm sorry, but I pretty much disagree with everything you've said. First, strong typing has nothing to do with shared memory; they are completely orthogonal concepts. Typing rules are semantic rules, they apply at analysis. Your comments about this baffle me! As to the OO/methods/API stuff, it is interesting to discuss, but what does it have to do with the interoperability across these languages? We are are not building APIs to allow stitching simulators that support different languages together. If that is done, it will be entirely internal to a multi language product suite and it won't be specified for external use anyway. I believe we must have an interoperability specification that products can be built to support and that accommodates a fair range of flows. It will not be based on some API specification. It will be expressed in terms of aspects of one language, how they may be referenced in another, and what it means to do so. Nothing or as close to nothing as possible will be said about "how" tools can be designed and implemented to achieve it. I believe you just don't accept that. Am I right? Type compatibility is very important but if there is some priority to talking about requirements aspects of this specification, I am happy to proceed in a different order, but I don't see any reason to as yet. Regardless, I don't imagine talking about an object model at the design interface boundary as a way of defining simulation semantics and it has no priority in mind. The conclusion I am coming to is that you want something from this standards effort that I believe it will never deliver and that is another basic disconnect. Am I missing your intention? Kev, eventually we will get to consider PLI and how it might work in a multilingual environment, but IMHO, only after we are done with the foundation interoperability specification. This committee will not specify a simulation backplane and API to interface simulators together. If that is needed, it will need an umbrella group to be studied under and appropriate sponsorship. If we need to argue this basic point and resolve it, then let's have at it so we can end up aiming in similar directions again. There are plenty of interested parties following the discussion. What you are saying and my reaction to it should not strike others ambivalently either. I want to keep an open mind and give the greatest benefit of the doubt as to whether I understand the interactions, but this is a thread of thought expressed multiple times by you and I think I get it. We've been at this 6 months and I think we can clarify what we are and are not aiming it, can't we? -John K. Cameron [SV] wrote: John Shields wrote: Hi Kathy, Sorry I was not able to participate last meeting, but I was on vacation. My intent first is to define a conceptual model of the requirement for strong typing and gain a shared understanding of it and why it must be a requirement. It is just wrong for one strongly typed language to subvert its own strong typing requirements by interoperability with another strongly typed language that shares the same rquirement! It is correct to see strong typing as the requirement and interpret the shared package as an example of how this could be achieved. If there was any concern that the strong typing concept did not have possible good approaches, the idea of shared packages should have clarified that. I absolutely want us to consider and accept the requirement or argue its merits appropriately. This is primary. To be provocative, I do suggest the shared package concept is a very effective way of making an interoperable definition of strong typing. There is plenty of room for a wide variation of tool flows to achieve practical implementations of this. It is consistent with the requirements we are building, particularly transparency. It doesn't present any flaws to me, though we are not debating details of it as a proposed solution. But, I insist that it is not necessary for us to debate this in order to accept the requirement of supporting strong typing. Consider it an open invitation to anyone to propose other ways to specify how strong types may be used across language boundaries. Got any? Strong typing is usually required where there is shared memory, and sharing memory between different simulation algorithms/threads is generally a good source of bugs. Personally I prefer a more object-oriented approach with methods and message-passing. Before arguing about the typing there should be a semantic model for the objects on the boundary and an understanding of the methods they should support for simulation to work. IMO typing has more to do with syntax than semantics and the semantics are more important. For an example you can consider the 4-state logic type in Verilog: in VCS for DPI functions a 4-state vector (less than int size) is represented as 2 ints - the bits of one for 0/1 or Z/X the other indicating which (that's all type information), however semantically I prefer to look at it as an array of objects which have multiple dimensions i.e. value, strength and certainty. So I'd rather see an interface that provides methods (functions) for manipulating the value, strength and certainty than a way of directly sharing the 2 ints worth of memory. Kev. Regards, John Kathy McKinley wrote: I had an action item from last meeting to start an email discussion about a point of confusion. We were discussing the binding requirements type compatibility proposal (http://www.eda-stds.org/sv-xc/hm/0094.html), and confusion arose from this paragraph: Implications of Typing Rules One of the ways in which strong typing is defined and enforced is to say a given type is unique and the only way to declare objects of that type is to reference that specific type in the declaration of an object. Kind of obvious really, but there is no other structurally equivalent type. What does it mean to support strong typing in a mixed language environment? The same idea applies. The conceptual model that the user should have is that the "same" type should be used to declare objects in each language. The practical model is that a single description of the strong type is declared by the user and it implies a single equivalent type in the other languages. The general requirement for transparency suggests that it should not matter which language is used for that description. A unified and practical way to specify this is to support the abstraction of shared packages. Such a package contains types which can be referenced in any of the languages. The implementation model is also practical, deriving an equivalent package or header file with a namespace. For now, regardless of how it is specified or implemented, one has to accomplish this in order to properly support strong typing. Some interpreted this paragraph to describe a conceptual model and how it might be applied, and others felt that this paragraph might propose a specific definition of strong typing involving shared packages. John, do you want to clarify your intent when you wrote it? Does anyone have an opinion about either possible direction? -- This message has been scanned for viruses and dangerous content by MailScanner <http://www.mailscanner.info/> , and is believed to be clean. -- This message has been scanned for viruses and dangerous content by MailScanner <http://www.mailscanner.info/> , and is believed to be clean. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Tue Jun 12 22:55:38 2007
This archive was generated by hypermail 2.1.8 : Tue Jun 12 2007 - 22:55:41 PDT