diff --git a/config/PARROT_VERSION b/config/PARROT_VERSION index c9591df..df3f397 100644 --- a/config/PARROT_VERSION +++ b/config/PARROT_VERSION @@ -1,6 +1,7 @@ # Minimum svn revision, e.g.: # revision: 12345 -revision: 45800 +revision: 45827 + # TODO: allow specification of a maximum version, as parrot trunk does # sometimes break. diff --git a/runtime/builtin/namespace.pir b/runtime/builtin/namespace.pir index 4132eee..4cf6126 100644 --- a/runtime/builtin/namespace.pir +++ b/runtime/builtin/namespace.pir @@ -119,6 +119,7 @@ bad_args: .local pmc colons, split, name colons = get_root_global ['_tcl'], 'colons' + colons = colons[0] split = get_root_global ['parrot'; 'PGE'; 'Util'], 'split' name = argv[0] diff --git a/runtime/conversions.pir b/runtime/conversions.pir index 4085bb4..3ab2b72 100644 --- a/runtime/conversions.pir +++ b/runtime/conversions.pir @@ -207,8 +207,10 @@ Given a string namespace, return an array of names. depth_set: .local pmc colons, split colons = get_root_global ['_tcl'], 'colons' + colons = colons[0] split = get_root_global ['parrot'; 'PGE'; 'Util'], 'split' + .local pmc ns_name ns_name = split(colons, name) $I0 = elements ns_name diff --git a/runtime/tcllib.pir b/runtime/tcllib.pir index 52be467..5f01ac7 100644 --- a/runtime/tcllib.pir +++ b/runtime/tcllib.pir @@ -220,7 +220,11 @@ got_platform: .local pmc p6rule, colons p6rule = compreg 'PGE::Perl6Regex' colons = p6rule('\:\:+') - set_hll_global 'colons', colons + # XXX Workaround TT #1672 - put this sub into a TclList + # and pop it out each time we want to invoke it. + $P1 = new 'TclList' + $P1[0] = colons + set_root_global ['_tcl'], 'colons', $P1 # register the TCL compiler. $P1 = get_root_global ['_tcl'], 'compileTcl' @@ -231,6 +235,7 @@ got_platform: set_global 'compiled_num', $P1 .end + .HLL 'parrot' .include 'src/grammar/expr/expression.pir' .include 'src/grammar/expr/parse.pir' diff --git a/runtime/variables.pir b/runtime/variables.pir index d4ff1c0..0b9f92b 100644 --- a/runtime/variables.pir +++ b/runtime/variables.pir @@ -405,6 +405,7 @@ root_global_var: absolute = 1 .local pmc colons, split colons = get_root_global ['_tcl'], 'colons' + colons = colons[0] split = get_root_global ['parrot'; 'PGE'; 'Util'], 'split' ns = split(colons, name) diff --git a/src/class/string.pir b/src/class/string.pir index a130604..c666b88 100644 --- a/src/class/string.pir +++ b/src/class/string.pir @@ -8,7 +8,7 @@ call Tcl methods on them. .HLL 'parrot' .namespace ['String'] -.sub getListValue :method +.sub getListValue :method :nsentry # a TclString would know what to do! .local pmc tclstring tclstring = new 'TclString' diff --git a/src/class/tclarray.pir b/src/class/tclarray.pir index ea30f5c..51c3758 100644 --- a/src/class/tclarray.pir +++ b/src/class/tclarray.pir @@ -48,7 +48,7 @@ Create a new iterator and track it. =cut -.sub new_iter :method +.sub new_iter :method :nsentry .param string array_name .local pmc ids, searches @@ -80,7 +80,7 @@ Remove iterator from our list. =cut -.sub rm_iter :method +.sub rm_iter :method :nsentry .param string named .local pmc ids, searches @@ -119,7 +119,7 @@ Return the named iterator =cut -.sub get_iter :method +.sub get_iter :method :nsentry .param string named .local pmc searches diff --git a/src/class/tclconst.pir b/src/class/tclconst.pir index 3481746..9211c2f 100644 --- a/src/class/tclconst.pir +++ b/src/class/tclconst.pir @@ -275,7 +275,7 @@ we're subclassing String... =cut -.sub '__dump' :method +.sub '__dump' :method :nsentry .param pmc dumper .param string label print self diff --git a/src/class/tcldict.pir b/src/class/tcldict.pir index d405254..b5aade5 100644 --- a/src/class/tcldict.pir +++ b/src/class/tcldict.pir @@ -55,7 +55,7 @@ present in TclList. =cut -.sub getDictValue :method +.sub getDictValue :method :nsentry .return(self) .end diff --git a/src/class/tclint.pir b/src/class/tclint.pir index 832a9b4..e73a697 100644 --- a/src/class/tclint.pir +++ b/src/class/tclint.pir @@ -13,7 +13,7 @@ Convert to a List. =cut -.sub getListValue :method +.sub getListValue :method :nsentry .list(retval) $I0 = self retval[0] = $I0 diff --git a/src/class/tcllist.pir b/src/class/tcllist.pir index 06fcaed..d1d6bc8 100644 --- a/src/class/tcllist.pir +++ b/src/class/tcllist.pir @@ -48,7 +48,7 @@ Return a list-ified version of this Tcl PMC. =cut -.sub getListValue :method +.sub getListValue :method :nsentry .return(self) .end @@ -61,7 +61,7 @@ moved back into parrot core where we'd be happy to inherit it. =cut -.sub reverse :method +.sub reverse :method :nsentry .local int low,high low = 0 high = elements self @@ -277,7 +277,7 @@ Copy the contents of other to self. =cut -.sub getDictValue :method +.sub getDictValue :method :nsentry .local int sizeof_list sizeof_list = elements self diff --git a/src/class/tclproc.pir b/src/class/tclproc.pir index 848bccc..650c711 100644 --- a/src/class/tclproc.pir +++ b/src/class/tclproc.pir @@ -24,7 +24,7 @@ Define the attributes required for the class. addattribute $P1, 'defaults' .end -.sub 'create' :method +.sub 'create' :method :nsentry .param pmc args .param pmc body .param string name # short proc name, or apply {...} diff --git a/src/class/tclstring.pir b/src/class/tclstring.pir index 8b7b59e..1822faf 100644 --- a/src/class/tclstring.pir +++ b/src/class/tclstring.pir @@ -14,7 +14,7 @@ Convert to a List. =cut -.sub getListValue :method +.sub getListValue :method :nsentry .local pmc retval retval = new 'TclList' @@ -190,7 +190,7 @@ done: =cut -.sub getDictValue :method +.sub getDictValue :method :nsentry # convert to list, then to dict. $P1 = self.'getListValue'() .tailcall $P1.'getDictValue'() diff --git a/src/class/tracearray.pir b/src/class/tracearray.pir index 06ca1dd..8cf64a6 100644 --- a/src/class/tracearray.pir +++ b/src/class/tracearray.pir @@ -22,7 +22,7 @@ Define the attributes required for the class. addattribute $P1, 'working' .end -.sub set_reader :method +.sub set_reader :method :nsentry .param pmc reader $S0 = reader diff --git a/src/grammar/expr/past2pir.tg b/src/grammar/expr/past2pir.tg index a0a5a0a..8ff179b 100644 --- a/src/grammar/expr/past2pir.tg +++ b/src/grammar/expr/past2pir.tg @@ -244,6 +244,7 @@ transform pir (PAST::StaticCommand) { .local pmc split, colons split = get_root_global ['parrot'; 'PGE'; 'Util'], 'split' colons = get_root_global ['_tcl'], 'colons' + colons = colons[0] $P0 = split(colons, name) $S1 = pop $P0 @@ -368,6 +369,7 @@ transform pir (PAST::DynamicCommand) { $S0 = %1 .local pmc colons, split colons = get_root_global ['_tcl'], 'colons' + colons = colons[0] split = get_root_global ['parrot'; 'PGE'; 'Util'], 'split' $P0 = split(colons, $S0) $S0 = ""