ghul.runtime 25.4.0

Prefix Reserved
dotnet add package ghul.runtime --version 25.4.0
                    
NuGet\Install-Package ghul.runtime -Version 25.4.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ghul.runtime" Version="25.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ghul.runtime" Version="25.4.0" />
                    
Directory.Packages.props
<PackageReference Include="ghul.runtime" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ghul.runtime --version 25.4.0
                    
#r "nuget: ghul.runtime, 25.4.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ghul.runtime@25.4.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ghul.runtime&version=25.4.0
                    
Install as a Cake Addin
#tool nuget:?package=ghul.runtime&version=25.4.0
                    
Install as a Cake Tool

ghūl compiler runtime library

CI/CD NuGet version (ghul.runtime) Release Release Date Issues License ghūl

This package provides:

  • internal types required by all ghūl applications
  • support for the ghūl pipe operator and fluent methods on pipes, such as filter, map and reduce
  • slice, which takes part of an array, list or string: xs |> slice(1..4). An array or a list is sliced without copying, so a later change to the source shows through
  • function combinators, in Ghul and so in scope without a use: f >> g composes left to right and f << g right to left, keeping the multi-argument stage's own arity - add >> tag composes a two-argument add with a unary tag and calls it as tagged(4, 5); curry and uncurry reshape a two-argument function in either direction; memoize(f) answers from a cache of the results f has already computed, keyed on the whole argument tuple; and apply(f, x, y) calls a function of any arity with the arguments of the call itself
  • retry(f, attempts) calls f, retrying the whole call up to the given number of times when it throws and throwing the last failure when every attempt does; the wrapped function keeps f's own arity
  • Ghul.Coroutines, cooperative coroutines: asynchronous functions returning COROUTINE[T] or COROUTINE, which one coroutine awaits as it would call a function. pause() gives up the turn, sleep(milliseconds) gives it up until a deadline, run() resumes parked coroutines one at a time, CHANNEL[T] hands values between them, and MUTEX and SEMAPHORE guard what they share. All of it runs on one thread, on a default SCHEDULER unless one is named. A coroutine can also await a task or any other awaitable: run() waits for it and resumes the coroutine on its own thread. Where that thread cannot block, such an await is reported as an error
  • MSBuild targets needed to build ghūl projects

Building a library or an executable

The targets follow the standard OutputType property:

  • Library (the .NET SDK's default when the project does not set one) builds a library. It needs no entry() function.
  • Exe or WinExe builds an executable, which needs an entry() function.

Other values are rejected. To choose directly, regardless of OutputType, set GhulLibrary to true or false.

<PropertyGroup>
  <OutputType>Library</OutputType>
</PropertyGroup>

The WebAssembly target

Under --target wasm the runtime is compiled from source together with ghul-core, which supplies the types .NET supplies on the other target. wasm-sources.rsp lists the files a wasm build compiles, one a line, to be passed to the compiler after ghul-core's sources. Within those files, @IF.dotnet() marks what is compiled only for .NET and @IF.wasm() what is compiled only for WebAssembly. What is not yet available on the wasm target is tracked on ghul-lang/ghul#3319.

wasm-tests/ holds programs that build for the wasm target from this checkout's sources and run under Node, each a ghul-cli project whose run.expected is what the same program prints on .NET. Run them with dotnet ghul-test --use-ghul-cli --ghul "dotnet ghul" --target wasm wasm-tests.

Issues

View open issues or raise a new one.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on ghul.runtime:

Package Downloads
ghul.analysis.protocol

client library for the ghūl compiler's analysis-mode JSON protocol

ghul.raster

Drawing into a PNG from ghūl: antialiased strokes and circles, an affine view, axes, colour maps and stroke-font text, in managed code with no native dependency

ghul.repl

The session behind a ghūl read-eval-print loop: the accepted cells, the import prelude each new submission needs, and what a compiled cell exports. Compiles nothing and runs nothing itself, so a terminal, a browser page or a notebook kernel can host it.

ghul.repl.host

Hosts a ghūl REPL session on this machine: compiles each cell with an installed ghul.compiler, kept running as a compile server with a fallback to starting it per cell, loads the result into a load context of the session's own, and runs it.

ghul.project

Reads and checks a ghūl project manifest: the ghul-project.json that says what a project is called, where its sources are and what it depends on.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
25.4.0 193 10/5/2026
25.3.0 111 10/5/2026
25.2.3 82 10/5/2026
25.2.2 81 10/5/2026
25.2.1 79 10/5/2026
25.2.0 78 10/5/2026
25.1.0 611 10/5/2026
25.0.11 82 10/5/2026
25.0.10 83 10/4/2026
25.0.9 78 10/4/2026
25.0.8 78 10/4/2026
25.0.7 81 10/4/2026
25.0.6 77 10/4/2026
25.0.5 73 10/4/2026
25.0.4 110 10/4/2026
25.0.3 94 10/4/2026
25.0.2 85 10/4/2026
25.0.1 80 10/3/2026
25.0.0 2,196 9/29/2026
24.1.0 174 9/29/2026
Loading failed