[PATCH] gnu: Add cfunge.

  • Done
  • quality assurance status badge
Details
3 participants
  • Hendur Saga
  • Jakub Kądziołka
  • Leo Famulari
Owner
unassigned
Submitted by
Hendur Saga
Severity
normal

Debbugs page

Hendur Saga wrote 5 years ago
(address . guix-patches@gnu.org)
1926083374.1509159.1596819760388@mail.yahoo.com
I added a new file, esolangs.scm, because I could not find any other place to be more appropriate, for this and forthcoming packages.

- Hendursaga
Attachment: file
From 2d3277c651754178d42ed1edded50375b74dc992 Mon Sep 17 00:00:00 2001
From: Hendursaga <hendursaga@yahoo.com>
Date: Thu, 6 Aug 2020 18:43:20 +0000
Subject: [PATCH] gnu: Add cfunge.

* gnu/packages/esolangs.scm (cfunge): New variable.
---
gnu/packages/esolangs.scm | 49 +++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
create mode 100644 gnu/packages/esolangs.scm

Toggle diff (57 lines)
diff --git a/gnu/packages/esolangs.scm b/gnu/packages/esolangs.scm
new file mode 100644
index 0000000000..bc4918b226
--- /dev/null
+++ b/gnu/packages/esolangs.scm
@@ -0,0 +1,49 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Hendursaga <hendursaga@yahoo.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages esolangs)
+ #:use-module (gnu packages ncurses)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages))
+
+(define-public cfunge
+ (package
+ (name "cfunge")
+ (version "0.9.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/VorpalBlade/cfunge")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "18ir0h10vxdb5jb57w5hjbgi8spjxg9x2148agadhhmbhsja02m7"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f)) ; no make target 'test'
+ (inputs
+ `(("ncurses" ,ncurses)))
+ (home-page "https://github.com/VorpalBlade/cfunge")
+ (synopsis "Fast conforming Befunge93/98/109 interpreter in C")
+ (description "cfunge is a fast conforming Befunge93/98/109 interpreter written in C.
+It supports several fingerprints.")
+ (license license:gpl2+)))
--
2.28.0
Jakub Kądziołka wrote 5 years ago
(name . Hendur Saga)(address . hendursaga@yahoo.com)(address . guix-patches@gnu.org)
20200809205033.4x5kcm745rk4rdxr@gravity
On Fri, Aug 07, 2020 at 05:02:40PM +0000, Hendur Saga wrote:
Toggle quote (2 lines)
> I added a new file, esolangs.scm, because I could not find any other place to be more appropriate, for this and forthcoming packages.

Not a bad idea, though toys.scm somewhat fits. Please add the new file
to the list in gnu/local.mk, though.

Also, could you run your code through etc/indent-code.el?

Toggle quote (3 lines)
> + (arguments
> + '(#:tests? #f)) ; no make target 'test'

The repository does contain a tests/ folder, did you try running these?
You can check the rgbds package from assembly.scm for some inspiration
as to how you can handle a custom testsuite entrypoint.

Toggle quote (5 lines)
> + (inputs
> + `(("ncurses" ,ncurses)))
> + (home-page "https://github.com/VorpalBlade/cfunge")
> + (synopsis "Fast conforming Befunge93/98/109 interpreter in C")
> + (description "cfunge is a fast conforming Befunge93/98/109 interpreter written in C.
@command{cfunge}

Toggle quote (2 lines)
> +It supports several fingerprints.")

It would be nice to define what a fingerprint is, as even though there
was once a summer when I was fluent in Befunge, I still needed a longer
moment to recall what those are. How about this Texinfo markup?

@dfn{fingerprints} (opt-in language extensions identified by a
four-character code).

Toggle quote (2 lines)
> + (license license:gpl2+)))

COPYING and the headers in src/*.c (well, I checked diagnostic.c)
suggest that it's actually gpl3+, what gives?

Could you send an updated patch?

Regards,
Jakub Kądziołka

P.S. I tried to test the package by running this CGCC answer in it, but
it loops infinitely. I didn't have time to debug this, so I don't know
where the blame lies.

-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEE5Xa/ss9usT31cTO54xWnWEYTFWQFAl8wYZkACgkQ4xWnWEYT
FWSmow//fj5PsFScO8LV5chsSbUw2i7+Jn4zpwkEk8803upxHQCgxqRaDDj7AHd6
TCjA6t0jRlw3+nRH8jvyFaVIKFIXm+dUTGPCFWSUvktQjVPRSiOE2wHrjrh/nGg7
CwB3+YCChAVYY+r84/LhXBTAf7FZWWFSETLVnghfoeLYZp+57VNBpFc10DaA4Bh3
sg+w5i0kDJfgv4ihaEI0uiiodf+Bk1UWsbdo3bxKpVgjjyxIHWAXIotz++jrenGi
pAPnkLJ0zuErYgE3VphcfJYyHslCt80d5QKrWW0ExxD+tuXgfknZyz0iqYfVgIS6
ZA9vhAB6xtKhngdTyDsjWvq3aBLj41+tNMMdkOxe2uA4PsYrPOWQW4Atd69qQgSl
p1wn85IFCXCqoR219DCfBVcxFdj5YGyslmCNFzeNxg/aT6khCtoPIlxBrsMv6yT2
rpRvyCkdbV7OU3bGoY4a81lS7eeDVEhwNEDEIUOL53LaQMAQzcPzumsmCroRXTJE
B7JNIFl5y1tlRlKq56H0Wl3lbr2MoXmHu9nOb+TX/cffU+dzU1gD3o9MZY2F9XW5
4zwTJBzMbM/baFVsUsimrysEYIe4DH9X7ogsxI4JA/tqZv72FLVU3W1UdkrNqSIN
6IZG7V4hPFlBH+t3HSZEJNhvJ+e3YXp5i/bhtjbwzlqJHguRvS0=
=5l5N
-----END PGP SIGNATURE-----


Hendur Saga wrote 5 years ago
(name . Jakub Kądziołka)(address . kuba@kadziolka.net)(name . guix-patches@gnu.org)(address . guix-patches@gnu.org)
1155509361.2484992.1597512061958@mail.yahoo.com
Patch updated and attached.
Toggle quote (1 lines)
> The repository does contain a tests/ folder, did you try running these?
I've ran pretty much all the tests and quite frankly, they are manual, human-graded tests. There is no unified way to tell if a test passed, etc. That might be why there is no test target.
Toggle quote (1 lines)
> How about this Texinfo markup?
I modified your suggestion a little to more resemble the specs' language: http://quadium.net/funge/spec98.html
Toggle quote (1 lines)
> it's actually gpl3+, what gives?
Mea culpa. I mistyped that.
Toggle quote (1 lines)
> I don't know where the blame lies.
The tio.run links linked from those two Befunge-98 examples use the FBBI fingerprint, which currently isn't supported by cfunge. I tested a few examples from  https://esolangs.org/wiki/Befunge  andeverything seems to work fine.
On Sunday, August 9, 2020, 04:50:37 PM EDT, Jakub Kądziołka <kuba@kadziolka.net> wrote:
On Fri, Aug 07, 2020 at 05:02:40PM +0000, Hendur Saga wrote:
Toggle quote (2 lines)
> I added a new file, esolangs.scm, because I could not find any other place to be more appropriate, for this and forthcoming packages.

Not a bad idea, though toys.scm somewhat fits. Please add the new file
to the list in gnu/local.mk, though.

Also, could you run your code through etc/indent-code.el?

Toggle quote (3 lines)
> +  (arguments
> +    '(#:tests? #f)) ; no make target 'test'

The repository does contain a tests/ folder, did you try running these?
You can check the rgbds package from assembly.scm for some inspiration
as to how you can handle a custom testsuite entrypoint.

Toggle quote (5 lines)
> +  (inputs
> +    `(("ncurses" ,ncurses)))
> +  (home-page "https://github.com/VorpalBlade/cfunge")
> +  (synopsis "Fast conforming Befunge93/98/109 interpreter in C")
> +  (description "cfunge is a fast conforming Befunge93/98/109 interpreter written in C.
          @command{cfunge}

Toggle quote (2 lines)
> +It supports several fingerprints.")

It would be nice to define what a fingerprint is, as even though there
was once a summer when I was fluent in Befunge, I still needed a longer
moment to recall what those are. How about this Texinfo markup?

@dfn{fingerprints} (opt-in language extensions identified by a
four-character code).

Toggle quote (2 lines)
> +  (license license:gpl2+)))

COPYING and the headers in src/*.c (well, I checked diagnostic.c)
suggest that it's actually gpl3+, what gives?

Could you send an updated patch?

Regards,
Jakub Kądziołka

P.S. I tried to test the package by running this CGCC answer in it, but
it loops infinitely. I didn't have time to debug this, so I don't know
where the blame lies.

Attachment: file
From a30d2ce2870964c78c82469750e5bc8a34a0a477 Mon Sep 17 00:00:00 2001
From: Hendursaga <hendursaga@yahoo.com>
Date: Sat, 15 Aug 2020 17:05:57 +0000
Subject: [PATCH] gnu: Add cfunge.

* gnu/packages/esolangs.scm: New file.
* gnu/packages/esolangs.scm (cfunge): New variable.
* gnu/local.mk: Add esolangs.scm.
---
gnu/local.mk | 1 +
gnu/packages/esolangs.scm | 50 +++++++++++++++++++++++++++++++++++++++
2 files changed, 51 insertions(+)
create mode 100644 gnu/packages/esolangs.scm

Toggle diff (70 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 27dcf965ca..2e320512d8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -197,6 +197,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/enlightenment.scm \
%D%/packages/entr.scm \
%D%/packages/erlang.scm \
+ %D%/packages/esolangs.scm \
%D%/packages/fabric-management.scm \
%D%/packages/fcitx.scm \
%D%/packages/figlet.scm \
diff --git a/gnu/packages/esolangs.scm b/gnu/packages/esolangs.scm
new file mode 100644
index 0000000000..f9848799e3
--- /dev/null
+++ b/gnu/packages/esolangs.scm
@@ -0,0 +1,50 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Hendursaga <hendursaga@yahoo.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages esolangs)
+ #:use-module (gnu packages ncurses)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages))
+
+(define-public cfunge
+ (package
+ (name "cfunge")
+ (version "0.9.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/VorpalBlade/cfunge")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "18ir0h10vxdb5jb57w5hjbgi8spjxg9x2148agadhhmbhsja02m7"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f)) ; no make target 'test'
+ (inputs
+ `(("ncurses" ,ncurses)))
+ (home-page "https://github.com/VorpalBlade/cfunge")
+ (synopsis "Fast conforming Befunge93/98/109 interpreter in C")
+ (description "@command{cfunge} is a fast conforming Befunge93/98/109 interpreter
+written in C. It supports several @dfn{fingerprints} (opt-in language extensions
+identified by unique ID codes).")
+ (license license:gpl3+)))
--
2.28.0
Leo Famulari wrote 4 years ago
Re: [bug#42751] [PATCH] gnu: Add cfunge.
(name . Hendur Saga via Guix-patches via)(address . guix-patches@gnu.org)
X9kyWQursWLbM8pR@jasmine.lan
On Sat, Aug 15, 2020 at 05:21:01PM +0000, Hendur Saga via Guix-patches via wrote:
Toggle quote (4 lines)
> Patch updated and attached.
> > The repository does contain a tests/ folder, did you try running these?
> I've ran pretty much all the tests and quite frankly, they are manual, human-graded tests. There is no unified way to tell if a test passed, etc. That might be why there is no test target.

Okay, I rewrote the comment to explain this.

Toggle quote (3 lines)
> > it's actually gpl3+, what gives?
> Mea culpa. I mistyped that.

It's GPL-3 only. The copyright owner has reserved the right to relicense
the software under later versions of the GPL:

------
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at the proxy's option) any later version. Arvid Norlander is a
* proxy who can decide which future versions of the GNU General Public
* License can be used.
------

source:

Toggle quote (9 lines)
> From a30d2ce2870964c78c82469750e5bc8a34a0a477 Mon Sep 17 00:00:00 2001
> From: Hendursaga <hendursaga@yahoo.com>
> Date: Sat, 15 Aug 2020 17:05:57 +0000
> Subject: [PATCH] gnu: Add cfunge.
>
> * gnu/packages/esolangs.scm: New file.
> * gnu/packages/esolangs.scm (cfunge): New variable.
> * gnu/local.mk: Add esolangs.scm.

Thanks! I tweaked the commit message and pushed as
0510ca15aa395ddd3daf0720b541662671bf14c3

Toggle quote (77 lines)
> ---
> gnu/local.mk | 1 +
> gnu/packages/esolangs.scm | 50 +++++++++++++++++++++++++++++++++++++++
> 2 files changed, 51 insertions(+)
> create mode 100644 gnu/packages/esolangs.scm
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 27dcf965ca..2e320512d8 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -197,6 +197,7 @@ GNU_SYSTEM_MODULES = \
> %D%/packages/enlightenment.scm \
> %D%/packages/entr.scm \
> %D%/packages/erlang.scm \
> + %D%/packages/esolangs.scm \
> %D%/packages/fabric-management.scm \
> %D%/packages/fcitx.scm \
> %D%/packages/figlet.scm \
> diff --git a/gnu/packages/esolangs.scm b/gnu/packages/esolangs.scm
> new file mode 100644
> index 0000000000..f9848799e3
> --- /dev/null
> +++ b/gnu/packages/esolangs.scm
> @@ -0,0 +1,50 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright ?? 2020 Hendursaga <hendursaga@yahoo.com>
> +;;;
> +;;; This file is part of GNU Guix.
> +;;;
> +;;; GNU Guix is free software; you can redistribute it and/or modify it
> +;;; under the terms of the GNU General Public License as published by
> +;;; the Free Software Foundation; either version 3 of the License, or (at
> +;;; your option) any later version.
> +;;;
> +;;; GNU Guix is distributed in the hope that it will be useful, but
> +;;; WITHOUT ANY WARRANTY; without even the implied warranty of
> +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +;;; GNU General Public License for more details.
> +;;;
> +;;; You should have received a copy of the GNU General Public License
> +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
> +
> +(define-module (gnu packages esolangs)
> + #:use-module (gnu packages ncurses)
> + #:use-module (guix build-system cmake)
> + #:use-module (guix download)
> + #:use-module (guix git-download)
> + #:use-module ((guix licenses) #:prefix license:)
> + #:use-module (guix packages))
> +
> +(define-public cfunge
> + (package
> + (name "cfunge")
> + (version "0.9.0")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/VorpalBlade/cfunge")
> + (commit version)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "18ir0h10vxdb5jb57w5hjbgi8spjxg9x2148agadhhmbhsja02m7"))))
> + (build-system cmake-build-system)
> + (arguments
> + '(#:tests? #f)) ; no make target 'test'
> + (inputs
> + `(("ncurses" ,ncurses)))
> + (home-page "https://github.com/VorpalBlade/cfunge")
> + (synopsis "Fast conforming Befunge93/98/109 interpreter in C")
> + (description "@command{cfunge} is a fast conforming Befunge93/98/109 interpreter
> +written in C. It supports several @dfn{fingerprints} (opt-in language extensions
> +identified by unique ID codes).")
> + (license license:gpl3+)))
> --
> 2.28.0
>
?
Your comment

This issue is archived.

To comment on this conversation send an email to 42751@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 42751
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help