Skip to content

3.5.2

Choose a tag to compare

@Helltar Helltar released this 03 Oct 13:40
· 5 commits to master since this release
3.5.2
95304ca

A unit of a few tens of kilobytes no longer takes minutes to compile.

  • mem_free and mem_realloc, inherited from upstream MIDletPascal 3.5, found the block they were handed by walking the list of every live allocation from its first entry. Each call cost as much as there were live blocks, so compile time grew far faster than the source: a 34 KB unit took 3.8 s on a desktop and a 51 KB one took 10 s. On a phone that is a build that never finishes, while the same code split over several small units compiled at once.
  • Allocated blocks are now also indexed by address. The 34 KB unit compiles in 6 ms and an 85 KB one in 13 ms. The generated class files are unchanged.

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 and the full CatchRect project: every build's class files are byte-identical to the output of 3.5.1, and they carry the required StackMap attributes.

Full Changelog: 3.5.1...3.5.2