The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

What's Broken in Parrot Right Now

PURPOSE

This is a list of items we think are broken in Parrot at the current revision. It's not a list of bugs -- it's a list of missing and broken features that prevent developers from working on their parts of the system.

Committers, please add to the list as you find things and remove from the list as you resolve things.

Missing Features

Ways to emulate these would be nice too.

  • Lexical Classes

  • Anonymous Classes

  • Submethods

Broken Features

  • Existing Code Marked As Broken

    Lots of comments in the code read XXX, ???, FIXME, or UNIMPL. Fix them.

  • Lexical Pads

    Autrijus Tang has details.

  • Nested *Struct PMCs Share State

    chromatic has a test case almost ready to show this.

  • setattribute Sometimes Misses

    https://rt.perl.org/rt3//Ticket/Display.html?id=36411

Unfinished Opcodes

  • split

    https://rt.perl.org/rt3//Ticket/Display.html?id=32544

    Will Coleda suggested s/regexp/perl 6 rule/ and using PGE. Patrick Michaud suggests making split work only on constant strings and using PGE for everything else.

Missing Vtables

  • ResizablePMCArray

    https://rt.perl.org/rt3//Ticket/Display.html?id=31867

  • ResizableIntegerArray

    https://rt.perl.org/rt3//Ticket/Display.html?id=32374

  • splice

    https://rt.perl.org/rt3//Ticket/Display.html?id=34394

Missing PDDs

  • Embedding (PDD 10)

    https://rt.perl.org/rt3//Ticket/Display.html?id=33918

  • Assembly (PDD 12)

    https://rt.perl.org/rt3//Ticket/Display.html?id=33919

  • Bytecode (PDD 13)

    https://rt.perl.org/rt3//Ticket/Display.html?id=33920

Language-Specific Items

  • Make Perl a /language

    • Don't have Perl deps in static classes

      https://rt.perl.org/rt3//Ticket/Display.html?id=32642

    • Make Perl PMCs dynamic

      https://rt.perl.org/rt3//Ticket/Display.html?id=32646

  • Let languages be self contained

    https://rt.perl.org/rt3//Ticket/Display.html?id=31633

    Right now many languages are in the MANIFEST, using the global config, etc. As far as Perl goes, this could let us move Perl PMCs into languages/perl[6]).

Obsolete Features

  • Everything in DEPRECATED

Miscellaneous

  • Generate accurate file/line number information in stack traces.

  • Get name of parrot executable

    https://rt.perl.org/rt3//Ticket/Display.html?id=33923

  • Namespaces

    Matt Diephouse has prepared an email on this.

  • Give invokable PMCs a canonical way to store their associated HLL source and argument information.

    Will Coleda is thinking about this.

  • Add rules engines for perl5-ish RE's in PGE.

    Will Coleda specifically wants http://www.tcl.tk/man/tcl8.5/TclCmd/re_syntax.htm, but having a P5-ish one to subclass would be just dandy. Patrick Michaud thinks this is doable.

  • Allow Runtime Compiler Registration

    Leo suggests an eventual startup sequence of:

    • start main in src/parrot.c

    • determine source file type to compile/run

    • handle execution over to xxx-compiler or to pbc-run.

    Currently src/parrot.c does nothing and startup occurs in imcc/main.c.