# New Ticket Created by Will Coleda # Please include the string: [perl #28393] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=28393 >
Attached, find a .tgz that can be exploded in the top level of parrot which creates the abstract pmc "tclobject", with children "TclString", "TclInt", "TclFloat", and container pmcs "TclList" (an array) and "TclArray" (a hash). Tcl{String,Int,Float} work like their Perl counterparts, and, to use tcl parlance, "shimmer" to the appropriate type as necessary. This was basically a cut and paste job from the various Perl versions, so there will be future patches (and, er, tests - someone let me know if the tests belong in languages/tcl or if I should follow perl's lead and put them in parrot's test dir) to these classes to eventually make them even more tcl-ish (including automatic conversion between the array and the string), but this'll let me rip out all references to Perl in languages/tcl, which is a good thing. The biggest thing which I tripped over here was that Array.pmc uses PerlUndef to shimmer a few of the types. So, when I did: $P1 = new TclList $P1[0] = "eek" $P2 = $P1[0] $S0 = typeof $P2 print $S0 I'd get PerlString, because of inherited methods from Array.pmc. I just had to override those methods. (basically a cut and paste-o, changing the PerlUndef to a TclString, since that shimmers to the right types.) I now have commit privs to languages/tcl (thanks!), so I have some local updates that are waiting on this getting in. A re-configure/make is necessary to be able to use the Tcl* pmcs if you're feeling adventurous.
tcl_pmc.tar.gz
Description: GNU Zip compressed data
-- Will "Coke" Coleda will at coleda dot com