{"id":37054641,"url":"https://github.com/degory/ghul","last_synced_at":"2026-06-14T15:01:33.013Z","repository":{"id":40297205,"uuid":"95019755","full_name":"degory/ghul","owner":"degory","description":"compiler for the ghūl programming language","archived":false,"fork":false,"pushed_at":"2026-06-12T19:22:26.000Z","size":17033,"stargazers_count":4,"open_issues_count":31,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-12T19:23:57.481Z","etag":null,"topics":["compiler","dotnet","dotnet-core","ghul","programming-language"],"latest_commit_sha":null,"homepage":"https://ghul.dev","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/degory.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2017-06-21T15:39:36.000Z","updated_at":"2026-06-12T19:18:33.000Z","dependencies_parsed_at":"2024-02-04T19:59:13.898Z","dependency_job_id":"d2eb33bf-b094-4f2b-bf91-27d540cfcfe3","html_url":"https://github.com/degory/ghul","commit_stats":null,"previous_names":[],"tags_count":1138,"template":false,"template_full_name":null,"purl":"pkg:github/degory/ghul","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/degory%2Fghul","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/degory%2Fghul/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/degory%2Fghul/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/degory%2Fghul/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/degory","download_url":"https://codeload.github.com/degory/ghul/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/degory%2Fghul/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34324004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compiler","dotnet","dotnet-core","ghul","programming-language"],"created_at":"2026-01-14T06:10:25.531Z","updated_at":"2026-06-14T15:01:32.976Z","avatar_url":"https://github.com/degory.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ghūl compiler\n\n[![CI/CD](https://img.shields.io/github/actions/workflow/status/degory/ghul/ci.yml?branch=main)](https://github.com/degory/ghul/actions?query=workflow%3ACI)\n[![NuGet version (ghul)](https://img.shields.io/nuget/v/ghul.compiler.svg)](https://www.nuget.org/packages/ghul.compiler/)\n[![Release](https://img.shields.io/github/v/release/degory/ghul?label=release)](https://github.com/degory/ghul/releases)\n[![Release Date](https://img.shields.io/github/release-date/degory/ghul)](https://github.com/degory/ghul/releases)\n[![Issues](https://img.shields.io/github/issues/degory/ghul)](https://github.com/degory/ghul/issues) \n[![License](https://img.shields.io/github/license/degory/ghul)](https://github.com/degory/ghul/blob/main/LICENSE)\n[![ghūl](https://img.shields.io/badge/gh%C5%ABl-100%25!-information)](https://ghul.dev)\n\nThis is the compiler for the [ghūl programming language](https://ghul.dev). It is a [self-hosting compiler](https://en.wikipedia.org/wiki/Self-hosting_(compilers)): the compiler itself is written entirely in ghūl.\n\n![ghūl logo icon small](https://raw.githubusercontent.com/degory/ghul-dev/035cc6d3997514d03cbbd7b15133c37bf2a79f4e/src/.vuepress/public/ghul-logo-icon-128.png)\n\n## Prerequisites\n\nThe compiler requires the [.NET 8.0 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)\n\n## Target\n\nThe compiler produces standard .NET assemblies and packages targeting .NET 8.0\n\n## Getting the compiler\n\nThere are a few different ways to get the compiler\n\n### Use a ghūl .NET project template\n\nIf you initialize your project using one of the [ghūl .NET project templates](https://www.nuget.org/packages/ghul.templates/), the template will add the compiler to your project folder as a local .NET tool - just run `dotnet tool restore` to restore it. \n\n### Clone the ghūl GitHub repository template\n\nIf you create a new GitHub repo from the [ghūl repository template](https://github.com/degory/ghul-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.\n\n### Install the compiler as a local or global .NET tool\n\nYou can manually install the compiler from the [ghūl compiler .NET tool package](https://www.nuget.org/packages/ghul.compiler/)\n\n## Using the compiler\n\n### Project file\n\nThe compiler expects to be driven by MSBuild using a `.ghulproj` project file.\nSee the [ghūl test](https://github.com/degory/ghul-test) project for\na real-world example, or use one of the project templates to get started.\n\n### Source files\n\nYou'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.\n\n### Building and running\n\nOnce you have a project file and some ghūl source files, you can use the normal\n.NET SDK commands to build, pack, and run your project:\n\n```sh\ndotnet build\n```\n\n```sh\ndotnet pack\n```\n\n```sh\ndotnet run\n```\n\n### Runtime dependencies for ghūl applications\n\nApplications written in ghūl require the [.NET 8.0](https://dotnet.microsoft.com/download/dotnet/8.0) runtime\n\n## Development environment\n\n### Visual Studio Code\n\n[Visual Studio Code](https://code.visualstudio.com) will give you rich language support via the [ghūl VSCode language extension](https://marketplace.visualstudio.com/items?itemName=degory.ghul).\n\n### Dev container\n\nAny dev container image with the .NET 8 SDK will do — for example [`mcr.microsoft.com/devcontainers/dotnet:8.0`](https://hub.docker.com/r/microsoft/devcontainers-dotnet). 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](https://gist.github.com/degory/1d6894fe1cf0bf73bb75cbf9c9176a0a).\n\n## Basic ghūl language tutorial\n\nFor a short ghūl programming language tutorial and reference, see [GHUL.md](./GHUL.md) in this repository. For more ghūl language details, see the [the ghūl programming language website](https://ghul.dev)\n\n## Gotchas\n\nThe 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](https://github.com/degory/ghul/issues?q=is%3Aissue+is%3Aopen+label%3Abug) — issue reports are welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdegory%2Fghul","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdegory%2Fghul","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdegory%2Fghul/lists"}