ghul.compiler
64.10.0
Prefix Reserved
dotnet tool install --global ghul.compiler --version 64.10.0
dotnet new tool-manifest
dotnet tool install --local ghul.compiler --version 64.10.0
#tool dotnet:?package=ghul.compiler&version=64.10.0
nuke :add-package ghul.compiler --version 64.10.0
ghūl compiler
This package contains the ghūl programming language compiler packaged as a .NET tool. It is a self-hosting compiler: the compiler itself is written entirely in ghūl.
![]()
Prerequisites
The compiler requires the .NET 10 SDK. It provides both the .NET 10 runtime the compiler tool itself runs on and the reference assemblies your projects build against.
Target
The compiler produces standard .NET assemblies and packages targeting .NET 10.
Getting the compiler
There are a few different ways to get the compiler - you might not need to use this package directly.
Use a ghūl .NET project template
If you initialize your project using one of the ghūl .NET project templates, the template will add the compiler to your project folder as a local .NET tool - just run dotnet tool restore to restore it.
Clone the ghūl GitHub repository template
If you create a new GitHub repo from the ghūl repository template, then the compiler will be pre-configured as a local .NET tool in your project folder - run dotnet tool restore to restore it.
Use the ghūl development container image
The compiler is pre-installed globally in the ghūl development container
Install the compiler as a local or global .NET tool
If none of the above options suits, you can manually install the compiler from this package - see below for details.
Using the compiler
Project file
The compiler expects to be driven by MSBuild using a .ghulproj project file.
See the ghūl test project for
a real-world example, or use one of the project templates to get started.
Source files
You'll need some ghūl source files. By convention ghūl source files have the extension .ghul, and the standard MSBuild targets will include **/*.ghul when building.
Building and running
Once you have a project file and some ghūl source files, you can use the normal .NET SDK commands to build, pack, and run your project:
dotnet build
dotnet pack
dotnet run
Runtime dependencies for ghūl applications
Applications written in ghūl require the .NET 10 runtime.
Development environment
Visual Studio Code
Visual Studio Code will give you rich language support via the ghūl VSCode language extension.
Dev container
Any container image with the .NET 10 SDK will do. Pin ghul.compiler in your project's local .NET tool manifest and the compiler will be restored automatically when the container starts. A minimal worked example is in this gist.
Basic ghūl language tutorial
For a short ghūl programming language tutorial and reference, see GHUL.md. For more ghūl language details, see the the ghūl programming language website
Manual compiler install
Local tool install
To install the compiler locally in your project folder:
dotnet new tool-manifest # if you don't already have a tool manifest file
dotnet tool install ghul.compiler # install the latest release of the compiler locally
dotnet ghul-compiler # run the compiler
A local tool install means you get a predictable compiler version on every build, provided you check in the tool manifest. It also means you can easily use different versions of the compiler for different projects on the same machine.
Global tool install
To install the compiler globally for the current user:
dotnet tool install --global ghul.compiler # install the latest release of the compiler globally
ghul-compiler # run the compiler
Gotchas
The ghūl language is sufficiently expressive and the compiler is stable enough for the compiler itself to be written in ghūl. Like any compiler it has bugs - issue reports are welcome.
Contributing
Bug reports, language questions, documentation fixes and code are all welcome. See CONTRIBUTING.md for how to build and test the compiler and how to raise a pull request, and SECURITY.md for how to report a suspected vulnerability.
| Product | Versions 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. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 64.10.0 | 0 | 10/3/2026 |
| 64.9.3 | 0 | 10/3/2026 |
| 64.9.2 | 0 | 10/3/2026 |
| 64.9.1 | 0 | 10/3/2026 |
| 64.9.0 | 0 | 10/3/2026 |
| 64.8.0 | 0 | 10/3/2026 |
| 64.7.9 | 0 | 10/3/2026 |
| 64.7.8 | 82 | 10/2/2026 |
| 64.7.7 | 45 | 10/2/2026 |
| 64.7.6 | 55 | 10/2/2026 |
| 64.7.5 | 52 | 10/2/2026 |
| 64.7.4 | 46 | 10/2/2026 |
| 64.7.3 | 44 | 10/2/2026 |
| 64.7.2 | 32 | 10/2/2026 |
| 64.7.1 | 79 | 10/2/2026 |
| 64.7.0 | 45 | 10/2/2026 |
| 64.6.1 | 83 | 10/2/2026 |
| 64.6.0 | 48 | 10/2/2026 |
| 64.5.38 | 60 | 10/2/2026 |
| 64.5.37 | 42 | 10/1/2026 |