Skip to content

3.5.1

Choose a tag to compare

@Helltar Helltar released this 22 Sep 00:40
· 6 commits to master since this release
3.5.1
3d71341

Two parser bugs inherited from upstream MIDletPascal 3.5 are fixed:

  • A function that assigns result more than once crashed the compiler with a segmentation fault, on every platform. The first result := freed the routine's name; the second one read freed memory.
  • On the static ARM64 build, any program that produced a warning compiled to nothing: exit status 0, no M.class, no message. error_count was declared int in the parser but defined short, so the parser read warning_count in the upper half of the value.

The test data now holds Selftest, one program written to use every type, statement, extension and runtime helper class the compiler knows. It compiles in both math modes, and on a device it checks its own results against known answers. It replaces the four canvas demos, which exercised little that CatchRect did not. Writing it is what found both bugs.

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 native x86_64 output, and they carry the required StackMap attributes.

Full Changelog: 3.5.0...3.5.1