Author: coke
Date: Tue Apr 19 18:26:17 2005
New Revision: 7889

Modified:
   trunk/languages/tcl/TODO
Log:
some stuff done. More to do



Modified: trunk/languages/tcl/TODO
==============================================================================
--- trunk/languages/tcl/TODO    (original)
+++ trunk/languages/tcl/TODO    Tue Apr 19 18:26:17 2005
@@ -6,6 +6,15 @@
 
 =over 4
 
+=item interactive tclsh
+
+simple interactive mode now exists. 
+
+ o Should catch any real_exceptions thrown.
+ o respect tcl_prompt1, tcl_prompt2 (Depends on true global support)
+ o deal with incomplete input
+ o give invalid commands to the system.
+
 =item [interpinfo name]
 
 how to do this from inside parrot?
@@ -59,13 +68,7 @@
 
 Right now, globals are done with lexicals. get_var/set_var needs to be 
 updated to check the call_level - if we're at 0, then use a global. [global]
-and [upvar] may need attention once this is done.
-
-=item interactive tclsh
-
-interactive tclsh mode currently only waits for EOF and then runs all
-commands entered. should have sane defaults for tcl_prompt1, tcl_prompt2
-and respect them, and process intermediate input.
+and [upvar] will need attention once this is done.
 
 =item implement default globals, etc.
 
@@ -78,9 +81,10 @@
 =item misc
 
 hex & unicode escapes are not currently supported in 
-C<dynclasses/tclparser.pmc>'s C<parse>.
+C<dynclasses/tclparser.pmc>'s C<parse>. - I have a version of this in my
+sandbox, but it requires more work from parrot guts.
 
-=item unimplemented commands/subcommands
+=item unimplemented commands/subcommands 
 
 [after] [array get] [array names] [array unset] 
 [array statistics] [array anymore] [array donesearch]
@@ -117,7 +121,7 @@
 
 [uplevel] [upvar] [lrange] [inline] [string repeat] 
 
-=item pass tcl test suite
+=item pass any test in the tcl test suite ^_^
 
 =back
 
@@ -125,13 +129,6 @@
 
 =over 4
 
-=item From leo - cleanup of tcl objects.
-
-C<tclobject> is an abstract object, it doesn't have a vtable. But the
-bundling code *does* C<pmc_register> this PMC. This leads to an empty
-vtable slot, dereferencing that NULL is an operation, which many systems
-don't like.
-
 =item Remove Perl*
 
 Mostly done. All that seems to be left is PerlUndef. Much was already
@@ -139,11 +136,14 @@
 (finally) in the use of null checks where it's being used for that, and
 TclObject where it's being used for shimmering.
 
-=item Freeze/Thaw of TclWord would ...
+Left in:
 
-allow us to build a braindead compile
-option - given a chunk of tcl, generate a chunk of PIR that we can 
-emit to be saved, compiled, and then run again.
+./lib/commands/inline.imc
+./lib/commands/open.imc
+./lib/commands/source.imc
+./lib/expression.imc
+./lib/get_var.imc
+./lib/tclword.imc
 
 =item tail call optimizations
 
@@ -153,17 +153,6 @@
 
 =item provide a way to access existing library PIR from Tcl.
 
-=item add benchmarks?
-
-=item given freeze/thaw for objects...
-
-Once freeze/thaw is working for tclwords (currently waiting on parrot
-support), rewrite proc to preparse
-once and cache the result in the generated sub rather than reparsing
-each time.
-
-(Though this seems evil, too. There must be a better way.)
-
 =item TclWord
 
 implement C<is_const> to allow for some optimizations in the compiler. 
@@ -178,10 +167,9 @@
 =item compiler vs. interpreter
 
 it should be possible to further extend our interpreter
-this to make an actual compiler,
-where the _compiler emits PIR. 
+this to make an actual compiler, where the compiler emits PIR. 
 
-And now that we have the pir_code, we can either emit the necessary
+And once we have the pir_code, we can either emit the necessary
 PIR (ala parrot's -o option) or we can compile and run it.
 
 Caveat: how to support -o with user defined procs - right now, proc is defining
@@ -198,7 +186,7 @@
 
 clean up expr so that it's not passing around
 type indicators. - just use PMCs everywhere. (Though we may still need
-to have CONST vs. VARIABLE types.
+to have CONST vs. VARIABLE types.)
 
 The type indicator is also used to disambiguate operators and function calls
 from operands. We can easily remove it for operands, but how to cleanly
@@ -217,8 +205,8 @@
 
 TBD: Argument type requirements - Currently works ONLY on bitand - esp need
 to get any that require int-only args, as we can now /generate/ floats,
-even if we cannot specify them. {This probably requires switching to Tcl*
-PMCs and putting the logic in there hidden under MMD}
+even if we cannot specify them. This is all supportable by MMD - we just
+need to specify the correct errors to throw.
 
 =item misc
 

Reply via email to