The following changes regarding the PIR assembler inside parrot/imcc will be done in the next weeks:

1) All code outside of compilation units will be ignored
2) This also implies that nested subroutines are not supported anymore.

I did implement both features and I have to admit, that this was an error. The semantics of e.g. variable declarations at file scope have never worked, too many users already got into this trap.

For file scoped constants I introduced a new directive:

.globalconst string ok = "ok\n"

Symbols declard with ".globalconst" are visible in the following compilations units too.
For global variables either use the C<global> instructions or pass these variables as regular subroutine parameters.


Thanks for your understanding (hopefully) and sorry for the extra work, this might cause.

leo

PS PASM parsing mode (files with .pasm extension) is of course not affected by these changes.



Reply via email to