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