Release20180207

1 min read Original article ↗

Compiler.

  • Added an experimental LLVM codegen (-codegen llvm); requires LLVM tools (llvm-as, opt, llc) version ≥ 3.7.

  • Made many substantial cosmetic improvements to front-end diagnostic messages, especially with respect to source location regions, type inference for fun and val rec declarations, signature constraints applied to a structure, sharing type specifications and where type signature expressions, type constructor or type variable escaping scope, and nonexhaustive pattern matching.

  • Fixed minor bugs with exception replication, precedence parsing of function clauses, and simultaneous sharing of multiple structures.

  • Made compilation deterministic (eliminate output executable name from compile-time specified @MLton runtime arguments; deterministically generate magic constant for executable).

  • Updated -show-basis (recursively expand structures in environments, displaying components with long identifiers; append (* @ region *) annotations to items shown in environment).

  • Forced amd64 codegen to generate PIC on amd64-linux targets.