QA output created by 247

sample.pdu
    Data Type: 64-bit unsigned int  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: counter  Units: count

sample.recv_pdu
    Data Type: 32-bit unsigned int  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: counter  Units: count

sample.xmit_pdu
    Data Type: 32-bit unsigned int  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: counter  Units: count

sample.byte_ctr
    Data Type: 32-bit int  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: counter  Units: byte

sample.kbyte_ctr
    Data Type: 32-bit int  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: counter  Units: Kbyte

sample.long.hundred
    Data Type: 32-bit int  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: instant  Units: none

sample.bin
    Data Type: 32-bit int  InDom: 29.2 0x7400002
    Semantics: instant  Units: none

No semantic errors here ...
pmRegisterDerived: global metric[0] event.flags = anon(PM_TYPE_U32)
pmRegisterDerived: global metric[1] event.missed = anon(PM_TYPE_U32)
pmLoadDerivedConfig("TMP.config")
pmRegisterDerived: global metric[2] myname.a = sample.kbyte_ctr
pmRegisterDerived: global metric[3] myname.b = sample.recv_pdu + sample.xmit_pdu
pmRegisterDerived: global metric[4] myname.c = 123
pmRegisterDerived: global metric[5] myname.d = 123 + sample.long.hundred
pmRegisterDerived: global metric[6] myname.e = sample.pdu / sample.long.hundred
pmRegisterDerived: global metric[7] myname.f = 1024 * sample.byte_ctr
pmRegisterDerived: global metric[8] myname.g = sample.bin + 100 - sample.bin - 100
pmRegisterDerived: global metric[9] myname.h = sample.seconds + sample.milliseconds / 1000
pmRegisterDerived: global metric[10] myname.i = sample.bin + sample.double.hundred
pmRegisterDerived: global metric[11] myname.j = sample.double.hundred + sample.bin
__dmgetpmid: metric "myname.a" -> PMID 511.0.3
__dmbind: bind metric[2] myname.a
__dmtraverse: name="myname" added "myname.a"
__dmgetpmid: metric "myname.b" -> PMID 511.0.4
__dmbind: bind metric[3] myname.b
__dmtraverse: name="myname" added "myname.b"
__dmgetpmid: metric "myname.c" -> PMID 511.0.5
__dmbind: bind metric[4] myname.c
__dmtraverse: name="myname" added "myname.c"
__dmgetpmid: metric "myname.d" -> PMID 511.0.6
__dmbind: bind metric[5] myname.d
__dmtraverse: name="myname" added "myname.d"
__dmgetpmid: metric "myname.e" -> PMID 511.0.7
__dmbind: bind metric[6] myname.e
__dmtraverse: name="myname" added "myname.e"
__dmgetpmid: metric "myname.f" -> PMID 511.0.8
__dmbind: bind metric[7] myname.f
__dmtraverse: name="myname" added "myname.f"
__dmgetpmid: metric "myname.g" -> PMID 511.0.9
__dmbind: bind metric[8] myname.g
__dmtraverse: name="myname" added "myname.g"
__dmgetpmid: metric "myname.h" -> PMID 511.0.10
__dmbind: bind metric[9] myname.h
__dmtraverse: name="myname" added "myname.h"
__dmgetpmid: metric "myname.i" -> PMID 511.0.11
__dmbind: bind metric[10] myname.i
__dmtraverse: name="myname" added "myname.i"
__dmgetpmid: metric "myname.j" -> PMID 511.0.12
__dmbind: bind metric[11] myname.j
__dmtraverse: name="myname" added "myname.j"
__dmgetpmid: metric "myname.a" -> PMID 511.0.3
__dmgetpmid: metric "myname.b" -> PMID 511.0.4
__dmgetpmid: metric "myname.c" -> PMID 511.0.5
__dmgetpmid: metric "myname.d" -> PMID 511.0.6
__dmgetpmid: metric "myname.e" -> PMID 511.0.7
__dmgetpmid: metric "myname.f" -> PMID 511.0.8
__dmgetpmid: metric "myname.g" -> PMID 511.0.9
__dmgetpmid: metric "myname.h" -> PMID 511.0.10
__dmgetpmid: metric "myname.i" -> PMID 511.0.11
__dmgetpmid: metric "myname.j" -> PMID 511.0.12

myname.a
    Data Type: 32-bit int  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: counter  Units: Kbyte

myname.b
    Data Type: 32-bit unsigned int  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: counter  Units: count

myname.c
    Data Type: 32-bit unsigned int  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: discrete  Units: none

myname.d
    Data Type: 32-bit unsigned int  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: instant  Units: none

myname.e
    Data Type: double  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: counter  Units: count

myname.f
    Data Type: 32-bit unsigned int  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: counter  Units: byte

myname.g
    Data Type: 32-bit unsigned int  InDom: 29.2 0x7400002
    Semantics: instant  Units: none

myname.h
    Data Type: double  InDom: PM_INDOM_NULL 0xffffffff
    Semantics: counter  Units: sec

myname.i
    Data Type: double  InDom: 29.2 0x7400002
    Semantics: instant  Units: none

myname.j
    Data Type: double  InDom: 29.2 0x7400002
    Semantics: instant  Units: none

Semantic errors ...
pmRegisterDerived: global metric[0] event.flags = anon(PM_TYPE_U32)
pmRegisterDerived: global metric[1] event.missed = anon(PM_TYPE_U32)
pmLoadDerivedConfig("TMP.config")
pmRegisterDerived: global metric[2] myname.a = no.such.metric
pmRegisterDerived: global metric[3] myname.b = sample.bad.unknown
pmRegisterDerived: global metric[4] myname.c = disk.dev.read * disk.dev.write
pmRegisterDerived: global metric[5] myname.d = sample.byte_ctr + sample.long.hundred
pmRegisterDerived: global metric[6] myname.e = sample.long.hundred - 100 / sample.byte_ctr
pmRegisterDerived: global metric[7] myname.f = 3 + sample.lights
pmRegisterDerived: global metric[8] myname.g = sample.sysinfo - 42
pmRegisterDerived: global metric[9] myname.h = disk.dev.total + sample.long.hundred
pmRegisterDerived: global metric[10] myname.i = sample.long.hundred - disk.dev.total
pmRegisterDerived: global metric[11] myname.j = sample.mirage * sample.step_counter
pmRegisterDerived: global metric[12] myname.k = sample.step_counter / sample.mirage_longlong
pmRegisterDerived: global metric[13] myname.k2 = sample.mirage_longlong * sample.step_counter
pmRegisterDerived: global metric[14] myname.l = sample.bin + sample.darkness
pmRegisterDerived: global metric[15] myname.gcov.a = 42 + sample.bad.unknown
pmRegisterDerived: global metric[16] myname.gcov.b = (disk.all.total + disk.dev.total) + 42 
pmRegisterDerived: global metric[17] myname.gcov.c = 42 - (disk.all.total + disk.dev.total)
pmRegisterDerived: global metric[18] myname.gcov.d = (sample.bin + sample.darkness)+42
__dmgetpmid: metric "myname.a" -> PMID 511.0.3
__dmgetpmid: metric "no.such.metric" -> Unknown metric name
bind_expr: error: derived metric myname.a: operand: no.such.metric: Unknown metric name
__dmtraverse: name="myname", omitting invalid child "myname.a"
__dmgetpmid: metric "myname.b" -> PMID 511.0.4
bind_expr: error: derived metric myname.b: operand (sample.bad.unknown [29.0.54]): Unknown or illegal metric identifier
__dmtraverse: name="myname", omitting invalid child "myname.b"
__dmgetpmid: metric "myname.c" -> PMID 511.0.5
Semantic error: derived metric myname.c: disk.dev.read * disk.dev.write: Illegal operator for counters
__dmtraverse: name="myname", omitting invalid child "myname.c"
__dmgetpmid: metric "myname.d" -> PMID 511.0.6
Semantic error: derived metric myname.d: sample.byte_ctr + sample.long.hundred: Illegal operator for counter and non-counter
__dmtraverse: name="myname", omitting invalid child "myname.d"
__dmgetpmid: metric "myname.e" -> PMID 511.0.7
Semantic error: derived metric myname.e: 100 / sample.byte_ctr: Illegal operator for non-counter and counter
__dmtraverse: name="myname", omitting invalid child "myname.e"
__dmgetpmid: metric "myname.f" -> PMID 511.0.8
Semantic error: derived metric myname.f: 3 + sample.lights: Non-arithmetic type for right operand
__dmtraverse: name="myname", omitting invalid child "myname.f"
__dmgetpmid: metric "myname.g" -> PMID 511.0.9
Semantic error: derived metric myname.g: sample.sysinfo - 42: Non-arithmetic type for left operand
__dmtraverse: name="myname", omitting invalid child "myname.g"
__dmgetpmid: metric "myname.h" -> PMID 511.0.10
Semantic error: derived metric myname.h: disk.dev.total + sample.long.hundred: Illegal operator for counter and non-counter
__dmtraverse: name="myname", omitting invalid child "myname.h"
__dmgetpmid: metric "myname.i" -> PMID 511.0.11
Semantic error: derived metric myname.i: sample.long.hundred - disk.dev.total: Illegal operator for non-counter and counter
__dmtraverse: name="myname", omitting invalid child "myname.i"
__dmgetpmid: metric "myname.j" -> PMID 511.0.12
Semantic error: derived metric myname.j: sample.mirage * sample.step_counter: Non-counter and not dimensionless for left operand
__dmtraverse: name="myname", omitting invalid child "myname.j"
__dmgetpmid: metric "myname.k" -> PMID 511.0.13
Semantic error: derived metric myname.k: sample.step_counter / sample.mirage_longlong: Non-counter and not dimensionless for right operand
__dmtraverse: name="myname", omitting invalid child "myname.k"
__dmgetpmid: metric "myname.k2" -> PMID 511.0.14
Semantic error: derived metric myname.k2: sample.mirage_longlong * sample.step_counter: Non-counter and not dimensionless for left operand
__dmtraverse: name="myname", omitting invalid child "myname.k2"
__dmgetpmid: metric "myname.l" -> PMID 511.0.15
Semantic error: derived metric myname.l: sample.bin + sample.darkness: Operands should have the same instance domain
__dmtraverse: name="myname", omitting invalid child "myname.l"
__dmgetpmid: metric "myname.gcov.a" -> PMID 511.0.16
bind_expr: error: derived metric myname.gcov.a: operand (sample.bad.unknown [29.0.54]): Unknown or illegal metric identifier
__dmtraverse: name="myname", omitting invalid child "myname.gcov.a"
__dmgetpmid: metric "myname.gcov.b" -> PMID 511.0.17
Semantic error: derived metric myname.gcov.b: <expr> + 42: Illegal operator for counter and non-counter
__dmtraverse: name="myname", omitting invalid child "myname.gcov.b"
__dmgetpmid: metric "myname.gcov.c" -> PMID 511.0.18
Semantic error: derived metric myname.gcov.c: 42 - <expr>: Illegal operator for non-counter and counter
__dmtraverse: name="myname", omitting invalid child "myname.gcov.c"
__dmgetpmid: metric "myname.gcov.d" -> PMID 511.0.19
Semantic error: derived metric myname.gcov.d: sample.bin + sample.darkness: Operands should have the same instance domain
__dmtraverse: name="myname", omitting invalid child "myname.gcov.d"
Error: myname: Unknown metric name
