GNU bug report logs -
#65934
[PATCH] gnu: Add smithforth.
Previous Next
Reported by: "B. Wilson" <elaexuotee <at> wilsonb.com>
Date: Thu, 14 Sep 2023 05:28:02 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 65934 in the body.
You can then email your comments to 65934 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#65934
; Package
guix-patches
.
(Thu, 14 Sep 2023 05:28:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
"B. Wilson" <elaexuotee <at> wilsonb.com>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Thu, 14 Sep 2023 05:28:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/forth (smithforth): New variable.
---
gnu/packages/forth.scm | 55 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 54 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/forth.scm b/gnu/packages/forth.scm
index 8cb6ac8391..9910243ac1 100644
--- a/gnu/packages/forth.scm
+++ b/gnu/packages/forth.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Nikita <nikita <at> n0.is>
;;; Copyright © 2016 Sou Bunnbu <iyzsong <at> gmail.com>
+;;; Copyright © 2023 B. Wilson <elaexuotee <at> wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,7 +23,9 @@ (define-module (gnu packages forth)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
- #:use-module (gnu packages m4))
+ #:use-module (guix build-system trivial)
+ #:use-module (gnu packages m4)
+ #:use-module (gnu packages vim))
(define-public gforth
(package
@@ -58,3 +61,53 @@ (define-public gforth
included.")
(home-page "https://www.gnu.org/software/gforth/")
(license license:gpl3+)))
+
+(define-public smithforth
+ (package
+ (name "smithforth")
+ (version "220711")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://dacvs.neocities.org/SF/SForth"
+ version "dmp.txt"))
+ (sha256
+ (base32 "0a39pv7529llsa3f48fmvwvlcp3f9v8qkn5ziw2l6kxf0qvli3lm"))))
+ (build-system trivial-build-system)
+ (inputs
+ `(("system.fs"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "https://dacvs.neocities.org/SF/system"
+ version "fs.txt"))
+ (sha256
+ (base32
+ "17v1pp64s6n8q8w3kg48nd7zdcx2208y4svr5fpfms5lkyzg7z1m"))))))
+ (native-inputs (list xxd))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 textual-ports))
+ (let* ((sforth.dmp (assoc-ref %build-inputs "source"))
+ (system.fs (assoc-ref %build-inputs "system.fs"))
+ (xxd (string-append (assoc-ref %build-inputs "xxd")
+ "/bin/xxd"))
+ (bin (string-append (assoc-ref %outputs "out") "/bin")))
+ (copy-file sforth.dmp "sforth.dmp")
+ (substitute* "sforth.dmp" (("#.*$") "\n"))
+ (with-output-to-file "sforth"
+ (lambda _
+ (invoke xxd "-p" "-r" "sforth.dmp")
+ (call-with-input-file system.fs
+ (lambda (port) (display (get-string-all port)))))
+ #:binary #t)
+ (chmod "sforth" #o755)
+ (install-file "sforth" bin)))))
+ (home-page "https://dacvs.neocities.org/SF/")
+ (synopsis "Forth programming language for x86-64 desktop computers")
+ (description "SmithForth is an implementation of the Forth programming
+language for x86-64 desktop computers. SmithForth is a text interpreter that
+runs in a Linux text console.")
+ (license license:expat-0)))
--
2.41.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#65934
; Package
guix-patches
.
(Thu, 05 Oct 2023 12:48:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 65934 <at> debbugs.gnu.org (full text, mbox):
Hi,
"B. Wilson" <elaexuotee <at> wilsonb.com> skribis:
> * gnu/packages/forth (smithforth): New variable.
[…]
> +(define-public smithforth
> + (package
> + (name "smithforth")
> + (version "220711")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://dacvs.neocities.org/SF/SForth"
> + version "dmp.txt"))
> + (sha256
> + (base32 "0a39pv7529llsa3f48fmvwvlcp3f9v8qkn5ziw2l6kxf0qvli3lm"))))
> + (build-system trivial-build-system)
> + (inputs
> + `(("system.fs"
> + ,(origin
> + (method url-fetch)
> + (uri (string-append "https://dacvs.neocities.org/SF/system"
> + version "fs.txt"))
> + (sha256
> + (base32
> + "17v1pp64s6n8q8w3kg48nd7zdcx2208y4svr5fpfms5lkyzg7z1m"))))))
Is this a binary VM image dump?
If so, is there source available, a way to bootstrap it?
> + (native-inputs (list xxd))
> + (arguments
> + `(#:modules ((guix build utils))
> + #:builder
> + (begin
> + (use-modules (guix build utils)
> + (ice-9 textual-ports))
> + (let* ((sforth.dmp (assoc-ref %build-inputs "source"))
> + (system.fs (assoc-ref %build-inputs "system.fs"))
Please use a gexp here for #:builder and instead of the (assoc-ref …)
expressions above, use:
#~(begin
;; …
(let* ((sforth.dmp #$(package-source this-package))
(system.fs #$(origin …)))
…))
> + (home-page "https://dacvs.neocities.org/SF/")
> + (synopsis "Forth programming language for x86-64 desktop computers")
Please add a ‘supported-systems’ field so the package is clearly marked
as unsupported on architectures other than x86_64.
Thanks,
Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#65934
; Package
guix-patches
.
(Thu, 05 Oct 2023 14:37:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 65934 <at> debbugs.gnu.org (full text, mbox):
Thanks for taking a look.
> Is this a binary VM image dump?
>
> If so, is there source available, a way to bootstrap it?
The binary is the source, per se. The author hand-wrote x86_64 opcodes in hex,
which is what dmp.txt contains. This is "compiled" by using xxd to write those
bytes out to a file. Then system.fs is just a blob of Forth source that gets
appended to the binary.
It's kind of magical that this scheme works at all, but that's Forth for ya.
> Please use a gexp here for #:builder and instead of the (assoc-ref …)
> expressions above, use:
>
> #~(begin
> ;; …
> (let* ((sforth.dmp #$(package-source this-package))
> (system.fs #$(origin …)))
> …))
>
> > + (home-page "https://dacvs.neocities.org/SF/")
> > + (synopsis "Forth programming language for x86-64 desktop computers")
Ah, nice. Thanks. Will do.
> Please add a ‘supported-systems’ field so the package is clearly marked
> as unsupported on architectures other than x86_64.
Perfect. I didn't realize we had such a field. Thanks!
Information forwarded
to
guix-patches <at> gnu.org
:
bug#65934
; Package
guix-patches
.
(Thu, 05 Oct 2023 15:03:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 65934 <at> debbugs.gnu.org (full text, mbox):
[0001-gnu-Add-smithforth.patch (text/x-patch, attachment)]
Reply sent
to
Ludovic Courtès <ludo <at> gnu.org>
:
You have taken responsibility.
(Sun, 08 Oct 2023 21:39:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
"B. Wilson" <elaexuotee <at> wilsonb.com>
:
bug acknowledged by developer.
(Sun, 08 Oct 2023 21:39:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 65934-done <at> debbugs.gnu.org (full text, mbox):
Hi,
"B. Wilson" <elaexuotee <at> wilsonb.com> skribis:
> From de5655662415acb600f9074c6efe70d3949ac21e Mon Sep 17 00:00:00 2001
> From: "B. Wilson" <elaexuotee <at> wilsonb.com>
> Date: Thu, 14 Sep 2023 14:26:49 +0900
> Subject: [PATCH] gnu: Add smithforth.
>
> * gnu/packages/forth (smithforth): New variable.
Applied, thanks!
Ludo’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 06 Nov 2023 12:24:06 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 184 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.