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

Requests

japhb edited this page Sep 13, 2010 · 15 revisions

Pm Wants

  • @*ARGS

Coke Wants

  • Ability to override vtables from NQP. (most PIR code in partcl-nqp stems from this restriction.)

Plumage Wants

Bold Highlights indicate top priority features (usually blocking Plumage’s progress in some area).

  • Signatures and calling
    • Fat arrow (=>) named argument syntax
    • Named argument flattening
  • 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.
  • Grammars/Rules/Regexen
    • Get next match on same string
  • Callables
    • Cloned closures
  • Classes
    • CREATE (or other simplification of overridden new() methods)
  • General syntax
    • Statement modifier style for
  • PIR output
    • Use fetch and vivify opcodes

Completed Features

  • 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)
    • 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)
Clone this wiki locally