Skip to content

v0.8.0

Choose a tag to compare

@marquisburg marquisburg released this 25 May 23:23
4b92fe8

Mettle v0.8.0

Tracy profiling, source-aware crash tracebacks on Windows, a large compiler correctness pass, and continued IR and codegen optimization work since v0.7.1.

What's new

  • mettle --build --tracy links the real Tracy client. std/tracy covers zones, frame marks, plots, and memory tracking. Without --tracy, the same source links a no-op stub so release and profiled builds stay in sync. See examples/tracy_demo/.
  • Windows --build programs built with -s or debug/trap flags get COFF stack traces with trap context and source snippets.
  • Fixed sign-extension bugs, codegen miscompiles, uint32 compares, int32 call-result corruption on cross-module calls, and scaled pointer arithmetic lowering, with regression tests for the latter.
  • Multiple IR optimization passes, loop fusion, SIMD lowering (including insertion-sort fusion), and compilation-speed work across the pipeline.
  • The compiler itself can be built with Clang on Windows via CC=clang or build.bat clang, including MSVC/UCRT header compatibility fixes.
  • Mettle strings now flow to cstring parameters implicitly where safe, so cstr() wrappers are no longer required for common C interop and I/O call sites.
  • IR dumps include an explicit CFG view for basic blocks.
  • Makefile source list fixes, unified -O2 and CFLAGS in build.bat, Hello World examples, and a README refresh.
  • Shared utilities, deduplicated cross-file logic, named phases for oversized functions, and consolidated linker utilities and test helpers. Critical fixes in posix_helpers, ast_destroy_node, and method-declaration parsing. Full test suite passing again.

Full Changelog: v0.7.1...v0.8.0