Commit | Line | Data |
---|---|---|
0510ca15 | 1 | ;;; GNU Guix --- Functional package management for GNU |
fef91c0c LP |
2 | ;;; Copyright © 2016 Nikita <nikita@n0.is> |
3 | ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> | |
0510ca15 | 4 | ;;; Copyright © 2020 Hendursaga <hendursaga@yahoo.com> |
142f8713 | 5 | ;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at> |
0510ca15 H |
6 | ;;; |
7 | ;;; This file is part of GNU Guix. | |
8 | ;;; | |
9 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
10 | ;;; under the terms of the GNU General Public License as published by | |
11 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
12 | ;;; your option) any later version. | |
13 | ;;; | |
14 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
15 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | ;;; GNU General Public License for more details. | |
18 | ;;; | |
19 | ;;; You should have received a copy of the GNU General Public License | |
20 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
21 | ||
22 | (define-module (gnu packages esolangs) | |
142f8713 LP |
23 | #:use-module (gnu packages) |
24 | #:use-module (gnu packages bison) | |
25 | #:use-module (gnu packages flex) | |
0510ca15 | 26 | #:use-module (gnu packages ncurses) |
fef91c0c LP |
27 | #:use-module (gnu packages python) |
28 | #:use-module (gnu packages readline) | |
0510ca15 | 29 | #:use-module (guix build-system cmake) |
142f8713 LP |
30 | #:use-module (guix build-system copy) |
31 | #:use-module (guix build-system gnu) | |
0510ca15 H |
32 | #:use-module (guix download) |
33 | #:use-module (guix git-download) | |
34 | #:use-module ((guix licenses) #:prefix license:) | |
35 | #:use-module (guix packages)) | |
36 | ||
37 | (define-public cfunge | |
38 | (package | |
39 | (name "cfunge") | |
40 | (version "0.9.0") | |
41 | (source (origin | |
42 | (method git-fetch) | |
43 | (uri (git-reference | |
44 | (url "https://github.com/VorpalBlade/cfunge") | |
45 | (commit version))) | |
46 | (file-name (git-file-name name version)) | |
47 | (sha256 | |
48 | (base32 | |
49 | "18ir0h10vxdb5jb57w5hjbgi8spjxg9x2148agadhhmbhsja02m7")))) | |
50 | (build-system cmake-build-system) | |
51 | (arguments | |
52 | ;; The tests are not designed to be run and evaluated automatically. | |
53 | '(#:tests? #f)) | |
54 | (inputs | |
55 | `(("ncurses" ,ncurses))) | |
56 | (home-page "https://github.com/VorpalBlade/cfunge") | |
57 | (synopsis "Fast conforming Befunge93/98/109 interpreter in C") | |
58 | (description "@command{cfunge} is a fast conforming Befunge93/98/109 interpreter | |
59 | written in C. It supports several @dfn{fingerprints} (opt-in language extensions | |
60 | identified by unique ID codes).") | |
61 | (license license:gpl3))) | |
142f8713 | 62 | |
fef91c0c LP |
63 | (define-public lolcode-lci |
64 | (package | |
65 | (name "lolcode-lci") | |
66 | (version "0.11.2") | |
67 | (source | |
68 | (origin | |
69 | (method git-fetch) | |
70 | (uri (git-reference | |
71 | (url "https://github.com/justinmeza/lci") | |
72 | (commit (string-append "v" version)))) | |
73 | (file-name (git-file-name name version)) | |
74 | (sha256 | |
75 | (base32 "0syw60b93iajgh91ffchirwwhm2kix2753ibx845kyrhzggmdh2l")))) | |
76 | (build-system cmake-build-system) | |
77 | (inputs | |
78 | `(("readline" ,readline))) | |
79 | (native-inputs | |
80 | `(("python-2" ,python-2))) ; for the tests | |
81 | (synopsis "LOLCODE interpreter written in C") | |
82 | (description | |
83 | "@code{lci} is a LOLCODE interpreter written in C and is designed to be | |
84 | correct, portable, fast, and precisely documented. | |
85 | @enumerate | |
86 | @item correct: Every effort has been made to test lci's conformance to the | |
87 | LOLCODE language specification. Unit tests come packaged with the lci source code. | |
88 | @item portable: lci follows the widely ported ANSI C specification allowing it | |
89 | to compile on a broad range of systems. | |
90 | @item fast: Much effort has gone into producing simple and efficient code | |
91 | whenever possible to the extent that the above points are not compromized. | |
92 | @end enumerate") | |
93 | (home-page "http://lolcode.org/") | |
94 | (license license:gpl3+))) | |
95 | ||
142f8713 LP |
96 | (define-public shakespeare-spl |
97 | (package | |
98 | (name "shakespeare-spl") | |
99 | (version "1.2.1") | |
100 | (source (origin | |
101 | (method url-fetch) | |
102 | (uri (string-append "mirror://sourceforge/shakespearelang/spl-" | |
103 | version ".tar.gz")) | |
104 | (sha256 | |
105 | (base32 | |
106 | "1lxpfhv01kcwy4l4xgx7j765g8g0v74jns0cr908nfw55h5fy1hj")) | |
107 | (patches | |
108 | (search-patches | |
109 | "shakespeare-spl-fix-grammar.patch")))) | |
110 | (build-system copy-build-system) | |
111 | (arguments | |
112 | `(#:imported-modules (,@%gnu-build-system-modules | |
113 | (guix build copy-build-system)) | |
114 | #:modules ((guix build copy-build-system) | |
115 | ((guix build gnu-build-system) #:prefix gnu:) | |
116 | (guix build utils)) | |
117 | #:install-plan '(("spl/bin" "bin") | |
118 | ("spl/lib" "lib") | |
119 | ("spl/include" "include")) | |
120 | #:phases | |
121 | (modify-phases %standard-phases | |
122 | (add-before 'install 'build | |
123 | (assoc-ref gnu:%standard-phases 'build))))) | |
124 | (native-inputs | |
125 | `(("bison" ,bison) | |
126 | ("flex" ,flex))) | |
127 | (home-page "http://shakespearelang.sourceforge.net/") | |
128 | (synopsis "Write programs like Shakespearean plays") | |
129 | (description "Shakespeare is a programming language with the design goal | |
130 | of making programs read like plays. The characters in the play are variables. | |
131 | If you want to assign a character, let's say Juliet, a positive value, you put | |
132 | her and another character on the stage and let that character praise Juliet.") | |
133 | (license license:gpl2+))) |