cvs -q diff -u
Index: runtime/parrot/library/Data/Dumper.imc
===================================================================
RCS file: /cvs/public/parrot/runtime/parrot/library/Data/Dumper.imc,v
retrieving revision 1.2
diff -u -u -r1.2 Dumper.imc
--- runtime/parrot/library/Data/Dumper.imc	12 Nov 2004 15:09:12 -0000	1.2
+++ runtime/parrot/library/Data/Dumper.imc	14 Nov 2004 14:05:20 -0000
@@ -4,8 +4,7 @@
     load_bytecode "library/Data/Dumper/Default.imc"
     newclass $P0, "Data::Dumper"
 END:
-    .pcc_begin_return
-    .pcc_end_return
+    .return ()
 .end
 
 .namespace ["Data::Dumper"]
@@ -50,23 +49,17 @@
 
     print "\n"
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 
 ERROR2:
     print "can not find class Data::Dumper::Default!\n"
     end
-    .pcc_begin_return
-    .return 0
-    .pcc_end_return
+    .return ( 0 )
 ERROR:
     print "Syntax:\n"
     print "Data::Dumper::dumper( pmc )\n"
     print "Data::Dumper::dumper( name, pmc )\n"
     print "Data::Dumper::dumper( name, pmc, indent )\n"
-    .pcc_begin_return
-    .return 0
-    .pcc_end_return
+    .return ( 0 )
 .end
 
Index: runtime/parrot/library/Data/Dumper/Base.imc
===================================================================
RCS file: /cvs/public/parrot/runtime/parrot/library/Data/Dumper/Base.imc,v
retrieving revision 1.3
diff -u -u -r1.3 Base.imc
--- runtime/parrot/library/Data/Dumper/Base.imc	12 Nov 2004 15:09:13 -0000	1.3
+++ runtime/parrot/library/Data/Dumper/Base.imc	14 Nov 2004 14:05:20 -0000
@@ -12,7 +12,9 @@
 
 =head1 DESCRIPTION
 
-This module provides the default output style of C<Data::Dumper>.
+This is a baseclass that provides some essential functions necessary
+for dumping data structures. It is subclassed by C<Data::Dumper::Default>,
+which implements the methods that are finally doing the output.
 
 =head1 METHODS
 
@@ -36,8 +38,7 @@
     addattribute $P0, "indention"
     addattribute $P0, "cache"
 END:
-    .pcc_begin_return
-    .pcc_end_return
+    .return ()
 .end
 
 .namespace ["Data::Dumper::Base"]
@@ -74,8 +75,7 @@
     add $I0, attrCache
     setattribute self, $I0, temp
 
-    .pcc_begin_return
-    .pcc_end_return
+    .return ()
 .end
 
 =item (pos, name) = style."cache"( find, defname ) B<(internal)>
@@ -107,19 +107,13 @@
     inc i
     name = _cache[i]
     dec i
-    .pcc_begin_return
-    .return i
-    .return name
-    .pcc_end_return
+    .return ( i, name )
 
 NOTFOUND:
     set name, defname
     push _cache, find
     push _cache, name
-    .pcc_begin_return
-    .return -1
-    .return name
-    .pcc_end_return
+    .return ( -1, name )
 .end
 
 =item indent = style."createIndent"() B<(internal)>
@@ -138,9 +132,7 @@
     clone indent, indent
     repeat indent, indent, level
 
-    .pcc_begin_return
-    .return indent
-    .pcc_end_return
+    .return ( indent )
 .end
 
 =item indent = style."indent"()
@@ -159,9 +151,7 @@
 
     _indent = self."createIndent"( level )
 
-    .pcc_begin_return
-    .return _indent
-    .pcc_end_return
+    .return ( _indent )
 .end
 
 =item (subindent,indent) = style."newIndent"()
@@ -184,10 +174,7 @@
     inc level
     indent2 = self."createIndent"( level )
 
-    .pcc_begin_return
-    .return indent2
-    .return indent1
-    .pcc_end_return
+    .return ( indent2, indent1 )
 .end
 
 =item indent = style."deleteIndent"()
@@ -207,9 +194,7 @@
 
     indent = self."createIndent"( level )
 
-    .pcc_begin_return
-    .return indent
-    .pcc_end_return
+    .return ( indent )
 .end
 
 =item style."dump"( name, dump )
@@ -253,9 +238,7 @@
     self."dumpProperties"( name, _dump )
 
 END:
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =back
Index: runtime/parrot/library/Data/Dumper/Default.imc
===================================================================
RCS file: /cvs/public/parrot/runtime/parrot/library/Data/Dumper/Default.imc,v
retrieving revision 1.4
diff -u -u -r1.4 Default.imc
--- runtime/parrot/library/Data/Dumper/Default.imc	12 Nov 2004 15:09:13 -0000	1.4
+++ runtime/parrot/library/Data/Dumper/Default.imc	14 Nov 2004 14:05:21 -0000
@@ -12,9 +12,7 @@
 
 =head1 DESCRIPTION
 
-This is a baseclass that provides some essential functions necessary
-for dumping data structures. It is subclassed by C<Data::Dumper::Default>,
-which implements the methods that are finally doing the output.
+This module provides the default output style of C<Data::Dumper>.
 
 =cut
 
@@ -27,8 +25,7 @@
     getclass $P0, "Data::Dumper::Base"
     subclass $P0, $P0, "Data::Dumper::Default"
 END:
-    .pcc_begin_return
-    .pcc_end_return
+    .return ()
 .end
 
 .namespace ["Data::Dumper::Default"]
@@ -55,9 +52,7 @@
 
     ret = self."dump"( name, dump )
 
-    .pcc_begin_return
-    .return ret
-    .pcc_end_return
+    .return ( ret )
 .end
 
 =item style."dumpCached"( name, dump )
@@ -71,9 +66,7 @@
     print "\\"
     print name
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 
@@ -99,9 +92,7 @@
     ret = self."dump"( name, prop )
 
 END:
-    .pcc_begin_return
-    .return ret
-    .pcc_end_return
+    .return ( ret )
 .end
 
 =item style.dumpHash( name, hash )
@@ -168,9 +159,7 @@
     print "}"
     self."deleteIndent"()
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."dumpStringEscaped"( string, escapeChar )
@@ -190,9 +179,7 @@
     str = escape( str, char )
     print str
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."pmcDefault"( name, dump )
@@ -216,9 +203,7 @@
 CAN_DUMP:
     dump."__dump"( self, name )
 END:
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."pmcPMCArray"( name, array )
@@ -294,9 +279,7 @@
 
     self."deleteIndent"()
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."pmcStringArray"( name, array )
@@ -373,9 +356,7 @@
 
     self."deleteIndent"()
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."pmcPerlHash"( name, hash )
@@ -393,11 +374,28 @@
 
     self."dumpHash"( name, hash )
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
+
+=item style."pmcString"( name, str )
+
+Dumps a String PMC.
+
+=cut
+
+.sub pmcString method
+    .param string name
+    .param pmc str
+
+    print "\""
+    self."dumpStringEscaped"( str, "\"" )
+    print "\""
+
+    .return ( 1 )
+.end
+
+
 =item style."pmcPerlString"( name, str )
 
 Dumps a PerlString PMC.
@@ -412,9 +410,7 @@
     self."dumpStringEscaped"( str, "\"" )
     print "\""
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 
@@ -430,9 +426,7 @@
 
     print val
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."pmcPerlNum"( name, val )
@@ -447,9 +441,7 @@
 
     print val
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."pmcPerlUndef"( name, val )
@@ -461,9 +453,7 @@
 .sub pmcPerlUndef method
     print "undef"
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."pmcSub"( name, val )
@@ -475,9 +465,7 @@
 .sub pmcSub method
     print "sub { ... }"
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."pmcNull"( name, val )
@@ -489,9 +477,7 @@
 .sub pmcNull method
     print "null"
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."pmcOrderedHash"( name, val )
@@ -503,9 +489,7 @@
 .sub pmcOrderedHash method
     print "OrderedHash { ... }"
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."pmcManagedStruct"( name, val )
@@ -517,9 +501,7 @@
 .sub pmcManagedStruct method
     print "ManagedStruct { ... }"
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."pmcUnManagedStruct"( name, val )
@@ -531,9 +513,7 @@
 .sub pmcUnManagedStruct method
     print "UnManagedStruct { ... }"
 
-    .pcc_begin_return
-    .return 1
-    .pcc_end_return
+    .return ( 1 )
 .end
 
 =item style."pmcArray"( name, array )
Index: t/library/dumper.t
===================================================================
RCS file: /cvs/public/parrot/t/library/dumper.t,v
retrieving revision 1.7
diff -u -u -r1.7 dumper.t
--- t/library/dumper.t	30 Oct 2004 15:36:00 -0000	1.7
+++ t/library/dumper.t	14 Nov 2004 14:05:22 -0000
@@ -18,7 +18,7 @@
 
 use strict;
 
-use Parrot::Test tests => 13;
+use Parrot::Test tests => 14;
 
 # no. 1
 output_is(<<'CODE', <<'OUT', "dumping array of sorted numbers");
@@ -614,3 +614,35 @@
 ]
 OUT
 
+# no. 14
+output_is( << 'CODE', << 'OUT', "dumping strings");
+##PIR##
+.include "library/dumper.imc"
+.sub _test @MAIN
+    .local pmc array
+    array = new PerlArray
+
+    .local pmc pmc_string, pmc_perl_string
+    .local string string_1
+    
+    pmc_string = new .String
+    pmc_string = "This is a String PMC"
+    push array, pmc_string
+    
+    pmc_perl_string = new .PerlString
+    pmc_perl_string = "This is a PerlString PMC"
+    push array, pmc_perl_string
+
+    string_1 = "This is a String"
+    push array, string_1
+
+    _dumper( "array of various strings", array )
+    end
+.end
+CODE
+"array of various strings" => PerlArray (size:3) [
+    "This is a String PMC",
+    "This is a PerlString PMC",
+    "This is a String"
+]
+OUT
