This repository has been archived by the owner on Feb 3, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
Requests
coke edited this page Sep 13, 2010
·
15 revisions
See also: the Issue List
- @*ARGS
- Ability to override vtables from NQP.
Bold Highlights indicate top priority features (usually blocking Plumage’s progress in some area).
- Q:PIR and pir::
- Support inout params of PIR opcodes in the pir::op__params() syntax (I think NQP already supports this — give an example of the specific opcode in mind. —Pm)
- Signatures and calling
- Named argument flattening (now added by sorear++ —Pm)
- Containers
- Full hash constructor syntax
- Signatures and Calling
- Calling computed sub/method name
self/$obj.$method()
Foo::Bar::($sub_name)()
- Something equivalent to the second item, but in the current package.
"$sub_name"()
and($sub_name)()
are likely invalid.
- Calling computed sub/method name
- Grammars/Rules/Regexen
- Get next match on same string
- Callables
- Cloned closures (now added —Pm)
- Classes
- CREATE (or other simplification of overridden new() methods)
- General syntax
- Statement modifier style for
-
PIR output
- Use fetch and vivify opcodes
- that “get next match” should perhaps be done by creating an iterator on a lazy /g match.
- Quasiquotey syntax for abstract syntax trees (PAST only is an acceptable approximation)
- Mixins (they’re like roles, but with no fancy logic; basically just a class inside a sub)
- Native types (will make writing optimizers easier… bacek wants these for lorito’s ops-nqp)
- Loop control (done)
- Flatten arrays (done)
- Signature unpacking of multiple return values
- Returning multiple values
- Tailcalls
- Subroutine traits (just pirflags, really)
- @*ARGS
- General anonymous hash constructors
- An optimizer :)
- Better error messages. “Unable to parse blockoid” fifteen lines away… I want to do better.
- Signatures and calling
Optional, named, named optional params (already done —Pm)Param defaults (already done —Pm)Slurpy params (already done —Pm)Positional argument flattening (Added in 8c211fe)Fat arrow (=>
) named argument syntax (added in 7c9ba0a)- Calling computed sub/method name
self/$obj."$method_name"()
(added in r42789)
- Callables
Pointy blocks (added in 992b220 —Pm)
- Containers
Iterate over hash kv pairs (requires either real pairs or pointy blocks with params) (pointy blocks with signatures done, see above)Empty array and empty hash constructors (now done in 2471f02)Full array constructor syntax ([] array constructor available in 2471f02)
- Strings
Closure interpolation (added in 5559916 —Pm)
- Floats
Support for them (added in 19c949e)
- Classes
Attribute declaration (already done —Pm)
- General syntax
Statement modifier style if/unless (added in b7ce35e)Statement modifier style while/until (added in 8d6dfe2)try and/or CATCH (added in ef7eef0)
- Variables
-
“Globals” declared and initialized by a module without aid of mainline; could be any of:GLOBAL pseudo-namespace + cross-namespace variable references (@GLOBAL::ARGS) (added in r42541)Contextuals (@*ARGS) look in PIR’s ‘namespace []’ as fallback (added in r42541)Compile-time lexical export (declined)
-
split(/regex/) in nqp-setting