Skip to content

grayscale: v0.5.3

Choose a tag to compare

@github-actions github-actions released this 28 Aug 02:45
de19002

0.5.3 (2026-08-28)

Bug Fixes

  • codegen: report the written type name from type_of (#2519) (5974e27)
  • codegen: resolve a written struct name to its declaration (#2496) (5f3cbfd)
  • codegen: validate the value of a cast to an enum (#2531) (d618efe)
  • imports: reject importing the same module twice in one file (#2507) (2b07b2d)
  • parser: accept container type spellings in size_of() and cast() (#2532) (0f1e913)
  • parser: parse a struct literal whose type name starts lowercase (#2500) (d214532)
  • typechecker: answer type-argument positions from the declaration (#2538) (ff2a0c8)
  • typechecker: bind the receiver for an imported struct type (#2492) (b77c734)
  • typechecker: enforce private across module boundaries for structs, enums, and struct functions (#2505) (1afb08e)
  • typechecker: enforce private on bare names from using modules (#2520) (918edcc)
  • typechecker: land plain assignment to a module-level mut variable (#2508) (37644f3)
  • typechecker: let a local shadow a module of the same name (#2504) (4e5d15e)
  • typechecker: let a struct alias be used as a constructor (#2518) (68e4b11)
  • typechecker: mark addr() on a module-level constant as a const source (#2515) (6d88e10)
  • typechecker: reject a builtin function name as an alias name (#2530) (6dd4fbf)
  • typechecker: reject a file-scope constant forward reference (#2516) (8ca6f1d)
  • typechecker: reject a mismatched func ref in a struct literal (#2543) (a147c78)
  • typechecker: reject a public alias of a private type (#2533) (b86ef88)
  • typechecker: reject a reserved type name as an alias name (#2522) (d938222)
  • typechecker: reject a type name used as a value wherever it appears (#2535) (9711bb4)
  • typechecker: report modules whose mangled symbol names collide (#2499) (9c10989)
  • typechecker: resolve a struct alias used as a call qualifier (#2526) (71762dd)
  • typechecker: resolve a struct field's type through its alias (#2542) (e39b5cd)
  • typechecker: resolve alias targets in the declaring module (#2517) (0f9e25f)
  • typechecker: resolve aliases in the fields() type-name guard (#2525) (54a417a)
  • typechecker: resolve and validate the size_of type argument (#2528) (ac5d9f9)
  • typechecker: resolve type aliases in the cast target (#2523) (0b8f498)
  • typechecker: resolve types in a module whose name has an underscore (#2514) (ed4dab9)
  • typechecker: return a pointer from mem.alloc (#2544) (c67692a)
  • typechecker: skip value resolution for <?> type arguments (#2539) (2b9a9a5)
  • typechecker: validate that a cast target names a type (#2534) (2264e4a)

Performance Improvements

  • main: parse arguments into a CompilerOptions struct (b09cbb4)
  • parser: extract the import resolver out of main() (4df828e)
  • runtime: remove unused GRAY_MAX_INLINE_ELEM_SIZE (5384391)
  • typechecker: rename operator_to_string to operator_display_name (03e84a3)
  • util: remove unused diagnostic_warning_help (ff65f8a)