# Tuesday, 02 December 2014
« Running Minecraft on IKVM.NET | Main | IKVM.NET 8.0 Release Candidate 1 »
IKVM.NET 8.0 Release Candidate 0

The first release candidate is available. It can be downloaded here or from NuGet.

What's New (relative to IKVM.NET 7.4):

  • Merged OpenJDK 8 b132.
  • Support for Java 8 features.
  • Improvements to sun.misc.Unsafe compatibility.
  • Various bug fixes.

Changes since previous development snapshot:

  • Assemblies are strong named.

Binaries available here: ikvmbin-8.0.5449.0.zip

Sources: ikvmsrc-8.0.5449.0.zip, openjdk-8-b132-stripped.zip

Tuesday, 02 December 2014 14:52:48 (W. Europe Standard Time, UTC+01:00)  #    Comments [2]
Friday, 19 December 2014 09:27:10 (W. Europe Standard Time, UTC+01:00)
I'm getting errors when trying to build this from source. The errors seem related to nashorn, specifically the run-nasgen target in openjdk.build.

F:\IKVM\ikvm-8.0.5449.0\openjdk>nant run-nasgen NAnt 0.92 (Build 0.92.4543.0; release; 6/9/2012) Copyright (C) 2001-2012 Gerry Shaw http://nant.sourceforge.net

Buildfile: file:///F:/IKVM/ikvm-8.0.5449.0/openjdk/openjdk.build
Target framework: Microsoft .NET Framework 4.0
Target(s) specified: run-nasgen

Function platform::is-win32 is deprecated. Use the is-windows function instead.
Function platform::is-win32 is deprecated. Use the is-windows function instead.

run-nasgen:

[exec] F:\IKVM\ikvm-8.0.5449.0\openjdk\openjdk.build(216,10): Attribute 'useruntimeengine' for <exec ... /> is deprecated. Use the managed attribute and Managed property instead.
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:54: error: cannot find symbol
[exec] import jdk.nashorn.internal.runtime.GlobalObject;
[exec] ^
[exec] symbol: class GlobalObject
[exec] location: package jdk.nashorn.internal.runtime
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:76: error: cannot find symbol
[exec] public final class Global extends ScriptObject implements GlobalObject, Scope {
[exec] ^
[exec] symbol: class GlobalObject
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeDebug.java:37: error: cannot find symbol
[exec] import jdk.nashorn.internal.runtime.PropertyListenerManager;
[exec] ^
[exec] symbol: class PropertyListenerManager
[exec] location: package jdk.nashorn.internal.runtime
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\AccessorPropertyDescriptor.java:50: error: AccessorPropertyDescriptor is not abstract and does not override abstract method hasAndEquals(PropertyDescriptor) in PropertyDescriptor
[exec] public final class AccessorPropertyDescriptor extends ScriptObject implements PropertyDescriptor {
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:499: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:504: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:509: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:519: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:524: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:546: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:558: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:563: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:623: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:636: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:641: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:646: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:651: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:656: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:661: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:666: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:671: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:676: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:681: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:740: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:747: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:770: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\Global.java:777: error: method does not override or implement a method from a supertype
[exec] @Override
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\ScriptFunctionImpl.java:79: error: no suitable constructor found for ScriptFunction(String,MethodHandle,PropertyMap,<null>,MethodHandle[],boolean,boolean,boolean)
[exec] super(name, invokeHandle, global.getFunctionMap(), null, specs, false, true, true);
[exec] ^
[exec] constructor ScriptFunction.ScriptFunction(String,MethodHandle,PropertyMap,ScriptObject,MethodHandle[],int) is not applicable
[exec] (actual and formal argument lists differ in length)
[exec] constructor ScriptFunction.ScriptFunction(ScriptFunctionData,PropertyMap,ScriptObject) is not applicable
[exec] (actual and formal argument lists differ in length)
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\ScriptFunctionImpl.java:96: error: no suitable constructor found for ScriptFunction(String,MethodHandle,PropertyMap,<null>,MethodHandle[],boolean,boolean,boolean)
[exec] super(name, invokeHandle, map.addAll(global.getFunctionMap()), null, specs, false, true, true);
[exec] ^
[exec] constructor ScriptFunction.ScriptFunction(String,MethodHandle,PropertyMap,ScriptObject,MethodHandle[],int) is not applicable
[exec] (actual and formal argument lists differ in length)
[exec] constructor ScriptFunction.ScriptFunction(ScriptFunctionData,PropertyMap,ScriptObject) is not applicable
[exec] (actual and formal argument lists differ in length)
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\ScriptFunctionImpl.java:114: error: no suitable constructor found for ScriptFunction(String,MethodHandle,PropertyMap,ScriptObject,MethodHandle[],boolean,boolean,boolean)
[exec] super(name, methodHandle, getMap(global, isStrict), scope, specs, isStrict, isBuiltin, isConstructor);
[exec] ^
[exec] constructor ScriptFunction.ScriptFunction(String,MethodHandle,PropertyMap,ScriptObject,MethodHandle[],int) is not applicable
[exec] (actual and formal argument lists differ in length)
[exec] constructor ScriptFunction.ScriptFunction(ScriptFunctionData,PropertyMap,ScriptObject) is not applicable
[exec] (actual and formal argument lists differ in length)
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\ScriptFunctionImpl.java:168: error: cannot find symbol
[exec] map$.setIsShared();
[exec] ^
[exec] symbol: method setIsShared()
[exec] location: variable map$ of type PropertyMap
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\ScriptFunctionImpl.java:169: error: cannot find symbol
[exec] strictmodemap$.setIsShared();
[exec] ^
[exec] symbol: method setIsShared()
[exec] location: variable strictmodemap$ of type PropertyMap
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\ScriptFunctionImpl.java:170: error: cannot find symbol
[exec] boundfunctionmap$.setIsShared();
[exec] ^
[exec] symbol: method setIsShared()
[exec] location: variable boundfunctionmap$ of type PropertyMap
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\ScriptFunctionImpl.java:196: error: cannot find symbol
[exec] private static final PropertyMap anonmap$ = PropertyMap.newMap().setIsShared();
[exec] ^
[exec] symbol: method setIsShared()
[exec] location: class PropertyMap
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\DataPropertyDescriptor.java:47: error: DataPropertyDescriptor is not abstract and does not override abstract method hasAndEquals(PropertyDescriptor) in PropertyDescriptor
[exec] public final class DataPropertyDescriptor extends ScriptObject implements PropertyDescriptor {
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\GenericPropertyDescriptor.java:46: error: GenericPropertyDescriptor is not abstract and does not override abstract method hasAndEquals(PropertyDescriptor) in PropertyDescriptor
[exec] public final class GenericPropertyDescriptor extends ScriptObject implements PropertyDescriptor {
[exec] ^
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeArguments.java:71: error: cannot find symbol
[exec] map$ = PropertyMap.newMap(properties).setIsShared();
[exec] ^
[exec] symbol: method setIsShared()
[exec] location: class PropertyMap
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeBoolean.java:167: error: no suitable method found for lookupPrimitive(LinkRequest,Class<Boolean>,NativeBoolean,MethodHandle)
[exec] return PrimitiveLookup.lookupPrimitive(request, Boolean.class, new NativeBoolean((Boolean)receiver), WRAPFILTER);
[exec] ^
[exec] method PrimitiveLookup.lookupPrimitive(LinkRequest,Class<?>,ScriptObject,MethodHandle,MethodHandle) is not applicable
[exec] (actual and formal argument lists differ in length)
[exec] method PrimitiveLookup.lookupPrimitive(LinkRequest,MethodHandle,ScriptObject,MethodHandle,MethodHandle) is not applicable
[exec] (actual and formal argument lists differ in length)
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeDebug.java:189: error: cannot find symbol
[exec] return (obj instanceof ScriptObject)? ((ScriptObject)obj).getListenerCount() : 0;
[exec] ^
[exec] symbol: method getListenerCount()
[exec] location: class ScriptObject
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeDebug.java:206: error: cannot find symbol
[exec] out.println("ScriptObject listeners added " + PropertyListenerManager.getListenersAdded());
[exec] ^
[exec] symbol: variable PropertyListenerManager
[exec] location: class NativeDebug
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeDebug.java:207: error: cannot find symbol
[exec] out.println("ScriptObject listeners removed " + PropertyListenerManager.getListenersRemoved());
[exec] ^
[exec] symbol: variable PropertyListenerManager
[exec] location: class NativeDebug
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeDebug.java:213: error: cannot find symbol
[exec] out.println("PropertyMap shared " + PropertyMap.getSharedCount());
[exec] ^
[exec] symbol: method getSharedCount()
[exec] location: class PropertyMap
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeFunction.java:260: error: constructor Source in class Source cannot be applied to given types;
[exec] final Source src = new Source("<function>", params);
[exec] ^
[exec] required: String,String,Data
[exec] found: String,String
[exec] reason: actual and formal argument lists differ in length
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeFunction.java:270: error: constructor Source in class Source cannot be applied to given types;
[exec] final Source src = new Source("<function>", funcBody);
[exec] ^
[exec] required: String,String,Data
[exec] found: String,String
[exec] reason: actual and formal argument lists differ in length
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeJSAdapter.java:625: error: cannot find symbol
[exec] final Object value = getObjectValue(find);
[exec] ^
[exec] symbol: method getObjectValue(FindProperty)
[exec] location: class NativeJSAdapter
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeJSAdapter.java:632: error: cannot find symbol
[exec] adaptee.getMap().getProtoGetSwitchPoint(adaptee.getProto(), __call__),
[exec] ^
[exec] symbol: method getProtoGetSwitchPoint(ScriptObject,String)
[exec] location: class PropertyMap
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeJSAdapter.java:694: error: cannot find symbol
[exec] final Object value = getObjectValue(findData);
[exec] ^
[exec] symbol: method getObjectValue(FindProperty)
[exec] location: class NativeJSAdapter
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeJSAdapter.java:703: error: cannot find symbol
[exec] adaptee.getMap().getProtoGetSwitchPoint(adaptee.getProto(), hook),
[exec] ^
[exec] symbol: method getProtoGetSwitchPoint(ScriptObject,String)
[exec] location: class PropertyMap
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeJSAdapter.java:716: error: cannot find symbol
[exec] return new GuardedInvocation(methodHandle, adaptee.getMap().getProtoGetSwitchPoint(adaptee.getProto(), hook), testJSAdaptor(adaptee, null, null, null));
[exec] ^
[exec] symbol: method getProtoGetSwitchPoint(ScriptObject,String)
[exec] location: class PropertyMap
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeNumber.java:325: error: no suitable method found for lookupPrimitive(LinkRequest,Class<Number>,NativeNumber,MethodHandle)
[exec] return PrimitiveLookup.lookupPrimitive(request, Number.class, new NativeNumber(((Number)receiver).doubleValue()), WRAPFILTER);
[exec] ^
[exec] method PrimitiveLookup.lookupPrimitive(LinkRequest,Class<?>,ScriptObject,MethodHandle,MethodHandle) is not applicable
[exec] (actual and formal argument lists differ in length)
[exec] method PrimitiveLookup.lookupPrimitive(LinkRequest,MethodHandle,ScriptObject,MethodHandle,MethodHandle) is not applicable
[exec] (actual and formal argument lists differ in length)
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeObject.java:140: error: cannot find symbol
[exec] ((ScriptObject)obj).setProtoCheck(proto);
[exec] ^
[exec] symbol: method setProtoCheck(Object)
[exec] location: class ScriptObject
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeStrictArguments.java:65: error: cannot find symbol
[exec] map$ = map.setIsShared();
[exec] ^
[exec] symbol: method setIsShared()
[exec] location: variable map of type PropertyMap
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\NativeString.java:1202: error: no suitable method found for lookupPrimitive(LinkRequest,MethodHandle,NativeString,MethodHandle)
[exec] return PrimitiveLookup.lookupPrimitive(request, guard, new NativeString((CharSequence)receiver), WRAPFILTER);
[exec] ^
[exec] method PrimitiveLookup.lookupPrimitive(LinkRequest,Class<?>,ScriptObject,MethodHandle,MethodHandle) is not applicable
[exec] (actual and formal argument lists differ in length)
[exec] method PrimitiveLookup.lookupPrimitive(LinkRequest,MethodHandle,ScriptObject,MethodHandle,MethodHandle) is not applicable
[exec] (actual and formal argument lists differ in length)
[exec] F:\IKVM\openjdk-8-b132\nashorn\src\jdk\nashorn\internal\objects\PrototypeObject.java:57: error: cannot find symbol
[exec] map$ = PropertyMap.newMap(properties).setIsShared();
[exec] ^
[exec] symbol: method setIsShared()
[exec] location: class PropertyMap
[exec] 54 errors
Josh Friesen
Friday, 19 December 2014 09:28:43 (W. Europe Standard Time, UTC+01:00)
There is a bug in the nashorn build task that requires the exact same JDK version is used to compile (i.e. JDK 8.0 GA, not any later updates). This will be fixed in a future release candidate (it is already fixed in the main cvs branch).
Jeroen Frijters
Name
E-mail
Home page

I apologize for the lameness of this, but the comment spam was driving me nuts. In order to be able to post a comment, you need to answer a simple question. Hopefully this question is easy enough not to annoy serious commenters, but hard enough to keep the spammers away.

Anti-Spam Question: What method on java.lang.System returns an object's original hashcode (i.e. the one that would be returned by java.lang.Object.hashCode() if it wasn't overridden)? (case is significant)

Answer:  
Comment (HTML not allowed)  

Live Comment Preview