Skip to content

lang/ferrumc: new port 0.3.0#31786

Closed
tomymartingrinberg-cpu wants to merge 6 commits into
macports:masterfrom
tomymartingrinberg-cpu:add-ferrumc
Closed

lang/ferrumc: new port 0.3.0#31786
tomymartingrinberg-cpu wants to merge 6 commits into
macports:masterfrom
tomymartingrinberg-cpu:add-ferrumc

Conversation

@tomymartingrinberg-cpu

Copy link
Copy Markdown

New port: lang/ferrumc — Ferrum-language compiler 0.3.0

Ferrum-language is a systems programming language with C syntax and compile-time memory safety via a borrow checker and ownership model, compiled to native code through LLVM 18.

SHA256:

  • arm64: dd299666b2f859ff1f07fc7494d8dffe4b9f568e132168531ab5636b9011f520
  • x86_64: bc22feaf923829d4c8f18ff2b69ab4ed369b52b2d84244301167be4801c5082f

@herbygillot

Copy link
Copy Markdown
Member

Thanks for this contribution, @tomymartingrinberg-cpu.

Some comments below:

Comment thread lang/ferrumc/Portfile
Comment thread lang/ferrumc/Portfile Outdated
Comment thread lang/ferrumc/Portfile Outdated
@tomymartingrinberg-cpu

Copy link
Copy Markdown
Author

Thank you for the review, @herbygillot!

I've updated the Portfile to use the github portgroup as suggested — github.setup Ferrum-Language Ferrum 0.3.0 v is now set, with name ferrumc to keep the port name lowercase. The master_sites, distname, and version fields have been removed accordingly.

Please let me know if there's anything else that needs to be adjusted. Happy to make further changes.

@tomymartingrinberg-cpu

Copy link
Copy Markdown
Author

Thank you for the detailed feedback, @herbygillot!

I've updated the Portfile to address all your comments:

  1. Building from source — switched to the cmake portgroup, downloading the source tarball directly from the GitHub tag. Added depends_lib-append port:llvm-18 and configure.args pointing to its cmake config. Removed the prebuilt binary approach entirely.
  2. All three checksum types — added rmd160, sha256, and size for the source tarball.
  3. Removed build {} — no longer needed since cmake portgroup handles it.
  4. Fixed license — corrected from MIT to GPL-3.

Please let me know if anything else needs adjusting. Thanks again for the review!

@herbygillot

Copy link
Copy Markdown
Member

The fetch is failing - this may need to be adjusted via github.tarball_from, try setting to archive. You may have to adjust the checksums.

Secondly, this project does not seem to have any logic to install ferrumc into a prefix... so perhaps you are looking to package it in MacPorts prematurely?

@commitmaniac

commitmaniac commented Mar 24, 2026

Copy link
Copy Markdown
Contributor

@tomymartingrinberg-cpu I made a patch you can add onto your working branch to build things from source. You might need to create a new branch (which starts from e89b9c6) in order for it to apply. Tested on macOS 15.6.1.

https://gist.github.com/commitmaniac/d09df29e820f77dfc9e55d7531f1f1ad

(For future readers, it's likely the link has already expired or otherwise been removed)

@ryandesign ryandesign left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your interest in contributing…

But I want to make sure other reviewers take note that you are the developer of Ferrum and according to the project's readme you are 11 years old. You only joined GitHub six months ago and you created the Ferrum git repository only three days ago.

Ferrum is allegedly a systems programming language but at age 11 you are unlikely to have the requisite experience to know how to do systems programming.

The readme also says the software was created with AI. I don't trust software written with AI and I don't trust that you have the necessary experience to be able to review AI-generated code for correctness.

There are other established projects with the names ferrum and ferrumc. There's even already another ferrum programming language built over Rust and a ferrum library that gives Rust-like features in JavaScript. Your project is also described as having Rust-like features. The name was presumably chosen because ferrum is Latin for iron and iron rusts.

This all makes me question whether including this software in MacPorts is warranted.

I see that you are also submitting Ferrum to other package managers:

Comment thread lang/ferrumc/Portfile
sha256 3a6f76e2c3a9cbb6b89910fca1d5d5c09f8074da2bbb233299e91c022e2f26d6 \
size 94231

set llvm_version 18

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any particular reason why it needs exactly llvm 18 and not any earlier or later version?

The readme and CMakeLists.txt say it needs C++20 so the Portfile should contain:

compiler.cxx_standard 2020

Comment thread lang/ferrumc/Portfile

# CMakeLists.txt only declares CXX but configure checks also need C
post-patch {
reinplace "s|LANGUAGES CXX|LANGUAGES C CXX|" ${worksrcpath}/CMakeLists.txt

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are the developer of this software but it looks like you haven't made this change in the project's repository.

@reneeotten reneeotten marked this pull request as draft March 27, 2026 15:29
@ryandesign ryandesign closed this Apr 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

5 participants