Skip to content

HTTPS clone URL

Subversion checkout URL

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