Klaas-Jan Stol wrote:
hi,

IIRC, IMCC started as a kind of pre-processor for PASM, in other words, it allowed more readable shortcuts for several constructs. Eventually, everything was translated to pure PASM, that is, 1 long list of real Parrot instructions (no .sub/.end blocks etc).

Yes, PIR was initially nothing more than a little syntactic sugar.

At some point, IMCC was merged with Parrot as its parser. Since then, a lot of additions have been done, like the .sub pragmas like :load ,:main, :init, :outer etc. (When Perl6 and Parrot essentials was written, these flags were not there)

Now, my question, is it still true that every PIR construct has a PASM form as well, can every PIR construct be translated directly to PASM? That is, can one still get the same behaviour that is achieved by all those high-level PIR constructs like :outer(...), in PASM as well?

Ideally, yes. In practice, many tests are written in PIR these days, so we may not have complete coverage for the PASM syntax versions. It's one of those ongoing low-level tasks for cage cleaners.

Allison

Reply via email to