Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100755 151 lines (87 sloc) 3.461 kb
8f67bea @fglock Perlito version 8.0
authored
1 TODO list for Perlito5
2
25b8875 @fglock Perlito5 - TODO update
authored
3 * perlito5 command-line
e4641d7 @fglock Perlito - extensive TODO update
authored
4
25b8875 @fglock Perlito5 - TODO update
authored
5 --
e4641d7 @fglock Perlito - extensive TODO update
authored
6
7
c07de6d @fglock Perlito5 - TODO update
authored
8 * basic functionality
9
0718f37 @fglock Perlito5 - javascript: TODO update
authored
10 -- add "print" special parsing
11
0cc64c5 @fglock Perlito5 - kill perl6-ish "method"
authored
12
8f67bea @fglock Perlito version 8.0
authored
13 * libraries
14
3004b77 @fglock Perlito5 - cleanup, update TODO
authored
15 -- these should probably go into namespace Perlito5X::*
16
ce7ce91 @fglock Perlito - TODO update
authored
17 -- Test (implemented as Perlito5::Test)
3004b77 @fglock Perlito5 - cleanup, update TODO
authored
18
ce7ce91 @fglock Perlito - TODO update
authored
19 -- Data::Dumper (implemented as Perlito5::Dumper)
8f67bea @fglock Perlito version 8.0
authored
20
21
7b982c3 @fglock Perlito5 - update TODO
authored
22 * Parser
23
ae33743 @fglock Perlito5 - TODO update
authored
24 -- compile-time eval() is not bound to the "program" environment, but to the "compiler" environment instead
25 my $v;
26 BEGIN { $v = "123" }
27 use Module $v; # $v is not accessible at compile-time
7b982c3 @fglock Perlito5 - update TODO
authored
28
529225f @fglock Perlito5 - TODO update
authored
29 -- parse the regexes
7b982c3 @fglock Perlito5 - update TODO
authored
30
b32dc90 @fglock Perlito5 - update TODO
authored
31 -- prototypes (signatures)
32 --- done: "empty" _ $ ;$
33 --- check that undeclared barewords give the right error
61d64aa @fglock Perlito5 - parser: rewrite operator() in "perl5-land" for later tweaking
authored
34 --- *foo = sub () { ... } # does prototype work here?
85c5759 @fglock Perlito5 - TODO update
authored
35 --- check signature in sort()
fde5276 @fglock Perlito5 - update TODO
authored
36
0464e31 @fglock Perlito5 - use perl5 array/hash in perl5 backend
authored
37 -- check that \(@a) and \@a have different meanings
7b982c3 @fglock Perlito5 - update TODO
authored
38
ce7ce91 @fglock Perlito - TODO update
authored
39 -- parse "local $x[1]"
7a03ff4 @fglock Perlito5 - javascript: eval-block works
authored
40 -- parse local $@
ce7ce91 @fglock Perlito - TODO update
authored
41
529225f @fglock Perlito5 - TODO update
authored
42 -- $v{x} doesn't autoquote the index
43 -- $v{x} doesn't interpolate inside double quotes
25b8875 @fglock Perlito5 - TODO update
authored
44 -- deref inside double quotes:
45 $ node perlito5.js -Bjs -e ' my $x = "123"; my $y = \$x; print "[$$y]\n" '
46 [$[object Object]]
529225f @fglock Perlito5 - TODO update
authored
47
b3e5d98 @fglock Perlito5 - TODO update
authored
48 -- this should give a syntax error: $x->meth 123
49
ed23a3a @fglock Perlito5 - TODO update
authored
50 -- indirect object notation
51 method Module $param;
84f4ff7 @fglock Perlito5 - TODO update
authored
52 -- lookup for existing subroutines:
53 sub m { my @x = 8, 9; @x } $x = m(); # m() is not a "match"
54
8f67bea @fglock Perlito version 8.0
authored
55
5bb50dd @fglock Perlito5 - update TODO
authored
56 * Perl5 backend
399a3d2 @fglock Perlito5 - use scalar() instead of .elems()
authored
57
529225f @fglock Perlito5 - TODO update
authored
58 -- ${^NAME} needs curly-escaping
59
85c5759 @fglock Perlito5 - TODO update
authored
60 - fix regex delimiters, or escape the regexes
61
0cc64c5 @fglock Perlito5 - kill perl6-ish "method"
authored
62
8f67bea @fglock Perlito version 8.0
authored
63 * Javascript backend
64
bb77986 @fglock Perlito5 - parser: optimize ident() rule
authored
65 -- bug: don't emit throw() in term position; javascript requires a function() wrapper because throw() is a statement
66
9f2a7d3 @fglock Perlito5 - TODO update
authored
67 -- initialize @INC from $ENV{PERL5LIB}
68
9f9d0dd @fglock Perlito5 - javascript: TODO update
authored
69 -- javascript errors don't show in the global error handler when running in node.js
7a03ff4 @fglock Perlito5 - javascript: eval-block works
authored
70
e584da6 @fglock Perlito5 - javascript: TODO update
authored
71 -- "autoload" the compiler if eval-string is used (eval-string needs the compiler at run-time)
72
529225f @fglock Perlito5 - TODO update
authored
73 -- symbol variables like $] ${"main::\$"} $#_
74 -- check that @_, $_, $a, $b and other special variables are in the right context (lexical, global, package global)
75
aa5eb05 @fglock Perlito5 - TODO update
authored
76 -- emit array/hash slices: @a[@x], @a{@x}
77
014a584 @fglock Perlito5 - javascript: working @ISA; update Changelog, examples
authored
78 -- add alternate mro's
85c5759 @fglock Perlito5 - TODO update
authored
79 -- cache the mro
42a3449 @fglock Perlito5 - TODO update
authored
80
81 -- add regex compiler
82 -- /e modifier
83 -- support all perl5 regex syntax
529225f @fglock Perlito5 - TODO update
authored
84 -- @v = /x/g
42a3449 @fglock Perlito5 - TODO update
authored
85
887219b @fglock Perlito5 - javascript: work around variable redeclaration bug
authored
86 -- bug: variable redeclaration does not work
87 -- javascript "var" erases the outer value within the whole current lexical scope
42a3449 @fglock Perlito5 - TODO update
authored
88 -- bug: "my" variables - this doesn't work as expected: my $v = $v
89 possible fix: rename variables
887219b @fglock Perlito5 - javascript: work around variable redeclaration bug
authored
90
78fd976 @fglock Perlito5 - javascript: fix 3-arguments substr()
authored
91 -- lvalue substr(); 4-arguments substr()
92 -- pos($str)
93
94 -- missing some types of subroutine signatures
5b56e5b @fglock Perlito5 - change javascript calling convention
authored
95
7b982c3 @fglock Perlito5 - update TODO
authored
96 -- bug: negative index in array doesn't work
97
8f67bea @fglock Perlito version 8.0
authored
98 -- bug: variable aliases create copies instead
99
ce36bd0 @fglock Perlito5 - update TODO
authored
100 -- generate more compact code; maybe use more subroutines instead of inlining;
101 autovivification is probably the most verbose part of the code.
ae7ad72 @fglock Perlito5 - update docs
authored
102
7b982c3 @fglock Perlito5 - update TODO
authored
103 -- in the browser: implement "use" with XMLHttpRequest (what are the security implications?)
4b15a00 @fglock Perlito5 - cleanup parenthesis
authored
104
5bb50dd @fglock Perlito5 - update TODO
authored
105 -- add symbol tables for scalar, array and hash
106
71b0905 @fglock Perlito5 - docs update
authored
107 -- string increment and string ranges
5b56e5b @fglock Perlito5 - change javascript calling convention
authored
108
0e5b55f @fglock Perlito5 - update TODO
authored
109 -- finish "overload" implementation
110
0718f37 @fglock Perlito5 - javascript: TODO update
authored
111 -- pack(), unpack()
112 -- sprintf()
113 -- y()()
114
0cc64c5 @fglock Perlito5 - kill perl6-ish "method"
authored
115
fb9190c @fglock Perlito5 - TODO update
authored
116 * More backends
8f67bea @fglock Perlito version 8.0
authored
117
fb9190c @fglock Perlito5 - TODO update
authored
118 -- Perl6 backend started
8f67bea @fglock Perlito version 8.0
authored
119
fb9190c @fglock Perlito5 - TODO update
authored
120 -- Python backend
8f67bea @fglock Perlito version 8.0
authored
121
fb9190c @fglock Perlito5 - TODO update
authored
122 -- Ruby backend
0cc64c5 @fglock Perlito5 - kill perl6-ish "method"
authored
123
fb9190c @fglock Perlito5 - TODO update
authored
124 -- Java backend
0cc64c5 @fglock Perlito5 - kill perl6-ish "method"
authored
125
59477ad @fglock Perlito - TODO update
authored
126
fb9190c @fglock Perlito5 - TODO update
authored
127 * Nice to Have
a7ab071 @fglock Perlito5 - add TODO
authored
128
fb9190c @fglock Perlito5 - TODO update
authored
129 -- labels, "next", "last", "continue"
465ee11 @fglock Perlito5 - TODO update
authored
130
fb9190c @fglock Perlito5 - TODO update
authored
131 -- run more of the "perl" test suite
0cc64c5 @fglock Perlito5 - kill perl6-ish "method"
authored
132
71b0905 @fglock Perlito5 - docs update
authored
133 -- proper "use strict" and "use warnings"
1b2eecc @fglock Perlito5 - use @ARGV instead of @*ARGS
authored
134 -- use the same error messages and warnings as 'perl'
42a3449 @fglock Perlito5 - TODO update
authored
135 -- no warnings 'redefine';
1b2eecc @fglock Perlito5 - use @ARGV instead of @*ARGS
authored
136
03f0a3d @fglock Perlito5 - javascript: add __PACKAGE__
authored
137 -- __END__, __LINE__, __DATA__, __FILE__
f4910a7 @fglock Perlito5 - TODO update
authored
138
c79db3b @fglock Perlito5 - update TODO
authored
139 -- BEGIN{}, INIT{}, END{}
f4910a7 @fglock Perlito5 - TODO update
authored
140
4b15a00 @fglock Perlito5 - cleanup parenthesis
authored
141 -- source code - remove Perl 6 code such as "token"
71b0905 @fglock Perlito5 - docs update
authored
142 (fixed: This is only loaded if the grammar compiler is needed)
4b15a00 @fglock Perlito5 - cleanup parenthesis
authored
143
61d64aa @fglock Perlito5 - parser: rewrite operator() in "perl5-land" for later tweaking
authored
144 -- *{ $name }{CODE}->();
145
146 -- local(*{$caller."::a"}) = \my $a;
6217752 @fglock Perlito5 - docs update
authored
147 -- *{$pkg . "::foo"} = \&bar;
61d64aa @fglock Perlito5 - parser: rewrite operator() in "perl5-land" for later tweaking
authored
148
149 -- AUTOLOAD
150
Something went wrong with that request. Please try again.