Few cents about my commits

AltPods: pods updated - 1.29.0-SNAPSHOT

|

AltPods were updated to v1.29.0-SNAPSHOT to sync with recent releases.

Updated pods

These pods were pushed to https://oss.sonatype.org/content/repositories/snapshots maven repo under 1.29.0-SNAPSHOTS version. Source code @github

Updates are not fully tested, please open issue if bug found.

Seamless XCFramework support

|

XCFramework is a distributable binary package that contains variants of binary framework or library built for different platforms/cpu architectures. Introduced in Xcode11. Also, it solves problem packaging Arm64 and Arm64-simulator binaries into Fat framework/library. RoboVM had workaround for two year already to framework path for different architectures. But it requires manual preparation.copying for each framework and a bit annoying. PR694 introduced two options to improve the usability:

1. Direct reference in <xcFrameworks>

AltPods: pods updated - 1.28.0-SNAPSHOT

|

AltPods: pods updated - 1.27.0-SNAPSHOT

|

AltPods: pods updated - 1.26.0-SNAPSHOT

|

AltPods were updated to v1.26.0-SNAPSHOT to sync with recent releases.

Updated pods

New pod

These pods were pushed to https://oss.sonatype.org/content/repositories/snapshots maven repo under 1.26.0-SNAPSHOTS version. Source code @github

Updates are not fully tested, please open issue if bug found.

AltPods: pods updated - 1.25.0-SNAPSHOT

|

AltPods were updated to v1.25.0-SNAPSHOT to sync with recent releases.

Updated pods

These pods were pushed to https://oss.sonatype.org/content/repositories/snapshots maven repo under 1.25.0-SNAPSHOTS version. Source code @github

Updates are not fully tested, please open issue if bug found.

AltPods: pods updated - 1.24.0-SNAPSHOT

|

AltPods were updated to v1.24.0-SNAPSHOT to sync with recent releases.

Updated pods

These pods were pushed to https://oss.sonatype.org/content/repositories/snapshots maven repo under 1.24.0-SNAPSHOTS version. Source code @github

Updates are not fully tested, please open issue if bug found.

2.3.17 release is broken due JDK-8272564

|

Just in 1h after release first reports arrived. It resulted in failure to link with messages like:

Undefined symbols for architecture arm64: “_[j]java.lang.Object.notifyAll()V[lookup]”,

Moment here: Object.notifyAll is final method and doesn’t require [lookup] trampoline but quick look shows that its being invoked now with invokeinterface JVM instruction instead of invokevirtual as it was before.

Long story short: this happen due Java18 was used for compilation on build machine. And even if we target Java8 when compiling runtime different byte code was generated due applied JDK-8272564.

In short term – planned 2.3.18 release using Java 15 on host. Also we have to support method lookup for Object methods when these invoked on interfaces as it described in jvms-5.4.3.4 item 3.

AltPods: pods updated - 1.23.0-SNAPSHOT

|

AltPods were updated to v1.23.0-SNAPSHOT to sync with recent releases.

Updated pods

These pods were pushed to https://oss.sonatype.org/content/repositories/snapshots maven repo under 1.23.0-SNAPSHOTS version. Source code @github

Updates are not fully tested, please open issue if bug found.

JEP 181: Nest-Based Access Control

|

RoboVM stopped to be Java7+ runtime (Android 4.4 to be exact). However it doesn’t stop users to compile it against more recent Java like java 11.
It works with some amount of constraints but sometime changes are breaking. Like JEP181 that causes java8 scenarios doesn’t work anymore with RoboVM (issue #852).
Long story short: with JEP181 changes compiler doesn’t generate accessors to private fields for nested classes. And RoboVM truly produces IllegalAccessError: Attempt to access private method/variable.
Here is a sample code to reproduce: