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

  • ParrotIO objects that work on strings

    It should be possible to redirect input from and output to ParrotIO objects that don't actually perform IO, instead working with memory. Unfortunately, it looks like there are no vtable methods for read and write operations.

    See the setstdout and setstderr ops.

Broken Features

  • Existing Code Marked As Broken

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

  • 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

None at this time.

Missing Vtables

  • ResizableIntegerArray

    # XXX This is the wrong ticket number. 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.pod

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

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

  • 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.