pynie

Chris Burdess parrot-dev at bluezoo.org
Sun Oct 13 07:59:48 UTC 2013


In short, pynie doesn't build.

Having read through the mailing list archives I can see that others have
had the same problem as me and it has not been resolved.

Which pynie? The one that is linked from the Parrot languages page as
being active:

  http://trac.parrot.org/parrot/wiki/Languages
  https://bitbucket.org/allison/pynie

The problem is that HLLCompiler.pir:751 (evalfiles function) tries to
read Grammar.pg in ASCII mode when it is a UTF-8 file, comes across a
non-ASCII character, and dies.

The line in Grammar.pg where it dies is

  proto infix:«<<»   is looser(infix:<+>)  is pirop('shl')     { ... }

It seems that it's intended that '«' be a permitted character in .pg
files, so the question is: given that this must have worked at some time,
and there was some change in the Parrot encoding detection system, how
can we make it work again?

It's worth noticing that even if you hack HLLCompiler.pir to force it to
read in UTF-8, building pynie will fail on the very next step as follows:

# python setup.py build
running build
/usr/local/bin/parrot /usr/local/lib//parrot/5.7.0/languages/nqp/nqp.pbc --output=include/gen_actions.pir --encoding=fixed_8 --target=pir Grammar/Actions.nqp
Can't stat /usr/local/lib//parrot/5.7.0/languages/nqp/nqp.pbc, code 2.

current instr.: '__default_get_packfile' pc 435 (frontend/parrot2/prt0.pir:158)
error: command '/usr/local/bin/parrot' failed with exit status 1

As I understand it, pynie is the only HLL implementation for Python on Parrot.
Given that so much of the Parrot design documentation talks about Parrot
being so great because it can run Python (and others) as well as Perl,
it's a little frustrating to find that code has been introduced without
regression testing for several months that breaks the HLLs that are the
actual purpose of the project existing in the first place, and almost nobody
seems to have noticed.

It would be great if we could get the technical issues sorted first, but
I'm sure you can see that a process also needs to be introduced here. How do
we go about doing that?
-- 
Chris Burdess


More information about the parrot-dev mailing list