This list is based on discussions with pmichaud and unimplemented items in the grammar, src/Grammar.pg.
src/Grammar.pg
Last updated: 2007-11-24
& sigil
&
Handle the mapping between &foo and 'foo' subroutines.
&foo
return statement
return
While it seems like implementing return would be a simple matter of generating PIR .return statements, it's not quite that simple, because return statements can occur inside of nested blocks.
.return
So, we need an NQP return statement to throw a "return exception", which is then caught by the outermost block of the currently executing subroutine and then used as the argument to .return.
Fortunately, the new design of S05 means that we don't really need return statements for developing action grammars, so this is no longer as much of a priority as it was.
More tests for method ops
We should be able to load an external module (Pm suggests Test.pbc) and exercise methods using that.
Match variable access $/
$/
More tests for scalar context $( ... )
More tests for list context @( ... )
Variables with twigils
More tests for optional arguments and parameters
More tests for named arguments and parameters
The directory bootstrap contains the necessary files to implement NPQ in NQP. While this is not a major goal, it is interesting to compare the speed of NQP implemented in PIR and in NQP. For this to work, some things must be fixed. The bootstrap version can be tested with
bootstrap
cd bootstrap && perl t/harness
it seems that the action for the for-statement is broken.
for-statement
NQP should not have a runtime containing support routines. The original NQP (in PIR) implements all operators as PIR instructions. This should also be the case for the bootstrapped NQP. Currently, the optable action does not handle the "inline" specifications.
Some actions are not complete. For instance, the action method package_declarator, where classes can be defined.
package_declarator
the NQP compiler driver should accept a commandline option indicating which Actions object should be used: the PIR or NQP version. HLLCompiler has support for adding commandline options, this could be used.
To install Parrot::PMC, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Parrot::PMC
CPAN shell
perl -MCPAN -e shell install Parrot::PMC
For more information on module installation, please visit the detailed CPAN module installation guide.