From carmentorreslopez87 at gmail.com Wed May 4 13:21:34 2016 From: carmentorreslopez87 at gmail.com (=?utf-8?Q?Carmen_Torres_L=C3=B3pez?=) Date: Wed, 4 May 2016 15:21:34 +0200 Subject: CoverallsTruffle tool Message-ID: <322C4A49-9ADD-4575-B85E-30F5A4430F9F@gmail.com> Hello: My name is Carmen and I?m currently doing a PhD in Software Languages Laboratory at the Vrije Universiteit Brussel in Belgium. I would like to introduce in this mailing list the CoverallsTruffle tool: https://github.com/MetaConc/CoverallsTruffle CoverallsTruffle collects code coverage information, i.e., executed and not executed lines, in a language agnostic way using the Truffle instrumentation framework and sends the results to the Coveralls.io service for presentation. Examples on how to use it can be found in the README. Currently, it works for SimpleLanguage as well as SOMns (https://github.com/MetaConc/SOMns ). We implemented CoverallsTruffle as a first exercise to get acquainted with Truffle in the context of the MetaConc project:(http://ssw.jku.at/Research/Projects/MetaConc/ ). Thanks for developing the Truffle project, kind regards, Carmen From jaroslav.tulach at oracle.com Thu May 5 08:54:10 2016 From: jaroslav.tulach at oracle.com (Jaroslav Tulach) Date: Thu, 05 May 2016 10:54:10 +0200 Subject: Changes in NodeClass was: truffle-api-changes #288 Message-ID: <1643470.U62S5nKP2y@pracovni> FYI: Avoid using NodeFieldAccessor and implementing NodeClass. -jt Added Methods ------------- com.oracle.truffle.api.nodes.NodeClass: method protected abstract boolean com.oracle.truffle.api.nodes.NodeClass.isChildField(java.lang.Object) com.oracle.truffle.api.nodes.NodeClass: method protected abstract boolean com.oracle.truffle.api.nodes.NodeClass.isChildrenField(java.lang.Object) com.oracle.truffle.api.nodes.NodeClass: method protected abstract boolean com.oracle.truffle.api.nodes.NodeClass.isCloneableField(java.lang.Object) com.oracle.truffle.api.nodes.NodeClass: method protected abstract java.lang.Class com.oracle.truffle.api.nodes.NodeClass.getFieldType(java.lang.Object) com.oracle.truffle.api.nodes.NodeClass: method protected abstract java.lang.Iterable com.oracle.truffle.api.nodes.NodeClass.getNodeFields() com.oracle.truffle.api.nodes.NodeClass: method protected abstract java.lang.Object com.oracle.truffle.api.nodes.NodeClass.getFieldObject(java.lang.Object,com.oracle.truffle.api.nodes.Node) com.oracle.truffle.api.nodes.NodeClass: method protected abstract java.lang.Object com.oracle.truffle.api.nodes.NodeClass.getFieldValue(java.lang.Object,com.oracle.truffle.api.nodes.Node) com.oracle.truffle.api.nodes.NodeClass: method protected abstract java.lang.String com.oracle.truffle.api.nodes.NodeClass.getFieldName(java.lang.Object) com.oracle.truffle.api.nodes.NodeClass: method protected abstract void com.oracle.truffle.api.nodes.NodeClass.putFieldObject(java.lang.Object,com.oracle.truffle.api.nodes.Node,java.lang.Object) Added Annotations ----------------- com.oracle.truffle.api.nodes.NodeClass.getChildFields: anno 0 java.lang.Deprecated() com.oracle.truffle.api.nodes.NodeClass.getChildrenFields: anno 0 java.lang.Deprecated() com.oracle.truffle.api.nodes.NodeClass.getCloneableFields: anno 0 java.lang.Deprecated() com.oracle.truffle.api.nodes.NodeClass.getFields: anno 0 java.lang.Deprecated() com.oracle.truffle.api.nodes.NodeClass.getNodeClassField: anno 0 java.lang.Deprecated() com.oracle.truffle.api.nodes.NodeClass.getParentField: anno 0 java.lang.Deprecated() com.oracle.truffle.api.nodes.NodeFieldAccessor: anno 0 java.lang.Deprecated() com.oracle.truffle.api.nodes.NodeFieldAccessor.getObject: anno 0 java.lang.Deprecated() com.oracle.truffle.api.nodes.NodeUtil.findChildField: anno 0 java.lang.Deprecated() Changeset: https://github.com/graalvm/truffle/commit/1e3d58fd4b4d3e0db2063731aa9a1e3ddd824e35 From chris.seaton at oracle.com Wed May 11 20:54:33 2016 From: chris.seaton at oracle.com (Chris Seaton) Date: Wed, 11 May 2016 21:54:33 +0100 Subject: CFP: 12th Dynamic Languages Symposium (DLS 2016) Message-ID: ## 12th Dynamic Languages Symposium (DLS 2016) ### Co-located with SPLASH 2016 ### In association with ACM SIGPLAN ### November 1, 2016, Amsterdam The 12th Dynamic Languages Symposium (DLS) at SPLASH 2016 invites high quality papers reporting original research and experience related to the design, implementation, and applications of dynamic languages. Areas of interest include but are not limited to: * Innovative language features * Innovative implementation techniques * Innovative applications * Development environments and tools * Experience reports and case studies * Domain-oriented programming * Very late binding, dynamic composition, and run-time adaptation * Reflection and meta-programming * Software evolution * Language symbiosis and multi-paradigm languages * Dynamic optimization * JIT compilation * Soft/optional/gradual typing * Hardware support * Educational approaches and perspectives * Semantics of dynamic languages ### Submissions and proceedings Submissions must not have been published previously nor being under review at other events. Research papers should describe work that advances the current state of the art. Experience papers should be of broad interest and should describe insights gained from substantive practical applications. The program committee will evaluate each contributed paper based on its relevance, significance, clarity, and originality. Papers are to be submitted electronically at in PDF format. Submissions must be in the ACM format with 10-point fonts and should not exceed 12 pages. Please see full details in the following link: DLS 2016 will run a two-phase reviewing process to help authors make their final papers the best that they can be. Accepted papers will be published in the ACM Digital Library and will be freely available for one month, starting two weeks before the event. ### Important dates * Submissions: Jun 10, 2016 (UTC, firm deadline) * First phase notification: Jul 22, 2016 * Revisions due: July 29, 2016 * Final notification: Aug 14, 2016 * Camera ready: Aug 26, 2016 * DLS: Nov 1, 2016 **AUTHORS TAKE NOTE:** The official publication date is the date the proceedings are made available in the ACM Digital Library. This date may be up to two weeks prior to the first day of your conference. The official publication date affects the deadline for any patent filings related to published work. ### Program chair Roberto Ierusalimschy, PUC-Rio, Brazil dls16 at inf.puc-rio.br ### Program committee * Carl Friedrich Bolz, King?s College London, UK * Gilad Bracha, Google, USA * Marcus Denker, INRIA, France * Zachary DeVito, Stanford, USA * Jonathan Edwards, CDG Labs, USA * Matthew Flatt, University of Utah, USA * Elisa Gonzalez Boix, Vrije Universiteit Brussel, Belgium * Robert Hirschfeld, Hasso Plattner Institute Potsdam, Germany * Roberto Ierusalimschy, PUC-Rio, Brazil (chair) * Shriram Krishnamurthi, Brown University, USA * Benjamin Livshits, Microsoft Research, USA * Priya Nagpurkar, IBM Research, USA * Joe Gibbs Politz, Swarthmore College, USA * Chris Seaton, Oracle Labs, UK * Manuel Serrano, INRIA, France * Sam Tobin-Hochstadt, Indiana University, USA * Laurence Tratt, King?s College London, UK * Jan Vitek, Northeastern University, USA * Haichuan Wang, Huawei America Research Center, USA From jaroslav.tulach at oracle.com Thu May 12 06:26:31 2016 From: jaroslav.tulach at oracle.com (Jaroslav Tulach) Date: Thu, 12 May 2016 08:26:31 +0200 Subject: FYI: Improved TCK in truffle-api-changes #307 In-Reply-To: <2069652949.45.1463033682861@c8ffaf347c3f> References: <2069652949.45.1463033682861@c8ffaf347c3f> Message-ID: <2011266.ZVm5ihi36u@pracovni> Hi. Consider implementing the new addToArray TCK method: http://lafo.ssw.uni-linz.ac.at/javadoc/truffle/latest/com/oracle/truffle/tck/TruffleTCK.html#addToArray-- > Added Methods > ------------- > > com.oracle.truffle.tck.TruffleTCK: protected String addToArray() > > @Test > com.oracle.truffle.tck.TruffleTCK: public void addOneToAnArrayElement() it will help your language be more compliant when it comes to interop array access. -jt From juan.fumero at ed.ac.uk Sun May 15 12:04:29 2016 From: juan.fumero at ed.ac.uk (Juan Fumero) Date: Sun, 15 May 2016 13:04:29 +0100 Subject: R and Partial Evaluation with Graal Message-ID: <1463313869.13761.6.camel@ed.ac.uk> Hi all,? ? I am using the R version [1] in github. I saw there is no dependency now with Graal-core. Just Truffle instead. My question is how to use now the Graal JVMCI compiler.? I compile with the graal-core [2] compiler separately. But when I execute R I get this error: $ mx R? .....? Exception in thread "main" java.lang.InternalError at com.oracle.truffle.api.Truffle$1.run(Truffle.java:103) at com.oracle.truffle.api.Truffle$1.run(Truffle.java:58) at java.security.AccessController.doPrivileged(Native Method) at com.oracle.truffle.api.Truffle.initRuntime(Truffle.java:58) at com.oracle.truffle.api.Truffle.(Truffle.java:46) at com.oracle.truffle.api.impl.Accessor.(Accessor.java:321) at com.oracle.truffle.api.vm.PolyglotEngine.(PolyglotEngine.java:1 07) at com.oracle.truffle.r.engine.shell.RCommand.readEvalPrint(RCommand.java: 191) at com.oracle.truffle.r.engine.shell.RCommand.main(RCommand.java:85) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja va:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso rImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.oracle.truffle.api.Truffle$1.run(Truffle.java:100) ... 8 more Caused by: java.lang.NoClassDefFoundError: com/oracle/truffle/api/TruffleRuntimeAccess??(suppress with -Djvmci.service.suppressNoClassDefFoundError=true) at jdk.vm.ci.services.Services$1.computeValue(Services.java:59) at jdk.vm.ci.services.Services$1.computeValue(Services.java:50) at java.lang.ClassValue.getFromHashMap(ClassValue.java:227) at java.lang.ClassValue.getFromBackup(ClassValue.java:209) at java.lang.ClassValue.get(ClassValue.java:115) at jdk.vm.ci.services.Services.loadSingle(Services.java:120) ... 13 more Caused by: java.lang.ClassNotFoundException: com.oracle.truffle.api.TruffleRuntimeAccess at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) at java.net.URLClassLoader.access$100(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:368) at java.net.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at jdk.vm.ci.services.Services.getServiceImpls(Native Method) at jdk.vm.ci.services.Services.access$000(Services.java:37) at jdk.vm.ci.services.Services$1.computeValue(Services.java:54) ... 18 more\ So I run with the option suggested in the error: $ mx -v R --J @'-Djvmci.service.suppressNoClassDefFoundError=true ' myScript.R? I can run FastR but, ?is this the use of ?the Partial Evaluator in Graal through the OptimizedCallTarget?? [1]?https://github.com/graalvm/fastr? [2]?https://github.com/graalvm/graal-core/commit/071173a4a61247df0826a0 1db20bf7b381f1bbfe? Thanks -juan -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: not available URL: From jaroslav.tulach at oracle.com Mon May 16 07:06:29 2016 From: jaroslav.tulach at oracle.com (Jaroslav Tulach) Date: Mon, 16 May 2016 09:06:29 +0200 Subject: R and Partial Evaluation with Graal In-Reply-To: <1463313869.13761.6.camel@ed.ac.uk> References: <1463313869.13761.6.camel@ed.ac.uk> Message-ID: <2773206.mqS2h3UkMW@pracovni> Hello Juan, I think you can choose your JDK with: fastr$ mx --java-home /path/to/graalvm R -jt ### Sunday 15 of May 2016, 13:04:29 @ Juan Fumero ### > Hi all, > I am using the R version [1] in github. I saw there is no dependency > now with Graal-core. Just Truffle instead. My question is how to use > now the Graal JVMCI compiler. > > I compile with the graal-core [2] compiler separately. But when I > execute R I get this error: > > > $ mx R > ..... > Exception in thread "main" java.lang.InternalError > at com.oracle.truffle.api.Truffle$1.run(Truffle.java:103) > at com.oracle.truffle.api.Truffle$1.run(Truffle.java:58) > at java.security.AccessController.doPrivileged(Native Method) > at com.oracle.truffle.api.Truffle.initRuntime(Truffle.java:58) > at com.oracle.truffle.api.Truffle.(Truffle.java:46) > at > com.oracle.truffle.api.impl.Accessor.(Accessor.java:321) > at > com.oracle.truffle.api.vm.PolyglotEngine.(PolyglotEngine.java:1 > 07) > at > com.oracle.truffle.r.engine.shell.RCommand.readEvalPrint(RCommand.java: > 191) > at > com.oracle.truffle.r.engine.shell.RCommand.main(RCommand.java:85) > Caused by: java.lang.reflect.InvocationTargetException > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja > va:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso > rImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at com.oracle.truffle.api.Truffle$1.run(Truffle.java:100) > ... 8 more > Caused by: java.lang.NoClassDefFoundError: > com/oracle/truffle/api/TruffleRuntimeAccess (suppress with > -Djvmci.service.suppressNoClassDefFoundError=true) > at jdk.vm.ci.services.Services$1.computeValue(Services.java:59) > > at jdk.vm.ci.services.Services$1.computeValue(Services.java:50) > > at java.lang.ClassValue.getFromHashMap(ClassValue.java:227) > at java.lang.ClassValue.getFromBackup(ClassValue.java:209) > at java.lang.ClassValue.get(ClassValue.java:115) > at jdk.vm.ci.services.Services.loadSingle(Services.java:120) > ... 13 more > Caused by: java.lang.ClassNotFoundException: > com.oracle.truffle.api.TruffleRuntimeAccess > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at > java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at java.lang.ClassLoader.defineClass1(Native Method) > at java.lang.ClassLoader.defineClass(ClassLoader.java:763) > at > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) > at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) > > at java.net.URLClassLoader.access$100(URLClassLoader.java:73) > at java.net.URLClassLoader$1.run(URLClassLoader.java:368) > at java.net.URLClassLoader$1.run(URLClassLoader.java:362) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:361) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at > java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at jdk.vm.ci.services.Services.getServiceImpls(Native Method) > at jdk.vm.ci.services.Services.access$000(Services.java:37) > at jdk.vm.ci.services.Services$1.computeValue(Services.java:54) > > ... 18 more\ > > > So I run with the option suggested in the error: > > $ mx -v R --J @'-Djvmci.service.suppressNoClassDefFoundError=true ' > myScript.R > > I can run FastR but, is this the use of the Partial Evaluator in > Graal through the OptimizedCallTarget? > > [1] https://github.com/graalvm/fastr > [2] https://github.com/graalvm/graal-core/commit/071173a4a61247df0826a0 > 1db20bf7b381f1bbfe > > Thanks > -juan From juan.fumero at ed.ac.uk Mon May 16 08:57:16 2016 From: juan.fumero at ed.ac.uk (Juan Fumero) Date: Mon, 16 May 2016 09:57:16 +0100 Subject: R and Partial Evaluation with Graal In-Reply-To: <2773206.mqS2h3UkMW@pracovni> References: <1463313869.13761.6.camel@ed.ac.uk> <2773206.mqS2h3UkMW@pracovni> Message-ID: <1463389036.17673.3.camel@ed.ac.uk> Hi Jaroslav, ? ?Thanks a lot for the suggestion. ? ? ? I get the same error unless I use the suggested flag in the VM. I understand this is the same that setting the JAVA_HOME to GraalVM.? -juan On Mon, 2016-05-16 at 09:06 +0200, Jaroslav Tulach wrote: > Hello Juan, > I think you can choose your JDK with: > > fastr$ mx --java-home /path/to/graalvm R > > -jt > > > ### Sunday 15 of May 2016, 13:04:29 @ Juan Fumero ### > > > > Hi all,? > > ? I am using the R version [1] in github. I saw there is no > > dependency > > now with Graal-core. Just Truffle instead. My question is how to > > use > > now the Graal JVMCI compiler.? > > > > I compile with the graal-core [2] compiler separately. But when I > > execute R I get this error: > > > > > > $ mx R? > > .....? > > Exception in thread "main" java.lang.InternalError > > at com.oracle.truffle.api.Truffle$1.run(Truffle.java:103) > > at com.oracle.truffle.api.Truffle$1.run(Truffle.java:58) > > at java.security.AccessController.doPrivileged(Native Method) > > at com.oracle.truffle.api.Truffle.initRuntime(Truffle.java:58) > > at com.oracle.truffle.api.Truffle.(Truffle.java:46) > > at > > com.oracle.truffle.api.impl.Accessor.(Accessor.java:321) > > at > > com.oracle.truffle.api.vm.PolyglotEngine.(PolyglotEngine.ja > > va:1 > > 07) > > at > > com.oracle.truffle.r.engine.shell.RCommand.readEvalPrint(RCommand.j > > ava: > > 191) > > at > > com.oracle.truffle.r.engine.shell.RCommand.main(RCommand.java:85) > > Caused by: java.lang.reflect.InvocationTargetException > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImp > > l.ja > > va:62) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcc > > esso > > rImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:498) > > at com.oracle.truffle.api.Truffle$1.run(Truffle.java:100) > > ... 8 more > > Caused by: java.lang.NoClassDefFoundError: > > com/oracle/truffle/api/TruffleRuntimeAccess??(suppress with > > -Djvmci.service.suppressNoClassDefFoundError=true) > > at jdk.vm.ci.services.Services$1.computeValue(Services.java:59) > > > > at jdk.vm.ci.services.Services$1.computeValue(Services.java:50) > > > > at java.lang.ClassValue.getFromHashMap(ClassValue.java:227) > > at java.lang.ClassValue.getFromBackup(ClassValue.java:209) > > at java.lang.ClassValue.get(ClassValue.java:115) > > at jdk.vm.ci.services.Services.loadSingle(Services.java:120) > > ... 13 more > > Caused by: java.lang.ClassNotFoundException: > > com.oracle.truffle.api.TruffleRuntimeAccess > > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > > at > > java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > > at java.lang.ClassLoader.defineClass1(Native Method) > > at java.lang.ClassLoader.defineClass(ClassLoader.java:763) > > at > > java.security.SecureClassLoader.defineClass(SecureClassLoader.java: > > 142) > > at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) > > > > at java.net.URLClassLoader.access$100(URLClassLoader.java:73) > > at java.net.URLClassLoader$1.run(URLClassLoader.java:368) > > at java.net.URLClassLoader$1.run(URLClassLoader.java:362) > > at java.security.AccessController.doPrivileged(Native Method) > > at java.net.URLClassLoader.findClass(URLClassLoader.java:361) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > > at > > java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > > at jdk.vm.ci.services.Services.getServiceImpls(Native Method) > > at jdk.vm.ci.services.Services.access$000(Services.java:37) > > at jdk.vm.ci.services.Services$1.computeValue(Services.java:54) > > > > ... 18 more\ > > > > > > So I run with the option suggested in the error: > > > > $ mx -v R --J @'-Djvmci.service.suppressNoClassDefFoundError=true ' > > myScript.R? > > > > I can run FastR but,??is this the use of??the Partial Evaluator in > > Graal through the OptimizedCallTarget?? > > > > [1] https://github.com/graalvm/fastr? > > [2] https://github.com/graalvm/graal-core/commit/071173a4a61247df08 > > 26a0 > > 1db20bf7b381f1bbfe? > > > > Thanks > > -juan > -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. From jaroslav.tulach at oracle.com Mon May 16 09:26:26 2016 From: jaroslav.tulach at oracle.com (Jaroslav Tulach) Date: Mon, 16 May 2016 11:26:26 +0200 Subject: R and Partial Evaluation with Graal In-Reply-To: <1463389036.17673.3.camel@ed.ac.uk> References: <1463313869.13761.6.camel@ed.ac.uk> <2773206.mqS2h3UkMW@pracovni> <1463389036.17673.3.camel@ed.ac.uk> Message-ID: <2373433.KAeBPtFGoe@pracovni> ### Monday 16 of May 2016, 09:57:16 @ Juan Fumero ### > Hi Jaroslav, > Thanks a lot for the suggestion. > > I get the same error unless I use the suggested flag in the VM. I > understand this is the same that setting the JAVA_HOME to GraalVM. But if you use the flag to suppress the error, what instance of Truffle.getRuntime() do you get? The default one? That one is slow... I don't know what to advice. Looking at the history https://github.com/graalvm/truffle/commits/master/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/Truffle.java I don't see that many changes. I don't think the JDK9 related changes could cause much harm. -jt > > On Mon, 2016-05-16 at 09:06 +0200, Jaroslav Tulach wrote: > > Hello Juan, > > I think you can choose your JDK with: > > > > fastr$ mx --java-home /path/to/graalvm R > > > > -jt > > > > > > ### Sunday 15 of May 2016, 13:04:29 @ Juan Fumero ### > > > > > Hi all, > > > I am using the R version [1] in github. I saw there is no > > > dependency > > > now with Graal-core. Just Truffle instead. My question is how to > > > use > > > now the Graal JVMCI compiler. > > > > > > I compile with the graal-core [2] compiler separately. But when I > > > execute R I get this error: > > > > > > > > > $ mx R > > > ..... > > > Exception in thread "main" java.lang.InternalError > > > > > > at com.oracle.truffle.api.Truffle$1.run(Truffle.java:103) > > > at com.oracle.truffle.api.Truffle$1.run(Truffle.java:58) > > > at java.security.AccessController.doPrivileged(Native Method) > > > at com.oracle.truffle.api.Truffle.initRuntime(Truffle.java:58) > > > at com.oracle.truffle.api.Truffle.(Truffle.java:46) > > > at > > > > > > com.oracle.truffle.api.impl.Accessor.(Accessor.java:321) > > > > > > at > > > > > > com.oracle.truffle.api.vm.PolyglotEngine.(PolyglotEngine.ja > > > va:1 > > > 07) > > > > > > at > > > > > > com.oracle.truffle.r.engine.shell.RCommand.readEvalPrint(RCommand.j > > > ava: > > > 191) > > > > > > at > > > > > > com.oracle.truffle.r.engine.shell.RCommand.main(RCommand.java:85) > > > Caused by: java.lang.reflect.InvocationTargetException > > > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > at > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImp > > > l.ja > > > va:62) > > > > > > at > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcc > > > esso > > > rImpl.java:43) > > > > > > at java.lang.reflect.Method.invoke(Method.java:498) > > > at com.oracle.truffle.api.Truffle$1.run(Truffle.java:100) > > > ... 8 more > > > > > > Caused by: java.lang.NoClassDefFoundError: > > > com/oracle/truffle/api/TruffleRuntimeAccess (suppress with > > > -Djvmci.service.suppressNoClassDefFoundError=true) > > > > > > at jdk.vm.ci.services.Services$1.computeValue(Services.java:59) > > > > > > at jdk.vm.ci.services.Services$1.computeValue(Services.java:50) > > > > > > at java.lang.ClassValue.getFromHashMap(ClassValue.java:227) > > > at java.lang.ClassValue.getFromBackup(ClassValue.java:209) > > > at java.lang.ClassValue.get(ClassValue.java:115) > > > at jdk.vm.ci.services.Services.loadSingle(Services.java:120) > > > ... 13 more > > > > > > Caused by: java.lang.ClassNotFoundException: > > > com.oracle.truffle.api.TruffleRuntimeAccess > > > > > > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > > > at > > > > > > java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814) > > > > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > > > at java.lang.ClassLoader.defineClass1(Native Method) > > > at java.lang.ClassLoader.defineClass(ClassLoader.java:763) > > > at > > > > > > java.security.SecureClassLoader.defineClass(SecureClassLoader.java: > > > 142) > > > > > > at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) > > > > > > at java.net.URLClassLoader.access$100(URLClassLoader.java:73) > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:368) > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:362) > > > at java.security.AccessController.doPrivileged(Native Method) > > > at java.net.URLClassLoader.findClass(URLClassLoader.java:361) > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > > > at > > > > > > java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814) > > > > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > > > at jdk.vm.ci.services.Services.getServiceImpls(Native Method) > > > at jdk.vm.ci.services.Services.access$000(Services.java:37) > > > at jdk.vm.ci.services.Services$1.computeValue(Services.java:54) > > > > > > ... 18 more\ > > > > > > > > > > > > So I run with the option suggested in the error: > > > > > > $ mx -v R --J @'-Djvmci.service.suppressNoClassDefFoundError=true ' > > > myScript.R > > > > > > I can run FastR but, is this the use of the Partial Evaluator in > > > Graal through the OptimizedCallTarget? > > > > > > [1] https://github.com/graalvm/fastr > > > [2] https://github.com/graalvm/graal-core/commit/071173a4a61247df08 > > > 26a0 > > > 1db20bf7b381f1bbfe > > > > > > Thanks > > > -juan From jeremie.miserez at oracle.com Mon May 16 10:53:46 2016 From: jeremie.miserez at oracle.com (Jeremie Miserez) Date: Mon, 16 May 2016 12:53:46 +0200 Subject: R and Partial Evaluation with Graal In-Reply-To: <2373433.KAeBPtFGoe@pracovni> References: <1463313869.13761.6.camel@ed.ac.uk> <2773206.mqS2h3UkMW@pracovni> <1463389036.17673.3.camel@ed.ac.uk> <2373433.KAeBPtFGoe@pracovni> Message-ID: <5739A6BA.7030903@oracle.com> Hi,, The command-line I've been using is: mx --dynamicimport=graal-core --jdk jvmci r or rscript: mx --dynamicimport=graal-core --jdk jvmci rscript If you add the -v flag you should see something "jvmci/jdk1.8.0_91/product/bin/java -server -d64" on the first line rather than "/usr/lib/jvm/java-8-oracle/bin/java -d64" To actually check if functions are being compiled, add the TraceTruffleCompilation option: mx --dynamicimport=graal-core --jdk jvmci --J "@-Dgraal.TraceTruffleCompilation=true" r You should see something like this after running a function a few times: [truffle] opt done |ASTSize 33/ 33 |Time 3335(2290+1045)ms |DirectCallNodes I 0/D 0 |GraalNodes 536/ 630 |CodeSize 2156 |Source n/a Regards, Jeremie ------------------------------------------------------------------------ *From:* jaroslav.tulach at oracle.com *Sent:* Monday, May 16, 2016 11:26AM *To:* juan.fumero at ed.ac.uk *Cc:* graal-dev at openjdk.java.net *Subject:* Re: R and Partial Evaluation with Graal > ### Monday 16 of May 2016, 09:57:16 @ Juan Fumero ### >> Hi Jaroslav, >> Thanks a lot for the suggestion. >> >> I get the same error unless I use the suggested flag in the VM. I >> understand this is the same that setting the JAVA_HOME to GraalVM. > But if you use the flag to suppress the error, what instance of > Truffle.getRuntime() do you get? The default one? That one is slow... > > I don't know what to advice. Looking at the history > https://github.com/graalvm/truffle/commits/master/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/Truffle.java > > I don't see that many changes. I don't think the JDK9 related changes could > cause much harm. > -jt > >> On Mon, 2016-05-16 at 09:06 +0200, Jaroslav Tulach wrote: >>> Hello Juan, >>> I think you can choose your JDK with: >>> >>> fastr$ mx --java-home /path/to/graalvm R >>> >>> -jt >>> >>> >>> ### Sunday 15 of May 2016, 13:04:29 @ Juan Fumero ### >>> >>>> Hi all, >>>> I am using the R version [1] in github. I saw there is no >>>> dependency >>>> now with Graal-core. Just Truffle instead. My question is how to >>>> use >>>> now the Graal JVMCI compiler. >>>> >>>> I compile with the graal-core [2] compiler separately. But when I >>>> execute R I get this error: >>>> >>>> >>>> $ mx R >>>> ..... >>>> Exception in thread "main" java.lang.InternalError >>>> >>>> at com.oracle.truffle.api.Truffle$1.run(Truffle.java:103) >>>> at com.oracle.truffle.api.Truffle$1.run(Truffle.java:58) >>>> at java.security.AccessController.doPrivileged(Native Method) >>>> at com.oracle.truffle.api.Truffle.initRuntime(Truffle.java:58) >>>> at com.oracle.truffle.api.Truffle.(Truffle.java:46) >>>> at >>>> >>>> com.oracle.truffle.api.impl.Accessor.(Accessor.java:321) >>>> >>>> at >>>> >>>> com.oracle.truffle.api.vm.PolyglotEngine.(PolyglotEngine.ja >>>> va:1 >>>> 07) >>>> >>>> at >>>> >>>> com.oracle.truffle.r.engine.shell.RCommand.readEvalPrint(RCommand.j >>>> ava: >>>> 191) >>>> >>>> at >>>> >>>> com.oracle.truffle.r.engine.shell.RCommand.main(RCommand.java:85) >>>> Caused by: java.lang.reflect.InvocationTargetException >>>> >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImp >>>> l.ja >>>> va:62) >>>> >>>> at >>>> >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcc >>>> esso >>>> rImpl.java:43) >>>> >>>> at java.lang.reflect.Method.invoke(Method.java:498) >>>> at com.oracle.truffle.api.Truffle$1.run(Truffle.java:100) >>>> ... 8 more >>>> >>>> Caused by: java.lang.NoClassDefFoundError: >>>> com/oracle/truffle/api/TruffleRuntimeAccess (suppress with >>>> -Djvmci.service.suppressNoClassDefFoundError=true) >>>> >>>> at jdk.vm.ci.services.Services$1.computeValue(Services.java:59) >>>> >>>> at jdk.vm.ci.services.Services$1.computeValue(Services.java:50) >>>> >>>> at java.lang.ClassValue.getFromHashMap(ClassValue.java:227) >>>> at java.lang.ClassValue.getFromBackup(ClassValue.java:209) >>>> at java.lang.ClassValue.get(ClassValue.java:115) >>>> at jdk.vm.ci.services.Services.loadSingle(Services.java:120) >>>> ... 13 more >>>> >>>> Caused by: java.lang.ClassNotFoundException: >>>> com.oracle.truffle.api.TruffleRuntimeAccess >>>> >>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:381) >>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424) >>>> at >>>> >>>> java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814) >>>> >>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >>>> at java.lang.ClassLoader.defineClass1(Native Method) >>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:763) >>>> at >>>> >>>> java.security.SecureClassLoader.defineClass(SecureClassLoader.java: >>>> 142) >>>> >>>> at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) >>>> >>>> at java.net.URLClassLoader.access$100(URLClassLoader.java:73) >>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:368) >>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:362) >>>> at java.security.AccessController.doPrivileged(Native Method) >>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:361) >>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424) >>>> at >>>> >>>> java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814) >>>> >>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >>>> at jdk.vm.ci.services.Services.getServiceImpls(Native Method) >>>> at jdk.vm.ci.services.Services.access$000(Services.java:37) >>>> at jdk.vm.ci.services.Services$1.computeValue(Services.java:54) >>>> >>>> ... 18 more\ >>>> >>>> >>>> >>>> So I run with the option suggested in the error: >>>> >>>> $ mx -v R --J @'-Djvmci.service.suppressNoClassDefFoundError=true ' >>>> myScript.R >>>> >>>> I can run FastR but, is this the use of the Partial Evaluator in >>>> Graal through the OptimizedCallTarget? >>>> >>>> [1] https://github.com/graalvm/fastr >>>> [2] https://github.com/graalvm/graal-core/commit/071173a4a61247df08 >>>> 26a0 >>>> 1db20bf7b381f1bbfe >>>> >>>> Thanks >>>> -juan From mauro.tortonesi at unife.it Mon May 16 11:55:06 2016 From: mauro.tortonesi at unife.it (Tortonesi Mauro) Date: Mon, 16 May 2016 13:55:06 +0200 Subject: [PATCH] fix invalid suffix on literal compilation errors with graal-jvmci-8 Message-ID: Dear GraalVM developers, I am writing you because I have been trying to compile GraalVM on this machine: remus graal/jvmci gcc --version gcc (GCC) 6.1.1 20160501 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. remus graal/jvmci uname -a Linux remus.endif.man 4.4.5-1-ARCH #1 SMP PREEMPT Thu Mar 10 07:38:19 CET 2016 x86_64 GNU/Linux and encountered several compilation errors with graal-jvmci-8. I am sending you in attachment a patch that gets rid of numerous "invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]" compilation errors. Best regards, Mauro Tortonesi -- Mauro Tortonesi, Ph.D. Assistant Professor Distributed Systems Research Group Engineering Department University of Ferrara -------------- next part -------------- A non-text attachment was scrubbed... Name: graal-jvmci-8-suffix-literals-20160516.patch Type: text/x-patch Size: 11953 bytes Desc: not available URL: From juan.fumero at ed.ac.uk Mon May 16 12:51:41 2016 From: juan.fumero at ed.ac.uk (Juan Fumero) Date: Mon, 16 May 2016 13:51:41 +0100 Subject: R and Partial Evaluation with Graal In-Reply-To: <5739A6BA.7030903@oracle.com> References: <1463313869.13761.6.camel@ed.ac.uk> <2773206.mqS2h3UkMW@pracovni> <1463389036.17673.3.camel@ed.ac.uk> <2373433.KAeBPtFGoe@pracovni> <5739A6BA.7030903@oracle.com> Message-ID: <1463403101.6320.1.camel@ed.ac.uk> Hi,? ? ?that's exactly what I was looking for. It works.? Thanks!? -juan On Mon, 2016-05-16 at 12:53 +0200, Jeremie Miserez wrote: > Hi,, > > The command-line I've been using is: > > mx --dynamicimport=graal-core --jdk jvmci r > > or rscript: > > mx --dynamicimport=graal-core --jdk jvmci rscript > > If you add the -v flag you should see something > "jvmci/jdk1.8.0_91/product/bin/java -server -d64" on the first line > rather than "/usr/lib/jvm/java-8-oracle/bin/java -d64" > > To actually check if functions are being compiled, add the > TraceTruffleCompilation option: > > mx --dynamicimport=graal-core --jdk jvmci --J > "@-Dgraal.TraceTruffleCompilation=true" r > > You should see something like this after running a function a few > times: > > [truffle] opt done????????? > ?????????????????????????????????????????????|ASTSize??????33/?? > ?33 > > > > Time??3335(2290+1045)ms |DirectCallNodes I????0/D????0 > > |GraalNodes?? > 536/??630 |CodeSize?????????2156 |Source????????????n/a > > Regards, > Jeremie > > > > ------------------------------------------------------------------- > ----- > > *From:* jaroslav.tulach at oracle.com > *Sent:* Monday, May 16, 2016 11:26AM > *To:* juan.fumero at ed.ac.uk > *Cc:* graal-dev at openjdk.java.net > *Subject:* Re: R and Partial Evaluation with Graal > > > > > ### Monday 16 of May 2016, 09:57:16 @ Juan Fumero ### > > > > > > Hi Jaroslav, > > > ???Thanks a lot for the suggestion.?? > > > ??? > > > I get the same error unless I use the suggested flag in the VM. I > > > understand this is the same that setting the JAVA_HOME to > > > GraalVM.? > > But if you use the flag to suppress the error, what instance of? > > Truffle.getRuntime() do you get? The default one? That one is > > slow... > > > > I don't know what to advice. Looking at the history > > https://github.com/graalvm/truffle/commits/master/truffle/com.oracl > > e.truffle.api/src/com/oracle/truffle/api/Truffle.java > > > > I don't see that many changes. I don't think the JDK9 related > > changes could? > > cause much harm. > > -jt > > > > > > > > On Mon, 2016-05-16 at 09:06 +0200, Jaroslav Tulach wrote: > > > > > > > > Hello Juan, > > > > I think you can choose your JDK with: > > > > > > > > fastr$ mx --java-home /path/to/graalvm R > > > > > > > > -jt > > > > > > > > > > > > ### Sunday 15 of May 2016, 13:04:29 @ Juan Fumero ### > > > > > > > > > > > > > > Hi all,? > > > > > ? I am using the R version [1] in github. I saw there is no > > > > > dependency > > > > > now with Graal-core. Just Truffle instead. My question is how > > > > > to > > > > > use > > > > > now the Graal JVMCI compiler.? > > > > > > > > > > I compile with the graal-core [2] compiler separately. But > > > > > when I > > > > > execute R I get this error: > > > > > > > > > > > > > > > $ mx R? > > > > > .....? > > > > > Exception in thread "main" java.lang.InternalError > > > > > > > > > > at > > > > > com.oracle.truffle.api.Truffle$1.run(Truffle.java:103) > > > > > at > > > > > com.oracle.truffle.api.Truffle$1.run(Truffle.java:58) > > > > > at java.security.AccessController.doPrivileged(Native > > > > > Method) > > > > > at > > > > > com.oracle.truffle.api.Truffle.initRuntime(Truffle.java:58) > > > > > at > > > > > com.oracle.truffle.api.Truffle.(Truffle.java:46) > > > > > at > > > > > > > > > > com.oracle.truffle.api.impl.Accessor.(Accessor.java:3 > > > > > 21) > > > > > > > > > > at > > > > > > > > > > com.oracle.truffle.api.vm.PolyglotEngine.(PolyglotEng > > > > > ine.ja > > > > > va:1 > > > > > 07) > > > > > > > > > > at > > > > > > > > > > com.oracle.truffle.r.engine.shell.RCommand.readEvalPrint(RCom > > > > > mand.j > > > > > ava: > > > > > 191) > > > > > > > > > > at > > > > > > > > > > com.oracle.truffle.r.engine.shell.RCommand.main(RCommand.java > > > > > :85) > > > > > Caused by: java.lang.reflect.InvocationTargetException > > > > > > > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > > > > > Method) > > > > > at > > > > > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces > > > > > sorImp > > > > > l.ja > > > > > va:62) > > > > > > > > > > at > > > > > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet > > > > > hodAcc > > > > > esso > > > > > rImpl.java:43) > > > > > > > > > > at java.lang.reflect.Method.invoke(Method.java:498) > > > > > at > > > > > com.oracle.truffle.api.Truffle$1.run(Truffle.java:100) > > > > > ... 8 more > > > > > > > > > > Caused by: java.lang.NoClassDefFoundError: > > > > > com/oracle/truffle/api/TruffleRuntimeAccess??(suppress with > > > > > -Djvmci.service.suppressNoClassDefFoundError=true) > > > > > > > > > > at > > > > > jdk.vm.ci.services.Services$1.computeValue(Services.java:59) > > > > > > > > > > at > > > > > jdk.vm.ci.services.Services$1.computeValue(Services.java:50) > > > > > > > > > > at > > > > > java.lang.ClassValue.getFromHashMap(ClassValue.java:227) > > > > > at > > > > > java.lang.ClassValue.getFromBackup(ClassValue.java:209) > > > > > at java.lang.ClassValue.get(ClassValue.java:115) > > > > > at > > > > > jdk.vm.ci.services.Services.loadSingle(Services.java:120) > > > > > ... 13 more > > > > > > > > > > Caused by: java.lang.ClassNotFoundException: > > > > > com.oracle.truffle.api.TruffleRuntimeAccess > > > > > > > > > > at > > > > > java.net.URLClassLoader.findClass(URLClassLoader.java:381) > > > > > at > > > > > java.lang.ClassLoader.loadClass(ClassLoader.java:424) > > > > > at > > > > > > > > > > java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java: > > > > > 814) > > > > > > > > > > at > > > > > java.lang.ClassLoader.loadClass(ClassLoader.java:357) > > > > > at java.lang.ClassLoader.defineClass1(Native Method) > > > > > at > > > > > java.lang.ClassLoader.defineClass(ClassLoader.java:763) > > > > > at > > > > > > > > > > java.security.SecureClassLoader.defineClass(SecureClassLoader > > > > > .java: > > > > > 142) > > > > > > > > > > at > > > > > java.net.URLClassLoader.defineClass(URLClassLoader.java:467) > > > > > > > > > > at > > > > > java.net.URLClassLoader.access$100(URLClassLoader.java:73) > > > > > at > > > > > java.net.URLClassLoader$1.run(URLClassLoader.java:368) > > > > > at > > > > > java.net.URLClassLoader$1.run(URLClassLoader.java:362) > > > > > at java.security.AccessController.doPrivileged(Native > > > > > Method) > > > > > at > > > > > java.net.URLClassLoader.findClass(URLClassLoader.java:361) > > > > > at > > > > > java.lang.ClassLoader.loadClass(ClassLoader.java:424) > > > > > at > > > > > > > > > > java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java: > > > > > 814) > > > > > > > > > > at > > > > > java.lang.ClassLoader.loadClass(ClassLoader.java:357) > > > > > at jdk.vm.ci.services.Services.getServiceImpls(Native > > > > > Method) > > > > > at > > > > > jdk.vm.ci.services.Services.access$000(Services.java:37) > > > > > at > > > > > jdk.vm.ci.services.Services$1.computeValue(Services.java:54) > > > > > > > > > > ... 18 more\ > > > > > > > > > > > > > > > > > > > > So I run with the option suggested in the error: > > > > > > > > > > $ mx -v R --J @'- > > > > > Djvmci.service.suppressNoClassDefFoundError=true ' > > > > > myScript.R? > > > > > > > > > > I can run FastR but,??is this the use of??the Partial > > > > > Evaluator in > > > > > Graal through the OptimizedCallTarget?? > > > > > > > > > > [1] https://github.com/graalvm/fastr? > > > > > [2] https://github.com/graalvm/graal-core/commit/071173a4a612 > > > > > 47df08 > > > > > 26a0 > > > > > 1db20bf7b381f1bbfe? > > > > > > > > > > Thanks > > > > > -juan > -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. From doug.simon at oracle.com Mon May 16 12:57:43 2016 From: doug.simon at oracle.com (Doug Simon) Date: Mon, 16 May 2016 14:57:43 +0200 Subject: [PATCH] fix invalid suffix on literal compilation errors with graal-jvmci-8 In-Reply-To: References: Message-ID: Hi Mauro, Thanks for the patch. The JVMCI code in GraalVM is based on upstream hotspot repositories so we follow the coding guidelines established for the HotSpot code base. As far as I understand, the HotSpot group has not adopted C++11 and until they do, we need to stick with the current style. That said, we are in the process of moving away from JVMCI as a suite dependency and towards providing JDK binaries that include JVMCI. For JDK8, this means we will be providing binary bundles (location yet to be determined). For JDK9, one will simply download a binary from https://jdk9.java.net/download/. -Doug > On 16 May 2016, at 13:55, Tortonesi Mauro wrote: > > Dear GraalVM developers, > > I am writing you because I have been trying to compile GraalVM on this machine: > > remus graal/jvmci gcc --version > gcc (GCC) 6.1.1 20160501 > Copyright (C) 2016 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > remus graal/jvmci uname -a > Linux remus.endif.man 4.4.5-1-ARCH #1 SMP PREEMPT Thu Mar 10 07:38:19 > CET 2016 x86_64 GNU/Linux > > and encountered several compilation errors with graal-jvmci-8. > > I am sending you in attachment a patch that gets rid of numerous > "invalid suffix on literal; C++11 requires a space between literal and > string macro [-Werror=literal-suffix]" compilation errors. > > > Best regards, > Mauro Tortonesi > > -- > Mauro Tortonesi, Ph.D. > > Assistant Professor > Distributed Systems Research Group > Engineering Department > University of Ferrara > From mauro.tortonesi at unife.it Mon May 16 13:08:04 2016 From: mauro.tortonesi at unife.it (Tortonesi Mauro) Date: Mon, 16 May 2016 15:08:04 +0200 Subject: [PATCH] fix invalid suffix on literal compilation errors with graal-jvmci-8 In-Reply-To: References: Message-ID: Dear Doug, thanks for your prompt answer. I totally understand your point of view and I will switch to using the precompiled JDK9 binaries, as you suggested. (It turns out that the jvmci-graal-8 code simply won't compile with C++11. The patch I sent fixed only a very small part of the compilation errors I experienced.) Best regards, Mauro Tortonesi -- Mauro Tortonesi, Ph.D. Assistant Professor Distributed Systems Research Group Engineering Department University of Ferrara From doug.simon at oracle.com Mon May 16 13:12:56 2016 From: doug.simon at oracle.com (Doug Simon) Date: Mon, 16 May 2016 15:12:56 +0200 Subject: [PATCH] fix invalid suffix on literal compilation errors with graal-jvmci-8 In-Reply-To: References: Message-ID: > On 16 May 2016, at 15:08, Tortonesi Mauro wrote: > > Dear Doug, > > thanks for your prompt answer. I totally understand your point of view > and I will switch to using the precompiled JDK9 binaries, as you > suggested. The binaries currently on the OpenJDK website do not yet contain the most recent JVMCI changes that Graal depends on. I will send a notification on this list announcing once Graal compatible JDK9 binaries are available which I estimate will be in about 4 weeks at the latest. -Doug > (It turns out that the jvmci-graal-8 code simply won't compile with > C++11. The patch I sent fixed only a very small part of the > compilation errors I experienced.) > > > Best regards, > Mauro Tortonesi > > -- > Mauro Tortonesi, Ph.D. > > Assistant Professor > Distributed Systems Research Group > Engineering Department > University of Ferrara From mick.jordan at oracle.com Mon May 16 14:57:26 2016 From: mick.jordan at oracle.com (Mick Jordan) Date: Mon, 16 May 2016 07:57:26 -0700 Subject: R and Partial Evaluation with Graal In-Reply-To: <2373433.KAeBPtFGoe@pracovni> References: <1463313869.13761.6.camel@ed.ac.uk> <2773206.mqS2h3UkMW@pracovni> <1463389036.17673.3.camel@ed.ac.uk> <2373433.KAeBPtFGoe@pracovni> Message-ID: <5739DFD6.2090207@oracle.com> On 5/16/16 2:26 AM, Jaroslav Tulach wrote: > ### Monday 16 of May 2016, 09:57:16 @ Juan Fumero ### >> Hi Jaroslav, >> Thanks a lot for the suggestion. >> >> I get the same error unless I use the suggested flag in the VM. I >> understand this is the same that setting the JAVA_HOME to GraalVM. > But if you use the flag to suppress the error, what instance of > Truffle.getRuntime() do you get? The default one? That one is slow... > > I don't know what to advice. Looking at the history > https://github.com/graalvm/truffle/commits/master/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/Truffle.java > > I don't see that many changes. I don't think the JDK9 related changes could > cause much harm. > -jt > > FastR should work out of the box with a standard VM. The way we use graal is to download graal-core as sibling suite to FastR and then tie them together using the dynamic imports option of mx, vis: mx --dynamicimports graal-core R The FastR mx startup detects the existence of graal-core and uses the jvmci compiler. You can set the DEFAULT_DYNAMIC_IMPORTS environment variable to avoid having to pass the option every time. Mick From mick.jordan at oracle.com Mon May 16 15:43:06 2016 From: mick.jordan at oracle.com (Mick Jordan) Date: Mon, 16 May 2016 08:43:06 -0700 Subject: R and Partial Evaluation with Graal In-Reply-To: <5739DFD6.2090207@oracle.com> References: <1463313869.13761.6.camel@ed.ac.uk> <2773206.mqS2h3UkMW@pracovni> <1463389036.17673.3.camel@ed.ac.uk> <2373433.KAeBPtFGoe@pracovni> <5739DFD6.2090207@oracle.com> Message-ID: <5739EA8A.20700@oracle.com> On 5/16/16 7:57 AM, Mick Jordan wrote: > On 5/16/16 2:26 AM, Jaroslav Tulach wrote: >> ### Monday 16 of May 2016, 09:57:16 @ Juan Fumero ### >>> Hi Jaroslav, >>> Thanks a lot for the suggestion. >>> I get the same error unless I use the suggested flag in the VM. I >>> understand this is the same that setting the JAVA_HOME to GraalVM. >> But if you use the flag to suppress the error, what instance of >> Truffle.getRuntime() do you get? The default one? That one is slow... >> >> I don't know what to advice. Looking at the history >> https://github.com/graalvm/truffle/commits/master/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/Truffle.java >> >> >> I don't see that many changes. I don't think the JDK9 related changes >> could >> cause much harm. >> -jt >> >> > FastR should work out of the box with a standard VM. The way we use > graal is to download graal-core as sibling suite to FastR and then tie > them together using the dynamic imports option of mx, vis: > > mx --dynamicimports graal-core R > > The FastR mx startup detects the existence of graal-core and uses the > jvmci compiler. You can set the DEFAULT_DYNAMIC_IMPORTS environment > variable to avoid having to pass the option every time. > One reason why we do it this way is that we have to set some specific Graal/JVMCI options so we have to know what VM we are running under and act accordingly. It can't be completely transparent. Mick From Matthias.Grimmer at jku.at Tue May 17 07:24:52 2016 From: Matthias.Grimmer at jku.at (Matthias Grimmer) Date: Tue, 17 May 2016 09:24:52 +0200 Subject: Call for Papers: 1st Workshop on ReUsable and Modular Programming Language Ecosystems (RUMPLE'16) Message-ID: ============================================================================ Call for Papers: RUMPLE?16 1st Workshop on ReUsable and Modular Programming Language Ecosystems Co-located with SPLASH Oct/Nov, 2016, Amsterdam, Netherlands http://2016.splashcon.org/track/rumple2016 ============================================================================ The RUMPLE workshop is a venue for discussing modular approaches to programming language implementations, extensible virtual machine architectures, as well as reusable runtime components such as dynamic compilers, interpreters, or garbage collectors. The main goal of the workshop is to bring together researchers and practitioners, and facilitate the sharing of experiences and ideas. Relevant topics include, but are definitely not limited to, the following: - Extensible VM design (compiler- or interpreter-based VMs) - Reusable implementation of runtime components (e.g. interpreters, garbage collectors, intermediate representations) - Static and dynamic compiler techniques for different languages - Multi-language runtimes and mechanisms for cross-language interoperability between different languages - Tooling support for different languages (e.g. debugging, profiling, etc.) - Modular language implementations that use existing frameworks and systems - Case studies of existing language implementations, virtual machines, and runtime components (e.g. design choices, tradeoffs, etc.) - New research ideas on how we want to build languages in the future. Workshop Format and Submissions This workshop welcomes the presentation and discussion of new ideas and emerging problems that give a chance for interaction and exchange. We accept presentation proposals in the form of extended abstracts (1-4 pages). Accepted abstracts will be published on the workshop's website before the workshop date. Submissions should use the ACM SIGPLAN Conference Format, 10 point font, using the font family Times New Roman and numeric citation style. All submissions should be in PDF format. Please submit abstracts through http://ssw.jku.at/rumple/ Important Dates - Exended abstract submission: 1 Aug 2016 - Author notification: 5 Sep 2016 All deadlines are Anywhere on Earth (AoE), i.e. GMT/UTC?12:00 hour - Workshop: 31 Oct 2016 Program Committee Walter Binder, University of Lugano Carl Friedrich Bolz, King's College London Richard Jones, University of Kent Stephen Kell, University of Cambridge Jan Vitek, Northeastern University Christian Wimmer, Oracle Labs Workshop Organizers Matthias Grimmer, Johannes Kepler University Linz, Austria Laurence Tratt, King's College London, United Kingdom Adam Welc, Oracle Labs, United States For questions or concerns, please mail to matthias.grimmer at jku.at From tom.rodriguez at oracle.com Tue May 17 20:40:11 2016 From: tom.rodriguez at oracle.com (Tom Rodriguez) Date: Tue, 17 May 2016 13:40:11 -0700 Subject: mx env file processing Message-ID: <71A165A5-18C3-490C-B55A-5ACC77C121CA@oracle.com> I made a minor change to the processing of env files that shouldn?t impact most people. Previously mx.mx/env happened to function as a global env file that was read by all suites but this was really an unintended behavior. There is now an optional per user ~/.mx/env file that can hold global options and mx.mx/env is only read when it is the primary suite. https://ol-bitbucket.us.oracle.com/projects/G/repos/mx/browse/README.md explains the env file loading process in more detail. tom From java at stefan-marr.de Tue May 17 22:20:05 2016 From: java at stefan-marr.de (Stefan Marr) Date: Wed, 18 May 2016 00:20:05 +0200 Subject: mx env file processing In-Reply-To: <71A165A5-18C3-490C-B55A-5ACC77C121CA@oracle.com> References: <71A165A5-18C3-490C-B55A-5ACC77C121CA@oracle.com> Message-ID: <22C18FA2-4EBB-408D-B1A2-61161E40835A@stefan-marr.de> Hi Tom: > On 17 May 2016, at 22:40, Tom Rodriguez wrote: > > I made a minor change to the processing of env files that shouldn?t impact most people. Previously mx.mx/env happened to function as a global env file that was read by all suites but this was really an unintended behavior. There is now an optional per user ~/.mx/env file that can hold global options and mx.mx/env is only read when it is the primary suite. https://ol-bitbucket.us.oracle.com/projects/G/repos/mx/browse/README.md explains the env file loading process in more detail. I assume you refer to this https://github.com/graalvm/mx/blob/master/README.md#mx-environment-variable-processing Best regards Stefan -- Stefan Marr Johannes Kepler Universit?t Linz http://stefan-marr.de/research/ From michael.c.berg at intel.com Tue May 17 23:09:45 2016 From: michael.c.berg at intel.com (Berg, Michael C) Date: Tue, 17 May 2016 23:09:45 +0000 Subject: CR for RFR 63 Message-ID: Hi Folks, I have added components that now handle front to back all assembler emit through a single channel, namely the AMD64Assembler object. All sub classes that extend AMD64RROp and emit SSE code now channel directly through AMD64Assembler object via formal encoding methods. These methods are currently up-propagate-able to AVX based on CPUID check generically for all SIMD emitted code. In this set is the ArrayEquals intrinsic which now has support for AVX with 256bit forms allowed and used there. Please review and comment. This code was tested as follows (see jbs entry below): mx unittest (no new failures), SpecJvm2008 (all suites pass : I run compress through xml.transform). The code is also checkstyle compliant. Bug-id: https://bugs.openjdk.java.net/browse/GRAAL-63 Git diff: https://bugs.openjdk.java.net/secure/attachment/59541/array_equals_plus_asm.diff Thanks, Michael From tom.rodriguez at oracle.com Tue May 17 23:51:10 2016 From: tom.rodriguez at oracle.com (Tom Rodriguez) Date: Tue, 17 May 2016 16:51:10 -0700 Subject: mx env file processing In-Reply-To: <22C18FA2-4EBB-408D-B1A2-61161E40835A@stefan-marr.de> References: <71A165A5-18C3-490C-B55A-5ACC77C121CA@oracle.com> <22C18FA2-4EBB-408D-B1A2-61161E40835A@stefan-marr.de> Message-ID: > On May 17, 2016, at 3:20 PM, Stefan Marr wrote: > > Hi Tom: > >> On 17 May 2016, at 22:40, Tom Rodriguez wrote: >> >> I made a minor change to the processing of env files that shouldn?t impact most people. Previously mx.mx/env happened to function as a global env file that was read by all suites but this was really an unintended behavior. There is now an optional per user ~/.mx/env file that can hold global options and mx.mx/env is only read when it is the primary suite. https://ol-bitbucket.us.oracle.com/projects/G/repos/mx/browse/README.md explains the env file loading process in more detail. > > I assume you refer to this https://github.com/graalvm/mx/blob/master/README.md#mx-environment-variable-processing Yes, sorry for sending out the wrong link. Forgot that wasn?t externally visible. tom > > Best regards > Stefan > > > > -- > Stefan Marr > Johannes Kepler Universit?t Linz > http://stefan-marr.de/research/ > > > From doug.simon at oracle.com Wed May 18 12:15:55 2016 From: doug.simon at oracle.com (Doug Simon) Date: Wed, 18 May 2016 14:15:55 +0200 Subject: CR for RFR 63 In-Reply-To: References: Message-ID: Hi Michael, Thanks for the submission. A quick glance indicates there should be no issue integrating this change. Could you please re-submit it as a PR on https://github.com/graalvm/graal-core? The review support on github is better than email based reviewing of patches/webrevs. -Doug > On 18 May 2016, at 01:09, Berg, Michael C wrote: > > Hi Folks, > > I have added components that now handle front to back all assembler emit through a single channel, namely the AMD64Assembler object. All sub classes that extend AMD64RROp and emit SSE code now channel directly through AMD64Assembler object via formal encoding methods. These methods are currently up-propagate-able to AVX based on CPUID check generically for all SIMD emitted code. In this set is the ArrayEquals intrinsic which now has support for AVX with 256bit forms allowed and used there. Please review and comment. > > This code was tested as follows (see jbs entry below): mx unittest (no new failures), SpecJvm2008 (all suites pass : I run compress through xml.transform). The code is also checkstyle compliant. > > Bug-id: https://bugs.openjdk.java.net/browse/GRAAL-63 > > > > Git diff: > https://bugs.openjdk.java.net/secure/attachment/59541/array_equals_plus_asm.diff > > Thanks, > Michael > From michael.c.berg at intel.com Thu May 19 19:37:50 2016 From: michael.c.berg at intel.com (Berg, Michael C) Date: Thu, 19 May 2016 19:37:50 +0000 Subject: request In-Reply-To: <65B6F7E9-7F78-4B1F-BF40-C639045CBCBC@oracle.com> References: <65B6F7E9-7F78-4B1F-BF40-C639045CBCBC@oracle.com> Message-ID: Folks, the code is available as: https://github.com/graalvm/graal-core/pull/184 For review. Thanks Doug for helping me stage the review and for the information/methodologies about how things work. Regards, Michael -----Original Message----- From: Doug Simon [mailto:doug.simon at oracle.com] Sent: Thursday, May 12, 2016 3:01 PM To: Berg, Michael C Cc: tom.rodriguez at oracle.com; Thomas Wuerthinger Subject: Re: request Hi Michael, Great to hear of Intel?s interest in contributing to Graal! We?re very open to such collaboration and we definitely want to see the JDK9 intrinsics added to Graal. We?ve recently switched to git for Graal development. We use the repo at https://github.com/graalvm/graal-core for external collaboration so you can submit pull requests there. We merge PRs internally and the result is mirrored back to github as well as to http://hg.openjdk.java.net/graal/graal-core (via the hg-git Mercurial extension[1]). In terms of issue tracking, you can create issues under the GRAAL project at https://bugs.openjdk.java.net/projects/GRAAL and use graal-dev at openjdk.java.net for discussion. Feel free to connect with me via Skype (dougxc) for faster turn around on questions (keeping in mind I?m based in Switzerland). We?ll discuss within the team other opportunities for further Intel collaboration with Graal. -Doug [1] http://hg-git.github.io > On 12 May 2016, at 19:41, Berg, Michael C wrote: > > Doug/Tom: > > Intel would like to start contributing to graal. The open source team has indicated that the current open source intrinsics in jdk9 need to be brought into graal. I would like to do that work. What are your thoughts? I can start sending out code reviews once I know. Would you like folks to follow the hotspot-dev code review methodology(jbs entries and rfe/rfr with code reviews)? Are there other areas as well that you would like to include for Intel to implement in graal. > > Thanks in advance. > > Regards, > Michael > > From bahram.yarahmadi at gmail.com Sat May 21 14:39:30 2016 From: bahram.yarahmadi at gmail.com (Bahram Yarahmadi) Date: Sat, 21 May 2016 19:09:30 +0430 Subject: Hosted mode Message-ID: Hello guys I am using graal in a hosted mode.I built a project and with the help of Reflection APIs and Graal resolved types and static analysis ,I built the Graal IR from my specific method and with openCL backend which I have,I generated OpenCL C I have a question I just want to use the graal just for generating OpenCL code from some Specific method which I personally generate Graal IR and the rest of the program must be treated as a normal java program,What shoud I do ? Should I generate Graal IR for the rest of the program to ? This is the logic of my program (Just for clarifyintg ) //ResolveJavaMethod method=my specified method //Generate graphIR from the method //Do some Optimizations and static analysis //Generate High opencl Backend //?????????????? I don't know what to do to hook the rest of the program in a normal way Thanks, From bahram.yarahmadi at gmail.com Sun May 22 14:23:31 2016 From: bahram.yarahmadi at gmail.com (Bahram Yarahmadi) Date: Sun, 22 May 2016 07:23:31 -0700 Subject: Hosted mode In-Reply-To: References: Message-ID: My framework takes a standard .class file as an input and tries to generate opencl code from lambdas and streams and runs it on GPUs but what should I do for the rest of the program ? Should I generate graal IR for them and attach or modify the part which called lambda and streams ? then try to run the main method of .class file On Sat, May 21, 2016 at 7:39 AM, Bahram Yarahmadi < bahram.yarahmadi at gmail.com> wrote: > Hello guys > I am using graal in a hosted mode.I built a project and with the help of > Reflection APIs and Graal resolved types and static analysis ,I built the > Graal IR from my specific method and with openCL backend which I have,I > generated OpenCL C > I have a question > I just want to use the graal just for generating OpenCL code from some > Specific method which I personally generate Graal IR and the rest of the > program must be treated as a normal java program,What shoud I do ? Should I > generate Graal IR for the rest of the program to ? > This is the logic of my program (Just for clarifyintg ) > //ResolveJavaMethod method=my specified method > //Generate graphIR from the method > //Do some Optimizations and static analysis > //Generate High opencl Backend > //?????????????? > > I don't know what to do to hook the rest of the program in a normal way > > > Thanks, > > > From juan.fumero at ed.ac.uk Mon May 23 11:24:10 2016 From: juan.fumero at ed.ac.uk (Juan Fumero) Date: Mon, 23 May 2016 12:24:10 +0100 Subject: Hosted mode In-Reply-To: References: Message-ID: <1464002650.4148.9.camel@ed.ac.uk> Hi,? ? I think what you want to do is something similar to this: http://dl.acm.org/citation.cfm?id=2807428&CFID=617514162&CFTOKEN=522886 88? If so, you have two options, run the GPU code (previously optimised by Graal) and the host code (OpenCL terminology) in a normal VM with server compiler, or run also the host code in with Graal compiler. But this does not affect the OpenCL execution. What are you trying to do?? -juan On Sat, 2016-05-21 at 19:09 +0430, Bahram Yarahmadi wrote: > Hello guys > I am using graal in a hosted mode.I built a project and with the help > of > Reflection APIs and Graal resolved types and static analysis ,I built > the > Graal IR from my specific method and with openCL backend which I > have,I > generated OpenCL C > I have a question > I just want to use the graal just for generating OpenCL code from > some > Specific method which I personally generate Graal IR and the rest of > the > program must be treated as a normal java program,What shoud I do ? > Should I > generate Graal IR for the rest of the program to ? > This is the logic of my program (Just for clarifyintg ) > //ResolveJavaMethod method=my specified method > //Generate graphIR from the method > //Do some Optimizations and static analysis > //Generate High opencl Backend > //?????????????? > > I don't know what to do to hook the rest of the program in a normal > way > > > Thanks, > -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. From juan.fumero at ed.ac.uk Tue May 24 13:10:27 2016 From: juan.fumero at ed.ac.uk (Juan Fumero) Date: Tue, 24 May 2016 14:10:27 +0100 Subject: Capture scope variables into Lambdas Message-ID: <1464095427.1455.4.camel@ed.ac.uk> Hi all,? ???I would like to do capture variables in lambda expression with Graal. I used to do it with Reflection as follow:? @Test ?public void testScopeWithReflection()? ????throws IllegalArgumentException, IllegalAccessException { ????final int[] a = new int[]{100, 200, 300}; ????Function lambdaFunction = (x -> x + 2.0 + a[0]); ????Field[] declaredFields = lambdaFunction.getClass().getDeclaredFields(); ????Object scoped = null; ????for (int i = 0; i < declaredFields.length; i++) { ????????declaredFields[i].setAccessible(true); ????????scoped = declaredFields[i].get(lambdaFunction); ????} ? ????assertTrue(scoped instanceof int[]); ????assertEquals(a, scoped); } So the output I get is the variables I introduce into the lambda.? What I would like to do is the same but from the GraalIR instead.? I do not have the "lambdaFunction.getClass()" in the part of the compiler I am writing now, only the GraalIR.? Is it possible to do it in the GraalIR level? Any idea? For each? variable I introduce in the scope,??I can see a new ParameterNode in the GraalIR. I can get the type, but I also want the value. Here a unittest: https://bitbucket.org/snippets/juanfumero/b68KL? Many thanks -juan -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. From michael.c.berg at intel.com Tue May 24 23:22:20 2016 From: michael.c.berg at intel.com (Berg, Michael C) Date: Tue, 24 May 2016 23:22:20 +0000 Subject: request In-Reply-To: References: <65B6F7E9-7F78-4B1F-BF40-C639045CBCBC@oracle.com> Message-ID: The code has been updated on: https://github.com/graalvm/graal-core/pull/184 Regards, Michael -----Original Message----- From: Berg, Michael C Sent: Thursday, May 19, 2016 12:38 PM To: graal-dev Cc: tom.rodriguez at oracle.com; Thomas Wuerthinger ; Doug Simon Subject: RE: request Folks, the code is available as: https://github.com/graalvm/graal-core/pull/184 For review. Thanks Doug for helping me stage the review and for the information/methodologies about how things work. Regards, Michael -----Original Message----- From: Doug Simon [mailto:doug.simon at oracle.com] Sent: Thursday, May 12, 2016 3:01 PM To: Berg, Michael C Cc: tom.rodriguez at oracle.com; Thomas Wuerthinger Subject: Re: request Hi Michael, Great to hear of Intel?s interest in contributing to Graal! We?re very open to such collaboration and we definitely want to see the JDK9 intrinsics added to Graal. We?ve recently switched to git for Graal development. We use the repo at https://github.com/graalvm/graal-core for external collaboration so you can submit pull requests there. We merge PRs internally and the result is mirrored back to github as well as to http://hg.openjdk.java.net/graal/graal-core (via the hg-git Mercurial extension[1]). In terms of issue tracking, you can create issues under the GRAAL project at https://bugs.openjdk.java.net/projects/GRAAL and use graal-dev at openjdk.java.net for discussion. Feel free to connect with me via Skype (dougxc) for faster turn around on questions (keeping in mind I?m based in Switzerland). We?ll discuss within the team other opportunities for further Intel collaboration with Graal. -Doug [1] http://hg-git.github.io > On 12 May 2016, at 19:41, Berg, Michael C wrote: > > Doug/Tom: > > Intel would like to start contributing to graal. The open source team has indicated that the current open source intrinsics in jdk9 need to be brought into graal. I would like to do that work. What are your thoughts? I can start sending out code reviews once I know. Would you like folks to follow the hotspot-dev code review methodology(jbs entries and rfe/rfr with code reviews)? Are there other areas as well that you would like to include for Intel to implement in graal. > > Thanks in advance. > > Regards, > Michael > > From doug.simon at oracle.com Wed May 25 08:25:28 2016 From: doug.simon at oracle.com (Doug Simon) Date: Wed, 25 May 2016 10:25:28 +0200 Subject: request In-Reply-To: References: <65B6F7E9-7F78-4B1F-BF40-C639045CBCBC@oracle.com> Message-ID: <6F972DA4-5932-4E2E-9734-C5024A6CC892@oracle.com> Hi Michael, Thanks for the notification. However, it?s only necessary to send an email when a PR is created. After that, anyone who comments on or watches the PR will automatically receive email notifications about subsequent updates to the PR. -Doug > On 25 May 2016, at 01:22, Berg, Michael C wrote: > > The code has been updated on: > > https://github.com/graalvm/graal-core/pull/184 > > Regards, > Michael > > -----Original Message----- > From: Berg, Michael C > Sent: Thursday, May 19, 2016 12:38 PM > To: graal-dev > Cc: tom.rodriguez at oracle.com; Thomas Wuerthinger ; Doug Simon > Subject: RE: request > > Folks, the code is available as: > > https://github.com/graalvm/graal-core/pull/184 > > For review. > > Thanks Doug for helping me stage the review and for the information/methodologies about how things work. > > Regards, > Michael > > -----Original Message----- > From: Doug Simon [mailto:doug.simon at oracle.com] > Sent: Thursday, May 12, 2016 3:01 PM > To: Berg, Michael C > Cc: tom.rodriguez at oracle.com; Thomas Wuerthinger > Subject: Re: request > > Hi Michael, > > Great to hear of Intel?s interest in contributing to Graal! We?re very open to such collaboration and we definitely want to see the JDK9 intrinsics added to Graal. > > We?ve recently switched to git for Graal development. We use the repo at https://github.com/graalvm/graal-core for external collaboration so you can submit pull requests there. We merge PRs internally and the result is mirrored back to github as well as to http://hg.openjdk.java.net/graal/graal-core (via the hg-git Mercurial extension[1]). > > In terms of issue tracking, you can create issues under the GRAAL project at https://bugs.openjdk.java.net/projects/GRAAL and use graal-dev at openjdk.java.net for discussion. > > Feel free to connect with me via Skype (dougxc) for faster turn around on questions (keeping in mind I?m based in Switzerland). > > We?ll discuss within the team other opportunities for further Intel collaboration with Graal. > > -Doug > > [1] http://hg-git.github.io > >> On 12 May 2016, at 19:41, Berg, Michael C wrote: >> >> Doug/Tom: >> >> Intel would like to start contributing to graal. The open source team has indicated that the current open source intrinsics in jdk9 need to be brought into graal. I would like to do that work. What are your thoughts? I can start sending out code reviews once I know. Would you like folks to follow the hotspot-dev code review methodology(jbs entries and rfe/rfr with code reviews)? Are there other areas as well that you would like to include for Intel to implement in graal. >> >> Thanks in advance. >> >> Regards, >> Michael >> >> > From jaroslav.tulach at oracle.com Fri May 27 07:09:09 2016 From: jaroslav.tulach at oracle.com (Jaroslav Tulach) Date: Fri, 27 May 2016 09:09:09 +0200 Subject: FYI: truffle-api-changes #344 In-Reply-To: <961828001.79.1464272979225@c8ffaf347c3f> References: <961828001.79.1464272979225@c8ffaf347c3f> Message-ID: <2331544.J2ss7P8CuG@pracovni> > Added Methods > ------------- > > com.oracle.truffle.api.source.Source: method public java.net.URI > com.oracle.truffle.api.source.Source.getURI() > > > com.oracle.truffle.api.debug.Debugger: method public final > com.oracle.truffle.api.debug.Breakpoint > com.oracle.truffle.api.debug.Debugger.setLineBreakpoint(int,java.net.URI,in From bahram.yarahmadi at gmail.com Sat May 28 15:14:19 2016 From: bahram.yarahmadi at gmail.com (Bahram Yarahmadi) Date: Sat, 28 May 2016 08:14:19 -0700 Subject: How to export my project Message-ID: Hello guys 'm trying to develop a framework for running Java 8 stream API with lambdas on gpus so I'm using graal as my basic infrastructure and untill now I developed a very basic OpenCL C generator which tranclates very simple graal IR(extracted from lambdas and streams ) to openCL C at runtime. for the next step ,I want to execute the code(kernel) which I have generated whith JOCL but I have a problem when I want to run my codes with unit test I got this errors bahram at bahram-N56JRH:~/graal/graal-core$ mx unittest -G:Dump= -G:MethodFilter=Student.AddIntegers GraalTutorial#testOpenCLBackend MxJUnitCore JUnit version 4.11 .E initializationError(com.oracle.graal.compiler.test.tutorial.GraalTutorial) java.lang.NoClassDefFoundError: org/jocl/Pointer at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at org.junit.internal.builders.SuiteMethodBuilder.hasSuiteMethod(SuiteMethodBuilder.java:18) at org.junit.internal.builders.SuiteMethodBuilder.runnerForClass(SuiteMethodBuilder.java:10) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26) at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:31) at org.junit.runner.JUnitCore.run(JUnitCore.java:138) at com.oracle.mxtool.junit.MxJUnitWrapper.main(MxJUnitWrapper.java:167) Caused by: java.lang.ClassNotFoundException: org.jocl.Pointer at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 14 more Time: 0.012 There was 1 failure: 1) initializationError(com.oracle.graal.compiler.test.tutorial.GraalTutorial) java.lang.NoClassDefFoundError: org/jocl/Pointer at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at org.junit.internal.builders.SuiteMethodBuilder.hasSuiteMethod(SuiteMethodBuilder.java:18) at org.junit.internal.builders.SuiteMethodBuilder.runnerForClass(SuiteMethodBuilder.java:10) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26) at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:31) at org.junit.runner.JUnitCore.run(JUnitCore.java:138) at com.oracle.mxtool.junit.MxJUnitWrapper.main(MxJUnitWrapper.java:167) Caused by: java.lang.ClassNotFoundException: org.jocl.Pointer at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 14 more FAILURES!!! Tests run: 1, Failures: 1 .I wanted to export the whole project to a jar file ,I have added graal code base to build path and I made a jar file but when I want to run the jar file with modified version of jdk which is included in graal (jdk.18.0-internal) I got this errors Exception in thread "main" java.lang.ExceptionInInitializerError at com.syslab.bahram.MainClass.findMethod(MainClass.java:34) at com.syslab.bahram.MainClass.main(MainClass.java:17) Caused by: java.lang.UnsupportedOperationException: The VM does not support the JVMCI API. Currently used Java home directory is /home/bahram/graal/jvmci/jdk1.8.0_72-internal/product/jre. Currently used VM configuration is: OpenJDK 64-Bit Server VM at jdk.vm.ci.runtime.JVMCI.getRuntime(JVMCI.java:50) at com.oracle.graal.api.test.Graal.initializeRuntime(Graal.java:44) at com.oracle.graal.api.test.Graal.(Graal.java:40) What should I do ? You helped me a lot and I owe you too much Thanks in advance Regards From bahram.yarahmadi at gmail.com Sun May 29 07:47:28 2016 From: bahram.yarahmadi at gmail.com (Bahram Yarahmadi) Date: Sun, 29 May 2016 12:17:28 +0430 Subject: How to export my project In-Reply-To: References: Message-ID: Hello again guys Let me clarify my question I made a program which translate some methods to graal IR, I want to export my project and made a jar file but when I want to run my generated jar file I get errors that I mentioned above with which JVM should I run my program ? Thanks in advance Regards On Sat, May 28, 2016 at 7:44 PM, Bahram Yarahmadi < bahram.yarahmadi at gmail.com> wrote: > Hello guys > 'm trying to develop a framework for running Java 8 stream API with > lambdas on gpus so I'm using graal as my basic infrastructure and untill > now I developed a very basic OpenCL C generator which tranclates very > simple graal IR(extracted from lambdas and streams ) to openCL C at > runtime. for the next step ,I want to execute the code(kernel) which I have > generated whith JOCL but I have a problem when I want to run my codes with > unit test I got this errors > bahram at bahram-N56JRH:~/graal/graal-core$ mx unittest -G:Dump= > -G:MethodFilter=Student.AddIntegers GraalTutorial#testOpenCLBackend > MxJUnitCore > JUnit version 4.11 > .E > initializationError(com.oracle.graal.compiler.test.tutorial.GraalTutorial) > java.lang.NoClassDefFoundError: org/jocl/Pointer > at java.lang.Class.getDeclaredMethods0(Native Method) > at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) > at java.lang.Class.privateGetMethodRecursive(Class.java:3048) > at java.lang.Class.getMethod0(Class.java:3018) > at java.lang.Class.getMethod(Class.java:1784) > at > org.junit.internal.builders.SuiteMethodBuilder.hasSuiteMethod(SuiteMethodBuilder.java:18) > at > org.junit.internal.builders.SuiteMethodBuilder.runnerForClass(SuiteMethodBuilder.java:10) > at > org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) > at > org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) > at > org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) > at > org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26) > at > org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:31) > at org.junit.runner.JUnitCore.run(JUnitCore.java:138) > at com.oracle.mxtool.junit.MxJUnitWrapper.main(MxJUnitWrapper.java:167) > Caused by: java.lang.ClassNotFoundException: org.jocl.Pointer > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > ... 14 more > > Time: 0.012 > There was 1 failure: > 1) > initializationError(com.oracle.graal.compiler.test.tutorial.GraalTutorial) > java.lang.NoClassDefFoundError: org/jocl/Pointer > at java.lang.Class.getDeclaredMethods0(Native Method) > at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) > at java.lang.Class.privateGetMethodRecursive(Class.java:3048) > at java.lang.Class.getMethod0(Class.java:3018) > at java.lang.Class.getMethod(Class.java:1784) > at > org.junit.internal.builders.SuiteMethodBuilder.hasSuiteMethod(SuiteMethodBuilder.java:18) > at > org.junit.internal.builders.SuiteMethodBuilder.runnerForClass(SuiteMethodBuilder.java:10) > at > org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) > at > org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) > at > org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) > at > org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26) > at > org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:31) > at org.junit.runner.JUnitCore.run(JUnitCore.java:138) > at com.oracle.mxtool.junit.MxJUnitWrapper.main(MxJUnitWrapper.java:167) > Caused by: java.lang.ClassNotFoundException: org.jocl.Pointer > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > ... 14 more > > FAILURES!!! > Tests run: 1, Failures: 1 > > .I wanted to export the whole project to a jar file ,I have added graal > code base to build path and I made a jar file but > when I want to run the jar file with modified version of jdk which is > included in graal (jdk.18.0-internal) I got this errors > Exception in thread "main" java.lang.ExceptionInInitializerError > at com.syslab.bahram.MainClass.findMethod(MainClass.java:34) > at com.syslab.bahram.MainClass.main(MainClass.java:17) > Caused by: java.lang.UnsupportedOperationException: The VM does not > support the JVMCI API. > Currently used Java home directory is > /home/bahram/graal/jvmci/jdk1.8.0_72-internal/product/jre. > Currently used VM configuration is: OpenJDK 64-Bit Server VM > at jdk.vm.ci.runtime.JVMCI.getRuntime(JVMCI.java:50) > at com.oracle.graal.api.test.Graal.initializeRuntime(Graal.java:44) > at com.oracle.graal.api.test.Graal.(Graal.java:40) > What should I do ? > You helped me a lot and I owe you too much > > Thanks in advance > > Regards > From mauro.tortonesi at unife.it Mon May 30 14:51:52 2016 From: mauro.tortonesi at unife.it (Tortonesi Mauro) Date: Mon, 30 May 2016 16:51:52 +0200 Subject: cannot compile graal with gcc 6.1 on 64bit linux and jdk 8u92 Message-ID: Dear all, sorry to bother you again, but I really can't get Graal to compile with Arch Linux 64bit, GCC 61, and JDK 8u92. I keep getting C++11 compilation problems such as: /home/mauro/code/git/graal/jvmci/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp:55:37: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix] err_msg("Index "SIZE_FORMAT" corresponding to "PTR_FORMAT \ ^ In file included from /home/mauro/code/git/graal/jvmci/src/share/vm/oops/constantPool.hpp:29:0, from /home/mauro/code/git/graal/jvmci/src/share/vm/oops/method.hpp:33, from /home/mauro/code/git/graal/jvmci/src/share/vm/runtime/frame.hpp:28, from /home/mauro/code/git/graal/jvmci/src/share/vm/code/codeBlob.hpp:30, from /home/mauro/code/git/graal/jvmci/src/share/vm/code/codeCache.hpp:28, from /home/mauro/code/git/graal/jvmci/src/cpu/x86/vm/assembler_x86.inline.hpp:30, from /home/mauro/code/git/graal/jvmci/src/share/vm/asm/assembler.inline.hpp:31, from /home/mauro/code/git/graal/jvmci/src/share/vm/precompiled/precompiled.hpp:30: /home/mauro/code/git/graal/jvmci/src/share/vm/oops/cpCache.hpp:194:42: error: left operand of shift expression ?(-1 << 28)? is negative [-fpermissive] option_bits_mask = ~(((-1) << tos_state_shift) | (field_index_mask | parameter_size_mask)) ~~~~~~^~~~~~~~~~~~~~~~~~~ /home/mauro/code/git/graal/jvmci/src/share/vm/oops/cpCache.hpp:194:104: error: enumerator value for ?option_bits_mask? is not an integer constant option_bits_mask = ~(((-1) << tos_state_shift) | (field_index_mask | parameter_size_mask)) ^ even when using: CXXFLAGS="-O2 -std=c++0x" mx --vm server build (Disclaimer: I am not familiar with mx. FWIW, it might just ignore the CXXFLAGS environment variable.) Could you please give me some advise on how to fix this? I would very much appreciate it! Best regards, Mauro Tortonesi -- Mauro Tortonesi, Ph.D. Assistant Professor Distributed Systems Research Group Engineering Department University of Ferrara From mauro.tortonesi at unife.it Mon May 30 14:58:34 2016 From: mauro.tortonesi at unife.it (Tortonesi Mauro) Date: Mon, 30 May 2016 16:58:34 +0200 Subject: cannot compile graal with gcc 6.1 on 64bit linux and jdk 8u92 In-Reply-To: References: Message-ID: Sorry, I forgot to mention I was using the instructions in this Web page: https://github.com/jruby/jruby/wiki/Building-Graal Best regards, Mauro Tortonesi -- Mauro Tortonesi, Ph.D. Assistant Professor Distributed Systems Research Group Engineering Department University of Ferrara From doug.simon at oracle.com Mon May 30 19:15:58 2016 From: doug.simon at oracle.com (Doug Simon) Date: Mon, 30 May 2016 21:15:58 +0200 Subject: cannot compile graal with gcc 6.1 on 64bit linux and jdk 8u92 In-Reply-To: References: Message-ID: Hi Mauro, As previously mentioned[1], C++11 is not (yet) supported by HotSpot. The good news is that we?re very close to having prebuilt, JVMCI enabled JDK8 binaries ready. There are remaining steps in terms of finding the appropriate location for hosting the binaries but I expect that to be resolved soon. By mid-June, I expect the binaries will be available. -Doug [1] http://mail.openjdk.java.net/pipermail/graal-dev/2016-May/004359.html > On 30 May 2016, at 16:58, Tortonesi Mauro wrote: > > Sorry, I forgot to mention I was using the instructions in this Web page: > > https://github.com/jruby/jruby/wiki/Building-Graal > > > Best regards, > Mauro Tortonesi > > -- > Mauro Tortonesi, Ph.D. > > Assistant Professor > Distributed Systems Research Group > Engineering Department > University of Ferrara