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

Doug Simon doug.simon at oracle.com
Thu Dec 1 21:16:58 UTC 2016


Hi Raffaello,

I don’t what the cause of the Windows failure could be.

Maybe you could consider trying Bash on Windows (https://msdn.microsoft.com/en-us/commandline/wsl/install_guide) as a workaround/alternative.

-Doug

> On 1 Dec 2016, at 19:02, raffaello.giulietti at supsi.ch wrote:
> 
> Hi,
> 
> I tried again to build graal-core & truffle on Windows, this time
> against JDK9 EA build 146: unsuccessfully, similar errors.
> 
> (The same on Linux works without troubles.)
> 
> Without reading the 14613 lines of the mx Python script, what could the
> failure on Windows depend on?
> Which are the assumptions of mx about the OS?
> 
> 
> Greetings
> Raffaello
> 
> 
> 
> 
> On 2016-11-18 21:05, Raffaello Giulietti wrote:
>> 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