ICM Issue Resolution Document (IIRD) IIRD ID: 4.1 ISSUE TITLE: Removal of Extraneous Argument for [End ICM Section] Keyword REQUESTOR: Kelly Green DATE SUBMITTED: August 17, 2004 DATE REVISED: August 28, 2004 DATE ACCEPTED BY IBIS OPEN FORUM: October 29, 2004 **************************************************************************** **************************************************************************** STATEMENT OF THE ISSUE: The keyword [End ICM Section] presently requires an argument that presumably matches the Section name given for the corresponding [Begin ICM Section]. No other keyword pairing requires that the corresponding End Keyword use any argument, much less a matching one. Furthermore, no example of the use of the [End ICM Section] keyword has an argument, contradicting the definition of the keyword. Thus, there is a consistency issue with the present ICM specification. **************************************************************************** STATEMENT OF THE RESOLVED SPECIFICATIONS: Current wording of the specification: ============================================================================= Keyword: [End ICM Section] Required: Yes Argument: Text String Used By: [Begin ICM Section] Description: Indicates the end of [Begin ICM Section]. This keyword is after the [Derivation Method], [Resistance Matrix], [Inductance Matrix], [Conductance Matrix], [Capacitance Matrix], [Bandwidth], [Row], [ICM S-parameter]. Usage Rules: Every [Begin ICM Section] keyword must have a corresponding [End ICM Section] keyword, which must be the last keyword of an ICM Section description. ----------------------------------------------------------------------------- Proposed wording of the specification: (remove "Argument") ============================================================================= Keyword: [End ICM Section] Required: Yes Used By: [Begin ICM Section] Description: Indicates the end of [Begin ICM Section]. This keyword is after the [Derivation Method], [Resistance Matrix], [Inductance Matrix], [Conductance Matrix], [Capacitance Matrix], [Bandwidth], [Row], [ICM S-parameter]. Usage Rules: Every [Begin ICM Section] keyword must have a corresponding [End ICM Section] keyword, which must be the last keyword of an ICM Section description. ----------------------------------------------------------------------------- [End ICM Section] **************************************************************************** ANALYSIS PATH/DATA THAT LED TO SPECIFICATION: It's likely that the presence of the argument was an error resulting form the incomplete removal of text describing it and it's intended use from early drafts of the ICM specification. The v1.0 golden parser inherited this oddity as well, since the argument continued to be called out in the definition of the keyword, and the only reasonable value was a match with the [Begin ICM Section]. The issue now is to reconcile the specification with it's examples, and to correct the original error in the v1.0 specification **************************************************************************** ANY OTHER BACKGROUND INFORMATION: The 4.1 revision of this IIRD captures debate around the initial draft. In particular, it is more important to correct the document that perpetuate the original error in an attempt to maintain 'upward compatibility'. The keyword argument is simply removed for ICM v1.1. This action introduces a known incompatibility between v1.0 .icm files, and the v1.1 parser. Extensive debate on the subject of version numbers led to the conclusion that the icmchk parser always applies the highest available level of the icm specification, and in doing so disregards the stated [ICM Ver] keyword's version within the .icm document being parsed. Thus, a v1.1 parser, when parsing a v1.0 .icm file which has the erroneous [End ICM Section] argument value, will in fact report a parse error. The parser by default is expected to disregard the embedded '[ICM Ver] 1.0' keyword, rather than honoring it and thereby successfully parsing a v1.0 file according to the outdated v1.0 rules. As a side note, the work-in-progress v1.1 icmchk parser does implement both v1.0 and v1.1 rulsets. It is a trivial matter to provide any desired behavior with respect to the '[ICM Ver]' keyword. ****************************************************************************