hi,

having used NQP a bit, I feel like I'm missing a few things. I'm not
entirely sure what the fate of NQP is; will it always be a bootstrap
stage for Perl 6,or is it a tool for now and will it be discarded
later on.
Anyway, if NQP is to stay, the following features would come in handy,
IMHO. I understand that NQP is designed to be small, but these
features won't clutter the implementation that much, and are pretty
easy to implement, I think.

* other relational operators, such as <, <=, > and >=. I keep writing
these, but NPQ only has == and !=.
* postincrement/decrement ops, or at least +=. Often you need syntax
like $index := $index + 1; Writing += 1 is so much nicer.
* the ternary operator ?: This allows for shorter/easier notation when
both the Then and Else part of an ifstatement are 1 line. Typical for
this in the PCT is writing:

if $?BLOCK.symbol($name) {
    $scope := 'lexical';
}
else {
   $scope := 'package';
}

which could be nicely written as

$scope := $?BLOCK.symbol($name) ? 'lexical' : 'package';

* list ops (  I think this is meant by list ops? )
All languages that have some kind of scope mechanism now have to
define a class "List", which has an unshift and shift method, which
are just wrappers for the equally  named parrot ops. Being able to
write

unshift @?BLOCK, $?BLOCK;

would be useful, as it prevents the need for creating the List class
over and over again.
I feel that these ops are so basic, it would be well worth it to have
them around.


* MAIN support: this feature is a nice-to-have, but not that important.
I don't think it's there already: when writing an NQP script, I'd like
to have access to the command line options. To be precise, I'd like to
write the compiler driver in NQP instead of in PIR. So, creating a new
HLLCompiler, setting the grammar stuff and invoking the command_line
method on it with the commandline args. How do I get access to these
args from NQP?

Comments most welcome.

kjs

Reply via email to