[svn:parrot] r39548 - branches/pmc_pct/compilers/pmcc/src/emitter

bacek at svn.parrot.org bacek at svn.parrot.org
Sun Jun 14 09:09:46 UTC 2009


Author: bacek
Date: Sun Jun 14 09:09:46 2009
New Revision: 39548
URL: https://trac.parrot.org/parrot/changeset/39548

Log:
[pmcc] Generate full set of required constants.

Modified:
   branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm

Modified: branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm
==============================================================================
--- branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm	Sun Jun 14 09:09:24 2009	(r39547)
+++ branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm	Sun Jun 14 09:09:46 2009	(r39548)
@@ -522,10 +522,26 @@
     # First - gather all required constant strings in hash.
     my %constant_strings;
 
-    for self.past.multis.keys {
+    # Generate bunch of constant strings for registering multi.
+    my %multis := self.past.multis;
+    for %multis.keys {
         if !%constant_strings{ $_ } {
             %constant_strings{ $_ } := +%constant_strings;
         }
+        
+        # $m is list of implementations.
+        my $m := %multis{ $_ };
+        for $m {
+            my $short_sig := $_<short_signature>;
+            if !%constant_strings{ $short_sig } {
+                %constant_strings{ $short_sig } := +%constant_strings;
+            }
+
+            my $long_sig := $_<long_signature>;
+            if !%constant_strings{ $long_sig } {
+                %constant_strings{ $long_sig } := +%constant_strings;
+            }
+        }
     }
 
     say("constants:");


More information about the parrot-commits mailing list