div0 / spiritd

A port of boost::spirit to the D programming language
3 stars 0 forks source link

errors compiling with dmd 2.061 (alpha) #2

Open jordisayol opened 11 years ago

jordisayol commented 11 years ago
spiritd/grammar.d(21): Error: template instance spiritd.parsers.xmlGrammar.svgGrammar.definition!(scanner) error instantiating
spiritd/grammar.d(21):        instantiated from here: definition!(scanner)
spiritd/impl/parse.d(34): Error: template instance spiritd.grammar.grammar!(svgGrammar).grammar.parse!(scanner) error instantiating
spiritd/impl/parse.d(34):        instantiated from here: parse!(scanner)
spiritd/parsers/xmlGrammar.d(28): Error: template instance spiritd.ver.parsev2.parse!(svgGrammar, whiteSpace) error instantiating
spiritd/parsers/xmlGrammar.d(28):        instantiated from here: parse!(svgGrammar, whiteSpace)
spiritd/parsers/xmlGrammar.d(41): Error: template instance spiritd.rule.rule!(scanner) error instantiating
spiritd/rule.d(14): Error: class spiritd.rule.rule!(scanner).rule identity assignment operator overload is illegal
spiritd/ver/parsev2.d(26): Error: template instance spiritd.impl.parse.parseImpl!(char, immutable(char)*, svgGrammar, whiteSpace) error instantiating
spiritd/ver/parsev2.d(26):        instantiated from here: parseImpl!(char, immutable(char)*, svgGrammar, whiteSpace)
div0 commented 11 years ago

That's yet another compiler bug.

jordisayol commented 11 years ago

I got these errors compiling with the last dmd 2.061 beta on Linux:

$ dmd -c -O -m64 -ofobj/64/spiritd/parsers/xmlGrammar.o spiritd/parsers/xmlGrammar.d
spiritd/rule.d(14): Error: class spiritd.rule.rule!(scanner).rule identity assignment operator overload is illegal
spiritd/parsers/xmlGrammar.d(41): Error: template instance spiritd.rule.rule!(scanner) error instantiating
spiritd/grammar.d(21):        instantiated from here: definition!(scanner)
spiritd/impl/parse.d(34):        instantiated from here: parse!(scanner)
spiritd/ver/parsev2.d(26):        instantiated from here: parseImpl!(char, immutable(char)*, svgGrammar, whiteSpace)
spiritd/parsers/xmlGrammar.d(28):        instantiated from here: parse!(svgGrammar, whiteSpace)
spiritd/grammar.d(21): Error: template instance spiritd.parsers.xmlGrammar.svgGrammar.definition!(scanner) error instantiating
spiritd/impl/parse.d(34):        instantiated from here: parse!(scanner)
spiritd/ver/parsev2.d(26):        instantiated from here: parseImpl!(char, immutable(char)*, svgGrammar, whiteSpace)
spiritd/parsers/xmlGrammar.d(28):        instantiated from here: parse!(svgGrammar, whiteSpace)
spiritd/impl/parse.d(34): Error: template instance spiritd.grammar.grammar!(svgGrammar).grammar.parse!(scanner) error instantiating
spiritd/ver/parsev2.d(26):        instantiated from here: parseImpl!(char, immutable(char)*, svgGrammar, whiteSpace)
spiritd/parsers/xmlGrammar.d(28):        instantiated from here: parse!(svgGrammar, whiteSpace)
spiritd/ver/parsev2.d(26): Error: template instance spiritd.impl.parse.parseImpl!(char, immutable(char)*, svgGrammar, whiteSpace) error instantiating
spiritd/parsers/xmlGrammar.d(28):        instantiated from here: parse!(svgGrammar, whiteSpace)
spiritd/parsers/xmlGrammar.d(28): Error: template instance spiritd.ver.parsev2.parse!(svgGrammar, whiteSpace) error instantiating
div0 commented 11 years ago

That's a compiler bug. There's no way it should be confusing a template'd assignment operator as identity operator.

On 27 December 2012 11:22, jordisayol notifications@github.com wrote:

I got these errors compiling with the last dmd 2.061 beta on Linux:

$ dmd -c -O -m64 -ofobj/64/spiritd/parsers/xmlGrammar.o spiritd/parsers/xmlGrammar.d spiritd/rule.d(14): Error: class spiritd.rule.rule!(scanner).rule identity assignment operator overload is illegal spiritd/parsers/xmlGrammar.d(41): Error: template instance spiritd.rule.rule!(scanner) error instantiating spiritd/grammar.d(21): instantiated from here: definition!(scanner) spiritd/impl/parse.d(34): instantiated from here: parse!(scanner) spiritd/ver/parsev2.d(26): instantiated from here: parseImpl!(char, immutable(char), svgGrammar, whiteSpace) spiritd/parsers/xmlGrammar.d(28): instantiated from here: parse!(svgGrammar, whiteSpace) spiritd/grammar.d(21): Error: template instance spiritd.parsers.xmlGrammar.svgGrammar.definition!(scanner) error instantiating spiritd/impl/parse.d(34): instantiated from here: parse!(scanner) spiritd/ver/parsev2.d(26): instantiated from here: parseImpl!(char, immutable(char), svgGrammar, whiteSpace) spiritd/parsers/xmlGrammar.d(28): instantiated from here: parse!(svgGrammar, whiteSpace) spiritd/impl/parse.d(34): Error: template instance spiritd.grammar.grammar!(svgGrammar).grammar.parse!(scanner) error instantiating spiritd/ver/parsev2.d(26): instantiated from here: parseImpl!(char, immutable(char), svgGrammar, whiteSpace) spiritd/parsers/xmlGrammar.d(28): instantiated from here: parse!(svgGrammar, whiteSpace) spiritd/ver/parsev2.d(26): Error: template instance spiritd.impl.parse.parseImpl!(char, immutable(char), svgGrammar, whiteSpace) error instantiating spiritd/parsers/xmlGrammar.d(28): instantiated from here: parse!(svgGrammar, whiteSpace) spiritd/parsers/xmlGrammar.d(28): Error: template instance spiritd.ver.parsev2.parse!(svgGrammar, whiteSpace) error instantiating

— Reply to this email directly or view it on GitHubhttps://github.com/div0/spiritd/issues/2#issuecomment-11705995.

http://www.ssTk.co.uk

jordisayol commented 11 years ago

dmd v2.061 final release still raise these errors. If there is not a way to override them, spiritd will be not usable till the next dmd release