At 08:01 PM 2/28/2004 -0800, Gregor N. Purdy wrote:
I made the change, and now I get consistent results. I'll check that in.

I am still not clear, though, on why we wouldn't have the same failure
in all cases. I'd think these should be equivalent:

  * Running parrot on 'foo.imc'
  * Running parrot on 'foo.pasm' generated from 'foo.imc'
  * Running parrot on 'foo.pbc' generated from 'foo.pasm'

You would think it would be straightforward. Its not, due to the way we (Leo and I) mixed up IMCC and how it handles things, especially the lexer. The problem is definitely a bug, and I think we've made an error in trying to mix too many features and lexing/parsing modes into the same compiler. Its become too aggravating to maintain, at least for me. Leo is welcome to maintain v1 all he wants ;)

The rewrite of IMCC and will handle _one single flavor_ of language.
All syntax rules will apply the same, regardless of if it sees PASM ops
or PIR/IMC ops. There won't be a PIR -> PASM translation phase, either.
(I will probably relax the idea of compilation unit to allow simple streams
of bytecode, rather than require a wrapping sub).

Not that it helps you now, but I understand your frustration.

-Melvin




Reply via email to