Skip to content

Releases: degory/ghul

v0.7.12

21 Feb 09:39
0aa1a15
Compare
Choose a tag to compare

Allowing return from expression if (#1080)

Enhancements:

  • Allow a return statement in final position in an if expression (see #1060)

Notes:

  • Return from a statement if short-circuits the expression and returns from the enclosing function

v0.7.11

20 Feb 22:26
700e3c4
Compare
Choose a tag to compare

String interpolation (#1078)

Enhancements:

  • Add initial support for string interpolation (see #1071)

Bugs fixed:

  • Can't use ref struct types (partial fix only #1077)

v0.7.10

20 Feb 14:03
8c9df61
Compare
Choose a tag to compare

Fix error cascade when undefined type used as formal argument (#1076)

Bugs fixed:

  • Formal arguments of undefined type can case a cascade of spurious errors (closes #1075)

Technical:

  • Bump compiler tool to latest
  • Bump integration test runner tool to latest
  • Bump runtime library to latest
  • Replace instances of deprecated | .has(...) with | .any(...)

v0.7.9

19 Feb 11:19
be3aef5
Compare
Choose a tag to compare

If expressions improvements (#1070)

Enhancements:

  • Infer if expression type from context, where initializing an explicitly typed variable or being returned from a function
  • Fewer redundant error messages when if statements and expressions are incomplete
  • Support throw statement as a value in an if expression

Bugs fixed:

  • No error reported when an if expression had no else branch
  • Nested if expressions generated incorrect IL

Technical:

  • Report elapsed time in bootstrap script
  • Add a very simple mechanism for representing a block of IL instructions as an IL value
  • Improve indentation of control flow IL assembly and add comments

See #1060

v0.7.8

17 Feb 10:10
baf415c
Compare
Choose a tag to compare

Experimental support for if expressions (#1069)

Enhancements:

  • Add experimental support for if expressions (see #1060)
  • Semicolons are now a statement separator rather than a terminator (see #1060).
  • Allow parentheses in type expressions, which can be used to remove ambiguity (for example (int -> int) -> int is different to (int -> (int -> int))

Bugs fixed:

  • Fix issue with explicit return types for expression bodied generic functions and methods (closes #1067)

Technical:

  • Remove some debug output
  • Underlying support for statements having values

Notes:

  • If expressions could generate IL that doesn't assemble, fails to load, or executes incorrectly: use at your own risk
  • Semicolons continue to be accepted at the end of statement lists, but they're no longer required. Unnecessary semicolons are not an error
  • Semicolons are still a terminator for global definitions and definitions within classes, structs and traits

v0.7.7

16 Feb 10:33
83372f1
Compare
Choose a tag to compare

Warn on unchecked type constraints (#1066)

Bugs fixed:

  • Give a warning when referencing generic types or functions that have constraints on their type arguments (closes #1065)

Notes:

  • This does not prevent generation of potentially incorrect and unsafe IL. It simply issues a warning where types or functions with type constraints are referenced. See #115 for details.

v0.7.6

15 Feb 16:08
58d106f
Compare
Choose a tag to compare

Fix type check issues (#1064)

Bugs fixed:

  • Fix issue where null was wrongly treated as assignment compatible with value types (closes #1061)
  • Fix issue where different generic type arguments were sometimes wrongly treated as assignment compatible with each other (closes #1062)
  • Fix issue where null was wrongly treated as assignment compatible with generic type arguments (closes #1063)

Technical:

  • Remove workarounds for recently fixed anonymous function argument type inference issue
  • Add integration tests asserting generic type arguments are compatible with object
  • Make error messages for failed type inference consistent with each other

v0.7.5

14 Feb 20:08
84ffc4f
Compare
Choose a tag to compare

Fix generic function argument inference issue (#1059)

Bugs fixed:

  • Fix problem where argument types of function literals were not always correctly infered from context (closes #778)

Technical:

  • Add functions for managing debug output

v0.7.4

13 Feb 20:36
3530011
Compare
Choose a tag to compare

Add runtime library compatibility tests (#1058)

Technical:

  • Add integration tests to check compiler compatibility with the runtime library
  • Remove the unused none keyword
  • Remove debug output when hiding ambiguous methods in reflected types
  • Fix broken VSCode tasks for integration tests on Windows
  • Update .gitattributes to strip \r on Windows
  • Bump ghul-test tool to get updated runtime for integration tests

v0.7.3

13 Feb 09:26
7fbca6d
Compare
Choose a tag to compare

Fix spurious ambiguous call error (#1057)

Bugs fixed:

  • Fix issue where "call is ambiguous" could be reported attempting to call certain methods (closes #1056)

Technical:

  • Add an additional kind of test ('project tests') that are built using MSBuild and can reference other projects and packages.