[bug#76909] gnu: Add freeforth2.

Message ID 70c43b43bf8a94f403bda3f9a797018b264991f1.1741580343.git.iyzsong@member.fsf.org
State New
Headers
Series [bug#76909] gnu: Add freeforth2. |

Commit Message

King, Spencer via Guix-patches" via March 10, 2025, 4:19 a.m. UTC
  From: 宋文武 <iyzsong@member.fsf.org>

* gnu/packages/forth.scm (freeforth2): New variable.

Change-Id: I7f505a2f6ba9146008061778e582032c95b62298
---
 gnu/packages/forth.scm | 43 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)


base-commit: 9866d32e173050ba99dc520b0a4d5aacb85e3fa0
  

Comments

宋文武 March 11, 2025, 3:05 a.m. UTC | #1
Pushed, close.
  

Patch

diff --git a/gnu/packages/forth.scm b/gnu/packages/forth.scm
index c523887871..36f4ba5051 100644
--- a/gnu/packages/forth.scm
+++ b/gnu/packages/forth.scm
@@ -1,6 +1,6 @@ 
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
-;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2016, 2025 宋文武 <iyzsong@envs.net>
 ;;; Copyright © 2023 B. Wilson <elaexuotee@wilsonb.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -22,9 +22,11 @@  (define-module (gnu packages forth)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages vim))
 
@@ -63,6 +65,45 @@  (define-public gforth
     (home-page "https://www.gnu.org/software/gforth/")
     (license license:gpl3+)))
 
+(define-public freeforth2
+  (package
+    (name "freeforth2")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/dan4thewin/FreeForth2")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0nnbvqvv0q7mcy2paxknl97zk6vphflvqp3dy741p0kaghcpgli7"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:test-target "test"
+           #:system "i686-linux"        ;requires 32-bit gcc
+           #:make-flags
+           #~(list (string-append "PREFIX=" #$output)
+                   "LD=gcc -m32 -nostartfiles -lc")
+           #:phases
+           #~(modify-phases %standard-phases
+               (replace 'configure
+                 (lambda _
+                   (substitute* "fflin.boot"
+                     (("/usr/local/share/ff")
+                      (string-append #$output "/share/ff"))
+                     ;; Increase the size of ffpath for store path.
+                     (("46[+] create ffpath")
+                      "256+ create ffpath")))))))
+    (native-inputs (list fasm))
+    (synopsis "Lightweight x86 Forth")
+    (home-page "https://github.com/dan4thewin/FreeForth2")
+    (description
+     "FreeForth2 offers a lightweight Forth for x86 GNU/Linux that deftly
+blends assembly and Forth.")
+    (supported-systems '("i686-linux" "x86_64-linux"))
+    (license license:asl2.0)))
+
 (define-public smithforth
   (package
     (name "smithforth")