Repository navigation
Releases: ghul-lang/ghul
Release list
v66.20.0
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
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
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
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
Warn when a qualified use resolves outside its qualifier (#3725)
Enhancements:
- New
use-outside-qualifierwarning 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, souse Ghul.Widgetsimported a top-levelWidgetsthat
Ghuldoes 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 insideA.B.Ca use ofB.Estill means
A.B.E - An escape is deferred to the final round, then accepted with a
use-outside-qualifierwarning ahead of a sweep that corrects flagged
uses - Compiler-source uses naming the wrong namespace are corrected; two
System.Reflection.Metadatauses 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
File-scope namespaces (#3724)
Enhancements:
- A namespace can cover a whole file: write
namespace Nwith nois
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
useafter 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
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
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
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
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