hg: mlvm/mlvm/hotspot: meth: rebase to b42; improve implementation

Kirill Shirokov Kirill.Shirokov at Sun.COM
Fri Dec 26 13:35:26 PST 2008


Hi Ben,

It seems that the following is a correct patch for these 2 files 
(Parser.java and Name.java):

diff -r 871c1708de94 
src/share/classes/com/sun/tools/javac/parser/JavacParser.java
--- a/src/share/classes/com/sun/tools/javac/parser/JavacParser.java     
Tue Dec 23 05:50:59 2008 +0300
+++ b/src/share/classes/com/sun/tools/javac/parser/JavacParser.java     
Sat Dec 27 00:29:06 2008 +0300
@@ -1027,7 +1027,13 @@
                     return illegal(pos);
                 }
             } else {
-                return illegal();
+                // Support the corner case of 
myMethodHandle.<void>invoke() by passing
+                // a void type (like other primitive types) to the next 
phase.
+                // The error will be reported in Attr.attribTypes or 
Attr.visitApply.
+                JCPrimitiveTypeTree ti = 
to(F.at(pos).TypeIdent(TypeTags.VOID));
+                S.nextToken();
+                return ti;
+                //return illegal();
             }
             break;
         default:
diff -r 871c1708de94 src/share/classes/com/sun/tools/javac/util/Names.java
--- a/src/share/classes/com/sun/tools/javac/util/Names.java     Tue Dec 
23 05:50:59 2008 +0300
+++ b/src/share/classes/com/sun/tools/javac/util/Names.java     Sat Dec 
27 00:29:07 2008 +0300
@@ -73,6 +73,8 @@
     public final Name java_io_Serializable;
     public final Name serialVersionUID;
     public final Name java_lang_Enum;
+    public final Name java_dyn_MethodHandle;
+    public final Name java_dyn_Dynamic;
     public final Name package_info;
     public final Name ConstantValue;
     public final Name LineNumberTable;
@@ -111,6 +113,7 @@
     public final Name value;
     public final Name getMessage;
     public final Name getClass;
+    public final Name invoke;
     public final Name TYPE;
     public final Name FIELD;
     public final Name METHOD;
@@ -175,6 +178,8 @@
         java_lang_Cloneable = fromString("java.lang.Cloneable");
         java_io_Serializable = fromString("java.io.Serializable");
         java_lang_Enum = fromString("java.lang.Enum");
+        java_dyn_MethodHandle = fromString("java.dyn.MethodHandle");
+        java_dyn_Dynamic = fromString("java.dyn.Dynamic");
         package_info = fromString("package-info");
         serialVersionUID = fromString("serialVersionUID");
         ConstantValue = fromString("ConstantValue");
@@ -216,6 +221,7 @@
         value = fromString("value");
         getMessage = fromString("getMessage");
         getClass = fromString("getClass");
+        invoke = fromString("invoke");

         TYPE = fromString("TYPE");
         FIELD = fromString("FIELD");

Best regards,
Kirill

Ben Evans пишет:
> Merry Christmas John (and everyone),
>
> I'm starting to look at the delta between the current bsd-port and 
> b42, to see what needs doing to get this building on Mac and I've 
> noticed something which seems a bit odd about meth.patch
>
> It contains this hunk:
>
> diff --git a/src/share/classes/com/sun/tools/javac/util/Name.java 
> b/src/share/classes/com/sun/tools/javac/util/Name.java
> --- a/src/share/classes/com/sun/tools/javac/util/Name.java
> +++ b/src/share/classes/com/sun/tools/javac/util/Name.java
> @@ -437,6 +437,8 @@
>              java_lang_Cloneable = fromString("java.lang.Cloneable");
>              java_io_Serializable = fromString("java.io.Serializable");
>              java_lang_Enum = fromString("java.lang.Enum");
> +            java_dyn_MethodHandle = fromString("java.dyn.MethodHandle");
> +            java_dyn_Dynamic = fromString("java.dyn.Dynamic");
>              package_info = fromString("package-info");
>              serialVersionUID = fromString("serialVersionUID");
>              ConstantValue = fromString("ConstantValue");
> @@ -478,6 +480,7 @@
>              value = fromString("value");
>              getMessage = fromString("getMessage");
>              getClass = fromString("getClass");
> +            invoke = fromString("invoke");
>  
>              TYPE = fromString("TYPE");
>              FIELD = fromString("FIELD");
> @@ -571,6 +574,8 @@
>          public final Name java_io_Serializable;
>          public final Name serialVersionUID;
>          public final Name java_lang_Enum;
> +        public final Name java_dyn_MethodHandle;
> +        public final Name java_dyn_Dynamic;
>          public final Name package_info;
>          public final Name ConstantValue;
>          public final Name LineNumberTable;
> @@ -612,6 +617,7 @@
>          public final Name value;
>          public final Name getMessage;
>          public final Name getClass;
> +        public final Name invoke;
>  
>          public final Name TYPE;
>          public final Name FIELD;
>
> but in the code which I fclone'd today, those additions look like they 
> should be applied to Names.java rather than Name.java as the diff line 
> would suggest.
>
> Am I making some schoolboy error which currently eludes me?
>
> Thanks,
>
> Ben
>
> On Fri, Dec 26, 2008 at 9:03 AM, John Rose <John.Rose at sun.com 
> <mailto:John.Rose at sun.com>> wrote:
>
>     I've spent the last 24+ hours enjoying more traditional forms of
>     merrymaking.  (Though I was indeed having a wild ride with that
>     meth.patch stuff.)
>
>     Merry Christmas (x 12 days of); enjoy all the good things the
>     holidays bring!
>
>     Warm best wishes,
>     -- John
>
>     On Dec 25, 2008, at 6:36 AM, David Pollak wrote:
>>
>>     (F)rebasing meth... a new kind of Christmas cheer.  :-)
>>
>>     Sorry... it's t-minus 30 minutes to kids waking up and I spent
>>     many hours last night doing "some assembly required"
>>
>>>
>>>         On Dec 24, 2008 8:22 PM, <john.rose at sun.com
>>>         <mailto:john.rose at sun.com>> wrote:
>>>
>>>         Changeset: 1d42dc25d9e3
>>>         Author:    jrose
>>>         Date:      2008-12-24 19:53 -0800
>>>         URL:    
>>>           http://hg.openjdk.java.net/mlvm/mlvm/hotspot/rev/1d42dc25d9e3
>>>
>>>         meth: rebase to b42; improve implementation
>>>
>>>         ! meth.patch
>>>         ! meth.txt
>>>         ! series
>>>
>>>         _____________
>>>
>
>     _______________________________________________
>     mlvm-dev mailing list
>     mlvm-dev at openjdk.java.net <mailto:mlvm-dev at openjdk.java.net>
>     http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20081227/902c6832/attachment.html 


More information about the mlvm-dev mailing list