Skip to content

v0.5.3

Compare
Choose a tag to compare
@matt-cornell matt-cornell released this 05 Jun 00:53
· 572 commits to main since this release
c437ca6

What's Changed

  • The project is now split into sub-projects in a workspace. (#68)
  • miette is used instead of codespan-reporting for error reporting. (#69)
  • Changes to characters and strings (all #69):
    • Characters and strings don't have to be valid Unicode.
    • Strings evaluate to u8[N] const&.
    • Character literals evaluate to u32.
    • Strings are no longer null-terminated by default. A null-terminator can be added with c or C suffixes.
    • Unicode escapes are Rust-style instead of C-style (\u{HHHH...} instead of \uHHHH and \UHHHHHHHH).
    • \cHH is equivalent to \u{HH} (previously \xHH).
    • \xHH (string literals only) inserts the byte 0xHH.
  • All zero-sized types can be returned from functions, not just null (64b0405).
  • clap is used for the CLI (d3a226c).
    • Emit types are now specified with -e|--emit <type> where <type> is one of:
      • exe
      • lib
      • obj
      • asm
      • llvm
      • bc
      • header
      • header-obj
    • The jit subcommand can now have argv[0] set with -t|--this <name>.
    • Headers are specified with -H instead of -h. -h is used for help.

Not much changed in the language, but a lot has been rewritten since 0.5.2. I also finally updated my computer, so you need glibc 2.35 to run the prebuilds now.

Full Changelog: 0.5.2...0.5.3