On Fri, Jul 25, 2025 at 2:02 AM Aoife Moloney via devel-announce
<devel-annou...@lists.fedoraproject.org> wrote:
>
> Wiki - https://fedoraproject.org/wiki/Changes/HareProgrammingLanguage
> Discussion thread -
> https://discussion.fedoraproject.org/t/f43-change-proposal-hare-programming-language-self-contained/160770
>
> This is a proposed Change for Fedora Linux.
> This document represents a proposed Change. As part of the Changes
> process, proposals are publicly announced in order to receive
> community feedback. This proposal will only be implemented if approved
> by the Fedora Engineering Steering Committee.
>
>
> == Summary ==
>
> Introduce packages for [https://harelang.org/ Hare], a systems
> programming language designed to be simple, stable, and robust. Hare
> is still under development, the language, its standard library and its
> reference tool chain are still subject to breaking changes.
>
> == Owner ==
>
> * Name: [[User:dridi|Dridi Boukelmoune]], [[User:mroche|Mike
> Rochefort]], [[User:fnux|Timothee Floure]], [[User:fed500|Benson
> Muite]]
> * Email: dridi dot boukelmoune at gmail, mroche at omenos dot dev,
> timothee dot floure at posteo dot net, benson_muite at emailplus dot
> org
> <!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
> * FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
> -->
>
>
> == Detailed Description ==
>
> Hare is a systems programming language designed to be simple, stable,
> and robust. Hare uses a static type system, manual memory management,
> and a minimal runtime. It is well-suited to writing operating systems,
> system tools, compilers, networking software, and other low-level,
> high performance tasks.
>
> The Hare tool chain on Fedora will include:
>
> * `hare` (build driver)
> * `harec` (compiler front-end, already available in Fedora)
> * `qbe` (compiler back-end, already available in Fedora)
> * `binutils` (for assembly and static linking)
> * `gcc` (for dynamic linking, it also works with other C compilers)
>
> Leaving `binutils` and GCC aside, bootstrapping a Hare tool chain only
> takes a few minutes. The Hare tool chain can target the `x86_64`,
> `aarch64` and `riscv64` architectures, and will be configured to rely
> by default on `gcc-<arch>-linux-gnu` and `binutils-<arch>-linux-gnu`
> for cross compilation.
>
> The `hare` source package will produce the following packages:
>
> * `hare` (build driver, `haredoc` utility and manuals)
> * `hare-stdlib` (standard library)
> * `hare-rpm-macros` (packaging utilities)
>
> In addition, a `hare-update` package will be provided to assist Hare
> developers deal with breaking changes when a new Hare release is
> available, until the language and its standard library become stable.
>
> == Feedback ==
>
> None.

I will try to update the wiki page with the feedback received so far.

I just submitted two review requests for hare and hare-update:

https://bugzilla.redhat.com/show_bug.cgi?id=2385991
https://bugzilla.redhat.com/show_bug.cgi?id=2385992

They depend on an upgrade to the harec package:

https://bugzilla.redhat.com/show_bug.cgi?id=2385993

Hopefully reviews can start before the package upgrade.

I'll happily take reviews in exchange. I'm more comfortable with
software written in C, but I might be able to take something
different.

Cheers

> == Benefit to Fedora ==
>
> Developers can begin using the Hare language in their projects.
> Package maintainers can ship applications written in Hare.
>
> Unlike other language tool chains, Hare modules are meant to be the
> responsibility of system package managers like DNF. Packaging Hare
> modules and applications should result in little friction.
>
> == Scope ==
>
> * Proposal owners:
> ** submit `hare` and `hare-update` packages for review
> ** create RPM macros for Hare packaging
> *** `%hare_arches` already submitted to `redhat-rpm-config`
> ** handle the `hare` package bootstrap
> ** add dependency generators for Hare modules
> ** draft packaging guidelines
>
> * Other developers: N/A (not needed for this Change)
>
> * Release engineering: N/A (not needed for this Change)
>
> * Policies and guidelines:
> ** There ideally should be Hare packaging guidelines submitted as part
> of this change, otherwise at a later point.
> ** See https://pagure.io/packaging-committee/pull-request/1472
>
> * Trademark approval: N/A (not needed for this Change)
>
> * Alignment with the Fedora Strategy: none
>
> == Upgrade/compatibility impact ==
>
> The Hare specification is still a draft, so the Hare language, tool
> chain and standard library are still subject to relatively frequent
> breaking changes. Package updates containing breaking changes should
> be limited to Fedora releases.
>
> == How To Test ==
>
> Once the `hare` package is available, the upstream [introduction
> https://harelang.org/tutorials/introduction] to the language walks you
> through the hello world below before covering language concepts.
>
> Hello world:
> <pre>$ cat >main.ha <<EOF
> use fmt;
>
> export fn main() void = {
>         fmt::println("Hello world!")!;
> };
> EOF
> $ hare build -o example main.ha
> 4/4 tasks completed (100%)
> $ ./example
> Hello world!</pre>
>
> == User Experience ==
>
>
> == Dependencies ==
>
> None.
>
> == Contingency Plan ==
>
> * Contingency mechanism: N/A (not a System Wide Change)
> * Contingency deadline: N/A (not a System Wide Change)
> * Blocks release? N/A (not a System Wide Change)
>
> == Documentation ==
>
> * https://harelang.org/documentation/
> * https://harelang.org/tutorial
> * https://harelang.org/specification
> * https://harelang.org/blog
>
> == Release Notes ==
>
>
> --
> Aoife Moloney
>
> Fedora Operations Architect
>
> Fedora Project
>
> Matrix: @amoloney:fedora.im
>
> IRC: amoloney
>
> --
> _______________________________________________
> devel-announce mailing list -- devel-annou...@lists.fedoraproject.org
> To unsubscribe send an email to devel-announce-le...@lists.fedoraproject.org
> Fedora Code of Conduct: 
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: 
> https://lists.fedoraproject.org/archives/list/devel-annou...@lists.fedoraproject.org
> Do not reply to spam, report it: 
> https://pagure.io/fedora-infrastructure/new_issue
-- 
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to