develooper Front page | perl.cvs.parrot | Postings from January 2009

[svn:parrot] r35176 - branches/rvar2/languages/perl6/src/builtins

From:
jonathan
Date:
January 7, 2009 13:59
Subject:
[svn:parrot] r35176 - branches/rvar2/languages/perl6/src/builtins
Message ID:
20090107215903.2FFF2CB9F9@x12.develooper.com
Author: jonathan
Date: Wed Jan  7 13:59:02 2009
New Revision: 35176

Modified:
   branches/rvar2/languages/perl6/src/builtins/guts.pir
   branches/rvar2/languages/perl6/src/builtins/op.pir

Log:
[rakudo] Little re-work of roles, rip out much of the last patch and do it differently. This way fixes up another test too.

Modified: branches/rvar2/languages/perl6/src/builtins/guts.pir
==============================================================================
--- branches/rvar2/languages/perl6/src/builtins/guts.pir	(original)
+++ branches/rvar2/languages/perl6/src/builtins/guts.pir	Wed Jan  7 13:59:02 2009
@@ -406,6 +406,9 @@
     info['name'] = $P0
     info['namespace'] = nsarray
     metarole = new 'Role', info
+    nsarray = clone nsarray
+    $S0 = pop nsarray
+    set_hll_global nsarray, $S0, metarole
     .return (metarole)
 .end 
 
@@ -470,7 +473,6 @@
     $P0 = $P0.'parse_name'(name)
     $S0 = pop $P0
     $P0 = get_hll_global $P0, $S0
-    $P0 = get_class $P0
 
     ##  add it to the class.
     metaclass.'add_role'($P0)

Modified: branches/rvar2/languages/perl6/src/builtins/op.pir
==============================================================================
--- branches/rvar2/languages/perl6/src/builtins/op.pir	(original)
+++ branches/rvar2/languages/perl6/src/builtins/op.pir	Wed Jan  7 13:59:02 2009
@@ -400,10 +400,6 @@
     .local pmc derived
     derived = new 'Class'
     addparent derived, parrot_class
-    $I0 = isa role, 'NameSpace'
-    unless $I0 goto not_ns
-    role = get_class role
-  not_ns:
     $I0 = isa role, 'Role'
     if $I0 goto one_role
     $I0 = isa role, 'List'
@@ -421,10 +417,6 @@
   roles_loop:
     unless role_it goto roles_loop_end
     cur_role = shift role_it
-    $I0 = isa cur_role, 'NameSpace'
-    unless $I0 goto many_not_ns
-    cur_role = get_class cur_role
-  many_not_ns:
     $I0 = isa cur_role, 'Role'
     unless $I0 goto error
     '!keyword_does'(derived, cur_role)



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