From dc9a5257a9aeeb159ceb6cfad816c335586758be Mon Sep 17 00:00:00 2001 From: Christopher Rodriguez Date: Wed, 10 Aug 2022 13:28:00 -0400 Subject: gnu: Add cbqn. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/bqn.scm (cbqn): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/bqn.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/bqn.scm b/gnu/packages/bqn.scm index 1462f2d964..c4e0f39efb 100644 --- a/gnu/packages/bqn.scm +++ b/gnu/packages/bqn.scm @@ -175,3 +175,50 @@ by APL.") (file-name (git-file-name "singeli-sources" commit)) (sha256 (base32 "1rr4l7ijzcg25n2igi1mzya6qllh5wsrf3m5i429rlgwv1fwvfji"))))) + +(define-public cbqn + (package + (inherit cbqn-bootstrap) + (name "cbqn") + (outputs '("out" "lib")) + (arguments + (list #:make-flags '(list "shared-o3" "o3n-singeli") + #:phases #~(modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'link-singeli + (lambda* (#:key inputs #:allow-other-keys) + (symlink #+singeli-sources "Singeli"))) + (add-before 'build 'generate-bytecode + (lambda* (#:key inputs #:allow-other-keys) + (system (string-append #+dbqn + "/bin/dbqn ./genRuntime " + #+bqn-sources)))) + (replace 'check + (lambda* (#:key inputs tests? #:allow-other-keys) + (when tests? + (system (string-append "./BQN -M 1000 \"" + #+bqn-sources + "/test/this.bqn\"")) + (map (lambda (x) + (system (string-append "./BQN ./test/" x + ".bqn"))) + '("cmp" "equal" "copy" "random")) + (system "make -C test/ffi")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((bin (string-append (assoc-ref outputs + "out") + "/bin")) + (lib (string-append (assoc-ref outputs + "lib") + "/lib"))) + (mkdir-p bin) + (copy-recursively "BQN" + (string-append bin "/bqn")) + (install-file "libcbqn.so" lib))))))) + (native-inputs (list dbqn + bqn-sources + singeli-sources + libffi + clang-toolchain + linux-libre-headers)))) -- cgit 1.4.1