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

raffaello.giulietti at supsi.ch raffaello.giulietti at supsi.ch
Fri Dec 2 10:17:17 UTC 2016


Hi Doug,

as an alternative, I could *build* on Linux every now and then but then
*use* the built product on Windows.

Would that work or are there other dependencies of the build from the OS
or other parts of the platform? After all, afaik, the build should be
pure JVM bytecode, independent of the platform, right?

Or is there a Graal binary build for JDK9 already available on some repo?





On 2016-12-01 21:16, Doug Simon wrote:
> 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