cvsuser 04/11/21 13:15:00
Modified: languages/tcl TODO
Log:
some stuff actually done. Remove verbatim copy of 'man n list', which was NOT
supposed to get into the repository.
Revision Changes Path
1.14 +11 -49 parrot/languages/tcl/TODO
Index: TODO
===================================================================
RCS file: /cvs/public/parrot/languages/tcl/TODO,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- TODO 10 Nov 2004 05:27:19 -0000 1.13
+++ TODO 21 Nov 2004 21:15:00 -0000 1.14
@@ -2,6 +2,11 @@
=over 4
+=item tclword
+
+An object is probably too heavyweight for this. A PMC with a few overloaded
+methods is probably sufficient.
+
=item From Use-perl Journal
Remove any dependence in Tcl's PIR on the Perl* PMCs.
@@ -13,7 +18,6 @@
'1 2'
which will have been shimmered from a TclList (returned by [list]) to a
TclString
-
=item From leo - cleanup of tcl objects.
C<tclobject> is an abstract object, it doesn't have a vtable. But the
@@ -36,38 +40,6 @@
(finally) in the use of null checks where it's being used for that, and
TclObject where it's being used for shimmering.
-=item WRITE [list] !!!
-
-SYNOPSIS
- list ?arg arg ...?
-_________________________________________________________________
-
-DESCRIPTION
- This command returns a list comprised of all the args, or an
empty
- string if no args are specified. Braces and backslashes get added
as
- necessary, so that the lindex command may be used on the result to
re-
- extract the original arguments, and also so that eval may be used
to
- execute the resulting list, with arg1 comprising the command's name
and
- the other args comprising its arguments. List produces slightly
dif-
- ferent results than concat: concat removes one level of
grouping
- before forming the list, while list works directly from the
original
- arguments. For example, the command
- list a b {c d e} {f {g h}}
- will return
- a b {c d e} {f {g h}}
- while concat with the same arguments will return
- a b c d e f {g h}
-
-
-=item GC bug
-
-yet another GC bug has crept in. do a checkin/update to give leo something
-to track down.
-
-=item new .local syntax
-
-Clean up our .local declarations with the new syntax.
-
=item function calls...
I do a lot of function calls that should probably be inlined as macros
@@ -114,25 +86,20 @@
We are currently using Perl* pmcs in a few more places. In some cases,
we need Resizable PMCs, and the core versions are not fully implemented.
-When converting to Tcl*, be sure to take advantage of morphing. Right now,
+When converting to Tcl*, be sure to take advantage of morphing. Right now,
we're kind of avoiding morphing. (like, having separate new PerlInt and
PerlString conditionally depending on the code path.) (fixed in string)
-Ok. First, we need to build the dyn pmcs using the new build "group" tag.
-
-Then, we need to go through and eliminate all references to Perl:
+We need to go through and eliminate all references to Perl:
(This is done for PerlInt, PerlString. Get rid of PerlHash, PerlArray)
+=item cross language compatibility
+
We need to also make sure that we /take/ any PMC and try to do the right
thing. Don't /require/ that someone pass in a TclString when a PerlString
will work fine, thanks. This is now a bigger issue when using the [list] ops.
if someone passes in a fixed list and we need to resize it... what do we do?
-=item implement [list]
-
-This should be blindingly simple, given an actual TclList PMC. (which we
don't
-quite have yet.
-
=item given freeze/thaw for objects...
Once freeze/thaw is working for tclwords (currently waiting on parrot
@@ -435,20 +402,15 @@
support in parrot. Well, upvar, anyway. implementing uplevel
may require a rethunk.
- foreach {list}
-
switch {regexp regsub "string match"}
- list {llength, linsert, lreplace, lrange, lappend,
- lsearch, lsort, split}
+ linsert, lreplace, lrange, lsearch, lsort, split, foreach, scan
cd, file, pwd, pid, glob
seek, tell, open, close, eof, flush, read, gets
- open close
-
- scan {list}
+ open, close
info, exec {use exec/spawn opcodes.}