3 What's Broken in Parrot Right Now
7 This is a list of items we think are broken in Parrot at the current revision.
8 It's not a list of bugs -- it's a list of missing and broken features that
9 prevent developers from working on their parts of the system.
11 Committers, please add to the list as you find things and remove from the list
12 as you resolve things.
14 =head2 Missing Features
16 Ways to emulate these would be nice too.
20 =item * Lexical Classes
22 =item * Anonymous Classes
26 =item * ParrotIO objects that work on strings
28 It should be possible to redirect input from and output to ParrotIO objects
29 that don't actually perform IO, instead working with memory. Unfortunately, it
30 looks like there are no vtable methods for read and write operations.
32 See the C<setstdout> and C<setstderr> ops.
36 =head2 Broken Features
40 =item * Existing Code Marked As Broken
42 Lots of comments in the code read C<XXX>, C<???>, C<FIXME>, or
45 =item * Nested *Struct PMCs Share State
47 chromatic has a test case almost ready to show this.
49 =item * C<setattribute> Sometimes Misses
51 https://rt.perl.org/rt3//Ticket/Display.html?id=36411
55 =head2 Unfinished Opcodes
59 =head2 Missing Vtables
63 =item * ResizableIntegerArray
65 # XXX This is the wrong ticket number.
66 https://rt.perl.org/rt3//Ticket/Display.html?id=32374
70 https://rt.perl.org/rt3//Ticket/Display.html?id=34394
78 =item * Embedding (PDD 10)
80 https://rt.perl.org/rt3//Ticket/Display.html?id=33918
82 =item * Assembly (PDD 12)
84 https://rt.perl.org/rt3//Ticket/Display.html?id=33919
86 =item * Bytecode (PDD 13)
88 https://rt.perl.org/rt3//Ticket/Display.html?id=33920
92 =head2 Language-Specific Items
96 =item * Make Perl a F</language>
100 =item * Don't have Perl deps in static classes
102 https://rt.perl.org/rt3//Ticket/Display.html?id=32642
104 =item * Make Perl PMCs dynamic
106 https://rt.perl.org/rt3//Ticket/Display.html?id=32646
110 =item * Let languages be self contained
112 https://rt.perl.org/rt3//Ticket/Display.html?id=31633
114 Right now many languages are in the F<MANIFEST>, using the global config, etc.
115 As far as Perl goes, this could let us move Perl PMCs into
116 F<languages/perl[6]>).
120 =head2 Obsolete Features
124 =item * Everything in F<DEPRECATED.pod>
132 =item * Generate accurate file/line number information in stack traces.
134 =item * Get name of C<parrot> executable
136 https://rt.perl.org/rt3//Ticket/Display.html?id=33923
138 =item * Give invokable PMCs a canonical way to store their associated HLL
139 source and argument information.
141 =item * Allow Runtime Compiler Registration
143 Leo suggests an eventual startup sequence of:
147 =item * start main in F<src/parrot.c>
149 =item * determine source file type to compile/run
151 =item * handle execution over to xxx-compiler or to pbc-run.
155 Currently F<src/parrot.c> does nothing and startup occurs in F<imcc/main.c>.