Skip to content
This repository was archived by the owner on Feb 3, 2021. It is now read-only.

Plumage Requests

japhb edited this page Sep 13, 2010 · 43 revisions

Features of NQP that Plumage Needs

  • Signatures and calling
    • Flatten into args (Added positional argument flattening in 8c211fe.)
  • Callables
    • Cloned closures
  • Containers
    • Empty array and empty hash constructors (not the ‘my @foo;’ use case which of course works, but rather for ‘%foo<bar><baz><quux> := ();’ and func({}) ) (now done in 2471f02)
    • Full array and hash constructor syntax ([] array constructor available in 2471f02)
  • Floats
    • Support for them (added in 19c949e)
  • Classes
    • CREATE (or other simplification of overridden new() methods)
  • Grammars/Rules/Regexen
    • Get next match on same string
  • 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)
      • Contextuals (@*ARGS) look in PIR’s ‘namespace []’ as fallback
      • Compile-time lexical export
  • General syntax
    • Statement modifier style if/unless (added in b7ce35e)
    • Statement modifier style while/until
    • Statement modifier style for
    • try and/or CATCH
  • PIR output
    • Use fetch and vivify opcodes

Pm Also Wants

  • @*ARGS

Completed Features

  • Signatures and calling
    • Optional, named, named optional params (already done —Pm)
    • Param defaults (already done —Pm)
    • Slurpy params (already done —Pm)
  • Callables
    • Pointy blocks (added in 992b220 —Pm)
  • Hashes
    • Iterate over kv pairs (requires either real pairs or pointy blocks with params) (pointy blocks with signatures done, see above)
  • Strings
    • Closure interpolation (added in 5559916 —Pm)
  • Classes
    • Attribute declaration (already done —Pm)

Clone this wiki locally