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

Doug Simon doug.simon at oracle.com
Fri Dec 2 10:30:25 UTC 2016


> On 2 Dec 2016, at 11:17, raffaello.giulietti at supsi.ch wrote:
> 
> Hi Doug,
> 
> as an alternative, I could *build* on Linux every now and then but then
> *use* the built product on Windows.

Maybe. I am only suggesting something that may work without having tested it.

> 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?

I assume you’re talking about building graal-core and truffle in which case, yes, it should be pure Java source code.

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

No, we don’t deploy binary builds apart from the GraalVM binaries available at http://www.oracle.com/technetwork/oracle-labs/program-languages/downloads/index.html

-Doug

> 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