Skip to content

3.5.5

Latest

Choose a tag to compare

@Helltar Helltar released this 20 Oct 14:17
3.5.5
c77d17c

An external library that holds a long or double constant can be used again.

  • E449 error reading external library file on a valid library. A class file numbers a long or double constant as two entries of its constant pool but stores it once. The library reader counted it as one, so every entry after it was read one off and the reader ran past the end of the pool. Any library whose Java source had a literal such as 1000L (other than 0 and 1, which need no constant) failed to load, and every function in it was then reported as unknown with E429.
  • The build directories are lowercase now: release/, debug/, release-arm64/ and release-android-{arm64,armv7,x86_64}/. Nothing else about make changed.

Prebuilt binaries for:

  • Linux x86_64 (dynamic and static) and ARM64 (static)
  • Android arm64-v8a, armeabi-v7a and x86_64 (API 21, NDK r29; the 64-bit ones use 16 KB-aligned LOAD segments)

All six were verified by compiling Selftest in both math modes, the full CatchRect project and a program using a library with four long constants, which 3.5.4 rejects with E449: every build writes byte-identical class files. The library test was also built and run in the ANPASIDE emulator, together with a bundled library that divides by 1000L.

Full Changelog: 3.5.4...3.5.5