Skip to content
Newer
Older
100755 201 lines (128 sloc) 5 KB
8f67bea @fglock Perlito version 8.0
authored
1 TODO list for Perlito5
2
d6cad9b @fglock Perlito5 - TODO update
authored
3
25b8875 @fglock Perlito5 - TODO update
authored
4 * perlito5 command-line
e4641d7 @fglock Perlito - extensive TODO update
authored
5
6318642 @fglock Perlito5 - ChangeLog/TODO update
authored
6 -- search for modules in PERL5LIB
7 perlito5 own directories must be searched first (perlito5 defines it's own strict.pm)
8 maybe search PERLITO5LIB first
9 alternately, check $^H for strictness - such that perl's own strict.pm just works
10 and ${^WARNING_BITS} for warnings
e4641d7 @fglock Perlito - extensive TODO update
authored
11
12
c07de6d @fglock Perlito5 - TODO update
authored
13 * basic functionality
14
0718f37 @fglock Perlito5 - javascript: TODO update
authored
15 -- add "print" special parsing
16
0cc64c5 @fglock Perlito5 - kill perl6-ish "method"
authored
17
8f67bea @fglock Perlito version 8.0
authored
18 * libraries
19
3004b77 @fglock Perlito5 - cleanup, update TODO
authored
20 -- these should probably go into namespace Perlito5X::*
21
ce7ce91 @fglock Perlito - TODO update
authored
22 -- Test (implemented as Perlito5::Test)
3004b77 @fglock Perlito5 - cleanup, update TODO
authored
23
ce7ce91 @fglock Perlito - TODO update
authored
24 -- Data::Dumper (implemented as Perlito5::Dumper)
8f67bea @fglock Perlito version 8.0
authored
25
24c23f7 @fglock Perlito5 - TODO update
authored
26 -- create perlito5-specific libs for:
7aeb314 @fglock Perlito5 - TODO update
authored
27 feature.pm
28 Config.pm
29 overload.pm
30 bytes.pm
31 integer.pm
32 constant.pm
33 lib.pm
34 Carp.pm
35 vars.pm
36 Tie::Array
37 Tie::Hash
38 Tie::Scalar
24c23f7 @fglock Perlito5 - TODO update
authored
39
8f67bea @fglock Perlito version 8.0
authored
40
7b982c3 @fglock Perlito5 - update TODO
authored
41 * Parser
42
8a7d342 @fglock Perlito5 - parser: fix filetest operator precedence
authored
43 -- bug: filetest operators special case:
8f60cb4 @fglock Perlito5 - TODO update
authored
44 ' -f($file).".bak" ' should be equivalent to -f "$file.bak"
45 parses as -(f($file)).".bak"
46 but: ' -f ($file).".bak" '
47 parses correctly
8a7d342 @fglock Perlito5 - parser: fix filetest operator precedence
authored
48
8f60cb4 @fglock Perlito5 - TODO update
authored
49 -- ' 123 456 ' should be a syntax error (parses as two statements)
50 -- ' $# ' should be a syntax error (parses as $#{undef} )
51 -- ' $x->meth 123 ' should be a syntax error
2700363 @fglock Perlito5 - TODO update
authored
52
53 -- fix the prototype for 'stat(*)' (see t/test.pl in the perl test suite)
00a6251 @fglock Perlito5 - javascript: optimize array literals
authored
54
ae33743 @fglock Perlito5 - TODO update
authored
55 -- compile-time eval() is not bound to the "program" environment, but to the "compiler" environment instead
56 my $v;
57 BEGIN { $v = "123" }
58 use Module $v; # $v is not accessible at compile-time
7b982c3 @fglock Perlito5 - update TODO
authored
59
529225f @fglock Perlito5 - TODO update
authored
60 -- parse the regexes
7b982c3 @fglock Perlito5 - update TODO
authored
61
b32dc90 @fglock Perlito5 - update TODO
authored
62 -- prototypes (signatures)
63 --- done: "empty" _ $ ;$
64 --- check that undeclared barewords give the right error
61d64aa @fglock Perlito5 - parser: rewrite operator() in "perl5-land" for later tweaking
authored
65 --- *foo = sub () { ... } # does prototype work here?
85c5759 @fglock Perlito5 - TODO update
authored
66 --- check signature in sort()
fde5276 @fglock Perlito5 - update TODO
authored
67
0464e31 @fglock Perlito5 - use perl5 array/hash in perl5 backend
authored
68 -- check that \(@a) and \@a have different meanings
7b982c3 @fglock Perlito5 - update TODO
authored
69
ce7ce91 @fglock Perlito - TODO update
authored
70 -- parse "local $x[1]"
7a03ff4 @fglock Perlito5 - javascript: eval-block works
authored
71 -- parse local $@
ce7ce91 @fglock Perlito - TODO update
authored
72
df66182 @fglock Perlito5 - fix hash lookup autoquote
authored
73 -- $v{x::y} autoquotes the index when x::y() exists
74 -- $v->{x} doesn't interpolate inside double quotes
25b8875 @fglock Perlito5 - TODO update
authored
75 -- deref inside double quotes:
76 $ node perlito5.js -Bjs -e ' my $x = "123"; my $y = \$x; print "[$$y]\n" '
77 [$[object Object]]
529225f @fglock Perlito5 - TODO update
authored
78
ed23a3a @fglock Perlito5 - TODO update
authored
79 -- indirect object notation
80 method Module $param;
84f4ff7 @fglock Perlito5 - TODO update
authored
81 -- lookup for existing subroutines:
82 sub m { my @x = 8, 9; @x } $x = m(); # m() is not a "match"
83
8f67bea @fglock Perlito version 8.0
authored
84
5bb50dd @fglock Perlito5 - update TODO
authored
85 * Perl5 backend
399a3d2 @fglock Perlito5 - use scalar() instead of .elems()
authored
86
529225f @fglock Perlito5 - TODO update
authored
87 -- ${^NAME} needs curly-escaping
88
85c5759 @fglock Perlito5 - TODO update
authored
89 - fix regex delimiters, or escape the regexes
90
0cc64c5 @fglock Perlito5 - kill perl6-ish "method"
authored
91
8f67bea @fglock Perlito version 8.0
authored
92 * Javascript backend
93
2b4296b @fglock Perlito5 - javascript: add unlink()
authored
94 -- bug: "map BLOCK" broken because BLOCK doesn't return the last value; this is missing tests
95
db64ad6 @fglock Perlito5 - parser: "C-style" loop
authored
96 -- bug: some declarations are not "seen":
97 for ( my $i = 0; $i < 10 ; $i++ ) { print "$i\n" } # compiles to global $i
98
bb77986 @fglock Perlito5 - parser: optimize ident() rule
authored
99 -- bug: don't emit throw() in term position; javascript requires a function() wrapper because throw() is a statement
100
9f2a7d3 @fglock Perlito5 - TODO update
authored
101 -- initialize @INC from $ENV{PERL5LIB}
102
9f9d0dd @fglock Perlito5 - javascript: TODO update
authored
103 -- javascript errors don't show in the global error handler when running in node.js
7a03ff4 @fglock Perlito5 - javascript: eval-block works
authored
104
e584da6 @fglock Perlito5 - javascript: TODO update
authored
105 -- "autoload" the compiler if eval-string is used (eval-string needs the compiler at run-time)
106
529225f @fglock Perlito5 - TODO update
authored
107 -- symbol variables like $] ${"main::\$"} $#_
108 -- check that @_, $_, $a, $b and other special variables are in the right context (lexical, global, package global)
109
aa5eb05 @fglock Perlito5 - TODO update
authored
110 -- emit array/hash slices: @a[@x], @a{@x}
111
014a584 @fglock Perlito5 - javascript: working @ISA; update Changelog, examples
authored
112 -- add alternate mro's
85c5759 @fglock Perlito5 - TODO update
authored
113 -- cache the mro
42a3449 @fglock Perlito5 - TODO update
authored
114
115 -- add regex compiler
116 -- /e modifier
117 -- support all perl5 regex syntax
529225f @fglock Perlito5 - TODO update
authored
118 -- @v = /x/g
42a3449 @fglock Perlito5 - TODO update
authored
119
887219b @fglock Perlito5 - javascript: work around variable redeclaration bug
authored
120 -- bug: variable redeclaration does not work
121 -- javascript "var" erases the outer value within the whole current lexical scope
42a3449 @fglock Perlito5 - TODO update
authored
122 -- bug: "my" variables - this doesn't work as expected: my $v = $v
123 possible fix: rename variables
887219b @fglock Perlito5 - javascript: work around variable redeclaration bug
authored
124
b75827a @fglock Perlito5 - TODO update
authored
125 -- lvalue ternary: ($a_or_b ? $a : $b) = $c;
126 -- lvalue substr()
127 -- 4-arguments substr()
78fd976 @fglock Perlito5 - javascript: fix 3-arguments substr()
authored
128 -- pos($str)
129
130 -- missing some types of subroutine signatures
5b56e5b @fglock Perlito5 - change javascript calling convention
authored
131
8f67bea @fglock Perlito version 8.0
authored
132 -- bug: variable aliases create copies instead
133
ce36bd0 @fglock Perlito5 - update TODO
authored
134 -- generate more compact code; maybe use more subroutines instead of inlining;
135 autovivification is probably the most verbose part of the code.
ae7ad72 @fglock Perlito5 - update docs
authored
136
7b982c3 @fglock Perlito5 - update TODO
authored
137 -- in the browser: implement "use" with XMLHttpRequest (what are the security implications?)
4b15a00 @fglock Perlito5 - cleanup parenthesis
authored
138
5bb50dd @fglock Perlito5 - update TODO
authored
139 -- add symbol tables for scalar, array and hash
140
71b0905 @fglock Perlito5 - docs update
authored
141 -- string increment and string ranges
e09904a @fglock Perlito5 - javascript: infrastructure for string increment
authored
142 See: p5str_inc()
5b56e5b @fglock Perlito5 - change javascript calling convention
authored
143
0e5b55f @fglock Perlito5 - update TODO
authored
144 -- finish "overload" implementation
145
0718f37 @fglock Perlito5 - javascript: TODO update
authored
146 -- pack(), unpack()
147 -- sprintf()
148 -- y()()
149
0cc64c5 @fglock Perlito5 - kill perl6-ish "method"
authored
150
fb9190c @fglock Perlito5 - TODO update
authored
151 * More backends
8f67bea @fglock Perlito version 8.0
authored
152
fb9190c @fglock Perlito5 - TODO update
authored
153 -- Python backend
d6cad9b @fglock Perlito5 - TODO update
authored
154 reuse the Perlito6 implementation
8f67bea @fglock Perlito version 8.0
authored
155
fb9190c @fglock Perlito5 - TODO update
authored
156 -- Ruby backend
d6cad9b @fglock Perlito5 - TODO update
authored
157 reuse the Perlito6 implementation
0cc64c5 @fglock Perlito5 - kill perl6-ish "method"
authored
158
fb9190c @fglock Perlito5 - TODO update
authored
159 -- Java backend
d6cad9b @fglock Perlito5 - TODO update
authored
160 not sure if this is a good idea; other dynamic languages are reported slow in JVM
0cc64c5 @fglock Perlito5 - kill perl6-ish "method"
authored
161
59477ad @fglock Perlito - TODO update
authored
162
fb9190c @fglock Perlito5 - TODO update
authored
163 * Nice to Have
a7ab071 @fglock Perlito5 - add TODO
authored
164
8f60cb4 @fglock Perlito5 - TODO update
authored
165 -- "next", "last", "continue"
166 -- caller()
167 -- "when"
465ee11 @fglock Perlito5 - TODO update
authored
168
fb9190c @fglock Perlito5 - TODO update
authored
169 -- run more of the "perl" test suite
0cc64c5 @fglock Perlito5 - kill perl6-ish "method"
authored
170
71b0905 @fglock Perlito5 - docs update
authored
171 -- proper "use strict" and "use warnings"
1b2eecc @fglock Perlito5 - use @ARGV instead of @*ARGS
authored
172 -- use the same error messages and warnings as 'perl'
42a3449 @fglock Perlito5 - TODO update
authored
173 -- no warnings 'redefine';
1b2eecc @fglock Perlito5 - use @ARGV instead of @*ARGS
authored
174
03f0a3d @fglock Perlito5 - javascript: add __PACKAGE__
authored
175 -- __END__, __LINE__, __DATA__, __FILE__
f4910a7 @fglock Perlito5 - TODO update
authored
176
c79db3b @fglock Perlito5 - update TODO
authored
177 -- BEGIN{}, INIT{}, END{}
f4910a7 @fglock Perlito5 - TODO update
authored
178
4b15a00 @fglock Perlito5 - cleanup parenthesis
authored
179 -- source code - remove Perl 6 code such as "token"
71b0905 @fglock Perlito5 - docs update
authored
180 (fixed: This is only loaded if the grammar compiler is needed)
4b15a00 @fglock Perlito5 - cleanup parenthesis
authored
181
61d64aa @fglock Perlito5 - parser: rewrite operator() in "perl5-land" for later tweaking
authored
182 -- *{ $name }{CODE}->();
183
184 -- local(*{$caller."::a"}) = \my $a;
6217752 @fglock Perlito5 - docs update
authored
185 -- *{$pkg . "::foo"} = \&bar;
61d64aa @fglock Perlito5 - parser: rewrite operator() in "perl5-land" for later tweaking
authored
186
187 -- AUTOLOAD
188
d6cad9b @fglock Perlito5 - TODO update
authored
189
190 * Deprecate
191
192 -- remove unused features from src5/lib/Perlito5/Grammar/Regex.pm
193
194 -- Interpreter backend
195 this is not being maintained; the code is still in src5/lib/Perlito5/Eval.pm just in case
196
197 -- Perl6 backend (started)
198 this is not being maintained; not sure if compiling to Perl6 is the best way
199 maybe compiling directly to Parrot/dotnet/Haskell gives better results
200
Something went wrong with that request. Please try again.