Author: Whiteknight
Date: Mon Jul 28 13:55:54 2008
New Revision: 29832

Added:
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/lreverse.pir
      - copied unchanged from r29831, 
/trunk/languages/tcl/runtime/builtin/lreverse.pir
Modified:
   branches/gsoc_pdd09/MANIFEST
   branches/gsoc_pdd09/MANIFEST.SKIP
   branches/gsoc_pdd09/config/gen/makefiles/root.in
   branches/gsoc_pdd09/languages/lua/src/lib/gl.pir
   branches/gsoc_pdd09/languages/lua/src/lib/glut.pir
   branches/gsoc_pdd09/languages/pipp/src/pct/quote_expression.pir
   branches/gsoc_pdd09/languages/pipp/t/php/strings.t
   branches/gsoc_pdd09/languages/tcl/lib/skipped_tests.tcl
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/break.pir   (props changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/cd.pir   (props changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/continue.pir   (props 
changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/eof.pir   (props changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/exit.pir   (props changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/flush.pir   (props changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/for.pir   (contents, props 
changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/foreach.pir
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/incr.pir   (contents, 
props changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/join.pir   (contents, 
props changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/llength.pir   (contents, 
props changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/lrange.pir   (contents, 
props changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/lsort.pir
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/pwd.pir   (props changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/set.pir   (props changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/time.pir   (contents, 
props changed)
   branches/gsoc_pdd09/languages/tcl/runtime/builtin/while.pir   (contents, 
props changed)
   branches/gsoc_pdd09/languages/tcl/t/cmd_foreach.t
   branches/gsoc_pdd09/languages/tcl/t/cmd_lsort.t
   branches/gsoc_pdd09/t/doc/pod.t
   branches/gsoc_pdd09/t/harness

Log:
[gsoc_pdd09] update to trunk r29830

Modified: branches/gsoc_pdd09/MANIFEST
==============================================================================
--- branches/gsoc_pdd09/MANIFEST        (original)
+++ branches/gsoc_pdd09/MANIFEST        Mon Jul 28 13:55:54 2008
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Sat Jul 26 17:14:04 2008 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Mon Jul 28 02:54:53 2008 UT
 #
 # See tools/dev/install_files.pl for documentation on the
 # format of this file.
@@ -2489,35 +2489,47 @@
 languages/tcl/runtime/builtin/auto_execok.pir               [tcl]
 languages/tcl/runtime/builtin/auto_load.pir                 [tcl]
 languages/tcl/runtime/builtin/binary.pir                    [tcl]
+languages/tcl/runtime/builtin/break.pir                     [tcl]
 languages/tcl/runtime/builtin/catch.pir                     [tcl]
+languages/tcl/runtime/builtin/cd.pir                        [tcl]
 languages/tcl/runtime/builtin/clock.pir                     [tcl]
 languages/tcl/runtime/builtin/close.pir                     [tcl]
 languages/tcl/runtime/builtin/concat.pir                    [tcl]
+languages/tcl/runtime/builtin/continue.pir                  [tcl]
 languages/tcl/runtime/builtin/dict.pir                      [tcl]
 languages/tcl/runtime/builtin/encoding.pir                  [tcl]
+languages/tcl/runtime/builtin/eof.pir                       [tcl]
 languages/tcl/runtime/builtin/error.pir                     [tcl]
 languages/tcl/runtime/builtin/eval.pir                      [tcl]
 languages/tcl/runtime/builtin/exec.pir                      [tcl]
+languages/tcl/runtime/builtin/exit.pir                      [tcl]
 languages/tcl/runtime/builtin/expr.pir                      [tcl]
 languages/tcl/runtime/builtin/fconfigure.pir                [tcl]
 languages/tcl/runtime/builtin/file.pir                      [tcl]
 languages/tcl/runtime/builtin/fileevent.pir                 [tcl]
+languages/tcl/runtime/builtin/flush.pir                     [tcl]
+languages/tcl/runtime/builtin/for.pir                       [tcl]
 languages/tcl/runtime/builtin/foreach.pir                   [tcl]
 languages/tcl/runtime/builtin/format.pir                    [tcl]
 languages/tcl/runtime/builtin/gets.pir                      [tcl]
 languages/tcl/runtime/builtin/glob.pir                      [tcl]
 languages/tcl/runtime/builtin/global.pir                    [tcl]
 languages/tcl/runtime/builtin/if.pir                        [tcl]
+languages/tcl/runtime/builtin/incr.pir                      [tcl]
 languages/tcl/runtime/builtin/info.pir                      [tcl]
 languages/tcl/runtime/builtin/inline.pir                    [tcl]
 languages/tcl/runtime/builtin/interp.pir                    [tcl]
+languages/tcl/runtime/builtin/join.pir                      [tcl]
 languages/tcl/runtime/builtin/lappend.pir                   [tcl]
 languages/tcl/runtime/builtin/lassign.pir                   [tcl]
 languages/tcl/runtime/builtin/lindex.pir                    [tcl]
 languages/tcl/runtime/builtin/linsert.pir                   [tcl]
 languages/tcl/runtime/builtin/list.pir                      [tcl]
+languages/tcl/runtime/builtin/llength.pir                   [tcl]
+languages/tcl/runtime/builtin/lrange.pir                    [tcl]
 languages/tcl/runtime/builtin/lrepeat.pir                   [tcl]
 languages/tcl/runtime/builtin/lreplace.pir                  [tcl]
+languages/tcl/runtime/builtin/lreverse.pir                  [tcl]
 languages/tcl/runtime/builtin/lsearch.pir                   [tcl]
 languages/tcl/runtime/builtin/lset.pir                      [tcl]
 languages/tcl/runtime/builtin/lsort.pir                     [tcl]
@@ -2527,17 +2539,20 @@
 languages/tcl/runtime/builtin/parray.pir                    [tcl]
 languages/tcl/runtime/builtin/proc.pir                      [tcl]
 languages/tcl/runtime/builtin/puts.pir                      [tcl]
+languages/tcl/runtime/builtin/pwd.pir                       [tcl]
 languages/tcl/runtime/builtin/regexp.pir                    [tcl]
 languages/tcl/runtime/builtin/regsub.pir                    [tcl]
 languages/tcl/runtime/builtin/rename.pir                    [tcl]
 languages/tcl/runtime/builtin/return.pir                    [tcl]
 languages/tcl/runtime/builtin/scan.pir                      [tcl]
+languages/tcl/runtime/builtin/set.pir                       [tcl]
 languages/tcl/runtime/builtin/socket.pir                    [tcl]
 languages/tcl/runtime/builtin/source.pir                    [tcl]
 languages/tcl/runtime/builtin/split.pir                     [tcl]
 languages/tcl/runtime/builtin/string.pir                    [tcl]
 languages/tcl/runtime/builtin/subst.pir                     [tcl]
 languages/tcl/runtime/builtin/switch.pir                    [tcl]
+languages/tcl/runtime/builtin/time.pir                      [tcl]
 languages/tcl/runtime/builtin/trace.pir                     [tcl]
 languages/tcl/runtime/builtin/unknown.pir                   [tcl]
 languages/tcl/runtime/builtin/unset.pir                     [tcl]
@@ -2546,6 +2561,7 @@
 languages/tcl/runtime/builtin/upvar.pir                     [tcl]
 languages/tcl/runtime/builtin/variable.pir                  [tcl]
 languages/tcl/runtime/builtin/vwait.pir                     [tcl]
+languages/tcl/runtime/builtin/while.pir                     [tcl]
 languages/tcl/runtime/conversions.pir                       [tcl]
 languages/tcl/runtime/options.pir                           [tcl]
 languages/tcl/runtime/string_to_list.pir                    [tcl]
@@ -2553,24 +2569,6 @@
 languages/tcl/runtime/variables.pir                         [tcl]
 languages/tcl/src/binary.c                                  [tcl]
 languages/tcl/src/binary.h                                  [tcl]
-languages/tcl/src/builtin/break.tmt                         [tcl]
-languages/tcl/src/builtin/cd.pir                            [tcl]
-languages/tcl/src/builtin/continue.tmt                      [tcl]
-languages/tcl/src/builtin/eof.tmt                           [tcl]
-languages/tcl/src/builtin/exit.tmt                          [tcl]
-languages/tcl/src/builtin/expr.pir                          [tcl]
-languages/tcl/src/builtin/flush.tmt                         [tcl]
-languages/tcl/src/builtin/for.tmt                           [tcl]
-languages/tcl/src/builtin/incr.tmt                          [tcl]
-languages/tcl/src/builtin/join.tmt                          [tcl]
-languages/tcl/src/builtin/list.pir                          [tcl]
-languages/tcl/src/builtin/llength.tmt                       [tcl]
-languages/tcl/src/builtin/lrange.tmt                        [tcl]
-languages/tcl/src/builtin/pwd.tmt                           [tcl]
-languages/tcl/src/builtin/return.pir                        [tcl]
-languages/tcl/src/builtin/set.tmt                           [tcl]
-languages/tcl/src/builtin/time.tmt                          [tcl]
-languages/tcl/src/builtin/while.tmt                         [tcl]
 languages/tcl/src/class/tclconst.pir                        [tcl]
 languages/tcl/src/class/tclproc.pir                         [tcl]
 languages/tcl/src/grammar/expr/expression.pg                [tcl]
@@ -2667,7 +2665,6 @@
 languages/tcl/t/tcl_pir_compiler.t                          [tcl]
 languages/tcl/t/tcl_var_subst.t                             [tcl]
 languages/tcl/tools/gen_builtins.pl                         [tcl]
-languages/tcl/tools/gen_inline.pl                           [tcl]
 languages/tcl/tools/tcl_harness.pl                          [tcl]
 languages/tcl/tools/tcl_test.pl                             [tcl]
 languages/unlambda/MAINTAINER                               [unlambda]

Modified: branches/gsoc_pdd09/MANIFEST.SKIP
==============================================================================
--- branches/gsoc_pdd09/MANIFEST.SKIP   (original)
+++ branches/gsoc_pdd09/MANIFEST.SKIP   Mon Jul 28 13:55:54 2008
@@ -1,6 +1,6 @@
 # ex: set ro:
 # $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Tue Jul 15 23:45:17 2008 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Mon Jul 28 00:33:14 2008 UT
 #
 # This file should contain a transcript of the svn:ignore properties
 # of the directories in the Parrot subversion repository. (Needed for
@@ -1305,35 +1305,6 @@
 ^languages/tcl/src/tcl_expr\.pir/
 ^languages/tcl/src/tcl_expr_optok\.pir$
 ^languages/tcl/src/tcl_expr_optok\.pir/
-# generated from svn:ignore of 'languages/tcl/src/builtin/'
-^languages/tcl/src/builtin/break\.pir$
-^languages/tcl/src/builtin/break\.pir/
-^languages/tcl/src/builtin/continue\.pir$
-^languages/tcl/src/builtin/continue\.pir/
-^languages/tcl/src/builtin/eof\.pir$
-^languages/tcl/src/builtin/eof\.pir/
-^languages/tcl/src/builtin/exit\.pir$
-^languages/tcl/src/builtin/exit\.pir/
-^languages/tcl/src/builtin/flush\.pir$
-^languages/tcl/src/builtin/flush\.pir/
-^languages/tcl/src/builtin/for\.pir$
-^languages/tcl/src/builtin/for\.pir/
-^languages/tcl/src/builtin/incr\.pir$
-^languages/tcl/src/builtin/incr\.pir/
-^languages/tcl/src/builtin/join\.pir$
-^languages/tcl/src/builtin/join\.pir/
-^languages/tcl/src/builtin/llength\.pir$
-^languages/tcl/src/builtin/llength\.pir/
-^languages/tcl/src/builtin/lrange\.pir$
-^languages/tcl/src/builtin/lrange\.pir/
-^languages/tcl/src/builtin/pwd\.pir$
-^languages/tcl/src/builtin/pwd\.pir/
-^languages/tcl/src/builtin/set\.pir$
-^languages/tcl/src/builtin/set\.pir/
-^languages/tcl/src/builtin/time\.pir$
-^languages/tcl/src/builtin/time\.pir/
-^languages/tcl/src/builtin/while\.pir$
-^languages/tcl/src/builtin/while\.pir/
 # generated from svn:ignore of 'languages/tcl/src/class/'
 ^languages/tcl/src/class/.*\.pbc$
 ^languages/tcl/src/class/.*\.pbc/

Modified: branches/gsoc_pdd09/config/gen/makefiles/root.in
==============================================================================
--- branches/gsoc_pdd09/config/gen/makefiles/root.in    (original)
+++ branches/gsoc_pdd09/config/gen/makefiles/root.in    Mon Jul 28 13:55:54 2008
@@ -176,7 +176,7 @@
     $(IMCC_DIR)/imcc.y.flag \
     $(OPS_DIR)/core_ops.c \
     $(OPS_DIR)/core_ops_switch.c \
-    parrot_config parrot_config.c parrot_config.o parrot_config.pbc
+    parrot_config$(EXE) parrot_config.c parrot_config.o parrot_config.pbc
 
 # most of these are generated by config/gen/parrot_include.pm
 
@@ -775,8 +775,8 @@
     lib/Parrot/OpLib/core.pm $(SRC_DIR)/parrot_config$(O) \
     $(MINIPARROT)
        $(LINK) @[EMAIL PROTECTED]@ \
-    $(SRC_DIR)/main$(O) @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS) 
$(LINK_DYNAMIC) \
-    $(SRC_DIR)/parrot_config$(O)
+       $(SRC_DIR)/main$(O) $(SRC_DIR)/parrot_config$(O) \
+       @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS) $(LINK_DYNAMIC) \
 
 pbc_to_exe.pir : $(PARROT) tools/dev/pbc_to_exe_gen.pl
        $(PERL) tools/dev/pbc_to_exe_gen.pl \
@@ -803,8 +803,8 @@
 # TODO build the real miniparrot
 $(MINIPARROT) : $(SRC_DIR)/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
     lib/Parrot/OpLib/core.pm $(SRC_DIR)/null_config$(O)
-       $(LINK) @[EMAIL PROTECTED]@ $(SRC_DIR)/main$(O) \
-    @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS) $(SRC_DIR)/null_config$(O)
+       $(LINK) @[EMAIL PROTECTED]@ $(SRC_DIR)/main$(O) 
$(SRC_DIR)/null_config$(O) \
+       @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
 
 $(INSTALLABLEPARROT) : $(SRC_DIR)/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
     lib/Parrot/OpLib/core.pm $(SRC_DIR)/install_config$(O) \

Modified: branches/gsoc_pdd09/languages/lua/src/lib/gl.pir
==============================================================================
--- branches/gsoc_pdd09/languages/lua/src/lib/gl.pir    (original)
+++ branches/gsoc_pdd09/languages/lua/src/lib/gl.pir    Mon Jul 28 13:55:54 2008
@@ -1425,6 +1425,47 @@
     .return (n, a)
 .end
 
+.sub 'get_array2f' :anon
+    .param pmc table
+    .local int n, size
+    n = table.'len'()
+    new $P0, 'LuaNumber'
+    set $P0, 1
+    $P1 = table[$P0]
+    $I0 = lua_istable($P1)
+    if $I0 goto L1
+    .return (-1)
+  L1:
+    size = $P1.'len'()
+    .local pmc a
+    new a, 'FixedFloatArray'
+    $I0 = n * size
+    set a, $I0
+    $I0 = 0
+    $I2 = 0
+  L2:
+    unless $I0 < n goto L3
+    inc $I0
+    set $P0, $I0
+    $P1 = table[$P0]
+    $I0 = lua_istable($P1)
+    if $I0 goto L4
+    .return (-1)
+  L4:
+    $I1 = 0
+    unless $I1 < size goto L5
+    inc $I1
+    set $P0, $I1
+    $P2 = $P1[$P0]
+    $N2 = $P2
+    a[$I2] = $N2
+    goto L4
+  L5:
+    goto L2
+  L3:
+    .return (n, size, a)
+.end
+
 .include 'opengl_defines.pasm'
 
 
@@ -3134,7 +3175,7 @@
     $N1 = x
     $N2 = y
     $N3 = z
-    glTranslate($N1, $N2, $N3)
+    glTranslated($N1, $N2, $N3)
 .end
 
 
@@ -3191,13 +3232,24 @@
 .end
 
 
-=item C<gl.VertexPointer ()>
+=item C<gl.VertexPointer (vertexArray)>
+
+STILL INCOMPLETE
 
 =cut
 
 .sub 'VertexPointer' :anon
+    .param pmc vertexArray :optional
     .param pmc extra :slurpy
-    not_implemented()
+    $I0 = lua_istable(vertexArray)
+    if $I0 goto L1
+    lua_error("incorrect argument to function 'gl.VertexPointer'")
+  L1:
+    ($I1, $I2, $P3) = get_array2f(vertexArray)
+    unless $I1 == -1 goto L2
+    lua_error("incorrect argument to function 'gl.VertexPointer'")
+  L2:
+    glVertexPointer($I2, .GL_DOUBLE, 0, $P3)
 .end
 
 

Modified: branches/gsoc_pdd09/languages/lua/src/lib/glut.pir
==============================================================================
--- branches/gsoc_pdd09/languages/lua/src/lib/glut.pir  (original)
+++ branches/gsoc_pdd09/languages/lua/src/lib/glut.pir  Mon Jul 28 13:55:54 2008
@@ -174,9 +174,20 @@
     $P0 = _lua__GLOBAL[funcname]
     $I0 = lua_isfunction($P0)
     if $I0 goto L2
-    lua_error("Script error: cannot find ", funcname, " function.")
+    printerr "Script error: cannot find "
+    printerr funcname
+    printerr " function.\n\n"
   L2:
+    push_eh _handler
     $P0()
+    .return ()
+  _handler:
+    .local pmc e
+    .local string s
+    .get_results (e, s)
+    printerr "Error running lua script:\n\n  "
+    printerr s
+    printerr " \n\n"
 .end
 
 
@@ -203,9 +214,20 @@
     $P0 = _lua__GLOBAL[funcname]
     $I0 = lua_isfunction($P0)
     if $I0 goto L2
-    lua_error("Script error: cannot find ", funcname, " function.")
+    printerr "Script error: cannot find "
+    printerr funcname
+    printerr " function.\n\n"
   L2:
+    push_eh _handler
     $P0()
+    .return ()
+  _handler:
+    .local pmc e
+    .local string s
+    .get_results (e, s)
+    printerr "Error running lua script:\n\n  "
+    printerr s
+    printerr " \n\n"
 .end
 
 
@@ -282,7 +304,9 @@
     $P0 = _lua__GLOBAL[funcname]
     $I0 = lua_isfunction($P0)
     if $I0 goto L2
-    lua_error("Script error: cannot find ", funcname, " function.")
+    printerr "Script error: cannot find "
+    printerr funcname
+    printerr " function.\n\n"
   L2:
     new $P1, 'LuaNumber'
     set $P1, key
@@ -290,7 +314,16 @@
     set $P2, x
     new $P3, 'LuaNumber'
     set $P3, y
+    push_eh _handler
     $P0($P1, $P2, $P3)
+    .return ()
+  _handler:
+    .local pmc e
+    .local string s
+    .get_results (e, s)
+    printerr "Error running lua script:\n\n  "
+    printerr s
+    printerr " \n\n"
 .end
 
 
@@ -339,13 +372,24 @@
     $P0 = _lua__GLOBAL[funcname]
     $I0 = lua_isfunction($P0)
     if $I0 goto L2
-    lua_error("Script error: cannot find ", funcname, " function.")
+    printerr "Script error: cannot find "
+    printerr funcname
+    printerr " function.\n\n"
   L2:
     new $P1, 'LuaNumber'
     set $P1, width
     new $P2, 'LuaNumber'
     set $P2, height
+    push_eh _handler
     $P0($P1, $P2)
+    .return ()
+  _handler:
+    .local pmc e
+    .local string s
+    .get_results (e, s)
+    printerr "Error running lua script:\n\n  "
+    printerr s
+    printerr " \n\n"
 .end
 
 =item C<glut.SwapBuffers ()>

Modified: branches/gsoc_pdd09/languages/pipp/src/pct/quote_expression.pir
==============================================================================
--- branches/gsoc_pdd09/languages/pipp/src/pct/quote_expression.pir     
(original)
+++ branches/gsoc_pdd09/languages/pipp/src/pct/quote_expression.pir     Mon Jul 
28 13:55:54 2008
@@ -57,7 +57,7 @@
 
 .namespace ['Pipp::Grammar']
 
-# called from code in grammar.pg
+## called from code in grammar.pg
 .sub 'quote_expression' :method
     .param string flags
     .param pmc    options    :slurpy :named
@@ -219,6 +219,9 @@
     .local string target
     (mob, pos, target) = self.'new'(self)
 
+    .local int dollar_is_literal
+    dollar_is_literal = 0
+
     .local string leadchar, escapes
     escapes = options['escapes']
     leadchar = substr target, pos, 1
@@ -228,8 +231,7 @@
     if leadchar == '{' goto term_closure
   term_literal:
     mob.'to'(pos)
-    #_dumper(pos)
-    $P0 = mob.'quote_literal'(options)
+    $P0 = mob.'quote_literal'(options, dollar_is_literal)
     unless $P0 goto fail
     pos = $P0.'to'()
     mob['quote_literal'] = $P0
@@ -240,11 +242,14 @@
   term_scalar:
     mob.'to'(pos)
     $P0 = mob.'var'('action'=>action)
-    unless $P0 goto term_literal
+    unless $P0 goto var_did_not_match
     pos = $P0.'to'()
     key = 'var'
     mob[key] = $P0
     goto succeed
+  var_did_not_match:
+    dollar_is_literal = 1
+    goto term_literal
 
   term_closure:
     mob.'to'(pos)
@@ -272,8 +277,7 @@
 
 .sub 'quote_literal' :method
     .param pmc options
-
-    #_dumper( options )
+    .param int dollar_is_literal
 
     .local pmc mob
     .local int pos
@@ -308,8 +312,10 @@
     litchar = substr target, pos, 1
     ##  if we've reached an escape char, we're done
     if litchar == '{' goto add_litchar
+    unless dollar_is_literal goto dollar_is_not_a_literal
+        if litchar == '$' goto add_litchar
+    dollar_is_not_a_literal:
     $I0 = index escapes, litchar
-    #_dumper( escapes )
     if $I0 >= 0 goto succeed
     ##  if this isn't an interpolation, add the char
     unless optq goto add_litchar

Modified: branches/gsoc_pdd09/languages/pipp/t/php/strings.t
==============================================================================
--- branches/gsoc_pdd09/languages/pipp/t/php/strings.t  (original)
+++ branches/gsoc_pdd09/languages/pipp/t/php/strings.t  Mon Jul 28 13:55:54 2008
@@ -18,7 +18,7 @@
 use lib "$FindBin::Bin/../../lib";
 
 # core Perl modules
-use Test::More     tests => 19;
+use Test::More     tests => 21;
 
 # Parrot modules
 use Parrot::Test;
@@ -99,6 +99,20 @@
 VAR1 VAR2
 END_EXPECTED
 
+SKIP: {
+    skip 'runaway process', 1;
+
+    language_output_is( 'Pipp', <<'END_CODE', <<'END_EXPECTED', 'dollar 
followed by a space' );
+<?php
+ 
+echo ";$ ;", "\n";
+
+?>
+END_CODE
+;$ ;
+END_EXPECTED
+}
+
 language_output_is( 'Pipp', <<'END_CODE', <<'END_EXPECTED', 'curly string 
interpolation, one var' );
 <?php
 $var1 = "VAR1";
@@ -222,6 +236,18 @@
 backslash and twiddles: \{INTERPOLATED}
 END_EXPECTED
 
+language_output_is( 'Pipp', <<'END_CODE', <<'END_EXPECTED', 'curly quotes in 
double quoted string' );
+<?php
+
+echo ";{;", "\n";
+echo ";\{;", "\n";
+
+?>
+END_CODE
+;{;
+;\{;
+END_EXPECTED
+
 language_output_is( 'Pipp', <<'END_CODE', <<"END_EXPECTED", 'vertical tab, new 
in PHP 5.3' );
 <?php
 

Modified: branches/gsoc_pdd09/languages/tcl/lib/skipped_tests.tcl
==============================================================================
--- branches/gsoc_pdd09/languages/tcl/lib/skipped_tests.tcl     (original)
+++ branches/gsoc_pdd09/languages/tcl/lib/skipped_tests.tcl     Mon Jul 28 
13:55:54 2008
@@ -28,6 +28,7 @@
     lset-1.3 lset-5.[12]
   } {stacktrace support} {
     apply-2.[2345] apply-5.1
+    cmdMZ-return-2.10 cmdMZ-5.7
     if-5.3 if-6.4
     incr-2.3[01]
     incr-old-2.[45]
@@ -64,6 +65,8 @@
     parseExpr-15.30 parseExpr-16.[12345789] parseExpr-16.11[ab]
     parseExpr-16.1[03456789] parseExpr-16.2[0123456789]
     parseExpr-16.3[012456789] parseExpr-16.4[0123] parseExpr-17.1
+  } {tcltest - [makeFile]} {
+    cmdMZ-3.6
   } {[apply]} {
     apply-[4678].*
   } {http://code.google.com/p/partcl/issues/detail?id=2} {
@@ -85,9 +88,28 @@
     parse-16.1
   } {bigint support} {
     parseExpr-20.[123]
+  } {[lsort -command]} {
+    cmdIL-1.5
+  } {[lsort -ascii]} {
+    cmdIL-1.4 cmdIL-3.7 cmdIL-4.3[45] cmdIL-5.1
+  } {[lsort -index]} {
+    cmdIL-1.1[1234] cmdIL-1.2[36] cmdIL-3.[23456] cmdIL-3.4.1 cmdIL-5.[234]
+  } {[lsort -indices]} {
+    cmdIL-1.27 cmdIL-1.28
+  } {[lsort -dictionary] - not sorting properly} {
+    cmdIL-4.[145] cmdIL-4.1[27] cmdIL-4.2[089] cmdIL-4.3[0123]
+  } {[lsort] misc} {
+    cmdIL-4.2[45]
+  } {[file] misc} {
+    cmdMZ-1.4
+  } {[return] options} {
+    cmdMZ-return-2.[0123] cmdMZ-return-2.11 cmdMZ-return-3.*
+  } {reset $errorCode} {
+    cmdMZ-4.[12]
   }
 ]
 
+
 set skip_tests [dict create \
   BOOM {
     namespace-7.7
@@ -96,7 +118,6 @@
     stringComp-5.14 stringComp-5.15 stringComp-5.16 stringComp-9.7
   } {stacktrace support} {
     basic-46.1
-    cmdMZ-return-2.10 cmdMZ-3.5 cmdMZ-5.7
     dict-14.12 dict-17.13
     error-1.3 error-2.3 error-2.6 error-4.2 error-4.3 error-4.4
     eval-2.5
@@ -267,7 +288,6 @@
   case-1.1             {}
   cmdAH-31.13          {invalid command name "cd"}
   cmdinfo-1.1          {}
-  cmdMZ-5.7            {invalid command name "cleanupTests"}
   dcall-1.1            {}
   dstring-1.1          {}
   encoding-1.1         {}

Modified: branches/gsoc_pdd09/languages/tcl/runtime/builtin/for.pir
==============================================================================
--- branches/gsoc_pdd09/languages/tcl/runtime/builtin/for.pir   (original)
+++ branches/gsoc_pdd09/languages/tcl/runtime/builtin/for.pir   Mon Jul 28 
13:55:54 2008
@@ -64,3 +64,9 @@
 bad_args:
   tcl_error 'wrong # args: should be "for start test next command"'
 .end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/gsoc_pdd09/languages/tcl/runtime/builtin/foreach.pir
==============================================================================
--- branches/gsoc_pdd09/languages/tcl/runtime/builtin/foreach.pir       
(original)
+++ branches/gsoc_pdd09/languages/tcl/runtime/builtin/foreach.pir       Mon Jul 
28 13:55:54 2008
@@ -89,17 +89,13 @@
   unless list goto empty_var
   value = shift list
   value = clone value
-  push_eh couldnt_set
-    setVar(varname, value)
-  pop_eh
+  setVar(varname, value)
   goto next_variable
 
 empty_var:
   value = new 'TclString'
   value = ''
-  push_eh couldnt_set
-    setVar(varname, value)
-  pop_eh
+  setVar(varname, value)
   goto next_variable
 
 execute_command:
@@ -119,12 +115,6 @@
 done:
   .return('')
 
-couldnt_set:
-  $S0 =  "couldn't set loop variable: \""
-  $S0 .= varname
-  $S0 .= '"'
-  tcl_error $S0
-
 bad_args:
   tcl_error 'wrong # args: should be "foreach varList list ?varList list ...? 
command"'
 

Modified: branches/gsoc_pdd09/languages/tcl/runtime/builtin/incr.pir
==============================================================================
--- branches/gsoc_pdd09/languages/tcl/runtime/builtin/incr.pir  (original)
+++ branches/gsoc_pdd09/languages/tcl/runtime/builtin/incr.pir  Mon Jul 28 
13:55:54 2008
@@ -42,3 +42,8 @@
   tcl_error 'wrong # args: should be "incr varName ?increment?"'
 .end
 
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/gsoc_pdd09/languages/tcl/runtime/builtin/join.pir
==============================================================================
--- branches/gsoc_pdd09/languages/tcl/runtime/builtin/join.pir  (original)
+++ branches/gsoc_pdd09/languages/tcl/runtime/builtin/join.pir  Mon Jul 28 
13:55:54 2008
@@ -30,3 +30,9 @@
 bad_args:
   tcl_error 'wrong # args: should be "join list ?joinString?"'
 .end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/gsoc_pdd09/languages/tcl/runtime/builtin/llength.pir
==============================================================================
--- branches/gsoc_pdd09/languages/tcl/runtime/builtin/llength.pir       
(original)
+++ branches/gsoc_pdd09/languages/tcl/runtime/builtin/llength.pir       Mon Jul 
28 13:55:54 2008
@@ -23,3 +23,10 @@
 bad_args:
   tcl_error 'wrong # args: should be "llength list"'
 .end
+
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/gsoc_pdd09/languages/tcl/runtime/builtin/lrange.pir
==============================================================================
--- branches/gsoc_pdd09/languages/tcl/runtime/builtin/lrange.pir        
(original)
+++ branches/gsoc_pdd09/languages/tcl/runtime/builtin/lrange.pir        Mon Jul 
28 13:55:54 2008
@@ -55,3 +55,9 @@
 bad_args:
   tcl_error 'wrong # args: should be "lrange list first last"'
 .end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/gsoc_pdd09/languages/tcl/runtime/builtin/lsort.pir
==============================================================================
--- branches/gsoc_pdd09/languages/tcl/runtime/builtin/lsort.pir (original)
+++ branches/gsoc_pdd09/languages/tcl/runtime/builtin/lsort.pir Mon Jul 28 
13:55:54 2008
@@ -33,7 +33,7 @@
   if $P0 == '-integer' goto c_int
   if $P0 == '-real' goto c_real
   if $P0 == '-dictionary' goto c_dict
-  # RT#40749: command etc necessary
+  if $P0 == '-command' goto c_command
   branch bad_opt
 
 c_dict:
@@ -54,7 +54,12 @@
 c_int:
   compare = get_root_global ['_tcl';'helpers';'lsort'], 'integer'
   branch chew_flag
-
+c_command:
+  .local string compareName
+  compareName = shift argv
+  $S0 = '&' . compareName
+  compare = find_global $S0
+  branch chew_flag
 
 got_list:
 
@@ -119,11 +124,13 @@
   .param pmc s2
 
   # check that they're actually integers.
-  # This points out that we should really be caching
-  # the integer value rather than recalculating on each compare.
+  # We recalculate this every time, but without smarter PMCs, we can't
+  # afford to change the string value of the given PMC.
   .local pmc toInteger
   toInteger = get_root_global ['_tcl'], 'toInteger'
   .local pmc i1,i2
+  s1 = clone s1
+  s2 = clone s2
   i1 = toInteger(s1)
   i2 = toInteger(s2)
   $I0 = cmp_num i1, i2
@@ -210,6 +217,8 @@
   # check that they're actually numbers
   .local pmc toNumber
   toNumber = get_root_global ['_tcl'], 'toNumber'
+  s1 = clone s1
+  s2 = clone s2
   s1 = toNumber(s1)
   s2 = toNumber(s2)
 

Modified: branches/gsoc_pdd09/languages/tcl/runtime/builtin/time.pir
==============================================================================
--- branches/gsoc_pdd09/languages/tcl/runtime/builtin/time.pir  (original)
+++ branches/gsoc_pdd09/languages/tcl/runtime/builtin/time.pir  Mon Jul 28 
13:55:54 2008
@@ -62,10 +62,8 @@
   tcl_error 'wrong # args: should be "time command ?count?"'
 .end
 
-
-#  Variables:
+# Local Variables:
 #   mode: pir
 #   fill-column: 100
 # End:
 # vim: expandtab shiftwidth=4 ft=pir:
-

Modified: branches/gsoc_pdd09/languages/tcl/runtime/builtin/while.pir
==============================================================================
--- branches/gsoc_pdd09/languages/tcl/runtime/builtin/while.pir (original)
+++ branches/gsoc_pdd09/languages/tcl/runtime/builtin/while.pir Mon Jul 28 
13:55:54 2008
@@ -46,3 +46,9 @@
 bad_args:
   tcl_error 'wrong # args: should be "while test command"'
 .end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/gsoc_pdd09/languages/tcl/t/cmd_foreach.t
==============================================================================
--- branches/gsoc_pdd09/languages/tcl/t/cmd_foreach.t   (original)
+++ branches/gsoc_pdd09/languages/tcl/t/cmd_foreach.t   Mon Jul 28 13:55:54 2008
@@ -28,8 +28,7 @@
     array set a {}
     foreach a {1 2 3 4} {puts $a}
 } {can't set "a": variable is array} \
-  {couldn't set loop variable} \
-  {TODO {new behavior in tcl 8.5.1}}
+  {couldn't set loop variable}
 
 unset -nocomplain a
 is [foreach a {1 2 3 4} {set a}] {} {return value}

Modified: branches/gsoc_pdd09/languages/tcl/t/cmd_lsort.t
==============================================================================
--- branches/gsoc_pdd09/languages/tcl/t/cmd_lsort.t     (original)
+++ branches/gsoc_pdd09/languages/tcl/t/cmd_lsort.t     Mon Jul 28 13:55:54 2008
@@ -10,7 +10,7 @@
 __DATA__
 
 source lib/test_more.tcl
-plan 21
+plan 22
 
 is [lsort {}] {} {empty list}
 
@@ -79,3 +79,19 @@
 eval_is {
   lsort -real {4.28 5.65 6.20 7.66 7.6 2.4 8.5 0.4 7.6 6.3}
 } {0.4 2.4 4.28 5.65 6.20 6.3 7.6 7.6 7.66 8.5} {-real}
+
+proc sortByLen {a b} {
+  set sizeA [string length $a]
+  set sizeB [string length $b]
+  if {$sizeA < $sizeB} {
+    return -1
+  } elseif {$sizeB < $sizeA} {
+    return 1
+  } else {
+    return 0
+  }
+}
+
+eval_is {
+  lsort -command sortByLen [list 12345 {} 1234 1 12345678 123456 1234567]
+} {{} 1 1234 12345 123456 1234567 12345678} {-command option}

Modified: branches/gsoc_pdd09/t/doc/pod.t
==============================================================================
--- branches/gsoc_pdd09/t/doc/pod.t     (original)
+++ branches/gsoc_pdd09/t/doc/pod.t     Mon Jul 28 13:55:54 2008
@@ -105,7 +105,11 @@
 my $nempty_description = scalar( @empty_description );
 
 is( $bad_syntax_files, q{}, 'Pod syntax correct' );    # only ok if everything 
passed
-is( $empty_description_files, q{}, 'All Pod files have non-empty DESCRIPTION 
sections' );
+
+TODO: {
+    local $TODO = "not quite done yet";
+    is( $empty_description_files, q{}, 'All Pod files have non-empty 
DESCRIPTION sections' );
+}
 
 diag("You should use podchecker to check the failed files.\n")
     if $bad_syntax_files;

Modified: branches/gsoc_pdd09/t/harness
==============================================================================
--- branches/gsoc_pdd09/t/harness       (original)
+++ branches/gsoc_pdd09/t/harness       Mon Jul 28 13:55:54 2008
@@ -107,7 +107,9 @@
             exit;
         } else {
             $harness = TAP::Harness->new({
-                verbosity => $ENV{HARNESS_VERBOSE}, merge => 0
+                verbosity => $ENV{HARNESS_VERBOSE},
+                merge     => 0,
+                jobs      => $ENV{TEST_JOBS} || 1,
             });
         }
         $harness->runtests(@tests);

Reply via email to