# 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(-)

Attachment: parrot_include.pm.patch
Description: Binary data

Reply via email to