Skip to content

Releases: ikvmnet/ikvm

8.9.0

11 Jul 15:48
Compare
Choose a tag to compare

This is the biggest update to IKVM since our initial 8.2 release. The largest and most impactful change is the removal of most of the C# implementations of the OpenJDK backend classes. We no longer run our own implementations of NIO, network support, process launching, etc. Intead we are making use of the OpenJDK C code directly.

A consequence of this is that we now deliver platform-specific versions of IKVM.Java.dll. Four versions are available: Windows, Linux and OSX and a single reference-assembly. Users of the NuGet package should have this handled automatically: for RID-specific deployments the NuGet infrastructure will copy the appropriate version of IKVM.Java to the output directory. For RID-agnostic deployments, all three will be copied into runtimes/{rid}/lib and selected at runtime by .NET. For Framework targets, only the Windows version will be output.

This is unobtrusive for users of our IkvmReference implementation. The reference assembly is used to compile Java code against. And then at runtime the appropriate IKVM.Java implementation is included. The appropriate ikvm/ image directory is copied to the output as well.

However, for users not using NuGet and PackageReference, management of the reference assemblies falls to them. ikvmc should be run specifying the reference-assembly. And then only the appropriate runtime assemblies should be distributed with the application. This isn't unlike manually using csc.exe to compile .NET code at this point: you have to pick the appropriate reference assemblies. However, that is left as an exercize to the user.

This is also our first IKVM release in which we have enabled native-AWT. We include AWT support directly from the OpenJDK C code. We know there are bugs in this: On Windows we've observed Chinese-looking fonts periodically. And we know OS X support doesn't quite work right. This enables a lot of scenarios, but there are still bugs to be worked out. However, AWT is better than no-AWT.

What's Changed

  • Platform Specific IO, Security, Base Libs by @wasabii in #521
  • Native AWT by @wasabii in #528
  • README typo by @Sinan-Karakaya in #533
  • Linux CI Build by @wasabii in #532
  • Update to jdk8u192-b26 by @wasabii in #500
  • win-x86 test suites by @wasabii in #456
  • Upgrade to jdk8u275-b01 by @wasabii in #534
  • Add osx-arm64 tests by @wasabii in #537
  • Remove bin artifact drop. This doesn't quite work as easily now that we have 4 versions of IKVM.Java. Users are expected to get the appropriate version(s) out of NuGet if they need the assemblies directly.
  • Remove image artifact drop. Replace with jre and jdk images.
  • Split IKVM.ByteCode out and reduce package size.

New Contributors

Full Changelog: 8.8.1...8.9.0

8.9.0-pre.3

10 Jul 11:10
Compare
Choose a tag to compare
8.9.0-pre.3 Pre-release
Pre-release

This is the biggest update to IKVM since our initial 8.2 release. The largest and most impactful change is the removal of most of the C# implementations of the OpenJDK backend classes. We no longer run our own implementations of NIO, network support, process launching, etc. Intead we are making use of the OpenJDK C code directly.

A consequence of this is that we now deliver platform-specific versions of IKVM.Java.dll. Four versions are available: Windows, Linux and OSX and a single reference-assembly. Users of the NuGet package should have this handled automatically: for RID-specific deployments the NuGet infrastructure will copy the appropriate version of IKVM.Java to the output directory. For RID-agnostic deployments, all three will be copied into runtimes/{rid}/lib and selected at runtime by .NET. For Framework targets, only the Windows version will be output.

This is unobtrusive for users of our IkvmReference implementation. The reference assembly is used to compile Java code against. And then at runtime the appropriate IKVM.Java implementation is included. The appropriate ikvm/ image directory is copied to the output as well.

However, for users not using NuGet and PackageReference, management of the reference assemblies falls to them. ikvmc should be run specifying the reference-assembly. And then only the appropriate runtime assemblies should be distributed with the application. This isn't unlike manually using csc.exe to compile .NET code at this point: you have to pick the appropriate reference assemblies. However, that is left as an exercize to the user.

This is also our first IKVM release in which we have enabled native-AWT. We include AWT support directly from the OpenJDK C code. We know there are bugs in this: On Windows we've observed Chinese-looking fonts periodically. And we know OS X support doesn't quite work right. This enables a lot of scenarios, but there are still bugs to be worked out. However, AWT is better than no-AWT.

  • Platform Specific IO, Security, Base Libs by @wasabii in #521
  • Native AWT by @wasabii in #528
  • README typo by @Sinan-Karakaya in #533
  • Linux CI Build by @wasabii in #532
  • Update to jdk8u192-b26 by @wasabii in #500
  • win-x86 test suites by @wasabii in #456
  • Upgrade to jdk8u275-b01 by @wasabii in #534
  • Add osx-arm64 tests by @wasabii in #537
  • Remove bin artifact drop. This doesn't quite work as easily now that we have 4 versions of IKVM.Java. Users are expected to get the appropriate version(s) out of NuGet if they need the assemblies directly.
  • Remove image artifact drop. Replace with jre and jdk images.
  • Split IKVM.ByteCode out and reduce package size.

Full Changelog: 8.9.0-pre.2...8.9.0-pre.3

8.9.0-pre.2

08 Jul 16:00
Compare
Choose a tag to compare
8.9.0-pre.2 Pre-release
Pre-release
  • Remove bin artifact drop. This doesn't quite work as easily now that we have 4 versions of IKVM.Java. Users are expected to get the appropriate version(s) out of NuGet if they need the assemblies directly.
  • Remove image artifact drop. Replace with jre and jdk images.

Full Changelog: 8.9.0-pre.1...8.9.0-pre.2

8.9.0-pre.1

06 Jul 16:26
Compare
Choose a tag to compare
8.9.0-pre.1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: 8.8.1...8.9.0-pre.1

8.8.1

30 May 19:06
64d0ae7
Compare
Choose a tag to compare
  • Fix issue with loading Windows x86 native functions. #525.

Full Changelog: 8.8.0...8.8.1

8.8.0

16 Apr 14:39
Compare
Choose a tag to compare

What's Changed

  • Use System.Reflection.Metadata to write assemblies in IKVM.Reflection. Enable win-arm64 Framework tools and images. by @wasabii in #469
  • Introduce platform specific assembly builds from refasm branch. These… by @wasabii in #473
  • javax.media.sound by @wasabii in #483
  • Remove DllExport by @wasabii in #485
  • OpenJDK Build Tools by @wasabii in #433
  • IKVM.Reflection ILGenerator/PDB Rewrite by @wasabii in #478
  • Upgrade JDK8u152 by @AliveDevil in #403
  • Add .NET 8 outputs by @wasabii in #482
  • Remove .NET 6 versions of the tools. The .NET 8 versions cover this.
  • Adjust build extensions to run ikvmc and ikvmstub using Mono on Unix-flavors, for Framework, if available. This enables cross compiling to Framework from Unix machines, but does require Mono. IKVM should be able to build targeting NetFX on Unix.

Full Changelog: 8.7.6...8.8.0

8.7.6

07 Apr 13:28
f331bc7
Compare
Choose a tag to compare
  • Max major/minor versions to 65534, one less than ushort max. Fixes #510

Full Changelog: 8.7.5...8.7.6

8.8.0-pre.1

27 Mar 14:03
56a3f6f
Compare
Choose a tag to compare
8.8.0-pre.1 Pre-release
Pre-release

What's Changed

  • Use System.Reflection.Metadata to write assemblies in IKVM.Reflection. Enable win-arm64 Framework tools and images. by @wasabii in #469
  • Introduce platform specific assembly builds from refasm branch. by @wasabii in #473
  • javax.media.sound by @wasabii in #483
  • Remove DllExport by @wasabii in #485
  • OpenJDK Build Tools by @wasabii in #433
  • IKVM.Reflection ILGenerator/PDB Rewrite by @wasabii in #478
  • Upgrade JDK8u152 by @AliveDevil in #403
  • Add .NET 8 outputs by @wasabii in #482
  • Remove .NET 6 versions of the tools. The .NET 8 versions cover this.
  • Adjust build extensions to run ikvmc and ikvmstub using Mono on Unix-flavors, for Framework, if available. This enables cross compiling to Framework from Unix machines, but does require Mono. IKVM should be able to build targeting NetFX on Unix.

Full Changelog: 8.7.5...8.8.0-pre.1

8.7.5

27 Jan 19:03
Compare
Choose a tag to compare
  • Native library implementation of atomic locking. Fixes atomic locking on Linux and OS X. Allows upgrade of Maven to latest version (which uses atomic locking).

Full Changelog: 8.7.4...8.7.5

8.7.4

17 Jan 19:41
Compare
Choose a tag to compare

What's Changed

  • Move Static Initializer out of Module Init path by @wasabii in #465
  • IKVM.Reflection reformatting, cleanup. Preparing for SRME.
  • Handle bad PE image in retrieving assembly information.
  • Test production of win-x64 directory for win-x86 build/publish.

Full Changelog: 8.7.3...8.7.4