# New Ticket Created by Chris Dolan # Please include the string: [perl #53548] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=53548 >
The file runtime/parrot/include/interpflags.pasm is auto-generated by
config/gen/parrot_include.pm from include/parrot/interpreter.h.
The .h parser didn't know how to handle or'd values like this:
PARROT_THR_TYPE_2 = PARROT_IS_THREAD |
PARROT_THR_COPY_INTERP,
Thus, the generated file looked like:
.macro_const PARROT_THR_TYPE_1 4096
.macro_const PARROT_THR_TYPE_2 4096
.macro_const PARROT_THR_TYPE_3 4096
With the attached patch, the generated file now (correctly) looks
like this:
.macro_const PARROT_THR_TYPE_1 4096
.macro_const PARROT_THR_TYPE_2 12288
.macro_const PARROT_THR_TYPE_3 28672
I did not check whether the parser change broke affected any other
generated files. It would be a good idea to run the generator before
and after applying this patch to see exactly what changes.
There's a bit of code duplication in this patch, for example with the
octal parsing. This could easily be factored out if desirable (by me
or someone else).
Chris
P.S. I tested via the following command:
perl -Ilib -Iconfig -MParrot::Configure -Mgen::parrot_include \
-e'gen::parrot_include->new->runstep(Parrot::Configure->new)'
parrot_include.pm | 42 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 40 insertions(+), 2 deletions(-)
parrot_include.pm.patch
Description: Binary data
