develooper Front page | perl.cvs.parrot | Postings from December 2008

[svn:parrot] r33878 - in trunk/languages/dotnet: src t

From:
fperrad
Date:
December 14, 2008 02:58
Subject:
[svn:parrot] r33878 - in trunk/languages/dotnet: src t
Message ID:
20081214105832.7B4E6CBAC8@x12.develooper.com
Author: fperrad
Date: Sun Dec 14 02:58:28 2008
New Revision: 33878

Modified:
   trunk/languages/dotnet/src/translation.rules
   trunk/languages/dotnet/src/translator.pir
   trunk/languages/dotnet/t/constructor.t
   trunk/languages/dotnet/t/field.t
   trunk/languages/dotnet/t/finally.t
   trunk/languages/dotnet/t/mp_pmc.t

Log:
[dotnet]
- update PIR syntax generation
- fix some tests

Failed 16/43 test programs. 80/263 subtests failed.


Modified: trunk/languages/dotnet/src/translation.rules
==============================================================================
--- trunk/languages/dotnet/src/translation.rules	(original)
+++ trunk/languages/dotnet/src/translation.rules	Sun Dec 14 02:58:28 2008
@@ -1544,11 +1544,11 @@
 (${PTEMP0}, ${ITEMP0}) = field_info_from_token(${ASSEMBLY}, ${ARG0})
 
 # Build attribute access.
-${INS} = concat "$P1000000 = new "
+${INS} = concat "$P1000000 = new \""
 ${PTEMP1} = ${DTYPES}[0]
 ${STEMP0} = ${PTEMP1}["reg_type_pmc"]
 ${INS} = concat ${STEMP0}
-${INS} = concat "\n$P1000000 = getattribute "
+${INS} = concat "\"\n$P1000000 = getattribute "
 ${INS} = concat ${STACK0}
 ${INS} = concat ", \""
 ${STEMP0} = ${PTEMP0}
@@ -1582,11 +1582,11 @@
 (${PTEMP0}, ${ITEMP0}, ${STEMP1}) = field_info_from_token(${ASSEMBLY}, ${ARG0})
 
 # Build attribute access.
-${INS} = concat "$P1000000 = new "
+${INS} = concat "$P1000000 = new \""
 ${PTEMP1} = ${DTYPES}[0]
 ${STEMP0} = ${PTEMP1}["reg_type_pmc"]
 ${INS} = concat ${STEMP0}
-${INS} = concat "\n$P1000000 = get_hll_global "
+${INS} = concat "\"\n$P1000000 = get_hll_global "
 ${STEMP1} = namespace_to_key(${STEMP1})
 ${INS} = concat ${STEMP1}
 ${INS} = concat ", \""
@@ -1622,13 +1622,13 @@
 (${PTEMP0}, ${ITEMP0}) = field_info_from_token(${ASSEMBLY}, ${ARG0})
 
 # Build attribute store.
-${INS} = concat "$P1000000 = new "
+${INS} = concat "$P1000000 = new \""
 ${ITEMP0} = elements ${STYPES}
 dec ${ITEMP0}
 ${PTEMP1} = ${STYPES}[${ITEMP0}]
 ${STEMP0} = ${PTEMP1}["reg_type_pmc"]
 ${INS} = concat ${STEMP0}
-${INS} = concat "\n$P1000000 = "
+${INS} = concat "\"\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\nsetattribute "
 ${INS} = concat ${STACK1}
@@ -1650,13 +1650,13 @@
 ${STEMP1} = namespace_to_key(${STEMP1})
 
 # Build static field store.
-${INS} = concat "$P1000000 = new "
+${INS} = concat "$P1000000 = new \""
 ${ITEMP0} = elements ${STYPES}
 dec ${ITEMP0}
 ${PTEMP1} = ${STYPES}[${ITEMP0}]
 ${STEMP0} = ${PTEMP1}["reg_type_pmc"]
 ${INS} = concat ${STEMP0}
-${INS} = concat "\n$P1000000 = "
+${INS} = concat "\"\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\nset_hll_global "
 ${INS} = concat ${STEMP1}
@@ -1908,7 +1908,7 @@
 arguments = ttype
 instruction = <<INS
 $P1000000 = ${STACK0}.'load_pmc'()
-$P1000000.__init()
+$P1000000.'init'()
 INS
 typeinfo = # None
 
@@ -1964,20 +1964,20 @@
 goto stobj_DONE
 
 stobj_INT:
-${INS} = concat "$P1000000 = new .Integer\n$P1000000 = "
+${INS} = concat "$P1000000 = new 'Integer'\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n"
 goto stobj_DONE
 
 stobj_NUM:
-${INS} = concat "$P1000000 = new .Float\n$P1000000 = "
+${INS} = concat "$P1000000 = new 'Float'\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n"
 goto stobj_DONE
 
 stobj_DONE:
 ${INS} = concat ${STACK1}
-${INS} = concat ".store_pmc($P1000000)\n"
+${INS} = concat ".'store_pmc'($P1000000)\n"
 PIR
 typeinfo = # None
 
@@ -1999,7 +1999,7 @@
 ${INS} = concat ${DEST0}
 ${INS} = concat " = clone "
 ${INS} = concat ${STACK0}
-${INS} = concat "\n$P1000000 = new .Integer\n$P1000000 = 1\nsetprop "
+${INS} = concat "\n$P1000000 = new 'Integer'\n$P1000000 = 1\nsetprop "
 ${INS} = concat ${DEST0}
 ${INS} = concat ", \"boxed\", $P1000000\n"
 goto box_DONE
@@ -2021,61 +2021,61 @@
 throw ${PTEMP0}
 box_I4:
 ${STEMP0} = "System.Int32"
-${INS} = concat "$P1000000 = new Integer\n$P1000000 = "
+${INS} = concat "$P1000000 = new 'Integer'\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n"
 goto box_EMIT
 box_U4:
 ${STEMP0} = "System.UInt32"
-${INS} = concat "$P1000000 = new Integer\n$P1000000 = "
+${INS} = concat "$P1000000 = new 'Integer'\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n"
 goto box_EMIT
 box_I2:
 ${STEMP0} = "System.Int16"
-${INS} = concat "$P1000000 = new Integer\n$P1000000 = "
+${INS} = concat "$P1000000 = new 'Integer'\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n"
 goto box_EMIT
 box_U2:
 ${STEMP0} = "System.UInt16"
-${INS} = concat "$P1000000 = new Integer\n$P1000000 = "
+${INS} = concat "$P1000000 = new 'Integer'\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n"
 goto box_EMIT
 box_I1:
 ${STEMP0} = "System.SByte"
-${INS} = concat "$P1000000 = new Integer\n$P1000000 = "
+${INS} = concat "$P1000000 = new 'Integer'\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n"
 goto box_EMIT
 box_U1:
 ${STEMP0} = "System.Byte"
-${INS} = concat "$P1000000 = new Integer\n$P1000000 = "
+${INS} = concat "$P1000000 = new 'Integer'\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n"
 goto box_EMIT
 box_I:
 ${STEMP0} = "System.IntPtr"
-${INS} = concat "$P1000000 = new Integer\n$P1000000 = "
+${INS} = concat "$P1000000 = new 'Integer'\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n"
 goto box_EMIT
 box_U:
 ${STEMP0} = "System.UIntPtr"
-${INS} = concat "$P1000000 = new Integer\n$P1000000 = "
+${INS} = concat "$P1000000 = new 'Integer'\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n"
 goto box_EMIT
 box_R4:
 ${STEMP0} = "System.Single"
-${INS} = concat "$P1000000 = new Float\n$P1000000 = "
+${INS} = concat "$P1000000 = new 'Float'\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n"
 goto box_EMIT
 box_R8:
 ${STEMP0} = "System.Double"
-${INS} = concat "$P1000000 = new Float\n$P1000000 = "
+${INS} = concat "$P1000000 = new 'Float'\n$P1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n"
 goto box_EMIT
@@ -2134,13 +2134,13 @@
 ${PTEMP0}["_message"] = "Attempt to unbox unknown built-in."
 throw ${PTEMP0}
 unbox_integer:
-${INS} = concat "$P1000000 = new Integer\n$I1000000 = "
+${INS} = concat "$P1000000 = new 'Integer'\n$I1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n$P1000000 = $I1000000\n"
 ${STACK0} = "$P1000000"
 goto unbox_EMIT
 unbox_float:
-${INS} = concat "$P1000000 = new Float\n$N1000000 = "
+${INS} = concat "$P1000000 = new 'Float'\n$N1000000 = "
 ${INS} = concat ${STACK0}
 ${INS} = concat "\n$P1000000 = $N1000000\n"
 ${STACK0} = "$P1000000"
@@ -2246,7 +2246,7 @@
 pir = <<PIR
 # Always start with the same thing.
 ${INS} = concat ${DEST0}
-${INS} = concat " = new ."
+${INS} = concat " = new \""
 
 # Now decide on array type to use.
 ${PTEMP0} = ${DTYPES}[0]
@@ -2279,7 +2279,7 @@
 
 # Now do final stuff.
 newarr_FINAL:
-${INS} = concat "\n"
+${INS} = concat "\"\n"
 ${INS} = concat ${DEST0}
 ${INS} = concat " = "
 ${INS} = concat ${STACK0}
@@ -3353,7 +3353,7 @@
 ${INS} = concat ${STEMP0}
 ${INS} = concat "\n"
 ${INS} = concat ${DEST0}
-${INS} = concat ".set_high_bits("
+${INS} = concat ".'set_high_bits'("
 ${STEMP0} = ${ARG1}
 ${INS} = concat ${STEMP0}
 ${INS} = concat ")\n"

Modified: trunk/languages/dotnet/src/translator.pir
==============================================================================
--- trunk/languages/dotnet/src/translator.pir	(original)
+++ trunk/languages/dotnet/src/translator.pir	Sun Dec 14 02:58:28 2008
@@ -115,7 +115,7 @@
 .end
 .sub ".ctor" :method :multi("System.String", string)
     .param string s
-    $P0 = new .String
+    $P0 = new "String"
     $P0 = s
     setattribute self, "Chars", $P0
 .end
@@ -327,6 +327,8 @@
     pir_output = concat ", \".cctor\"\n$P0()\n"
 
     # This is the end of the on load type setup sub.
+    pir_output = concat "pop_eh\n"
+    pir_output = concat "pop_eh\n"
     pir_output = concat "FAILED:\n.end\n\n"
 
     # If it's an interface, emit code to prevent it being instantiated.
@@ -334,7 +336,7 @@
     is_interface = band flags, 0x20
     if is_interface == 0 goto NOT_INTERFACE
     pir_output = concat <<"PIR"
-.sub __init :method
+.sub 'init' :method :vtable
     $P0 = class self
     $S0 = classname $P0
 PIR
@@ -356,7 +358,7 @@
     is_abstract = band flags, 0x80
     if is_abstract == 0 goto NOT_ABSTRACT
     pir_output = concat <<"PIR"
-.sub __init :method
+.sub 'init' :method :vtable
     $P0 = class self
     $S0 = classname $P0
 PIR
@@ -544,7 +546,7 @@
     goto DONE_INIT
 
 FLOAT_TYPE:
-    init_body = concat "$P0 = new .Float\n$P0 = 0.0\nsetattribute self, \""
+    init_body = concat "$P0 = new 'Float'\n$P0 = 0.0\nsetattribute self, \""
     init_body = concat name
     init_body = concat "\", $P0\n"
     goto DONE_INIT
@@ -567,11 +569,11 @@
 ILOOP_END:
 
     # Build the code.
-    pir_output = ".sub __init :method\n"
+    pir_output = ".sub 'init' :method :vtable\n"
     pir_output = concat init_body
     pir_output = concat <<"PIR"
 .end
-.sub __clone :method
+.sub 'clone' :method :vtable
 .local pmc cpy
 $P0 = class self
 $P1 = classname $P0
@@ -585,29 +587,29 @@
     # enums.
     if parent != "[ \"System\" ; \"Enum\" ]" goto NOT_ENUM
     pir_output = concat <<"PIR"
-.sub __get_integer
+.sub 'get_integer' :vtable
     .param pmc s
     $P0 = getattribute s, "value__"
     $I0 = $P0
     .return($I0)
 .end
-.sub __set_integer_native
+.sub 'set_integer_native' :vtable
     .param pmc s
     .param int i
     $P0 = new 'Integer'
     $P0 = i
     setattribute s, "value__", $P0
 .end
-.sub __get_number
+.sub 'get_number' :vtable
     .param pmc s
     $P0 = getattribute s, "value__"
     $N0 = $P0
     .return($N0)
 .end
-.sub __set_number_native
+.sub 'set_number_native' :vtable
     .param pmc s
     .param num i
-    $P0 = new Float
+    $P0 = new 'Float'
     $P0 = i
     setattribute s, "value__", $P0
 .end

Modified: trunk/languages/dotnet/t/constructor.t
==============================================================================
--- trunk/languages/dotnet/t/constructor.t	(original)
+++ trunk/languages/dotnet/t/constructor.t	Sun Dec 14 02:58:28 2008
@@ -95,7 +95,7 @@
     print "\n"
 .end
 PIR
-12.450000
+12.45
 OUTPUT
 
 ## Clean up.

Modified: trunk/languages/dotnet/t/field.t
==============================================================================
--- trunk/languages/dotnet/t/field.t	(original)
+++ trunk/languages/dotnet/t/field.t	Sun Dec 14 02:58:28 2008
@@ -80,7 +80,7 @@
 	obj = new [ "Testing" ; "Test" ]
 	obj."set_x"(28)
 	obj."set_y"(14)
-    $I0 = obj.add()
+    $I0 = obj."add"()
 	print $I0
 	print "\n"
 .end

Modified: trunk/languages/dotnet/t/finally.t
==============================================================================
--- trunk/languages/dotnet/t/finally.t	(original)
+++ trunk/languages/dotnet/t/finally.t	Sun Dec 14 02:58:28 2008
@@ -178,6 +178,10 @@
 ## Attempt to translate.
 ok( translate( "t.dll", "t.pbc" ), 'translate' );
 
+SKIP:
+{
+skip( "infinite loop (missing pop_eh)", 6);
+
 ## Tests.
 is( run_pir(<<'PIR'), <<'OUTPUT', 'unwind over' );
 .sub main
@@ -264,6 +268,7 @@
 31
 23
 OUTPUT
+}
 
 ## Clean up.
 unlink qw(t.dll t.pbc);

Modified: trunk/languages/dotnet/t/mp_pmc.t
==============================================================================
--- trunk/languages/dotnet/t/mp_pmc.t	(original)
+++ trunk/languages/dotnet/t/mp_pmc.t	Sun Dec 14 02:58:28 2008
@@ -41,7 +41,7 @@
     # Get register's value indirectly, increment it and store back indirectly.
     tmp = ptr."load_int"()
     inc tmp
-    ptr.store_int(tmp)
+    ptr."store_int"(tmp)
 .end
 PIR
 Jonathan will be 21 years old tomorrow! :-O
@@ -76,7 +76,7 @@
     ptr."store_float"(tmp)
 .end
 PIR
-4.800000
+4.8
 OUTPUT
 
 is( run_pir(<<'PIR'), <<'OUTPUT', 'pmc reg' );
@@ -105,7 +105,7 @@
     .local int tmp2
 
     # Get register's value indirectly, increment it and store back indirectly.
-    tmp = ptr.load_pmc()
+    tmp = ptr."load_pmc"()
     tmp2 = tmp
     tmp = new 'Integer'
     tmp = tmp2
@@ -179,8 +179,8 @@
     print "\n"
 .end
 PIR
-5.900000
-11.800000
+5.9
+11.8
 OUTPUT
 
 is( run_pir(<<'PIR'), <<'OUTPUT', 'pmc element' );
@@ -293,7 +293,7 @@
     print " meters tall.\n"
 .end
 PIR
-The monkey was 1.790000 meters tall.
+The monkey was 1.79 meters tall.
 The monkey is now 1.82 meters tall.
 OUTPUT
 
@@ -315,7 +315,7 @@
     ptr = net_ldflda obj, "name"
 
     # Use the pointer to get the name attribute and change it.
-    the_test = ptr.load_pmc()
+    the_test = ptr."load_pmc"()
     print "The monkey was called "
     print the_test
     print ".\n"



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About