Building on JDK9 EA build 144/Windows, try #1

Raffaello Giulietti raffaello.giulietti at supsi.ch
Fri Nov 18 21:05:50 UTC 2016


Hi guys,

I guess few of you usually work on Windows.

Nevertheless, since starting with build 143 the JDK 9 EA release now
supports JVMCI, I decided to give some tries building a Truffle/Graal
environment on Windows 10 (64 bit).

***
If you feel this makes no sense at this stage of maturity of both JDK 9
and Graal, please let me know.
***

The reasoning is that by using JDK 9 with JVMCI, I can avoid the complex
and weakly documented procedure to build a JDK with JVMCI from scratch
on Windows. The hope is that building only Graal and Truffle, which
afaik are pure Java projects, is easier when targeting this platform.

So, along with JDK 9b144, I also installed Git
(https://git-scm.com/download/win) and Python 2.7
(https://www.python.org/downloads/release/python-2712/). Git for Windows
comes with a bash and some basic Unix commands.

Then, following the instruction for building Graal
(https://github.com/graalvm/graal-core), when it comes to the first
  $mx.cmd build
I stumble across a first error about the impossibility of creating a
file that already exists (see the 1st trace below)

If I insist and immediately issue another
  $mx.cmd build
I now stumble across Java related errors (2nd trace below).

I repeated this a couple of times taking care of removing the graal root
folder and starting from scratch with the building instructions.

If anybody could direct me on what I should look at in more details,
that would be a great help. I have no clues and, I confess, not much
willingness to delve into the scripts.

FYI, here's the java -version
java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+144)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+144, mixed mode)

Sorry for the long and boring traces, but I can't decide what's
important to you and what's not.

Greetings
Raffaello



1st trace
---------
Compiling com.oracle.mxtool.compilerserver with javac...
[C:\Users\Raffaello\graal\mx\mxbuild\java\com.oracle.mxtoo
l.compilerserver\bin\com\oracle\mxtool\compilerserver\CompilerDaemon.class
does not exist]
warning: [options] bootstrap class path not set in conjunction with
-source 1.7
C:\Users\Raffaello\graal\mx\java\com.oracle.mxtool.compilerserver\src\com\oracle\mxtool\compilerserver\JavacDaemon.
      java:31: warning: [deprecation] newInstance() in Class has been
deprecated
            final Object receiver = javacMainClass.newInstance();
                                                  ^
  where T is a type-variable:
    T extends Object declared in class Class
2 warnings
Compiling com.oracle.truffle.api with javac-daemon...
[C:\Users\Raffaello\graal\truffle\mxbuild\truffle\com.oracle.
truffle.api\bin\com\oracle\truffle\api\Assumption.class does not exist]
warning: [options] bootstrap class path not set in conjunction with
-source 1.7
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api\src\com\oracle\truffle\api\Truffle.java:68:
warning       : [deprecation] newInstance() in Class has been deprecated
                        return (TruffleRuntime) runtimeClass.newInstance();
                                                            ^
  where T is a type-variable:
    T extends Object declared in class Class
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api\src\com\oracle\truffle\api\nodes\GraphPrintVisitor.
      java:565: warning: [deprecation] newInstance() in Class has been
deprecated
            return customHandlerClass.newInstance();
                                     ^
  where T is a type-variable:
    T extends Object declared in class Class
3 warnings
Compiling com.oracle.truffle.api.dsl with javac-daemon... [dependency
com.oracle.truffle.api updated]
warning: [options] bootstrap class path not set in conjunction with
-source 1.7
1 warning
Compiling com.oracle.truffle.api.interop with javac-daemon...
[dependency com.oracle.truffle.api updated]
warning: [options] bootstrap class path not set in conjunction with
-source 1.7
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api.interop\src\com\oracle\truffle\api\interop\Message.
      java:526: warning: [deprecation] newInstance() in Class has been
deprecated
                    return (Message) Class.forName(message, false,
l).newInstance();
                                                                     ^
  where T is a type-variable:
    T extends Object declared in class Class
2 warnings
Compiling com.oracle.truffle.api.instrumentation with javac-daemon...
[dependency com.oracle.truffle.api updated]
warning: [options] bootstrap class path not set in conjunction with
-source 1.7
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api.instrumentation\src\com\oracle\truffle\api\instrume
      ntation\InstrumentationHandler.java:384: warning: [deprecation]
newInstance() in Class has been deprecated
            wrapper = ((InstrumentableFactory<Node>)
factory.newInstance()).createWrapper(instrumentableNode, probe       );
                                                            ^
  where T is a type-variable:
    T extends Object declared in class Class
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api.instrumentation\src\com\oracle\truffle\api\instrume
      ntation\InstrumentationHandler.java:759: warning: [deprecation]
newInstance() in Class has been deprecated
                this.instrument = (TruffleInstrument)
instrumentClass.newInstance();
                                                                     ^
  where T is a type-variable:
    T extends Object declared in class Class
3 warnings
Compiling com.oracle.truffle.dsl.processor with javac-daemon...
[dependency com.oracle.truffle.api.dsl updated]
warning: [options] bootstrap class path not set in conjunction with
-source 1.7
1 warning
Compiling com.oracle.truffle.api.object with javac-daemon... [dependency
com.oracle.truffle.api.interop updated]
warning: [options] bootstrap class path not set in conjunction with
-source 1.7
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api.object\src\com\oracle\truffle\api\object\Layout.jav
      a:142: warning: [deprecation] newInstance() in Class has been
deprecated
                bestLayoutFactory = (LayoutFactory) clazz.newInstance();
                                                         ^
  where T is a type-variable:
    T extends Object declared in class Class
2 warnings
Compiling com.oracle.truffle.api.object.dsl with javac-daemon...
[dependency com.oracle.truffle.api.object updated]
warning: [options] bootstrap class path not set in conjunction with
-source 1.7
1 warning
Compiling com.oracle.truffle.object.dsl.processor with javac-daemon...
[dependency com.oracle.truffle.api.object.ds       l updated]
warning: [options] bootstrap class path not set in conjunction with
-source 1.7
1 warning
Archiving TRUFFLE_DSL_PROCESSOR_INTERNAL... [dependency
com.oracle.truffle.dsl.processor updated]
C:/Users/Raffaello/graal/mx/mx.py:1058: UserWarning: Duplicate name:
'META-INF/services/javax.annotation.processing       .Processor'
  arc.zf.writestr(arcname, contents)
C:/Users/Raffaello/graal/mx/mx.py:6654: UserWarning: Duplicate name:
'META-INF/services/javax.annotation.processing       .Processor'
  arc.zf.writestr(arcname, '\n'.join(dist.definedAnnotationProcessors) +
'\n')
Traceback (most recent call last):
  File "C:/Users/Raffaello/graal/mx/mx.py", line 14468, in <module>
    main()
  File "C:/Users/Raffaello/graal/mx/mx.py", line 14452, in main
    retcode = c(command_args)
  File "C:/Users/Raffaello/graal/mx/mx.py", line 9577, in build
    t.execute()
  File "C:/Users/Raffaello/graal/mx/mx.py", line 669, in execute
    self.build()
  File "C:/Users/Raffaello/graal/mx/mx.py", line 1212, in build
    self.subject.make_archive()
  File "C:/Users/Raffaello/graal/mx/mx.py", line 1161, in make_archive
    self.notify_updated()
  File "C:/Users/Raffaello/graal/mx/mx.py", line 783, in notify_updated
    l(self)
  File "C:/Users/Raffaello/graal/mx/mx.py", line 6656, in
_refineAnnotationProcessorServiceConfig
    arc.zf.writestr(arcname, lp.read(arcname))
  File "C:/Users/Raffaello/graal/mx/mx.py", line 9976, in __exit__
    SafeFileCreation.__exit__(self, exc_type, exc_value, traceback)
  File "C:/Users/Raffaello/graal/mx/mx.py", line 9949, in __exit__
    os.rename(self.tmpPath, self.path)
WindowsError: [Error 183] Cannot create a file when that file already exists
java.net.SocketException: Connection reset
        at
java.base/java.net.SocketInputStream.read(SocketInputStream.java:209)
        at
java.base/java.net.SocketInputStream.read(SocketInputStream.java:141)
        at
java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
        at
java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
        at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
        at
java.base/java.io.InputStreamReader.read(InputStreamReader.java:185)
        at java.base/java.io.BufferedReader.fill(BufferedReader.java:161)
        at
java.base/java.io.BufferedReader.readLine(BufferedReader.java:325)
        at
java.base/java.io.BufferedReader.readLine(BufferedReader.java:390)
        at
com.oracle.mxtool.compilerserver.CompilerDaemon$Connection.run(CompilerDaemon.java:133)
        at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:514)
        at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1161)
        at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:844)


		
		

		
		
2nd trace
---------
Compiling com.oracle.truffle.api.interop.java with javac-daemon...
[C:\Users\Raffaello\graal\truffle\mxbuild\truffle\com.oracle.truffle.api.interop.java\bin\com\oracle\truffle\api\interop\java\ArrayWriteNode.class
does not exist]
warning: [options] bootstrap class path not set in conjunction with
-source 1.7
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api.interop.java\src\com\oracle\truffle\api\interop\java\JavaObject.java:44:
error: cannot find symbol
        return JavaObjectMessageResolutionForeign.createAccess();
               ^
  symbol:   variable JavaObjectMessageResolutionForeign
  location: class JavaObject
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api.interop.java\src\com\oracle\truffle\api\interop\java\JavaFunctionMessageResolution.java:62:
error: cannot find symbol
                    this.toJava[i] = ToJavaNodeGen.create();
                                     ^
  symbol:   variable ToJavaNodeGen
  location: class DoExecuteNode
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api.interop.java\src\com\oracle\truffle\api\interop\java\JavaFunctionObject.java:47:
error: cannot find symbol
        return JavaFunctionMessageResolutionForeign.createAccess();
               ^
  symbol:   variable JavaFunctionMessageResolutionForeign
  location: class JavaFunctionObject
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api.interop.java\src\com\oracle\truffle\api\interop\java\JavaInterop.java:151:
error: cannot find symbol
        RootNode root = new TemporaryConvertRoot(TruffleLanguage.class,
ToJavaNodeGen.create(), foreignObject, type);
                                                                        ^
  symbol:   variable ToJavaNodeGen
  location: class JavaInterop
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api.interop.java\src\com\oracle\truffle\api\interop\java\JavaInterop.java:257:
error: cannot find symbol
        RootNode root = new TemporaryConvertRoot(TruffleLanguage.class,
ToJavaNodeGen.create(), function, functionalType);
                                                                        ^
  symbol:   variable ToJavaNodeGen
  location: class JavaInterop
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api.interop.java\src\com\oracle\truffle\api\interop\java\JavaObjectMessageResolution.java:177:
error: cannot find symbol
        @Child private ArrayReadNode read = ArrayReadNodeGen.create();
                                            ^
  symbol:   variable ArrayReadNodeGen
  location: class ReadFieldNode
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api.interop.java\src\com\oracle\truffle\api\interop\java\JavaObjectMessageResolution.java:222:
error: cannot find symbol
        @Child private ToJavaNode toJava = ToJavaNodeGen.create();
                                           ^
  symbol:   variable ToJavaNodeGen
  location: class WriteFieldNode
C:\Users\Raffaello\graal\truffle\truffle\com.oracle.truffle.api.interop.java\src\com\oracle\truffle\api\interop\java\JavaObjectMessageResolution.java:250:
error: cannot find symbol
        @Child private ArrayWriteNode write = ArrayWriteNodeGen.create();
                                              ^
  symbol:   variable ArrayWriteNodeGen
  location: class WriteFieldNode
8 errors
1 warning



More information about the graal-dev mailing list