Eric S. Raymond wrote:
> 
> The latest version is always available at http://www.tuxedo.org/~esr/cml2/
> 
> Release 1.2.3: Mon Apr 23 00:57:39 EDT 2001

  G'day

  Here are some questions I came across while upgrading gcml2's
parser to language 1.2.0 standard.
    
1.  At kernel-tree/drivers/block/rules.cml:143, an decimal symbol
    BLK_DEV_RAM_SIZE% appears to be used as the guard for a subtree.
    Is this supposed to be legal?  The Reference doesn't say
    but in the example the guard is a boolean.  I have assumed that
    only bools and trits can be subtree guards, is this correct?
    
2.  The Reference does not specify the "nohelp" condition.

3.  The Reference does not specify the ?: trinary operator,
    including its syntax and operator precedence.

4.  In at least two different places the following happens.

    derive FOO from n
    unless FOO suppress BAR BAZ
    
    Is the type of FOO (derived by the parser) bool or trit?

  Also, I found some small problems with the CML2 corpus which
I've fixed in the attached patch against 1.2.3.  In summary:

-  spurious "symbols" statement (legal but wasteful)
-  commented out symbol "TUNING" which is not used anywhere
-  some } balancing problems - intent guessed from indent
-  menu "x86" used instead of symbol "X86"
-  apparently spurious {} pair in drivers/fc4/rules.cml


diff -ruN --exclude-from=cml2.excludes cml2-1.2.3.orig/kernel-tree/arch/cris/rules.cml
cml2-1.2.3.fixed/kernel-tree/arch/cris/rules.cml
--- cml2-1.2.3.orig/kernel-tree/arch/cris/rules.cml     Mon Apr 23 17:04:34 2001
+++ cml2-1.2.3.fixed/kernel-tree/arch/cris/rules.cml    Mon Apr 23 20:15:22 2001
@@ -166,6 +166,7 @@
                ETRAX_SYNCHRONOUS_SERIAL_PORT1 {
                        ETRAX_SYNCHRONOUS_SERIAL1_DMA
                }
+       }
 
 require ETRAX_SER0_DTR_RI_DSR_CD_ON_PB==n or ETRAX_SER1_DTR_RI_DSR_CD_ON_PB==n
         explanation crisconflict_complaint
diff -ruN --exclude-from=cml2.excludes cml2-1.2.3.orig/kernel-tree/arch/i386/rules.cml
cml2-1.2.3.fixed/kernel-tree/arch/i386/rules.cml
--- cml2-1.2.3.orig/kernel-tree/arch/i386/rules.cml     Mon Apr 23 17:04:34 2001
+++ cml2-1.2.3.fixed/kernel-tree/arch/i386/rules.cml    Mon Apr 23 20:14:09 2001
@@ -57,7 +57,7 @@
 
 derive X86_IO_APIC from X86 and X86_UP_IOAPIC or SMP or VISWS
 derive X86_LOCAL_APIC from X86 and X86_UP_IOAPIC or SMP or VISWS
-derive X86_VISWS_APIC from x86 and VISWS
+derive X86_VISWS_APIC from X86 and VISWS
 derive X86_XADD from X86 and M386==n
 
 # There are PCI-only machines out there, but as of 2.40-test1 I'm told
diff -ruN --exclude-from=cml2.excludes cml2-1.2.3.orig/kernel-tree/arch/ia64/rules.cml
cml2-1.2.3.fixed/kernel-tree/arch/ia64/rules.cml
--- cml2-1.2.3.orig/kernel-tree/arch/ia64/rules.cml     Mon Apr 23 17:04:34 2001
+++ cml2-1.2.3.fixed/kernel-tree/arch/ia64/rules.cml    Mon Apr 23 20:15:39 2001
@@ -44,7 +44,7 @@
        ITANIUM_CSTEP_SPECIFIC {
                ITANIUM_C0_SPECIFIC 
        }
-       MCKINLEY_ASTEP_SPECIFIC {MCKINLEY_A0_SPECIFIC}}
+       MCKINLEY_ASTEP_SPECIFIC {MCKINLEY_A0_SPECIFIC}
        IA64_HAVE_IRQREDIR 
        #IA64_SOFTSDV_HACKS IA64_AZUSA_HACKS IA64_FW_EMU IA64_IRQ_ACPI
        IA64_MCA ACPI20 ACPI_KERNEL_CONFIG
diff -ruN --exclude-from=cml2.excludes 
cml2-1.2.3.orig/kernel-tree/drivers/fc4/rules.cml
cml2-1.2.3.fixed/kernel-tree/drivers/fc4/rules.cml
--- cml2-1.2.3.orig/kernel-tree/drivers/fc4/rules.cml   Mon Apr 23 17:04:34 2001
+++ cml2-1.2.3.fixed/kernel-tree/drivers/fc4/rules.cml  Mon Apr 23 20:15:59 2001
@@ -2,7 +2,7 @@
 
 menu fc4       # Fiber Channel support
        fc4_drivers_legend
-       {FC4_SOC? FC4_SOCAL?}
+       FC4_SOC? FC4_SOCAL?
        fc4_targets_legend
        SCSI_PLUTO? SCSI_FCAL_SUN? SCSI_FCAL_GENERIC?
 
diff -ruN --exclude-from=cml2.excludes cml2-1.2.3.orig/kernel-tree/rules.cml 
cml2-1.2.3.fixed/kernel-tree/rules.cml
--- cml2-1.2.3.orig/kernel-tree/rules.cml       Mon Apr 23 17:04:33 2001
+++ cml2-1.2.3.fixed/kernel-tree/rules.cml      Mon Apr 23 20:14:48 2001
@@ -4,7 +4,7 @@
 
 # Configuration symbols and helpfile.  In 2.5 these will merge,
 # then probably be distributed back out to the directories
-symbols source "symbols.cml"
+source "symbols.cml"
 helpfile "Documentation/Configure.help"
 
 start main                     # Start with the menu named 'main'
@@ -240,10 +240,10 @@
 #unless EXPERIMENTAL==n suppress OBSOLETE
 #require EXPERIMENTAL implies OBSOLETE==y
 
-private EXPERT WIZARD TUNING
+private EXPERT WIZARD #TUNING
 
 menu policy    # Build policy options
-       EXPERIMENTAL OBSOLETE EXPERT WIZARD TUNING
+       EXPERIMENTAL OBSOLETE EXPERT WIZARD #TUNING
 
 require WIZARD implies EXPERT
 
diff -ruN --exclude-from=cml2.excludes cml2-1.2.3.orig/kernel-tree/symbols.cml 
cml2-1.2.3.fixed/kernel-tree/symbols.cml
--- cml2-1.2.3.orig/kernel-tree/symbols.cml     Mon Apr 23 17:04:33 2001
+++ cml2-1.2.3.fixed/kernel-tree/symbols.cml    Mon Apr 23 20:15:00 2001
@@ -7,7 +7,7 @@
 OBSOLETE       'Prompt for drivers for obsolete features and hardware'
 EXPERT         'Prompt for expert choices (those with no help attached)'
 WIZARD         'Prompt for features that require kernel source changes.'
-TUNING         'Prompt for performance tweaks'
+# TUNING               'Prompt for performance tweaks'
 #
 # Platform-independent questions
 MODULES                        'Enable loadable module support'


Greg.
-- 
These are my opinions not PPIs.

_______________________________________________
kbuild-devel mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/kbuild-devel

Reply via email to