ghul.runtime 25.6.0

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package ghul.runtime --version 25.6.0
                    
NuGet\Install-Package ghul.runtime -Version 25.6.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.6.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ghul.runtime" Version="25.6.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.6.0
                    
#r "nuget: ghul.runtime, 25.6.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.6.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.6.0
                    
Install as a Cake Addin
#tool nuget:?package=ghul.runtime&version=25.6.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
27.1.1 0 10/14/2026
27.1.0 0 10/14/2026
27.0.0 637 10/12/2026
26.0.0 86 10/12/2026
25.10.3 77 10/12/2026
25.10.2 382 10/11/2026
25.10.1 78 10/11/2026
25.10.0 84 10/11/2026
25.9.1 83 10/11/2026
25.9.0 561 10/11/2026
25.8.0 75 10/11/2026
25.7.4 81 10/11/2026
25.7.3 78 10/11/2026
25.7.2 785 10/11/2026
25.7.1 81 10/11/2026
25.7.0 80 10/11/2026
25.6.1 482 10/10/2026
25.6.0 116 10/9/2026
25.5.0 219 10/9/2026
25.4.0 309 10/5/2026
Loading failed