Hello Hyunik,
I could not see which version of JastAddJ this is. Could you please 
provide either the svn revision number or the name the release?
Regarding the error messages I think the that first one might have been 
fixed in a later (possibly unreleased) version of JastAddJ. I have 
compiled JDK7 with JastAddJ, and I do not get this error message.
I have seen the second error message. I solved that by removing all 
*.class files and compiling all *.java files at once using the _at_<file> 
option to provide the list of *.java files. I do not know if there is an 
error in the bytecode generation, or only the bytecode parsing of 
JastAddJ. I added a ticket for this error when I noticed it and 
continued without more investigation.
/Jesper
On 11/24/2011 11:54 AM, Na, Hyunik wrote:
>
> Ooops, I posted with a wrong title, sorry.
>
> *From:* jastadd-bounces_at_cs.lth.se [mailto:jastadd-bounces_at_cs.lth.se] 
> *On Behalf Of *Na, Hyunik
> *Sent:* Thursday, November 24, 2011 7:17 PM
> *To:* jastadd_at_cs.lth.se
> *Subject:* Re: [Jastadd] fullCopy() och parent
>
> Hi there,
>
> I'm a CS graduate student studying programming languages,
>
> and I'm thinking about using JastAddJ to implement an extended type 
> system for Java language.
>
> ( JastAddJ looks quite nice for my purpose. )
>
> To see how well current JastAddJ compiler works, I did the following 
> quick test.
>
> (1)
>
> I downloaded OpenJDK 6 source code from 
> http://download.java.net/openjdk/jdk6/,  and built it on my Linux 
> machine.
>
> ( It was built in the directory 
> /home/hina/myWork/research/openjdk-1.6.0.0.hina, which is henceforth 
> referred to as $OPENJDK_HOME.   )
>
> Because, JDK1.6 has no language level changes from JDK1.5, I expected 
> JastAddJ can compile .java source files in OpenJDK1.6.
>
> (2)
>
> I copied some .java files from  $OPENJDK_HOME/jdk/src/share/classes 
> and from $OPENJDK_HOME/build/linux-i586/gensrc
>
> to another directory (let's call it $LOCAL).
>
> And compiled the .java files one by one with javac and verified that
>
> they are well compiled with javac (from Sun JDK 1.6.0) using the 
> following simple shell script.
>
> ( I should confess that I'm still not good at using ant. )
>
> -=-=-=-=
>
> for i in $(find . -name *.java)
>
> do
>
>   echo "### compiling $i"
>
>   javac -bootclasspath 
> .:./build:/$OPENJDK_HOME/build/linux-i586/classes -extdirs . -cp . -d 
> build $i
>
>   echo "### result = $?, compiling $i"
>
> done
>
> -=-=-=-=
>
> Then, I got 7638 .java files which are well compiled with javac.
>
> (3)
>
> Then, I tried to compile the .java files with JastAddJ with the following
>
> shell script which is almost the same as the above one.
>
> -=-=-=-=
>
> for i in $(find . -name *.java)
>
> do
>
>   echo "### compiling $i"
>
>   java -cp /home/hina/install/JastAddJ/Java1.5Backend JavaCompiler 
> -bootclasspath .:./build:$OPENJDK_HOME/build/linux-i586/classes 
> -extdirs . -classpath . -d build $i
>
>   echo "### result = $?, compiling $i"
>
> done
>
> -=-=-=-=
>
> Then, I found that 1039 .java files are well compiled, but that 6599 
> files are not.
>
> Fortunately, the error messages are divided into only 3 types,
>
> so I guess that I can compile them all if I figure out the causes of 3 
> types of errors.
>
> Because I'm planning to work seriously with JastAddJ, I have to 
> understand it thoroughly.
>
> So, figuring out the causes of errors will be a good exercise for me.
>
> But, I guess that this result and the three types of errors can be 
> interesting for JastAddJ developers.
>
> The first type of error occurred only when I compiled 
> $LOCAL/org/jcp/xml/dsig/internal/MacOutputStream.java
>
> The message says
>
> -=-=-=-=
>
> ...  (many warnings about deprecated features.)
>
> Errors:
>
> java/security/KeyStore.java:1668:
>
>   Semantic Error: new Builder() {
>
>           private volatile boolean getCalled;
>
>           private IOException oldException;
>
>           private final PrivilegedExceptionAction<KeyStore> action = 
> new PrivilegedExceptionAction<KeyStore>() {
>
>               public KeyStore run() throws Exception {
>
>                 KeyStore ks;
>
>                 if(provider == null) {
>
>                   ks = KeyStore.getInstance(type);
>
>                 }
>
>                 else {
>
>                   ks = KeyStore.getInstance(type, provider);
>
>                 }
>
>                 LoadStoreParameter param = new 
> SimpleLoadStoreParameter(protection);
>
>                 if(protection instanceof CallbackHandlerProtection == 
> false) {
>
>                   ks.load(param);
>
>                 }
>
>                 else {
>
>                   int tries = 0;
>
>                   while(true){
>
>                     tries++;
>
>                     try {
>
>                       ks.load(param);
>
>                       break ;
>
>                     }
>
>                     catch (IOException e) {
>
>                       if(e.getCause() instanceof 
> UnrecoverableKeyException) {
>
>                         if(tries < MAX_CALLBACK_TRIES) {
>
>                           continue ;
>
>                         }
>
>                         else {
>
>                           oldException = e;
>
>                         }
>
>                       }
>
>                       throw e;
>
>                     }
>
>                   }
>
>                 }
>
>                 getCalled = true;
>
>                 return ks;
>
>               }
>
>           };
>
>           public synchronized KeyStore getKeyStore() throws 
> KeyStoreException {
>
>             if(oldException != null) {
>
>               throw new KeyStoreException("Previous KeyStore 
> instantiation failed", oldException);
>
>             }
>
>             try {
>
>               return AccessController.doPrivileged(action);
>
>             }
>
>             catch (PrivilegedActionException e) {
>
>               Throwable cause = e.getCause();
>
>               throw new KeyStoreException("KeyStore instantiation 
> failed", cause);
>
>             }
>
>           }
>
>           public ProtectionParameter getProtectionParameter(String 
> alias) {
>
>             if(alias == null) {
>
>               throw new NullPointerException();
>
>             }
>
>             if(getCalled == false) {
>
>               throw new IllegalStateException("getKeyStore() must be 
> called first");
>
>             }
>
>             return protection;
>
>           }
>
>       } may throw uncaught exception java.io.IOException; it must be 
> caught or declared as being thrown
>
> ...
>
> -=-=-=-=
>
> The second type of error messages occurred for 6370 .java files, and 
> say, for example,
>
> -=-=-=-=
>
> ### compiling ./java/lang/Void.java    ( ß This is from my shell script )
>
> Exception in thread "main" java.lang.Error: Expected : but found 
> ;>(Ljava/lang/Class<TU;>;)Ljava/lang/Class<+TU;>;
>
>   at AST.Signatures.error(Signatures.java:53)
>
>   at AST.Signatures.eat(Signatures.java:46)
>
>   at AST.Signatures.classBound(Signatures.java:213)
>
>   at AST.Signatures.formalTypeParameter(Signatures.java:199)
>
>   at AST.Signatures.formalTypeParameters(Signatures.java:189)
>
>   at 
> AST.Signatures$MethodSignature.methodTypeSignature(Signatures.java:133)
>
>   at AST.Signatures$MethodSignature.<init>(Signatures.java:129)
>
>   at AST.Attributes$MethodAttributes.processAttribute(Attributes.java:186)
>
>   at AST.Attributes.attributes(Attributes.java:55)
>
>   at AST.Attributes$MethodAttributes.<init>(Attributes.java:173)
>
>   at AST.MethodInfo.<init>(MethodInfo.java:52)
>
>   at AST.BytecodeParser.parseMethods(BytecodeParser.java:531)
>
>   at AST.BytecodeParser.parse(BytecodeParser.java:329)
>
>   at AST.BytecodeParser.read(BytecodeParser.java:21)
>
>   at AST.PathPart.getCompilationUnit(PathPart.java:109)
>
>   at AST.Program.getCompilationUnit(Program.java:257)
>
>   at AST.Program.lookupType_compute(Program.java:1304)
>
>   at AST.Program.lookupType(Program.java:1285)
>
>   at AST.Program.Define_TypeDecl_lookupType(Program.java:1779)
>
>   at AST.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1588)
>
>   at AST.CompilationUnit.lookupType(CompilationUnit.java:926)
>
>   at 
> AST.CompilationUnit.refined_TypeScopePropagation_CompilationUnit_Child_lookupType_String(CompilationUnit.java:555)
>
>   at 
> AST.CompilationUnit.Define_SimpleSet_lookupType(CompilationUnit.java:1023)
>
>   at AST.ASTNode.Define_SimpleSet_lookupType(ASTNode.java:1594)
>
>   at AST.TypeDecl.lookupType(TypeDecl.java:6893)
>
>   at AST.TypeDecl.Define_SimpleSet_lookupType(TypeDecl.java:7435)
>
>   at AST.ASTNode.Define_SimpleSet_lookupType(ASTNode.java:1594)
>
>   at AST.ASTNode.Define_SimpleSet_lookupType(ASTNode.java:1594)
>
>   at AST.ASTNode.Define_SimpleSet_lookupType(ASTNode.java:1594)
>
>   at AST.AbstractDot.Define_SimpleSet_lookupType(AbstractDot.java:915)
>
>   at AST.Expr.lookupType(Expr.java:1279)
>
>   at AST.AmbiguousAccess.rewriteRule0(AmbiguousAccess.java:268)
>
>   at AST.AmbiguousAccess.rewriteTo(AmbiguousAccess.java:253)
>
>   at AST.ASTNode.getChild(ASTNode.java:752)
>
>   at AST.ASTNode.getChild(ASTNode.java:731)
>
>   at AST.Dot.getLeft(Dot.java:170)
>
>   at AST.AbstractDot.leftSide_compute(AbstractDot.java:569)
>
>   at AST.AbstractDot.leftSide(AbstractDot.java:563)
>
>   at AST.Dot.rewriteTo(Dot.java:211)
>
>   at AST.ASTNode.getChild(ASTNode.java:752)
>
>   at AST.ASTNode.getChild(ASTNode.java:731)
>
>   at AST.FieldDeclaration.getInit(FieldDeclaration.java:646)
>
>   at AST.FieldDeclaration.typeCheck(FieldDeclaration.java:292)
>
>   at AST.ASTNode.collectErrors(ASTNode.java:291)
>
>   at AST.ASTNode.collectErrors(ASTNode.java:298)
>
>   at AST.ASTNode.collectErrors(ASTNode.java:298)
>
>   at AST.ASTNode.collectErrors(ASTNode.java:298)
>
>   at AST.ASTNode.collectErrors(ASTNode.java:298)
>
>   at AST.CompilationUnit.errorCheck(CompilationUnit.java:174)
>
>   at AST.Frontend.process(Frontend.java:65)
>
>   at JavaCompiler.compile(JavaCompiler.java:19)
>
>   at JavaCompiler.main(JavaCompiler.java:14)
>
> ### result = 1, compiling ./java/lang/Void.java
>
> -=-=-=-=
>
> The strings after the "but found ;>" and the call stacks vary for 
> source files.
>
> (Therefore, it is possible that they are not due to a single bug. )
>
> The third type of error messages occurred for the remaining 228 source 
> files,
>
> and are almost the same as the second one, but says
>
> "... Expected ; but found ..." instead of "... Expected : but found ..."
>
> (that is, semicolons instead of colons).
>
> If the above phenomena are caused due to my mistakes, please let me know.
>
> Thank you.
>
> -- Hyunik
>
>
> _______________________________________________
> JastAdd mailing list
> JastAdd_at_cs.lth.se
> https://mail1.cs.lth.se/cgi-bin/mailman/listinfo/jastadd
>    
Received on Thu Nov 24 2011 - 12:31:49 CET