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