Skip to content

Releases: ghul-lang/ghul

v66.20.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 11:13
daeb6eb

Lazy sequence patterns: guards, while let, generator bodies, nesting, assignment (#3726)

Enhancements:

  • A sequence pattern over a lazy sequence now matches in a while let,
    under a case guard, in a generator or async body, and nested inside a
    case pattern
  • A destructuring assignment matches over a lazy sequence: [a, b,
    ..rest] = pipe, at the top of the target or nested in a tuple target

Bugs fixed:

  • A lazy sequence pattern with a rest element evaluated its source
    expression twice

Technical:

  • A group nested in a case arm takes a probe of its own, lowered at its
    place in the arm; only a group at the scrutinee shares the case's pull
  • An assignment's block is built over holes that generate-il fills after
    lowering the pull into a detached block

Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 noreply@anthropic.com

v66.19.4

Choose a tag to compare

@github-actions github-actions released this 25 Oct 08:54
edca35e

Update dependency ghul.runtime to 31.0.3 (#3729)

This PR contains the following updates:

Package Type Update Change
ghul.runtime
(source) nuget
patch 31.0.0 → 31.0.3

Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>

v66.19.3

Choose a tag to compare

@github-actions github-actions released this 25 Oct 07:50
d9485b0

Read the runtime library from the ghul-runtime tree of its repository (#3728)

Technical:

  • The wasm and llvm runs glob ghul-runtime/src/**/*.ghul from the
    runtime checkout, where the library now lives, instead of reading
    wasm-sources.rsp at its root
  • The runtime-tests job builds ghul-runtime/ghul-runtime.ghulproj, which
    is where the project moved

Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 noreply@anthropic.com

v66.19.2

Choose a tag to compare

@github-actions github-actions released this 24 Oct 14:47
25883c9

Sequence patterns match over lazy sequences (#3723)

Enhancements:

  • A pattern in square brackets matches over any Iterable[T], not just
    lists and arrays: a pipe, a generator result, a range
  • A string matches as a lazy sequence of its chars; its rest element is
    a sequence of chars rather than a string
  • A rest element over a lazy sequence is a lazy sequence of its own: its
    first read continues the pull, later reads re-derive from the source
  • A case over a lazy sequence is exhaustiveness-checked the same way as
    over a list

Technical:

  • One pull per matching statement, shared by every arm, its elements in
    locals; rest is built from the Ghul.Pipes buffered pipe stages
    (ghul-runtime 31.0.0)
  • Lazy matching is not built for while let, guards, case-pattern
    nesting, assignment, or generator and async bodies

Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: GLM-5.3 noreply@z.ai

v66.19.1

Choose a tag to compare

@github-actions github-actions released this 24 Oct 14:11
3d940fc

Warn when a qualified use resolves outside its qualifier (#3725)

Enhancements:

  • New use-outside-qualifier warning when a qualified use resolves
    through an enclosing namespace rather than inside its qualifier

Bugs fixed:

  • A qualified use resolved its final segment by walking out of the
    qualifier, so use Ghul.Widgets imported a top-level Widgets that
    Ghul does not declare
  • A name shared with a member of the qualifier itself, such as a static
    method, could bind the wrong symbol in the first resolution round

Technical:

  • The final segment now resolves inside its qualifier; the qualifier
    itself stays relative, so inside A.B.C a use of B.E still means
    A.B.E
  • An escape is deferred to the final round, then accepted with a
    use-outside-qualifier warning ahead of a sweep that corrects flagged
    uses
  • Compiler-source uses naming the wrong namespace are corrected; two
    System.Reflection.Metadata uses warn until reflected child namespaces
    resolve by lookup

Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: GLM-5.3-flash noreply@z.ai

v66.19.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 12:07
6cd9ec0

File-scope namespaces (#3724)

Enhancements:

  • A namespace can cover a whole file: write namespace N with no is
    and everything after it in the file is inside the namespace
  • A file with a whole-file namespace can use top-level statements as the
    program entry point
  • A use after a whole-file namespace declaration applies to the rest
    of the file

Technical:

  • A whole-file namespace is rejected where a namespace block cannot
    start, rather than silently swallowing the rest of the file
  • Replaced the parse tests requiring every namespace to have a body with
    execution and parse tests for file-scope namespaces

Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: GLM-5.3-flash noreply@z.ai

v66.18.2

Choose a tag to compare

@github-actions github-actions released this 23 Oct 09:02
d4eae6e

Update dependency ghul.runtime to 29.2.1 (#3722)

This PR contains the following updates:

Package Type Update Change
ghul.runtime
(source) nuget
patch 29.2.0 → 29.2.1

Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>

v66.18.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 17:25
aa21584

Diagnose a member written as an assignment in the member parser (#3721)

Bugs fixed:

  • A member written as an assignment could be read as a typeless
    property, leaving analysis clean and the binary back end crashing
    (closes #3145)

Technical:

  • The member parser reports an assignment written where a member belongs
    and poisons the node so no later pass builds a typeless member from it
  • Integration coverage added for plain member bodies and the
    partial-block shape

Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: stealth/space-bunny-alpha noreply@unknown.invalid

v66.18.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 06:10
fce885e

Analysis mode reports its memory on the wasm and llvm targets (#3719)

Enhancements:

  • A compiler built for wasm or llvm advertises memory-usage and answers
    memory_usage with its resident memory, as a .NET build does

Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5.5 noreply@anthropic.com

v66.17.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 21:58
be8e477

Analysis mode reports the memory its process occupies (#3718)

Enhancements:

  • A memory_usage analysis request answers the bytes the process
    occupies, advertised by .NET builds as memory-usage

Technical:

  • The wasm loader supplies host.working_set_bytes, behind
    System.Environment.working_set in ghul-core

Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5.5 noreply@anthropic.com