Wednesday, March 25, 2026

Re: [NEW PORT] lang/ferrum - Ferrum-language compiler 0.3.0

 To: ports@openbsd.org                                                                                                                                                                                                                      
 Subject: Re: [NEW PORT] lang/ferrum - Ferrum-language compiler 0.3.0
                                                                                                                                                                                                                                            
 Hello Janne,                                                     
                                                                                                                                                                                                                                            
 Thank you for the detailed review. I want to be upfront about something:                                                                                                                                                                   
 I am 11 years old and I built Ferrum with the help of Claude Code (an AI
 assistant). I did not have a working OpenBSD machine to test the original                                                                                                                                                                  
 port before submitting it, which was wrong of me.                                                                                                                                                                                          
                                                                                                                                                                                                                                            
 I have addressed all three issues you raised:                                                                                                                                                                                              
                                                                  
 1. The website has been corrected. The false apt/dnf/Snap/Flatpak claims                                                                                                                                                                   
    have been removed and replaced with honest "under review" or "coming
    soon" labels.                                                                                                                                                                                                                           
                                                                  
 2. The package name clash with FerrumC (Minecraft server) has been fixed.                                                                                                                                                                  
    The binary is now called "ferrum" everywhere (CMakeLists.txt, CI,
    driver).                                                                                                                                                                                                                                
                                                                  
 3. Here is a corrected, source-based port that builds from the upstream                                                                                                                                                                    
    tarball:                                                      
                                                                                                                                                                                                                                            
 --- lang/ferrum/Makefile ---                                     
 # $OpenBSD$                                                                                                                                                                                                                                
                                                                  
 COMMENT =             compiler for the Ferrum programming language                                                                                                                                                                         
  
 DISTNAME =            Ferrum-0.3.0                                                                                                                                                                                                         
 PKGNAME =             ferrum-0.3.0                               
 CATEGORIES =          lang devel                                                                                                                                                                                                           
                                                                  
 HOMEPAGE =            https://github.com/Ferrum-Language/Ferrum                                                                                                                                                                            
  
 MAINTAINER =          Tomy Martin Grinberg <tomy.martin.grinberg@gmail.com>                                                                                                                                                                
                                                                  
 # GNU General Public License v3.0                                                                                                                                                                                                          
 PERMIT_PACKAGE =      Yes                                        
                                                                                                                                                                                                                                            
 WANTLIB +=            c c++ m z                                  
                                                                                                                                                                                                                                            
 MASTER_SITES =                https://github.com/Ferrum-Language/Ferrum/archive/refs/tags/                                                                                                                                                 
 DISTFILES =           v0.3.0${EXTRACT_SUFX}
                                                                                                                                                                                                                                            
 # The GitHub archive extracts to Ferrum-0.3.0/ (capitalised repository name)                                                                                                                                                               
 WRKDIST =             ${WRKDIR}/Ferrum-0.3.0                                                                                                                                                                                               
                                                                                                                                                                                                                                            
 MODULES +=            devel/cmake                                
                                                                                                                                                                                                                                            
 BUILD_DEPENDS +=      devel/ninja                                                                                                                                                                                                          
  
 # Build only the compiler driver; skip the test suite                                                                                                                                                                                      
 CONFIGURE_ARGS +=             \                                  
       -DCMAKE_BUILD_TYPE=Release \                                                                                                                                                                                                         
       -DCMAKE_DISABLE_FIND_PACKAGE_LibEdit=TRUE                                                                                                                                                                                            
  
 # Build only the driver, not the tests                                                                                                                                                                                                     
 do-build:                                                        
       cd ${WRKBUILD} && cmake --build . --target ferrum -j${MAKE_JOBS}                                                                                                                                                                     
                                                                                                                                                                                                                                            
 do-install:
       ${INSTALL_PROGRAM} ${WRKBUILD}/ferrum ${PREFIX}/bin/ferrum                                                                                                                                                                           
       ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/ferrum                                                                                                                                                                                       
       ${INSTALL_DATA} ${WRKDIST}/LICENSE ${PREFIX}/share/doc/ferrum/COPYING                                                                                                                                                                
                                                                                                                                                                                                                                            
 .include <bsd.port.mk>                                                                                                                                                                                                                     
                                                                  
 --- lang/ferrum/DESCR ---                                                                                                                                                                                                                  
 Ferrum is a compiled, statically typed, memory-safe systems programming
 language named after the chemical symbol for iron (Fe).                                                                                                                                                                                    
                                                                                                                                                                                                                                            
 The compiler performs borrow checking and lifetime analysis at compile                                                                                                                                                                     
 time to prevent use-after-free and data races without a garbage                                                                                                                                                                            
 collector.  Code generation is handled by LLVM.                                                                                                                                                                                            
                                                                                                                                                                                                                                            
 --- lang/ferrum/pkg/PLIST ---                                                                                                                                                                                                              
 bin/ferrum                                                                                                                                                                                                                                 
 share/doc/ferrum/COPYING                                                                                                                                                                                                                   
                                                                  
 distinfo for v0.3.0.tar.gz:                                                                                                                                                                                                                
 SHA256 = 3a6f76e2c3a9cbb6b89910fca1d5d5c09f8074da2bbb233299e91c022e2f26d6
 SIZE   = 94231                                                                                                                                                                                                                             
                                                                                                                                                                                                                                            
 I understand if this is still not ready for inclusion. I am happy to fix                                                                                                                                                                   
 any remaining issues.                                                                                                                                                                                                                      
                                                                                                                                                                                                                                            
 Thank you for your patience.                                     

 Tomy Martin Grinberg

                 

No comments:

Post a Comment