Put your requests for documentation for NQP-rx (the new flavor of NQP) here.

  • Looping constructs
    19:50:32 < cconstantine> How would I loop through an iterable backwards in NQP?
    19:50:52 <@dukeleto> cconstantine: code sample?
    19:51:28 < cconstantine> In an action for my gramar I want to loop through the child nodes backwards
    19:52:02 < cconstantine> rule cons { [<term> ]* {*}}  <---- loop through the <term>s backwards
my $n := +$<term> - 1;
while $n >= 0 { 
    # do something with $<term>[$n] here
    $n := $n - 1;
  • A basic tutorial for HLL implementers that starts from step 1 of using mk_language_shell.pl and ends with some new type of builtin implemented and a custom Configure-time check being added to the build process in the new HLL. Basically, an updated squawk tutorial, but perhaps shorter and easier to get into.

nqp-rx abandons mk_language_shell.pl altogether. We'll probably come up with a new one. Yes, we need a full-on tutorial, I just haven't had time to write it. It would help to know a language to use as a tutorial example.

  • How do I use threads in NQP?

How does one use threads in Parrot? (This isn't meant to be glib -- before I can explain how to use threads in NQP, I need to know how one can use them in Parrot. --Pm)

  • How do I use PIR from NQP?

One can either use the PIR opcodes directly with pir::opcode($args), or one can substitute long sequences of PIR using Q:PIR { ... }.

when invoking a single opcode, you can coerce the argument types, e.g.:

  my $hash = pir::new__Ps('Hash');

note the double underscore. For a list of valid coercions, see: perldoc compilers/pct/src/PAST/Compiler.pir's Signature Flags section.