Releases: ghul-lang/ghul-runtime
Release list
v21.14.0
Take reduce's accumulator with the element spread out (#229)
Enhancements:
- Both forms of
reducetake an accumulator with one parameter per
tuple element,pairs |> reduce(0, (total, a, b) => total + a * b)
Technical:
- Built with ghul.compiler 62.6.0, the first to accept an argument pack
after a formal's own parameters
Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 noreply@anthropic.com
v21.13.0
Add sum and product to Ghul.Pipes (#228)
Enhancements:
- sum and product total a sequence with no seed argument, over int,
long, double, decimal and bigint - The total of an empty source is zero or one rather than an absent
value, so it needs no unwrapping
Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 noreply@anthropic.com
v21.12.1
Read a pipe through the non-generic IEnumerable and IEnumerator (#227)
Bugs fixed:
- A consumer in another language reading a pipe through the non-generic
IEnumerable or IEnumerator got null back, on every pipe class
Technical:
- Cover a pipe declaring the trait, one inheriting it from a base, a
reference element and a value element read through the non-generic
Current
Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 noreply@anthropic.com
v21.12.0
Take the remainder of any integer, and divide an unsigned one as unsigned (#226)
Enhancements:
- Declare % for byte, ubyte, short, ushort, char, uint, ulong, word and
uword, which had none
Bugs fixed:
- Divide and take the remainder of an unsigned integer as unsigned, so a
value above the signed maximum answers correctly (closes #2874, closes
#2863)
Technical:
- Build with ghul.compiler 62.0.2, which lowers the unsigned intrinsics
Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 noreply@anthropic.com
v21.11.0
Add display and update_display to the runtime (#225)
Enhancements:
display(value)shows a value while code runs: through the sink a
host installed, or with no host as a line ofinspecttextdisplay(value, id)andupdate_display(value, id)show a value
under an id and replace it where the host can redraw- A host installs a
DisplaySink, or two functions when its copy of the
runtime is not the one the code it runs uses
Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 noreply@anthropic.com
v21.10.0
Add Renderable, for a value a host can show as an image or other media (#224)
Enhancements:
- New
Renderabletrait: a type offers its value as MIME-typed content,
such as a PNG, best first, for a host to show in place of the text - The host chooses which MIME types it honours, and the text
$writes
stays the fallback
Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 noreply@anthropic.com
v21.9.1
Quote a string a Displayable renders, in the detailed mode (#223)
Bugs fixed:
inspectquotes a string that aDisplayablerenders through
state.render, as it does a string inside any other value
Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 noreply@anthropic.com
v21.9.0
Add count with a predicate (#222)
Enhancements:
- count(predicate) counts the elements that satisfy a predicate: xs |>
count(n => n % 2 == 0)
Technical:
- Raise VERSION to 21.9.0
- Bump the local ghul.compiler pin to 60.2.4
Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 noreply@anthropic.com
v21.8.1
Render a type ghūl did not compile by its own to_string (#221)
Bugs fixed:
$andinspectno longer read the properties of a type from another
language, which could block on a task's result; such a value renders by
its own to_string
Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 noreply@anthropic.com
v21.8.0
Add collect_map over key and value pairs (#220)
Enhancements:
- collect_map() with no selectors builds a MAP from a sequence of key
and value pairs: [("a", 1), ("b", 2)] |> collect_map()
Technical:
- Raise VERSION to 21.8.0
- Bump the local ghul.compiler pin to 60.2.2
Co-authored-by: ghul-coder[bot] <286450068+ghul-coder[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 noreply@anthropic.com