From patchwork Wed Oct 31 06:05:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alex Vong X-Patchwork-Id: 59 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id B57FC1676A; Wed, 31 Oct 2018 06:06:16 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id C743F16761 for ; Wed, 31 Oct 2018 06:06:15 +0000 (GMT) Received: from localhost ([::1]:57489 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjdv-00027G-6I for patchwork@mira.cbaines.net; Wed, 31 Oct 2018 02:06:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56674) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjdp-000275-NN for guix-patches@gnu.org; Wed, 31 Oct 2018 02:06:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHjdk-0007yH-Vi for guix-patches@gnu.org; Wed, 31 Oct 2018 02:06:09 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:51905) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHjdi-0007ww-4o for guix-patches@gnu.org; Wed, 31 Oct 2018 02:06:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gHjdh-0006ai-V5 for guix-patches@gnu.org; Wed, 31 Oct 2018 02:06:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33215] [PATCH 01/11] gnu: clojure: Move from java to lisp. References: <87muquhcw3.fsf@gmail.com> In-Reply-To: <87muquhcw3.fsf@gmail.com> Resent-From: Alex Vong Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 31 Oct 2018 06:06:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33215 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33215@debbugs.gnu.org Received: via spool by 33215-submit@debbugs.gnu.org id=B33215.154096595125320 (code B ref 33215); Wed, 31 Oct 2018 06:06:01 +0000 Received: (at 33215) by debbugs.gnu.org; 31 Oct 2018 06:05:51 +0000 Received: from localhost ([127.0.0.1]:56163 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjdW-0006aJ-Vr for submit@debbugs.gnu.org; Wed, 31 Oct 2018 02:05:51 -0400 Received: from mail-pf1-f179.google.com ([209.85.210.179]:45465) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjdU-0006a6-Gu for 33215@debbugs.gnu.org; Wed, 31 Oct 2018 02:05:49 -0400 Received: by mail-pf1-f179.google.com with SMTP id v5-v6so2166079pfm.12 for <33215@debbugs.gnu.org>; Tue, 30 Oct 2018 23:05:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:user-agent:mime-version; bh=RKwMRyRsjXVjZa8OyjmAt9PsjQpsrG0WpdzuvPJrMTg=; b=SV3rhNsA0wUWo+9gN8TDOTUDkn6TnmxF/L14Wre4a06MrQETVsmfewqBwMv3WN0Hjj B9xcPANCLU5o+PdWwOL/Q1aKYzj2yxtXfba/b6DWTKmENbPJ4/xayam9CHWluB9ipqLI JsPPVu7YI0unfGeR5yodoSyueI0QleMuMlxsO5lYTtjgNNaXFWTkNX3bh3YhSP1xIlzN 27bAda92pJAlA3JoMrKgl9j6N8p77aoZXz4oEIH8a/WnKXWnYfjgN0A1RYj3PMa6T9uX LVOfHZ8Tmpmnsd3bdpfNZuXxZIbDEipd/DJHIReUGLAaR4Y87qZExzW8K+O0TNG4dAtw gr9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :mime-version; bh=RKwMRyRsjXVjZa8OyjmAt9PsjQpsrG0WpdzuvPJrMTg=; b=VLJ+Dieh743yQTqLl3agSB3ADbx7L653XxosYAIPPW24MKojZpnuN+rtJJiDXexjbq winTa1VniIwFbqg+SaLf9r2IeG3KIgVBgjGbXwLqHEE9WfHt94UA9soITEsTbDHTvwf0 4kfb5owbEmJ8JLfBnTGnV6FDeixbxMQ2RO0kB+emc7Md8N/ZVTE8nXJiS2hUO1348d0n AiVXtFpolRDy+otjdjfc02fXlE3pmP3y5UUJHTp9Xe6Mn9jGIpF8VL2EbImC7Zlo6Htl jfH/6vaWZaBRjsVZ0wPptHz7wlQZicktXjJfj0AwfWVL64vj8emRh7b08rxoZAq3Aih0 jVmA== X-Gm-Message-State: AGRZ1gJ5LQIIPl3GOBNlS//WuHPTJqpIdeE+bP4OGopYORqYAjLu/XIf oD/rCZUoIhej8Bj9tOTIbBU= X-Google-Smtp-Source: AJdET5f3TUvbB+fWvi/v/svwR7JkMjO0m2QTCGuMTKvbfUzidngMNcI/loMWMf0w70dGeTGKp31I3Q== X-Received: by 2002:a63:4c6:: with SMTP id 189mr1808224pge.391.1540965942769; Tue, 30 Oct 2018 23:05:42 -0700 (PDT) Received: from debian (42-3-197-089.static.netvigator.com. [42.3.197.89]) by smtp.gmail.com with ESMTPSA id r81-v6sm59217536pfa.110.2018.10.30.23.05.41 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 30 Oct 2018 23:05:42 -0700 (PDT) From: Alex Vong Date: Wed, 31 Oct 2018 14:05:37 +0800 Message-ID: <87in1ihcr2.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexvong1995@gmail.com Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From 49dd56fa81666077fe50b05e46228c0734201d1c Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Fri, 12 Oct 2018 17:58:00 +0800 Subject: [PATCH 01/11] gnu: clojure: Move from java to lisp. * gnu/packages/java.scm (clojure): Move from here... * gnu/packages/lisp.scm (clojure): ...to here. --- gnu/packages/java.scm | 145 ----------------------------------------- gnu/packages/lisp.scm | 147 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+), 145 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index f6d72edee..cea3c4e33 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1803,151 +1803,6 @@ new Date();")) `(("java-junit" ,java-junit) ,@(package-inputs ant/java8))))) -(define-public clojure - (let* ((remove-archives '(begin - (for-each delete-file - (find-files "." ".*\\.(jar|zip)")) - #t)) - (submodule (lambda (prefix version hash) - (origin - (method url-fetch) - (uri (string-append "https://github.com/clojure/" - prefix version ".tar.gz")) - (sha256 (base32 hash)) - (modules '((guix build utils))) - (snippet remove-archives))))) - (package - (name "clojure") - (version "1.9.0") - (source - (origin - (method url-fetch) - (uri - (string-append "https://github.com/clojure/clojure/archive/clojure-" - version ".tar.gz")) - (sha256 - (base32 "0xjbzcw45z32vsn9pifp7ndysjzqswp5ig0jkjpivigh2ckkdzha")) - (modules '((guix build utils))) - (snippet remove-archives))) - (build-system ant-build-system) - (arguments - `(#:modules ((guix build ant-build-system) - (guix build utils) - (ice-9 ftw) - (ice-9 regex) - (srfi srfi-1) - (srfi srfi-26)) - #:test-target "test" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'unpack-submodule-sources - (lambda* (#:key inputs #:allow-other-keys) - (for-each - (lambda (name) - (mkdir-p name) - (with-directory-excursion name - (invoke "tar" - ;; Use xz for repacked tarball. - "--xz" - "--extract" - "--verbose" - "--file" (assoc-ref inputs name) - "--strip-components=1")) - (copy-recursively (string-append name "/src/main/clojure/") - "src/clj/")) - '("core-specs-alpha-src" - "data-generators-src" - "spec-alpha-src" - "test-check-src" - "test-generative-src" - "tools-namespace-src")) - #t)) - (add-after 'unpack 'fix-manifest-classpath - (lambda _ - (substitute* "build.xml" - (("") "")) - #t)) - ;; The javadoc target is not built by default. - (add-after 'build 'build-doc - (lambda _ - (invoke "ant" "javadoc"))) - ;; Needed since no install target is provided. - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((java-dir (string-append (assoc-ref outputs "out") - "/share/java/"))) - ;; Install versioned to avoid collisions. - (install-file (string-append "clojure-" ,version ".jar") - java-dir) - #t))) - ;; Needed since no install-doc target is provided. - (add-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (let ((doc-dir (string-append (assoc-ref outputs "out") - "/share/doc/clojure-" - ,version "/"))) - (copy-recursively "doc/clojure" doc-dir) - (copy-recursively "target/javadoc/" - (string-append doc-dir "javadoc/")) - (for-each (cut install-file <> doc-dir) - (filter (cut string-match - ".*\\.(html|markdown|md|txt)" - <>) - (scandir "./"))) - #t)))))) - ;; The native-inputs below are needed to run the tests. - (native-inputs - `(("core-specs-alpha-src" - ,(submodule "core.specs.alpha/archive/core.specs.alpha-" - "0.1.24" - "0v2a0svf1ar2y42ajxwsjr7zmm5j7pp2zwrd2jh3k7xzd1p9x1fv")) - ("data-generators-src" - ,(submodule "data.generators/archive/data.generators-" - "0.1.2" - "0kki093jp4ckwxzfnw8ylflrfqs8b1i1wi9iapmwcsy328dmgzp1")) - ("spec-alpha-src" - ,(submodule "spec.alpha/archive/spec.alpha-" - "0.1.143" - "00alf0347licdn773w2jarpllyrbl52qz4d8mw61anjksacxylzz")) - ("test-check-src" - ,(submodule "test.check/archive/test.check-" - "0.9.0" - "0p0mnyhr442bzkz0s4k5ra3i6l5lc7kp6ajaqkkyh4c2k5yck1md")) - ("test-generative-src" - ,(submodule "test.generative/archive/test.generative-" - "0.5.2" - "1pjafy1i7yblc7ixmcpfq1lfbyf3jaljvkgrajn70sws9xs7a9f8")) - ("tools-namespace-src" - ,(submodule "tools.namespace/archive/tools.namespace-" - "0.2.11" - "10baak8v0hnwz2hr33bavshm7y49mmn9zsyyms1dwjz45p5ymhy0")))) - (home-page "https://clojure.org/") - (synopsis "Lisp dialect running on the JVM") - (description "Clojure is a dynamic, general-purpose programming language, -combining the approachability and interactive development of a scripting -language with an efficient and robust infrastructure for multithreaded -programming. Clojure is a compiled language, yet remains completely dynamic -– every feature supported by Clojure is supported at runtime. Clojure -provides easy access to the Java frameworks, with optional type hints and type -inference, to ensure that calls to Java can avoid reflection. - -Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy -and a powerful macro system. Clojure is predominantly a functional programming -language, and features a rich set of immutable, persistent data structures. -When mutable state is needed, Clojure offers a software transactional memory -system and reactive Agent system that ensure clean, correct, multithreaded -designs.") - ;; Clojure is licensed under EPL1.0 - ;; ASM bytecode manipulation library is licensed under BSD-3 - ;; Guava Murmur3 hash implementation is licensed under APL2.0 - ;; src/clj/repl.clj is licensed under CPL1.0 - ;; - ;; See readme.html or readme.txt for details. - (license (list license:epl1.0 - license:bsd-3 - license:asl2.0 - license:cpl1.0))))) - (define-public javacc-4 (package (name "javacc") diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index c32380969..93851c1a8 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017, 2018 Efraim Flashner ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2018 Benjamin Slade +;;; Copyright © 2018 Alex Vong ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,6 +35,7 @@ #:use-module (guix hg-download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system ant) #:use-module (guix build-system asdf) #:use-module (guix build-system trivial) #:use-module (gnu packages admin) @@ -559,6 +561,151 @@ interface.") (license (list license:lgpl2.1 license:clarified-artistic)))) ;TRIVIAL-LDAP package +(define-public clojure + (let* ((remove-archives '(begin + (for-each delete-file + (find-files "." ".*\\.(jar|zip)")) + #t)) + (submodule (lambda (prefix version hash) + (origin + (method url-fetch) + (uri (string-append "https://github.com/clojure/" + prefix version ".tar.gz")) + (sha256 (base32 hash)) + (modules '((guix build utils))) + (snippet remove-archives))))) + (package + (name "clojure") + (version "1.9.0") + (source + (origin + (method url-fetch) + (uri + (string-append "https://github.com/clojure/clojure/archive/clojure-" + version ".tar.gz")) + (sha256 + (base32 "0xjbzcw45z32vsn9pifp7ndysjzqswp5ig0jkjpivigh2ckkdzha")) + (modules '((guix build utils))) + (snippet remove-archives))) + (build-system ant-build-system) + (arguments + `(#:modules ((guix build ant-build-system) + (guix build utils) + (ice-9 ftw) + (ice-9 regex) + (srfi srfi-1) + (srfi srfi-26)) + #:test-target "test" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-submodule-sources + (lambda* (#:key inputs #:allow-other-keys) + (for-each + (lambda (name) + (mkdir-p name) + (with-directory-excursion name + (invoke "tar" + ;; Use xz for repacked tarball. + "--xz" + "--extract" + "--verbose" + "--file" (assoc-ref inputs name) + "--strip-components=1")) + (copy-recursively (string-append name "/src/main/clojure/") + "src/clj/")) + '("core-specs-alpha-src" + "data-generators-src" + "spec-alpha-src" + "test-check-src" + "test-generative-src" + "tools-namespace-src")) + #t)) + (add-after 'unpack 'fix-manifest-classpath + (lambda _ + (substitute* "build.xml" + (("") "")) + #t)) + ;; The javadoc target is not built by default. + (add-after 'build 'build-doc + (lambda _ + (invoke "ant" "javadoc"))) + ;; Needed since no install target is provided. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((java-dir (string-append (assoc-ref outputs "out") + "/share/java/"))) + ;; Install versioned to avoid collisions. + (install-file (string-append "clojure-" ,version ".jar") + java-dir) + #t))) + ;; Needed since no install-doc target is provided. + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc-dir (string-append (assoc-ref outputs "out") + "/share/doc/clojure-" + ,version "/"))) + (copy-recursively "doc/clojure" doc-dir) + (copy-recursively "target/javadoc/" + (string-append doc-dir "javadoc/")) + (for-each (cut install-file <> doc-dir) + (filter (cut string-match + ".*\\.(html|markdown|md|txt)" + <>) + (scandir "./"))) + #t)))))) + ;; The native-inputs below are needed to run the tests. + (native-inputs + `(("core-specs-alpha-src" + ,(submodule "core.specs.alpha/archive/core.specs.alpha-" + "0.1.24" + "0v2a0svf1ar2y42ajxwsjr7zmm5j7pp2zwrd2jh3k7xzd1p9x1fv")) + ("data-generators-src" + ,(submodule "data.generators/archive/data.generators-" + "0.1.2" + "0kki093jp4ckwxzfnw8ylflrfqs8b1i1wi9iapmwcsy328dmgzp1")) + ("spec-alpha-src" + ,(submodule "spec.alpha/archive/spec.alpha-" + "0.1.143" + "00alf0347licdn773w2jarpllyrbl52qz4d8mw61anjksacxylzz")) + ("test-check-src" + ,(submodule "test.check/archive/test.check-" + "0.9.0" + "0p0mnyhr442bzkz0s4k5ra3i6l5lc7kp6ajaqkkyh4c2k5yck1md")) + ("test-generative-src" + ,(submodule "test.generative/archive/test.generative-" + "0.5.2" + "1pjafy1i7yblc7ixmcpfq1lfbyf3jaljvkgrajn70sws9xs7a9f8")) + ("tools-namespace-src" + ,(submodule "tools.namespace/archive/tools.namespace-" + "0.2.11" + "10baak8v0hnwz2hr33bavshm7y49mmn9zsyyms1dwjz45p5ymhy0")))) + (home-page "https://clojure.org/") + (synopsis "Lisp dialect running on the JVM") + (description "Clojure is a dynamic, general-purpose programming language, +combining the approachability and interactive development of a scripting +language with an efficient and robust infrastructure for multithreaded +programming. Clojure is a compiled language, yet remains completely dynamic +– every feature supported by Clojure is supported at runtime. Clojure +provides easy access to the Java frameworks, with optional type hints and type +inference, to ensure that calls to Java can avoid reflection. + +Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy +and a powerful macro system. Clojure is predominantly a functional programming +language, and features a rich set of immutable, persistent data structures. +When mutable state is needed, Clojure offers a software transactional memory +system and reactive Agent system that ensure clean, correct, multithreaded +designs.") + ;; Clojure is licensed under EPL1.0 + ;; ASM bytecode manipulation library is licensed under BSD-3 + ;; Guava Murmur3 hash implementation is licensed under APL2.0 + ;; src/clj/repl.clj is licensed under CPL1.0 + ;; + ;; See readme.html or readme.txt for details. + (license (list license:epl1.0 + license:bsd-3 + license:asl2.0 + license:cpl1.0))))) + (define-public femtolisp (let ((commit "68c5b1225572ecf2c52baf62f928063e5a30511b") (revision "1")) -- 2.19.1 From patchwork Wed Oct 31 06:06:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Vong X-Patchwork-Id: 60 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id A095B1676A; Wed, 31 Oct 2018 06:07:20 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id 3DE9C1675C for ; Wed, 31 Oct 2018 06:07:20 +0000 (GMT) Received: from localhost ([::1]:57490 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjex-0002CO-JR for patchwork@mira.cbaines.net; Wed, 31 Oct 2018 02:07:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56882) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjem-0002C6-HV for guix-patches@gnu.org; Wed, 31 Oct 2018 02:07:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHjei-0008TF-Df for guix-patches@gnu.org; Wed, 31 Oct 2018 02:07:08 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:51909) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHjeg-0008SN-Ou for guix-patches@gnu.org; Wed, 31 Oct 2018 02:07:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gHjeg-0006cL-J0 for guix-patches@gnu.org; Wed, 31 Oct 2018 02:07:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33215] [PATCH 02/11] gnu: clojure: Remove 'remove-archives' snippet. References: <87muquhcw3.fsf@gmail.com> In-Reply-To: <87muquhcw3.fsf@gmail.com> Resent-From: Alex Vong Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 31 Oct 2018 06:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33215 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33215@debbugs.gnu.org Received: via spool by 33215-submit@debbugs.gnu.org id=B33215.154096601125419 (code B ref 33215); Wed, 31 Oct 2018 06:07:02 +0000 Received: (at 33215) by debbugs.gnu.org; 31 Oct 2018 06:06:51 +0000 Received: from localhost ([127.0.0.1]:56167 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjeU-0006bv-NB for submit@debbugs.gnu.org; Wed, 31 Oct 2018 02:06:50 -0400 Received: from mail-pl1-f174.google.com ([209.85.214.174]:39628) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjeS-0006bi-RR for 33215@debbugs.gnu.org; Wed, 31 Oct 2018 02:06:49 -0400 Received: by mail-pl1-f174.google.com with SMTP id b5-v6so6124571pla.6 for <33215@debbugs.gnu.org>; Tue, 30 Oct 2018 23:06:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:user-agent:mime-version; bh=Pi/3kXwKtUGl/lQ4LDOlqkevXx1fqNmfeoW4HYv+oBI=; b=PgxBnmLEGmROyeDhN4ePJ6urgqXpxLuCX3Yl7fdWYqtfxKp3+sdU89WRHPmr84kApS FbcEcTh+4JRZ70XhcCDsHzorVG14RHNAgz+YUEzF7sNRYxANDdsWKuio3QFnEr9uZmAR ITpGLBDB18bGzPSfnIpx15QSUSGUJwlY/caDBiCgKt4ecR2etYhy3WWGgunfe3Hq2e+3 z1TfiX6q1UdP1TqO9zAc5hHE77qQgcvKusKXqGVYJ3yvyrrLB//Ebu1kCWWCTKAFmAEn +GZt/pR5Y2n0PhQ9SWmN70s2D4vAosAQCpj8EGbR2N6a8K0TXyUVjeR5433BQ5FcHLHb TcCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :mime-version; bh=Pi/3kXwKtUGl/lQ4LDOlqkevXx1fqNmfeoW4HYv+oBI=; b=smSJcA8mlOqMn9iPIUxqFiaoHoGQDjjvapaeL1M8aSRirog90qDR0TN2jec926Vzvc WP1EfpSwpTd+HQugDiajrC4RjXjjeGhAtox7+ePWd2CxwhcTq03DADsrO6bWMQl31iUw +qpCh9Wa2CzdndAwujipQhRoAz5LbTN5U9th5fQTXeCwClANs1Q/NjnnaIRLqFDwUeWN vYhWHhIGKdGyxxmZa3No5Xeu5/+yl+MQHzJBWya8ikV7fFxhQ6c/P3KutMexASpFBW+p QnWooBnoXPhvtO6UiF3J68TXWaaW65K2hrIiPEUv4SH7rG9lWESIsCLrlwDSGfXMvzhJ OLeA== X-Gm-Message-State: AGRZ1gJhDG5ODF+MaboN/oea/UH7t4a3DdijYHmJcKwRfzOPNuLaiHtb mFTpTdUcLwq008gLsVL2/5Q= X-Google-Smtp-Source: AJdET5fkePfpwQam+6Qd1ozsMe8tSpKOnoF3PlP5WE6vbJpzibwEwvlwQlKOn0AtzDG7xLK15ZBosQ== X-Received: by 2002:a17:902:ab:: with SMTP id a40-v6mr1914839pla.201.1540966003222; Tue, 30 Oct 2018 23:06:43 -0700 (PDT) Received: from debian (42-3-197-089.static.netvigator.com. [42.3.197.89]) by smtp.gmail.com with ESMTPSA id r76-v6sm48205672pgr.11.2018.10.30.23.06.41 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 30 Oct 2018 23:06:42 -0700 (PDT) From: Alex Vong Date: Wed, 31 Oct 2018 14:06:35 +0800 Message-ID: <87efc6hcpg.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexvong1995@gmail.com Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From aade1b3a84bc1e2cb6ad46b477025cb14daa6080 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sat, 13 Oct 2018 18:32:14 +0800 Subject: [PATCH 02/11] gnu: clojure: Remove 'remove-archives' snippet. This is no longer needed since clojure now makes official source releases in github. * gnu/packages/lisp.scm (clojure)[source]: Remove it. [native-inputs]: Remove it in 'submodule'. [arguments]: Adjust 'unpack-submodule-sources' phase accordingly. --- gnu/packages/lisp.scm | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 93851c1a8..df0c0a87e 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -562,18 +562,12 @@ interface.") license:clarified-artistic)))) ;TRIVIAL-LDAP package (define-public clojure - (let* ((remove-archives '(begin - (for-each delete-file - (find-files "." ".*\\.(jar|zip)")) - #t)) - (submodule (lambda (prefix version hash) - (origin - (method url-fetch) - (uri (string-append "https://github.com/clojure/" - prefix version ".tar.gz")) - (sha256 (base32 hash)) - (modules '((guix build utils))) - (snippet remove-archives))))) + (let ((submodule (lambda (prefix version hash) + (origin + (method url-fetch) + (uri (string-append "https://github.com/clojure/" + prefix version ".tar.gz")) + (sha256 (base32 hash)))))) (package (name "clojure") (version "1.9.0") @@ -584,9 +578,7 @@ interface.") (string-append "https://github.com/clojure/clojure/archive/clojure-" version ".tar.gz")) (sha256 - (base32 "0xjbzcw45z32vsn9pifp7ndysjzqswp5ig0jkjpivigh2ckkdzha")) - (modules '((guix build utils))) - (snippet remove-archives))) + (base32 "0xjbzcw45z32vsn9pifp7ndysjzqswp5ig0jkjpivigh2ckkdzha")))) (build-system ant-build-system) (arguments `(#:modules ((guix build ant-build-system) @@ -605,8 +597,6 @@ interface.") (mkdir-p name) (with-directory-excursion name (invoke "tar" - ;; Use xz for repacked tarball. - "--xz" "--extract" "--verbose" "--file" (assoc-ref inputs name) -- 2.19.1 From patchwork Wed Oct 31 06:07:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Vong X-Patchwork-Id: 61 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id A4C3A1676B; Wed, 31 Oct 2018 06:08:13 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id 00F2616761 for ; Wed, 31 Oct 2018 06:08:13 +0000 (GMT) Received: from localhost ([::1]:57491 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjfo-0003iQ-An for patchwork@mira.cbaines.net; Wed, 31 Oct 2018 02:08:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57077) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjfi-0003iL-WD for guix-patches@gnu.org; Wed, 31 Oct 2018 02:08:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHjfe-0000l1-R0 for guix-patches@gnu.org; Wed, 31 Oct 2018 02:08:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:51913) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHjfe-0000kX-7B for guix-patches@gnu.org; Wed, 31 Oct 2018 02:08:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gHjfe-0006dx-0m for guix-patches@gnu.org; Wed, 31 Oct 2018 02:08:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33215] [PATCH 03/11] gnu: clojure: Refactor to ensure there's a single list of libraries. References: <87muquhcw3.fsf@gmail.com> In-Reply-To: <87muquhcw3.fsf@gmail.com> Resent-From: Alex Vong Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 31 Oct 2018 06:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33215 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33215@debbugs.gnu.org Received: via spool by 33215-submit@debbugs.gnu.org id=B33215.154096605725507 (code B ref 33215); Wed, 31 Oct 2018 06:08:01 +0000 Received: (at 33215) by debbugs.gnu.org; 31 Oct 2018 06:07:37 +0000 Received: from localhost ([127.0.0.1]:56171 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjfF-0006dK-1A for submit@debbugs.gnu.org; Wed, 31 Oct 2018 02:07:37 -0400 Received: from mail-pg1-f182.google.com ([209.85.215.182]:43368) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjfA-0006d2-Jz for 33215@debbugs.gnu.org; Wed, 31 Oct 2018 02:07:33 -0400 Received: by mail-pg1-f182.google.com with SMTP id n10-v6so6837867pgv.10 for <33215@debbugs.gnu.org>; Tue, 30 Oct 2018 23:07:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:user-agent:mime-version; bh=EkQPLgPCEEdAN9dH+3GcRSjcFpj8X1+296BhdKgmugM=; b=DNTzLHQ1FUjv4bDnv7V8sHoZrVEZ6rrW60c7dnLWnBXDRK/utv/B0sI9f7jk5lcR2o ef9nWZCXCWnIg7SU/R1trIA/+Y2fl2bS2AM9pcErq6h85wLDY8kvDhrwwN1DErAptQZO ZOS95chUnnspfnzvObuGFdPQHxH495MWmcFrGSzoQyRbB/E+GFVY3LWp6+ORRfTGF0ln hL252Og8kvIawODIpsJJDmSJtAhhQJ8GhiSExOPtQFJjbe/p0QcjxEIoEPzyRShmnN6s +wfGEPqqxoRt6f91Jt6OHHZVQga4MDGb96jEvdSoPyeKJldSfQXxUvuKXFlYHqQ0zVtF xO3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :mime-version; bh=EkQPLgPCEEdAN9dH+3GcRSjcFpj8X1+296BhdKgmugM=; b=oTuRYrmva2n9BqcTEmDP0qKLYF2OVPVG9/ymLIS7kfDegPGpq3IScftlugfKVklavS 2cS1bGkSBiryynEByrT56WqFQI1ORI5/B6Phz7XounJjvbQrmAWiCWK5xSzh66cjZ/yP j0a/Kf0w1fQ6hTJ/w0vU7iEF+d2t9ei4REZcndREUvT6tu3Xdj76nHwfUtGk/l8xLSr5 /S1Po6U49h4uhDJPNoN5aW/RubRUQsvlFe4ZEuscXeB+dDZ2W5kifHOGGSIsR0aEU19+ 1kvs1AhTrQs8sKJ4N1rmxZ0LTWA/xOyFelBCuBCdg3AmZTTnRVl4CbAmBR+HZiOAMFuV cH6g== X-Gm-Message-State: AGRZ1gIesmz7l+tqfS1PxdTsCelt+nR+pcNTAtAMdAlVOPc7ErECBRns Qv2xrryQICIZ9QCVPrwM8GwHvNfx X-Google-Smtp-Source: AJdET5eWdk6NUs9rttoProLzxSSAuuVsojHZzttLwrKqRSFU45ixW9Y5w/aK3dcbqQg33wTmfCpcRA== X-Received: by 2002:a63:2ad4:: with SMTP id q203-v6mr1795129pgq.356.1540966047046; Tue, 30 Oct 2018 23:07:27 -0700 (PDT) Received: from debian (42-3-197-089.static.netvigator.com. [42.3.197.89]) by smtp.gmail.com with ESMTPSA id b77-v6sm11475199pfm.3.2018.10.30.23.07.25 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 30 Oct 2018 23:07:26 -0700 (PDT) From: Alex Vong Date: Wed, 31 Oct 2018 14:07:22 +0800 Message-ID: <87a7muhco5.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexvong1995@gmail.com Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From cd355d8cec3c747f58748d5cf750af7d6efd5d5a Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sun, 14 Oct 2018 00:08:29 +0800 Subject: [PATCH 03/11] gnu: clojure: Refactor to ensure there's a single list of libraries. This avoids having to update multiple lists. * gnu/packages/lisp.scm (clojure)[native-inputs]: Use new local variable. [arguments]: Adjust build phases accordingly. --- gnu/packages/lisp.scm | 101 ++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 52 deletions(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index df0c0a87e..c42878fd3 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -562,12 +562,40 @@ interface.") license:clarified-artistic)))) ;TRIVIAL-LDAP package (define-public clojure - (let ((submodule (lambda (prefix version hash) - (origin - (method url-fetch) - (uri (string-append "https://github.com/clojure/" - prefix version ".tar.gz")) - (sha256 (base32 hash)))))) + (let* ((lib (lambda (prefix version hash) + (origin (method url-fetch) + (uri (string-append "https://github.com/clojure/" + prefix version ".tar.gz")) + (sha256 (base32 hash))))) + ;; The libraries below are needed to run the tests. + (libraries + `(("core-specs-alpha-src" + ,(lib "core.specs.alpha/archive/core.specs.alpha-" + "0.1.24" + "0v2a0svf1ar2y42ajxwsjr7zmm5j7pp2zwrd2jh3k7xzd1p9x1fv")) + ("data-generators-src" + ,(lib "data.generators/archive/data.generators-" + "0.1.2" + "0kki093jp4ckwxzfnw8ylflrfqs8b1i1wi9iapmwcsy328dmgzp1")) + ("spec-alpha-src" + ,(lib "spec.alpha/archive/spec.alpha-" + "0.1.143" + "00alf0347licdn773w2jarpllyrbl52qz4d8mw61anjksacxylzz")) + ("test-check-src" + ,(lib "test.check/archive/test.check-" + "0.9.0" + "0p0mnyhr442bzkz0s4k5ra3i6l5lc7kp6ajaqkkyh4c2k5yck1md")) + ("test-generative-src" + ,(lib "test.generative/archive/test.generative-" + "0.5.2" + "1pjafy1i7yblc7ixmcpfq1lfbyf3jaljvkgrajn70sws9xs7a9f8")) + ("tools-namespace-src" + ,(lib "tools.namespace/archive/tools.namespace-" + "0.2.11" + "10baak8v0hnwz2hr33bavshm7y49mmn9zsyyms1dwjz45p5ymhy0")))) + (library-names (match libraries + (((library-name _) ...) + library-name)))) (package (name "clojure") (version "1.9.0") @@ -590,27 +618,21 @@ interface.") #:test-target "test" #:phases (modify-phases %standard-phases - (add-after 'unpack 'unpack-submodule-sources + (add-after 'unpack 'unpack-library-sources (lambda* (#:key inputs #:allow-other-keys) - (for-each - (lambda (name) - (mkdir-p name) - (with-directory-excursion name - (invoke "tar" - "--extract" - "--verbose" - "--file" (assoc-ref inputs name) - "--strip-components=1")) - (copy-recursively (string-append name "/src/main/clojure/") - "src/clj/")) - '("core-specs-alpha-src" - "data-generators-src" - "spec-alpha-src" - "test-check-src" - "test-generative-src" - "tools-namespace-src")) + (define (extract-library name) + (mkdir-p name) + (with-directory-excursion name + (invoke "tar" + "--extract" + "--verbose" + "--file" (assoc-ref inputs name) + "--strip-components=1")) + (copy-recursively (string-append name "/src/main/clojure/") + "src/clj/")) + (for-each extract-library ',library-names) #t)) - (add-after 'unpack 'fix-manifest-classpath + (add-after 'unpack-library-sources 'fix-manifest-classpath (lambda _ (substitute* "build.xml" (("") "")) @@ -643,32 +665,7 @@ interface.") <>) (scandir "./"))) #t)))))) - ;; The native-inputs below are needed to run the tests. - (native-inputs - `(("core-specs-alpha-src" - ,(submodule "core.specs.alpha/archive/core.specs.alpha-" - "0.1.24" - "0v2a0svf1ar2y42ajxwsjr7zmm5j7pp2zwrd2jh3k7xzd1p9x1fv")) - ("data-generators-src" - ,(submodule "data.generators/archive/data.generators-" - "0.1.2" - "0kki093jp4ckwxzfnw8ylflrfqs8b1i1wi9iapmwcsy328dmgzp1")) - ("spec-alpha-src" - ,(submodule "spec.alpha/archive/spec.alpha-" - "0.1.143" - "00alf0347licdn773w2jarpllyrbl52qz4d8mw61anjksacxylzz")) - ("test-check-src" - ,(submodule "test.check/archive/test.check-" - "0.9.0" - "0p0mnyhr442bzkz0s4k5ra3i6l5lc7kp6ajaqkkyh4c2k5yck1md")) - ("test-generative-src" - ,(submodule "test.generative/archive/test.generative-" - "0.5.2" - "1pjafy1i7yblc7ixmcpfq1lfbyf3jaljvkgrajn70sws9xs7a9f8")) - ("tools-namespace-src" - ,(submodule "tools.namespace/archive/tools.namespace-" - "0.2.11" - "10baak8v0hnwz2hr33bavshm7y49mmn9zsyyms1dwjz45p5ymhy0")))) + (native-inputs libraries) (home-page "https://clojure.org/") (synopsis "Lisp dialect running on the JVM") (description "Clojure is a dynamic, general-purpose programming language, @@ -689,7 +686,7 @@ designs.") ;; ASM bytecode manipulation library is licensed under BSD-3 ;; Guava Murmur3 hash implementation is licensed under APL2.0 ;; src/clj/repl.clj is licensed under CPL1.0 - ;; + ;; See readme.html or readme.txt for details. (license (list license:epl1.0 license:bsd-3 -- 2.19.1 From patchwork Wed Oct 31 06:08:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Vong X-Patchwork-Id: 62 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 2B9811676A; Wed, 31 Oct 2018 06:09:14 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id A72051675C for ; Wed, 31 Oct 2018 06:09:13 +0000 (GMT) Received: from localhost ([::1]:57494 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjgn-0003oS-0e for patchwork@mira.cbaines.net; Wed, 31 Oct 2018 02:09:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57565) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjgg-0003oL-4N for guix-patches@gnu.org; Wed, 31 Oct 2018 02:09:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHjgc-0001N8-30 for guix-patches@gnu.org; Wed, 31 Oct 2018 02:09:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:51917) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHjgb-0001Mq-UU for guix-patches@gnu.org; Wed, 31 Oct 2018 02:09:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gHjgb-0006fW-Kx for guix-patches@gnu.org; Wed, 31 Oct 2018 02:09:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33215] [PATCH 04/11] gnu: clojure: Use (guix build java-utils) to simplify build phases. References: <87muquhcw3.fsf@gmail.com> In-Reply-To: <87muquhcw3.fsf@gmail.com> Resent-From: Alex Vong Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 31 Oct 2018 06:09:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33215 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33215@debbugs.gnu.org Received: via spool by 33215-submit@debbugs.gnu.org id=B33215.154096613025618 (code B ref 33215); Wed, 31 Oct 2018 06:09:01 +0000 Received: (at 33215) by debbugs.gnu.org; 31 Oct 2018 06:08:50 +0000 Received: from localhost ([127.0.0.1]:56175 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjgQ-0006f7-Gc for submit@debbugs.gnu.org; Wed, 31 Oct 2018 02:08:50 -0400 Received: from mail-pg1-f174.google.com ([209.85.215.174]:37525) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjgO-0006es-6s for 33215@debbugs.gnu.org; Wed, 31 Oct 2018 02:08:48 -0400 Received: by mail-pg1-f174.google.com with SMTP id c10-v6so6856397pgq.4 for <33215@debbugs.gnu.org>; Tue, 30 Oct 2018 23:08:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:user-agent:mime-version; bh=Myoes63JRax0bjnOFcYxw8TiWxX/nlQtTEA+v8u9ciQ=; b=fNSSAIlYRHBGxT/lFrswc8XMZS1lZX7SW5s/mltKso1o+mlu3ceppoEUysMmqN6bAa a74UeLonIA+kWYMsZkB3zwNbZtOorwKD07Kws0FfD/SbIyonIFlOc1ciYO2NIhZbsriJ naw89NKg7nc6hyrDSU183TkG/b9Zczpp/b4dcZZ1jD6mI4+dfbeuBcLbuzb4ZO7yip2l As9LMo8QRnXsAU8caHaSAeqVp6MrX2hs4yYhzNkyZY6E/81CpCGLzrjC83lgRjQUZryB qORoQJxe4UIe22uZXEq2hw3raiI41T5+QtPun/3C6krqugAqcSoNB+UKh/pkJJ9Ul/Pr tseQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :mime-version; bh=Myoes63JRax0bjnOFcYxw8TiWxX/nlQtTEA+v8u9ciQ=; b=Yynt+mzlaM6PfQnaO8ypXB9kUCy2tfeMzubkM+a/Fj08S1AvpTFh4aATUNmxF6PeQW dCtbc8gennPatcFno+A6lR5c4R6qF15oJXVCy/NRJBROQtdRHsSvYpDndsopKc6AKREL m4TBfQ0C5FrhpPN8yQ/TNURlnEU7iFSdbtMnAYprdW/Cifobng9axX6d6f1uYmGb+r6K syGYpCBGg0nGj3mVKkSASoj65R5W9TpD6cZdqn3eK5aN4MkPFytV5/Upz51Br2ZFsNKL 9qj7Vikzg4n/oy0/r0mPJsq/s5LA6deq1mkpIJe3ogk0QPcBYF+IDpzCvIjrFFhMTa7y iwqA== X-Gm-Message-State: AGRZ1gIYRbROMZqgEiFYDYA+2HOek3wrE7JpZTYRm/qh2ZCk15gerFim mW5mLaXReVFIRNIknOQNI30LB6O1 X-Google-Smtp-Source: AJdET5eMdSImkmMfFmlUH+nVMCNVPIk1t0HF/dS8xMmUdW4Bscs2zWGEzzAx66U/jfawpwx84eSPIQ== X-Received: by 2002:a62:d206:: with SMTP id c6-v6mr1923848pfg.143.1540966122739; Tue, 30 Oct 2018 23:08:42 -0700 (PDT) Received: from debian (42-3-197-089.static.netvigator.com. [42.3.197.89]) by smtp.gmail.com with ESMTPSA id m18-v6sm32370934pfk.149.2018.10.30.23.08.41 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 30 Oct 2018 23:08:42 -0700 (PDT) From: Alex Vong Date: Wed, 31 Oct 2018 14:08:38 +0800 Message-ID: <875zxihcm1.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexvong1995@gmail.com Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From 29b927ed0fc2ed932c37e1fb188e35e300fc3aeb Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sun, 14 Oct 2018 02:52:41 +0800 Subject: [PATCH 04/11] gnu: clojure: Use (guix build java-utils) to simplify build phases. * gnu/packages/lisp.scm (clojure)[arguments]: Use 'ant-build-javadoc', 'install-jars' and 'install-javadoc' in build phases. --- gnu/packages/lisp.scm | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index c42878fd3..c451aa4c1 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -610,10 +610,10 @@ interface.") (build-system ant-build-system) (arguments `(#:modules ((guix build ant-build-system) + (guix build java-utils) (guix build utils) (ice-9 ftw) (ice-9 regex) - (srfi srfi-1) (srfi srfi-26)) #:test-target "test" #:phases @@ -637,34 +637,22 @@ interface.") (substitute* "build.xml" (("") "")) #t)) - ;; The javadoc target is not built by default. - (add-after 'build 'build-doc - (lambda _ - (invoke "ant" "javadoc"))) - ;; Needed since no install target is provided. - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((java-dir (string-append (assoc-ref outputs "out") - "/share/java/"))) - ;; Install versioned to avoid collisions. - (install-file (string-append "clojure-" ,version ".jar") - java-dir) - #t))) - ;; Needed since no install-doc target is provided. + (add-after 'build 'build-javadoc ant-build-javadoc) + (replace 'install (install-jars "./")) (add-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) (let ((doc-dir (string-append (assoc-ref outputs "out") "/share/doc/clojure-" ,version "/"))) (copy-recursively "doc/clojure" doc-dir) - (copy-recursively "target/javadoc/" - (string-append doc-dir "javadoc/")) (for-each (cut install-file <> doc-dir) (filter (cut string-match ".*\\.(html|markdown|md|txt)" <>) (scandir "./"))) - #t)))))) + #t))) + (add-after 'install-doc 'install-javadoc + (install-javadoc "target/javadoc/"))))) (native-inputs libraries) (home-page "https://clojure.org/") (synopsis "Lisp dialect running on the JVM") -- 2.19.1 From patchwork Wed Oct 31 06:09:50 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alex Vong X-Patchwork-Id: 63 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id AA4F41676A; Wed, 31 Oct 2018 06:11:12 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id 1CDB51675C for ; Wed, 31 Oct 2018 06:11:12 +0000 (GMT) Received: from localhost ([::1]:57500 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjih-00040s-Cm for patchwork@mira.cbaines.net; Wed, 31 Oct 2018 02:11:11 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57852) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjic-00040k-6m for guix-patches@gnu.org; Wed, 31 Oct 2018 02:11:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHjiY-0002Zj-3n for guix-patches@gnu.org; Wed, 31 Oct 2018 02:11:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:51925) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHjiX-0002ZO-Tj for guix-patches@gnu.org; Wed, 31 Oct 2018 02:11:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gHjiX-0006ir-O0 for guix-patches@gnu.org; Wed, 31 Oct 2018 02:11:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33215] [PATCH 05/11] guix: Add clojure-utils. References: <87muquhcw3.fsf@gmail.com> In-Reply-To: <87muquhcw3.fsf@gmail.com> Resent-From: Alex Vong Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 31 Oct 2018 06:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33215 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33215@debbugs.gnu.org Received: via spool by 33215-submit@debbugs.gnu.org id=B33215.154096620325756 (code B ref 33215); Wed, 31 Oct 2018 06:11:01 +0000 Received: (at 33215) by debbugs.gnu.org; 31 Oct 2018 06:10:03 +0000 Received: from localhost ([127.0.0.1]:56180 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjhZ-0006hA-Ty for submit@debbugs.gnu.org; Wed, 31 Oct 2018 02:10:02 -0400 Received: from mail-pf1-f181.google.com ([209.85.210.181]:34415) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjhX-0006gm-QY for 33215@debbugs.gnu.org; Wed, 31 Oct 2018 02:10:00 -0400 Received: by mail-pf1-f181.google.com with SMTP id f78-v6so7089375pfe.1 for <33215@debbugs.gnu.org>; Tue, 30 Oct 2018 23:09:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:user-agent:mime-version; bh=Kd6947j+CsYUmJV1durd0JVj37sg7sOyURDayNTTcV4=; b=gMeeFYRmIysDFwJJJ/H/XTw53gmVyNg7dM6eVz3Lm+zusWyDhsCzzmGnqevsI+wkgz LR/WUC6Aq9ZDPXT/NNyLASrnsOqr1yH6tPm9C1xQs/yv05tjE1OLK5uld2umsPwV7qWx bSYC5UA+D+uGfmYMG0ZLdKEOC4YADvICWF1wacCZ7xrMRfMGd4n8fIWWZFpeR0TqGZlx IBz7NuOit4FUH/Y+7n0MAhPVmfQmCeyqa12dTwiLvzs8l0newdVsTcr3QMf8R6moVmOk 0emGrNYx3WgDbHRv/pga5TIzNedbMRgTvrishTGXnHRXk7T8a7/Jwr6WoTo5PxTX+oMs WUvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :mime-version; bh=Kd6947j+CsYUmJV1durd0JVj37sg7sOyURDayNTTcV4=; b=h/ljzVxUDtgyW+WJZyPsfkuMXEbzBI9F2QZeSXFGWpLKN6MXxvVb9ko4exjpLsGS8u TKlkRStay8YdWM+vHD/iWhBueOM277Q+eizQbblG6yGTXfCfguQlAwVUxW+/WtTKTl4S IkY+sSF4fyeE3xpW5GoQeZZ/eVK1C2kmSzmZkVZKWU6jHUvrFP1dqAtKUlbu9m+/Wk56 fEnMvDowHFZkkvSQ7M1K4POcBsq71W7jWXmd8e0pHUc1yej/WIotIVuCsHxXtS447o3A 7jVB+CpVHiZIyWEHy1pkud7n1Pl/nBfAgNgW1L0BflDdPFH82Nkt48yNLKKwEsyOHxVv tLuQ== X-Gm-Message-State: AGRZ1gL5pJc9nHCUFRxkwsloulKnAugaHRvW1uq8tq9TkePVpi7oVSiv 7IF28x14qq7+ARpV2TZRgyY= X-Google-Smtp-Source: AJdET5eGlp3odc5evSkAr2baefB0cle4+L5iOWLZs4WJzzBSbhJDwYS2c3qyLALeKZOcqO95GzuCqg== X-Received: by 2002:a62:cd47:: with SMTP id o68-v6mr1989224pfg.12.1540966194312; Tue, 30 Oct 2018 23:09:54 -0700 (PDT) Received: from debian (42-3-197-089.static.netvigator.com. [42.3.197.89]) by smtp.gmail.com with ESMTPSA id j5-v6sm29148882pgm.79.2018.10.30.23.09.52 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 30 Oct 2018 23:09:53 -0700 (PDT) From: Alex Vong Date: Wed, 31 Oct 2018 14:09:50 +0800 Message-ID: <871s86hck1.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexvong1995@gmail.com Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From 857cce37325f01c26f79a6e15e33d7988ea4a0a2 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sun, 14 Oct 2018 03:09:48 +0800 Subject: [PATCH 05/11] guix: Add clojure-utils. * guix/build/clojure-utils.scm: New file. * gnu/packages/lisp.scm (clojure)[arguments]: Use it. * Makefile.am (MODULES): Add it. --- Makefile.am | 2 ++ gnu/packages/lisp.scm | 23 +++++-------- guix/build/clojure-utils.scm | 65 ++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 15 deletions(-) create mode 100644 guix/build/clojure-utils.scm diff --git a/Makefile.am b/Makefile.am index 8c3df8f39..e2bc4d369 100644 --- a/Makefile.am +++ b/Makefile.am @@ -12,6 +12,7 @@ # Copyright © 2018 Nils Gillmann # Copyright © 2018 Julien Lepiller # Copyright © 2018 Oleg Pykhalov +# Copyright © 2018 Alex Vong # # This file is part of GNU Guix. # @@ -172,6 +173,7 @@ MODULES = \ guix/build/syscalls.scm \ guix/build/gremlin.scm \ guix/build/debug-link.scm \ + guix/build/clojure-utils.scm \ guix/build/emacs-utils.scm \ guix/build/java-utils.scm \ guix/build/lisp-utils.scm \ diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index c451aa4c1..ee43e5abf 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -596,6 +596,7 @@ interface.") (library-names (match libraries (((library-name _) ...) library-name)))) + (package (name "clojure") (version "1.9.0") @@ -609,11 +610,13 @@ interface.") (base32 "0xjbzcw45z32vsn9pifp7ndysjzqswp5ig0jkjpivigh2ckkdzha")))) (build-system ant-build-system) (arguments - `(#:modules ((guix build ant-build-system) + `(#:imported-modules ((guix build clojure-utils) + (guix build guile-build-system) + ,@%ant-build-system-modules) + #:modules ((guix build ant-build-system) + (guix build clojure-utils) (guix build java-utils) (guix build utils) - (ice-9 ftw) - (ice-9 regex) (srfi srfi-26)) #:test-target "test" #:phases @@ -639,18 +642,8 @@ interface.") #t)) (add-after 'build 'build-javadoc ant-build-javadoc) (replace 'install (install-jars "./")) - (add-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (let ((doc-dir (string-append (assoc-ref outputs "out") - "/share/doc/clojure-" - ,version "/"))) - (copy-recursively "doc/clojure" doc-dir) - (for-each (cut install-file <> doc-dir) - (filter (cut string-match - ".*\\.(html|markdown|md|txt)" - <>) - (scandir "./"))) - #t))) + (add-after 'install-license-files 'install-doc + (cut install-doc #:doc-dirs '("doc/clojure/") <...>)) (add-after 'install-doc 'install-javadoc (install-javadoc "target/javadoc/"))))) (native-inputs libraries) diff --git a/guix/build/clojure-utils.scm b/guix/build/clojure-utils.scm new file mode 100644 index 000000000..713dff2d8 --- /dev/null +++ b/guix/build/clojure-utils.scm @@ -0,0 +1,65 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Alex Vong +;;; +;;; 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 . + +(define-module (guix build clojure-utils) + #:use-module (guix build utils) + #:use-module (ice-9 ftw) + #:use-module (ice-9 regex) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (%clojure-regex + define-with-docs + install-doc)) + +(define-syntax-rule (define-with-docs name docs val) + "Create top-level variable named NAME with doc string DOCS and value VAL." + (begin (define name val) + (set-object-property! name 'documentation docs))) + +(define-with-docs %doc-regex + "Default regex for matching the base name of top-level documentation files." + (format #f + "(~a)|(\\.(html|markdown|md|txt)$)" + (@@ (guix build guile-build-system) + %documentation-file-regexp))) + +(define* (install-doc #:key + doc-dirs + (doc-regex %doc-regex) + outputs + #:allow-other-keys) + "Install the following to the default documentation directory: + +1. Top-level files with base name matching DOC-REGEX. +2. All files (recursively) inside DOC-DIRS. + +DOC-REGEX can be compiled or uncompiled." + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc")) + (name-ver (strip-store-file-name out)) + (dest-dir (string-append (or doc out) "/share/doc/" name-ver "/")) + (doc-regex* (if (string? doc-regex) + (make-regexp doc-regex) + doc-regex))) + (for-each (cut install-file <> dest-dir) + (remove (compose file-exists? + (cut string-append dest-dir <>)) + (scandir "./" (cut regexp-exec doc-regex* <>)))) + (for-each (cut copy-recursively <> dest-dir) + doc-dirs) + #t)) -- 2.19.1 From patchwork Wed Oct 31 06:10:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alex Vong X-Patchwork-Id: 64 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id B86A31676A; Wed, 31 Oct 2018 06:11:16 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id A392216761 for ; Wed, 31 Oct 2018 06:11:15 +0000 (GMT) Received: from localhost ([::1]:57501 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjik-00042b-UW for patchwork@mira.cbaines.net; Wed, 31 Oct 2018 02:11:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57855) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjic-00040l-QM for guix-patches@gnu.org; Wed, 31 Oct 2018 02:11:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHjiY-0002ch-M6 for guix-patches@gnu.org; Wed, 31 Oct 2018 02:11:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:51926) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHjiY-0002ac-Cg for guix-patches@gnu.org; Wed, 31 Oct 2018 02:11:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gHjiY-0006j0-80 for guix-patches@gnu.org; Wed, 31 Oct 2018 02:11:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33215] [PATCH 06/11] build-system: Add 'clojure-build-system'. References: <87muquhcw3.fsf@gmail.com> In-Reply-To: <87muquhcw3.fsf@gmail.com> Resent-From: Alex Vong Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 31 Oct 2018 06:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33215 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33215@debbugs.gnu.org Received: via spool by 33215-submit@debbugs.gnu.org id=B33215.154096624025815 (code B ref 33215); Wed, 31 Oct 2018 06:11:02 +0000 Received: (at 33215) by debbugs.gnu.org; 31 Oct 2018 06:10:40 +0000 Received: from localhost ([127.0.0.1]:56183 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjiA-0006iG-SF for submit@debbugs.gnu.org; Wed, 31 Oct 2018 02:10:39 -0400 Received: from mail-pl1-f178.google.com ([209.85.214.178]:32923) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHji8-0006i2-Bv for 33215@debbugs.gnu.org; Wed, 31 Oct 2018 02:10:37 -0400 Received: by mail-pl1-f178.google.com with SMTP id x6-v6so6759769pln.0 for <33215@debbugs.gnu.org>; Tue, 30 Oct 2018 23:10:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:user-agent:mime-version; bh=x7KGw9yVOjBuSNLAfE/N/WvE+GmQVhx5Ghi7ZRKyuVI=; b=fxah2pbMGCkz3obJI/sutjxVdoEEa0KnhDGDQVN5SJJLvwww4qL81+fER/+qgi7OaE 827MmT23gcSmlvlki3QhWSOZFcp2L6abNS2q9GaF3mLrZ+9GPTkQ60VfhmdW2LAvX/eP XWEOwtwZdhB9YvcHzHmrHkjS3JV7+1co5hVN+cDmDuqJTJENj7jI0Y2vgFfpxRbRfArd p9zctVNO923i9w77Iy+Vak4sewZ470hBAzW4yA70RUygMOLFlb0ffn4Iydw8fOEyKhrW og3V+c8QTNpYDCbm8mXlC13tLYsxKuH6y7jbFUZ7EkL1H1OAmzYIJmxzAyR8MhZzHyz7 /esQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :mime-version; bh=x7KGw9yVOjBuSNLAfE/N/WvE+GmQVhx5Ghi7ZRKyuVI=; b=j+kt42G89M0mZQODsu+gu1blyVh8+2Sazrbrs6gR0bnoz0Q+5YwvKwvXEvhAueIMT7 ccrIXmFKf47ILJdS6MPGZ4v8272s6ybLhmrVt8/9t1RQE2UJUEvOgtaslDd54akv+Wlb PdQD3iiWLINBY/uW04S5RpW01iyuV0w+Te8OQ4cLMLGDMkaEMOMUR0pUbDscyxanPzum SE6uJDsx7mDI3su6XhzYZNVyxYov2NzmE/2u1JEKNjawkkpcq2eI2TJuVN9okdtOAhZF LAGzHuKVmYxrZd16bJKw/EySj2X1uTbGyNTEHa6//SKje9kK/hhCk3UiKQBSOzSE0ITJ MBsA== X-Gm-Message-State: AGRZ1gLPx3A2m32ns1n4CT5CWmlW8+AdXQpJ5GlluuII7HwaOcudApTG cIinygwylIgbYqK8OydJy/NawMHE X-Google-Smtp-Source: AJdET5cQWpYBu5dfWFK2i3j1AZB43cbpi/6D05hEqYuS5tZYdDEODiMMZvjUS89kFBZAryb3a3WYXA== X-Received: by 2002:a17:902:263:: with SMTP id 90-v6mr1951392plc.190.1540966230835; Tue, 30 Oct 2018 23:10:30 -0700 (PDT) Received: from debian (42-3-197-089.static.netvigator.com. [42.3.197.89]) by smtp.gmail.com with ESMTPSA id t11-v6sm29801499pgn.38.2018.10.30.23.10.29 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 30 Oct 2018 23:10:30 -0700 (PDT) From: Alex Vong Date: Wed, 31 Oct 2018 14:10:26 +0800 Message-ID: <87wopyfxyl.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexvong1995@gmail.com Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From c7a763cfa2543119cc707b434efc8680f73f6367 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Thu, 25 Oct 2018 05:44:01 +0800 Subject: [PATCH 06/11] build-system: Add 'clojure-build-system'. * guix/build-system/clojure.scm, guix/build/clojure-build-system.scm: New files. * guix/build/clojure-utils.scm (@*, @@*): New macros. (%source-dirs, %test-dirs, %compile-dir, %main-class, %omit-source?, %aot-include, %aot-exclude, %tests?, %test-include, %test-exclude, %clojure-regex): New variables. (package-name->jar-names, canonicalize-relative-path, find-files*, file-sans-extension, relative-path->clojure-lib-string, find-clojure-libs, compiled-from?, include-list\exclude-list, eval-with-clojure, create-jar): New procedures. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document 'clojure-build-system'. --- Makefile.am | 2 + doc/guix.texi | 58 ++++++++ guix/build-system/clojure.scm | 195 ++++++++++++++++++++++++++ guix/build/clojure-build-system.scm | 110 +++++++++++++++ guix/build/clojure-utils.scm | 204 +++++++++++++++++++++++++++- 5 files changed, 567 insertions(+), 2 deletions(-) create mode 100644 guix/build-system/clojure.scm create mode 100644 guix/build/clojure-build-system.scm diff --git a/Makefile.am b/Makefile.am index e2bc4d369..fce2956b4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -101,6 +101,7 @@ MODULES = \ guix/build-system/android-ndk.scm \ guix/build-system/ant.scm \ guix/build-system/cargo.scm \ + guix/build-system/clojure.scm \ guix/build-system/cmake.scm \ guix/build-system/dub.scm \ guix/build-system/emacs.scm \ @@ -138,6 +139,7 @@ MODULES = \ guix/build/download.scm \ guix/build/download-nar.scm \ guix/build/cargo-build-system.scm \ + guix/build/clojure-build-system.scm \ guix/build/cmake-build-system.scm \ guix/build/dub-build-system.scm \ guix/build/emacs-build-system.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index b41af61f1..8b353e166 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -51,6 +51,7 @@ Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018 Gábor Boskovits@* Copyright @copyright{} 2018 Florian Pelz@* +Copyright @copyright{} 2018 Alex Vong@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -4384,6 +4385,63 @@ The @code{install} phase installs the binaries, and it also installs the source code and @file{Cargo.toml} file. @end defvr +@cindex Clojure (programming language) +@cindex simple Clojure build system +@defvr {Scheme Variable} clojure-build-system +This variable is exported by @code{(guix build-system clojure)}. It implements +a simple build procedure for @uref{https://clojure.org/, Clojure} packages +using plain old @code{compile} in Clojure. Cross-compilation is not supported +yet. + +It adds @code{clojure}, @code{icedtea} and @code{zip} to the set of inputs. +Different packages can be specified with the @code{#:clojure}, @code{#:jdk} and +@code{#:zip} parameters, respectively. + +A list of source directories, test directories and jar names can be specified +with the @code{#:source-dirs}, @code{#:test-dirs} and @code{#:jar-names} +parameters, respectively. Compile directory and main class can be specified +with the @code{#:compile-dir} and @code{#:main-class} parameters, respectively. +Other parameters are documented below. + +This build system is an extension of @var{ant-build-system}, but with the +following phases changed: + +@table @code + +@item build +This phase calls @code{compile} in Clojure to compile source files and runs +@command{jar} to create jars from both source files and compiled files +according to the include list and exclude list specified in +@code{#:aot-include} and @code{#:aot-exclude}, respectively. The exclude list +has priority over the include list. These lists consist of symbols +representing Clojure libraries or the special keyword @code{#:all} representing +all Clojure libraries found under the source directories. The parameter +@code{#:omit-source?} decides if source should be included into the jars. + +@item check +This phase runs tests according to the include list and exclude list specified +in @code{#:test-include} and @code{#:test-exclude}, respectively. Their +meanings are analogous to that of @code{#:aot-include} and +@code{#:aot-exclude}, except that the special keyword @code{#:all} now +stands for all Clojure libraries found under the test directories. The +parameter @code{#:tests?} decides if tests should be run. + +@item install +This phase installs all jars built previously. +@end table + +Apart from the above, this build system also contains an additional phase: + +@table @code + +@item install-doc +This phase installs all top-level files with base name matching +@var{%doc-regex}. A different regex can be specified with the +@code{#:doc-regex} parameter. All files (recursively) inside the documentation +directories specified in @code{#:doc-dirs} are installed as well. +@end table +@end defvr + @defvr {Scheme Variable} cmake-build-system This variable is exported by @code{(guix build-system cmake)}. It implements the build procedure for packages using the diff --git a/guix/build-system/clojure.scm b/guix/build-system/clojure.scm new file mode 100644 index 000000000..5a91bcba0 --- /dev/null +++ b/guix/build-system/clojure.scm @@ -0,0 +1,195 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Alex Vong +;;; +;;; 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 . + +(define-module (guix build-system clojure) + #:use-module (guix build clojure-utils) + #:use-module (guix build-system) + #:use-module (guix build-system ant) + #:use-module ((guix build-system gnu) + #:select (standard-packages) + #:prefix gnu:) + + #:use-module (guix derivations) + #:use-module (guix packages) + #:use-module ((guix search-paths) + #:select + ((search-path-specification->sexp . search-path-spec->sexp))) + #:use-module (guix utils) + + #:use-module (ice-9 match) + #:export (%clojure-build-system-modules + clojure-build + clojure-build-system)) + +;; Commentary: +;; +;; Standard build procedure for Clojure packages. +;; +;; Code: + +(define-with-docs %clojure-build-system-modules + "Build-side modules imported and used by default." + `((guix build clojure-build-system) + (guix build clojure-utils) + (guix build guile-build-system) + ,@%ant-build-system-modules)) + +(define-with-docs %default-clojure + "The default Clojure package." + (delay (@* (gnu packages lisp) clojure))) + +(define-with-docs %default-jdk + "The default JDK package." + (delay (@* (gnu packages java) icedtea))) + +(define-with-docs %default-zip + "The default ZIP package." + (delay (@* (gnu packages compression) zip))) + +(define* (lower name + #:key + source target + inputs native-inputs + (clojure (force %default-clojure)) + (jdk (force %default-jdk)) + (zip (force %default-zip)) + outputs system + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (let ((private-keywords '(#:source #:target + #:inputs #:native-inputs + #:clojure #:jdk #:zip))) + + (if target + (error "No cross-compilation for clojure-build-system yet: LOWER" + target) ; FIXME + (bag (name name) + (system system) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + ,@(gnu:standard-packages))) + (build-inputs `(("clojure" ,clojure) + ("jdk" ,jdk "jdk") + ("zip" ,zip) + ,@native-inputs)) + (outputs outputs) + (build clojure-build) + (arguments (strip-keyword-arguments private-keywords + arguments)))))) + +(define-with-docs source->output-path + "Convert source input to output path." + (match-lambda + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source))) + +(define-with-docs maybe-guile->guile + "Find the right guile." + (match-lambda + ((and maybe-guile (? package?)) + maybe-guile) + (#f ; default + (@* (gnu packages commencement) guile-final)))) + +(define* (clojure-build store name inputs + #:key + (source-dirs `',%source-dirs) + (test-dirs `',%test-dirs) + (compile-dir %compile-dir) + + (jar-names `',(package-name->jar-names name)) + (main-class %main-class) + (omit-source? %omit-source?) + + (aot-include `',%aot-include) + (aot-exclude `',%aot-exclude) + + doc-dirs ; no sensible default + (doc-regex %doc-regex) + + (tests? %tests?) + (test-include `',%test-include) + (test-exclude `',%test-exclude) + + (phases '(@ (guix build clojure-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + + (imported-modules %clojure-build-system-modules) + (modules %clojure-build-system-modules)) + "Build SOURCE with INPUTS." + (let ((builder `(begin + (use-modules ,@modules) + (clojure-build #:name ,name + #:source ,(source->output-path + (assoc-ref inputs "source")) + + #:source-dirs ,source-dirs + #:test-dirs ,test-dirs + #:compile-dir ,compile-dir + + #:jar-names ,jar-names + #:main-class ,main-class + #:omit-source? ,omit-source? + + #:aot-include ,aot-include + #:aot-exclude ,aot-exclude + + #:doc-dirs ,doc-dirs + #:doc-regex ,doc-regex + + #:tests? ,tests? + #:test-include ,test-include + #:test-exclude ,test-exclude + + #:phases ,phases + #:outputs %outputs + #:search-paths ',(map search-path-spec->sexp + search-paths) + #:system ,system + #:inputs %build-inputs))) + + (guile-for-build (package-derivation store + (maybe-guile->guile guile) + system + #:graft? #f))) + + (build-expression->derivation store name builder + #:inputs inputs + #:system system + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build))) + +(define clojure-build-system + (build-system + (name 'clojure) + (description "Simple Clojure build system using plain old 'compile'") + (lower lower))) + +;;; clojure.scm ends here diff --git a/guix/build/clojure-build-system.scm b/guix/build/clojure-build-system.scm new file mode 100644 index 000000000..d8f7c89f8 --- /dev/null +++ b/guix/build/clojure-build-system.scm @@ -0,0 +1,110 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Alex Vong +;;; +;;; 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 . + +(define-module (guix build clojure-build-system) + #:use-module ((guix build ant-build-system) + #:select ((%standard-phases . %standard-phases@ant) + ant-build)) + #:use-module (guix build clojure-utils) + #:use-module (guix build java-utils) + #:use-module (guix build utils) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (%standard-phases + clojure-build)) + +;; Commentary: +;; +;; Builder-side code of the standard build procedure for Clojure packages. +;; +;; Code: + +(define* (build #:key + source-dirs compile-dir + jar-names main-class omit-source? + aot-include aot-exclude + #:allow-other-keys) + "Standard 'build' phase for clojure-build-system." + (let* ((libs (append-map find-clojure-libs source-dirs)) + (libs* (include-list\exclude-list aot-include + aot-exclude + #:all-list libs))) + (mkdir-p compile-dir) + (eval-with-clojure `(run! compile ',libs*) + source-dirs) + (let ((source-dir-files-alist (map (lambda (dir) + (cons dir (find-files* dir))) + source-dirs)) + ;; workaround transitive compilation in Clojure + (classes (filter (lambda (class) + (any (cut compiled-from? class <>) + libs*)) + (find-files* compile-dir)))) + (for-each (cut create-jar <> (cons (cons compile-dir classes) + (if omit-source? + '() + source-dir-files-alist)) + #:main-class main-class) + jar-names) + #t))) + +(define* (check #:key + test-dirs + jar-names + tests? test-include test-exclude + #:allow-other-keys) + "Standard 'check' phase for clojure-build-system. Note that TEST-EXCLUDE has +priority over TEST-INCLUDE." + (if tests? + (let* ((libs (append-map find-clojure-libs test-dirs)) + (libs* (include-list\exclude-list test-include + test-exclude + #:all-list libs))) + (for-each (lambda (jar) + (eval-with-clojure `(do (apply require + '(clojure.test ,@libs*)) + (apply clojure.test/run-tests + ',libs*)) + (cons jar test-dirs))) + jar-names))) + #t) + +(define-with-docs install + "Standard 'install' phase for clojure-build-system." + (install-jars "./")) + +(define-with-docs %standard-phases + "Standard build phases for clojure-build-system." + (modify-phases %standard-phases@ant + (replace 'build build) + (replace 'check check) + (replace 'install install) + (add-after 'install-license-files 'install-doc install-doc))) + +(define* (clojure-build #:key + inputs + (phases %standard-phases) + #:allow-other-keys + #:rest args) + "Build the given Clojure package, applying all of PHASES in order." + (apply ant-build + #:inputs inputs + #:phases phases + args)) + +;;; clojure-build-system.scm ends here diff --git a/guix/build/clojure-utils.scm b/guix/build/clojure-utils.scm index 713dff2d8..027777b4d 100644 --- a/guix/build/clojure-utils.scm +++ b/guix/build/clojure-utils.scm @@ -19,12 +19,48 @@ (define-module (guix build clojure-utils) #:use-module (guix build utils) #:use-module (ice-9 ftw) + #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-8) #:use-module (srfi srfi-26) - #:export (%clojure-regex + #:export (@* + @@* define-with-docs - install-doc)) + + %doc-regex + install-doc + + %source-dirs + %test-dirs + %compile-dir + package-name->jar-names + %main-class + %omit-source? + %aot-include + %aot-exclude + %tests? + %test-include + %test-exclude + + %clojure-regex + canonicalize-relative-path + find-files* + file-sans-extension + relative-path->clojure-lib-string + find-clojure-libs + compiled-from? + include-list\exclude-list + eval-with-clojure + create-jar)) + +(define-syntax-rule (@* module name) + "Like (@ MODULE NAME), but resolves at run time." + (module-ref (resolve-interface 'module) 'name)) + +(define-syntax-rule (@@* module name) + "Like (@@ MODULE NAME), but resolves at run time." + (module-ref (resolve-module 'module) 'name)) (define-syntax-rule (define-with-docs name docs val) "Create top-level variable named NAME with doc string DOCS and value VAL." @@ -63,3 +99,167 @@ DOC-REGEX can be compiled or uncompiled." (for-each (cut copy-recursively <> dest-dir) doc-dirs) #t)) + +(define-with-docs %source-dirs + "A default list of source directories." + '("src/")) + +(define-with-docs %test-dirs + "A default list of test directories." + '("test/")) + +(define-with-docs %compile-dir + "Default directory for holding class files." + "classes/") + +(define (package-name->jar-names name) + "Given NAME, a package name like \"foo-0.9.1b\", +return the list of default jar names: (\"foo-0.9.1b.jar\" \"foo.jar\")." + (map (cut string-append <> ".jar") + (list name + (receive (base-name _) + (package-name->name+version name) + base-name)))) + +(define-with-docs %main-class + "Default name for main class. It should be a symbol or #f." + #f) + +(define-with-docs %omit-source? + "Include source in jars by default." + #f) + +(define-with-docs %aot-include + "A default list of symbols deciding what to compile. Note that the exclude +list has priority over the include list. The special keyword #:all represents +all libraries found under the source directories." + '(#:all)) + +(define-with-docs %aot-exclude + "A default list of symbols deciding what not to compile. +See the doc string of '%aot-include' for more details." + '()) + +(define-with-docs %tests? + "Enable tests by default." + #t) + +(define-with-docs %test-include + "A default list of symbols deciding what tests to include. Note that the +exclude list has priority over the include list. The special keyword #:all +represents all tests found under the test directories." + '(#:all)) + +(define-with-docs %test-exclude + "A default list of symbols deciding what tests to exclude. +See the doc string of '%test-include' for more details." + '()) + +(define-with-docs %clojure-regex + "Default regex for matching the base name of clojure source files." + "\\.cljc?$") + +(define-with-docs canonicalize-relative-path + "Like 'canonicalize-path', but for relative paths. +Canonicalizations requiring the path to exist are omitted." + (let ((remove.. (lambda (ls) + (fold-right (match-lambda* + (((and comp (not "..")) (".." comps ...)) + comps) + ((comp (comps ...)) + (cons comp comps))) + '() + ls)))) + (compose (match-lambda + (() ".") + (ls (string-join ls "/"))) + remove.. + (cut remove (cut member <> '("" ".")) <>) + (cut string-split <> #\/)))) + +(define (find-files* base-dir . args) + "Similar to 'find-files', but with BASE-DIR stripped and result +canonicalized." + (map canonicalize-relative-path + (with-directory-excursion base-dir + (apply find-files "./" args)))) + +;;; FIXME: should be moved to (guix build utils) +(define-with-docs file-sans-extension + "Strip extension from path, if any." + (@@ (guix build guile-build-system) + file-sans-extension)) + +(define (relative-path->clojure-lib-string path) + "Convert PATH to a clojure library string." + (string-map (match-lambda + (#\/ #\.) + (#\_ #\-) + (chr chr)) + (file-sans-extension path))) + +(define* (find-clojure-libs base-dir + #:key (clojure-regex %clojure-regex)) + "Return the list of clojure libraries found under BASE-DIR. + +CLOJURE-REGEX can be compiled or uncompiled." + (map (compose string->symbol + relative-path->clojure-lib-string) + (find-files* base-dir clojure-regex))) + +(define (compiled-from? class lib) + "Given class file CLASS and clojure library symbol LIB, decide if CLASS +results from compiling LIB." + (string-prefix? (symbol->string lib) + (relative-path->clojure-lib-string class))) + +(define* (include-list\exclude-list include-list exclude-list + #:key all-list) + "Given INCLUDE-LIST and EXCLUDE-LIST, replace all occurences of #:all by +slicing ALL-LIST into them and compute their list difference." + (define (replace-#:all ls all-ls) + (append-map (match-lambda + (#:all all-ls) + (x (list x))) + ls)) + (let ((include-list* (replace-#:all include-list all-list)) + (exclude-list* (replace-#:all exclude-list all-list))) + (lset-difference equal? include-list* exclude-list*))) + +(define (eval-with-clojure expr extra-paths) + "Evaluate EXPR with clojure. + +EXPR must be a s-expression writable by guile and readable by clojure. +For examples, '(require '[clojure.string]) will not work, +because the guile writer converts brackets to parentheses. + +EXTRA-PATHS is a list of paths which will be appended to $CLASSPATH." + (let* ((classpath (getenv "CLASSPATH")) + (classpath* (string-join (cons classpath extra-paths) ":"))) + (invoke "java" + "-classpath" classpath* + "clojure.main" + "--eval" (object->string expr)))) + +(define* (create-jar output-jar dir-files-alist + #:key + (verbose? #t) + (compress? #f) + (main-class %main-class)) + "Given DIR-FILES-ALIST, an alist of the form: ((DIR . FILES) ...) +Create jar named OUTPUT-JAR from FILES with DIR stripped." + (let ((grouped-options (string-append "c" + (if verbose? "v" "") + "f" + (if compress? "" "0") + (if main-class "e" "")))) + (apply invoke `("jar" + ,grouped-options + ,output-jar + ,@(if main-class (list (symbol->string main-class)) '()) + ,@(append-map (match-lambda + ((dir . files) + (append-map (lambda (file) + `("-C" ,dir ,file)) + files))) + dir-files-alist))))) -- 2.19.1 From patchwork Wed Oct 31 06:11:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Vong X-Patchwork-Id: 65 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id C23641676A; Wed, 31 Oct 2018 06:12:14 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id 5B8951675C for ; Wed, 31 Oct 2018 06:12:14 +0000 (GMT) Received: from localhost ([::1]:57504 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjjh-00049C-NR for patchwork@mira.cbaines.net; Wed, 31 Oct 2018 02:12:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58128) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjja-00048n-8K for guix-patches@gnu.org; Wed, 31 Oct 2018 02:12:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHjjW-0003E0-63 for guix-patches@gnu.org; Wed, 31 Oct 2018 02:12:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:51933) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHjjV-0003Dr-Vk for guix-patches@gnu.org; Wed, 31 Oct 2018 02:12:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gHjjV-0006kk-Qi for guix-patches@gnu.org; Wed, 31 Oct 2018 02:12:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33215] [PATCH 07/11] gnu: Add clojure-instaparse. References: <87muquhcw3.fsf@gmail.com> In-Reply-To: <87muquhcw3.fsf@gmail.com> Resent-From: Alex Vong Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 31 Oct 2018 06:12:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33215 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33215@debbugs.gnu.org Received: via spool by 33215-submit@debbugs.gnu.org id=B33215.154096627525894 (code B ref 33215); Wed, 31 Oct 2018 06:12:01 +0000 Received: (at 33215) by debbugs.gnu.org; 31 Oct 2018 06:11:15 +0000 Received: from localhost ([127.0.0.1]:56188 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjil-0006jZ-0a for submit@debbugs.gnu.org; Wed, 31 Oct 2018 02:11:15 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:34917) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjij-0006jM-Au for 33215@debbugs.gnu.org; Wed, 31 Oct 2018 02:11:13 -0400 Received: by mail-pl1-f194.google.com with SMTP id n4-v6so6175116plp.2 for <33215@debbugs.gnu.org>; Tue, 30 Oct 2018 23:11:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:user-agent:mime-version; bh=+3YsHOZdmgrBt3ax7SZ48LRGWq4NysKeg5mkpP3ikBs=; b=ilo9tQbnQTIj9oWczt6b9ZA79+YP/8p1BUEuOjVQw8e2C9oY8cdVgJEBeV8VuFtkqk 9x8KT/rqa8AUVBbACrZzNYNJV+O2nHJIO8z499LfPVUOHE86IdP6t9vgfWLwRi5IaLn8 ner9q6U/szMDeTvlcR4NK2sGqE3gDM9rhHtgOt262x1b93eA8mWWy6i6h3DtCue+BsTp r371UIhCzbDT8A8DyBOqi+HhSS/siI9z4+rNHpR/pKqrd+reAwgqTyWsvC8QnNnm4cUW iIZd3xGtMss7sbOXjYj2ShWKv6uv9JFsSisG46CcEBrbZ6BQ8w29GhTGpvTXxP5Hzdh5 GfcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :mime-version; bh=+3YsHOZdmgrBt3ax7SZ48LRGWq4NysKeg5mkpP3ikBs=; b=O0WnTsmVNrrO8/fMyc/+9TJGH191++gCav+p/nr3ugh8kceD4XwhQ1pdzxSR/5kthW 9Y/T5qM+pNYtg8DTqNS2C1p1eVHp0oEmycZm0iQOJEpPb9KRzRSKW6MnguCq8ws+AEYT wKyX7gce/3O+cjHpCjaL+6OBvvxws6QCks+g7/BX+auffrRiCJBd8gLTf0J2/YSh4/ai DTprAWwfHuKhCyeThDNPBgnlcU+OsOwOSNCR+kFeePbyhjuna56D80ChME0qVMjy7t2E n5vBCqoaiBQNlGjtdlHgNOKzzFtPEIV4z4imc2lRfY89qHh8rmjwd3w5rNPFZgfvmchx 66wg== X-Gm-Message-State: AGRZ1gJcFs55o81ojzXanYN47JXFN0Rt1cZRoIR5FqR0aAAiEZWhox3u PnfDNhH56rwv6Vekyx7/J89atgCP X-Google-Smtp-Source: AJdET5dYd7EBSZVcUkTxcmsTY5wdSXGzapWdafZTz+HX1kMUrr8f4Yo43zwiuWjKFsy/U7KxITMNlA== X-Received: by 2002:a17:902:e20e:: with SMTP id ce14-v6mr1900765plb.226.1540966267838; Tue, 30 Oct 2018 23:11:07 -0700 (PDT) Received: from debian (42-3-197-089.static.netvigator.com. [42.3.197.89]) by smtp.gmail.com with ESMTPSA id 130-v6sm28830029pfz.174.2018.10.30.23.11.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 30 Oct 2018 23:11:07 -0700 (PDT) From: Alex Vong Date: Wed, 31 Oct 2018 14:11:03 +0800 Message-ID: <87sh0mfxxk.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexvong1995@gmail.com Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From 835b431224da203bfefc984019529679495a64b5 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sun, 14 Oct 2018 04:17:14 +0800 Subject: [PATCH 07/11] gnu: Add clojure-instaparse. * gnu/packages/lisp.scm (clojure-instaparse): New public variable. --- gnu/packages/lisp.scm | 53 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index ee43e5abf..3bb70c692 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -36,6 +36,7 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system ant) + #:use-module (guix build-system clojure) #:use-module (guix build-system asdf) #:use-module (guix build-system trivial) #:use-module (gnu packages admin) @@ -1603,6 +1604,58 @@ compressor. It works on data produced by @code{parse-js} to generate a ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js))) (synopsis "JavaScript compressor"))) +(define-public clojure-instaparse + (let ((commit "dcfffad5b065e750f0f5835f017cdd8188b8ca2e") + (version "1.4.9")) ; upstream forget to tag this release + (package + (name "clojure-instaparse") + (version version) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Engelberg/instaparse.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "002mrgin4z3dqy88r1lak7smd0m7x8d22vmliw0m6w6mh5pa17lk")))) + (build-system clojure-build-system) + (arguments + '(#:doc-dirs '("docs/"))) + (synopsis "No grammar left behind") + (description + "Instaparse aims to be the simplest way to build parsers in Clojure. + +@itemize +@item Turns @emph{standard EBNF or ABNF notation} for context-free grammars +into an executable parser that takes a string as an input and produces a parse +tree for that string. + +@item @dfn{No Grammar Left Behind}: Works for @emph{any} context-free grammar, +including @emph{left-recursive}, @emph{right-recursive}, and @emph{ambiguous} +grammars. + +@item Extends the power of context-free grammars with PEG-like syntax for +lookahead and negative lookahead. + +@item Supports both of Clojure's most popular tree formats (hiccup and enlive) +as output targets + +@item Detailed reporting of parse errors. + +@item Optionally produces lazy sequence of all parses (especially useful for +diagnosing and debugging ambiguous grammars). + +@item ``Total parsing'' mode where leftover string is embedded in the parse +tree. + +@item Optional combinator library for building grammars programmatically. + +@item Performant. +@end itemize") + (home-page "https://github.com/Engelberg/instaparse") + (license license:epl1.0)))) + (define-public confusion-mdl (let* ((commit "12a055581fc262225272df43287dae48281900f5")) (package -- 2.19.1 From patchwork Wed Oct 31 06:11:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Vong X-Patchwork-Id: 66 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 3F3551676A; Wed, 31 Oct 2018 06:12:19 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id DB95B1675C for ; Wed, 31 Oct 2018 06:12:18 +0000 (GMT) Received: from localhost ([::1]:57505 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjjm-0004Br-6v for patchwork@mira.cbaines.net; Wed, 31 Oct 2018 02:12:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58131) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjja-00048o-LV for guix-patches@gnu.org; Wed, 31 Oct 2018 02:12:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHjjW-0003EI-K4 for guix-patches@gnu.org; Wed, 31 Oct 2018 02:12:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:51934) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHjjW-0003EA-Ex for guix-patches@gnu.org; Wed, 31 Oct 2018 02:12:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gHjjW-0006ks-9t for guix-patches@gnu.org; Wed, 31 Oct 2018 02:12:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33215] [PATCH 08/11] gnu: Add clojure-core-match. References: <87muquhcw3.fsf@gmail.com> In-Reply-To: <87muquhcw3.fsf@gmail.com> Resent-From: Alex Vong Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 31 Oct 2018 06:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33215 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33215@debbugs.gnu.org Received: via spool by 33215-submit@debbugs.gnu.org id=B33215.154096631125943 (code B ref 33215); Wed, 31 Oct 2018 06:12:02 +0000 Received: (at 33215) by debbugs.gnu.org; 31 Oct 2018 06:11:51 +0000 Received: from localhost ([127.0.0.1]:56191 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjjL-0006kN-CX for submit@debbugs.gnu.org; Wed, 31 Oct 2018 02:11:51 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:43025) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjjK-0006kA-4U for 33215@debbugs.gnu.org; Wed, 31 Oct 2018 02:11:50 -0400 Received: by mail-pf1-f194.google.com with SMTP id h4-v6so7067070pfi.10 for <33215@debbugs.gnu.org>; Tue, 30 Oct 2018 23:11:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:user-agent:mime-version; bh=KBKGPyxrxwgFpe/Ki/LrhF22CWqrhbc/nUl69lElTL4=; b=Nld71CsYvaCLTsB16awhI1bbB0oElDWe0R2D30ImfFog+yXKWtaNkY1cNgMP5CF8WW 2lPOCxNciCTvLM3DfJ6ntv26MkBxTFYWzSlm44LJI6QNGbSqf9bwJRXmI+yil2I8OwzF GwZHk6k/UvCE9q6jQIWV7QezwlHbU+skq0uMNFNrDgNRcnwRizOlQolcaH6Y+VxMzZuX LQQUAHCmdzADBKmdzkyuriAR7UU7o1v+Ml/oZH+PbAMGt/mi1/rKj3CfcDIMdeBgDwDe r8PgUTrZTsKrchAiLwcsbsXbQxNN6qu3Pi/FVvUxJTCGQWJKcsUv2izFomS+Db0mjWiM VD+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :mime-version; bh=KBKGPyxrxwgFpe/Ki/LrhF22CWqrhbc/nUl69lElTL4=; b=Tb1Oc0Xreq2fOrACUamPh4F0G6nNPxEzqoi3JCh/Fh2AihS4spHLyT0cWj/cwZ76Iw qhxKyK2NoENyna890ABv9Na+Y79JqlDXuY0YeKKUZd0iB49VYHoobIqJnWQ42OSN2SS3 h8P1CaPUqo1zuNODtv19/6wYnS5SG9miJbLaD4t8d9OhAbxIuzbOvT1gUs0Ti7vLhjr7 4ABz5Ex7HPuyuWZtjKcibBfy5C2wXkYsosh84nKJScin9rUgDnL4rY8r83zcFMdqNV0C 0mRDFFgmu59rnc9W/xTnEPG3RMEXy01wP1+NBFgO8AakMVwXn3r6kKkcNcvjUx6yhC7j Qz7w== X-Gm-Message-State: AGRZ1gLBSz8M/RuahunQZeWki6R1pDcIOO3y/jGwIo6V0000++opngTd 4Hb7br/fZeqhFvcPw9m5+Kg= X-Google-Smtp-Source: AJdET5dbqQPSFws2hGr92d8QVSJcQ4lsflHdQq5uuVRiz5hTSg4AqidsuZ5Ccyv4b9PJH9QMIX7H4w== X-Received: by 2002:a62:2a04:: with SMTP id q4-v6mr1941685pfq.61.1540966304496; Tue, 30 Oct 2018 23:11:44 -0700 (PDT) Received: from debian (42-3-197-089.static.netvigator.com. [42.3.197.89]) by smtp.gmail.com with ESMTPSA id k70-v6sm30099903pfc.76.2018.10.30.23.11.43 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 30 Oct 2018 23:11:43 -0700 (PDT) From: Alex Vong Date: Wed, 31 Oct 2018 14:11:38 +0800 Message-ID: <87o9bafxwl.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexvong1995@gmail.com Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From d68fa82e88fcb2e382f5b93519dbde4b48d7abe4 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sun, 14 Oct 2018 18:08:26 +0800 Subject: [PATCH 08/11] gnu: Add clojure-core-match. * gnu/packages/lisp.scm (clojure-core-match): New public variable. --- gnu/packages/lisp.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 3bb70c692..db8d0e61a 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -1604,6 +1604,33 @@ compressor. It works on data produced by @code{parse-js} to generate a ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js))) (synopsis "JavaScript compressor"))) +(define-public clojure-core-match + (let ((commit "1837ffbd4a150e8f3953b2d9ed5cf4a4ad3720a7") + (revision "1")) ; this is the 1st commit buildable with clojure 1.9 + (package + (name "clojure-core-match") + (version (git-version "0.3.0-alpha5" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/clojure/core.match.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04bdlp5dgkrqzrz0lw3mfwmygj2218qnm1cz3dkb9wy4m0238s4d")))) + (build-system clojure-build-system) + (arguments + '(#:source-dirs '("src/main/clojure") + #:test-dirs '("src/test/clojure") + #:doc-dirs '())) + (synopsis "Optimized pattern matching for Clojure") + (description + "An optimized pattern matching library for Clojure. +It supports Clojure 1.5.1 and later as well as ClojureScript.") + (home-page "https://github.com/clojure/core.match") + (license license:epl1.0)))) + (define-public clojure-instaparse (let ((commit "dcfffad5b065e750f0f5835f017cdd8188b8ca2e") (version "1.4.9")) ; upstream forget to tag this release -- 2.19.1 From patchwork Wed Oct 31 06:12:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Vong X-Patchwork-Id: 67 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 6366D1676A; Wed, 31 Oct 2018 06:13:20 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id 0EA3B1675C for ; Wed, 31 Oct 2018 06:13:20 +0000 (GMT) Received: from localhost ([::1]:57506 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjkl-0005jU-CZ for patchwork@mira.cbaines.net; Wed, 31 Oct 2018 02:13:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58352) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjkg-0005iJ-KO for guix-patches@gnu.org; Wed, 31 Oct 2018 02:13:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHjka-0003rr-Jw for guix-patches@gnu.org; Wed, 31 Oct 2018 02:13:12 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:51939) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHjkT-0003ol-W4 for guix-patches@gnu.org; Wed, 31 Oct 2018 02:13:05 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gHjkT-0006mf-Pw for guix-patches@gnu.org; Wed, 31 Oct 2018 02:13:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33215] [PATCH 09/11] gnu: Add clojure-algo-generic. References: <87muquhcw3.fsf@gmail.com> In-Reply-To: <87muquhcw3.fsf@gmail.com> Resent-From: Alex Vong Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 31 Oct 2018 06:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33215 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33215@debbugs.gnu.org Received: via spool by 33215-submit@debbugs.gnu.org id=B33215.154096637226059 (code B ref 33215); Wed, 31 Oct 2018 06:13:01 +0000 Received: (at 33215) by debbugs.gnu.org; 31 Oct 2018 06:12:52 +0000 Received: from localhost ([127.0.0.1]:56197 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjkJ-0006mF-Nk for submit@debbugs.gnu.org; Wed, 31 Oct 2018 02:12:51 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:44179) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjkI-0006m3-49 for 33215@debbugs.gnu.org; Wed, 31 Oct 2018 02:12:50 -0400 Received: by mail-pf1-f196.google.com with SMTP id j13-v6so3581083pff.11 for <33215@debbugs.gnu.org>; Tue, 30 Oct 2018 23:12:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:user-agent:mime-version; bh=C/RNdb8yzV/BN/FcxPch3go6mMRpv/8N4IMDjTJu4Wg=; b=iBEurykypNTwWYBRnIjEBh4CQlKcsUn9B198Kj/fggqiOy0RTTXNB7QzSAqlqbVpNN DjAScgrFdPU4Sv8gLdWMdbyDU3G0nsdWMkAoqlokBoGxEfibFwO1GqbPTyxAI06hqqsK o31CzMsypPHr3BeOEro7wyapLmuzYLiPm9bHP9AgqUn/pqgt6uX3pjM4IHH0tRDWMSAl g7WctVZpiBzc4iqARb0pLR506gvm9ijlaYSuHN2bsFUlaZw1ARiwBG/rp3T3SszjByVC 2m/wQsYyQNjUKeLNi4OTpyVAArXdhNPgkxvzxRY4y2h8QCFNiMNLRSMaz22SvR4gtJSh lgxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :mime-version; bh=C/RNdb8yzV/BN/FcxPch3go6mMRpv/8N4IMDjTJu4Wg=; b=eZ5Zs4/oSva5V5YcAg+WY4mdqVgJNovE1s3G0qQaQXQkkSyu9VFlmH3BQf/6wpO2GK SBuzqY9s3sbpvqA/zh/DqlY4AfzdgN2KL++Ewec73P1lD2OXG1/m++g7lveWmHGkcgKU kWdikpfJ/Rb1qS2VUB1REOaCFtytHMfYaD7QYq9pmaxWsyTqo0lBir5LDD9grbK++nWC 6v3RgbFK34HFM0fO/Ez+sooQsFYNteEZhxbyboFjvs6tV7UPL2FngizSS1EmHxOq9FyH HfjIMbRX8wcMn+J4EzOmdLg2jE0K3dvFJ2yGMNeOIR4+qyB4Qu2CGaSYE9z6ihH6C2J3 pMEQ== X-Gm-Message-State: AGRZ1gLImBY8yJ/6ljFAtxpXq1qs/WSIaGwmVRgGyV8aAvfypX/2gyN/ Y3IS3aRxqBwkcgB2VBq52VQ= X-Google-Smtp-Source: AJdET5fqW1ssBi9vx8iXBeXSIiD6WBiOp5jXwkIKxMXFnU+KQW09q+UkCto93Qv2FmBhao5hkqSZYg== X-Received: by 2002:a62:8a0d:: with SMTP id y13-v6mr1995339pfd.142.1540966364528; Tue, 30 Oct 2018 23:12:44 -0700 (PDT) Received: from debian (42-3-197-089.static.netvigator.com. [42.3.197.89]) by smtp.gmail.com with ESMTPSA id y88-v6sm14208788pfd.104.2018.10.30.23.12.43 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 30 Oct 2018 23:12:43 -0700 (PDT) From: Alex Vong Date: Wed, 31 Oct 2018 14:12:30 +0800 Message-ID: <87k1lyfxv5.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexvong1995@gmail.com Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From f7228a07fa32fe3c6f4f0808e3112d63888e67cc Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sun, 14 Oct 2018 19:06:52 +0800 Subject: [PATCH 09/11] gnu: Add clojure-algo-generic. * gnu/packages/lisp.scm (clojure-algo-generic): New public variable. --- gnu/packages/lisp.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index db8d0e61a..78a74e981 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -1604,6 +1604,30 @@ compressor. It works on data produced by @code{parse-js} to generate a ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js))) (synopsis "JavaScript compressor"))) +(define-public clojure-algo-generic + (package + (name "clojure-algo-generic") + (version "0.1.3") + (source + (origin + (method url-fetch) + (uri + (string-append "https://github.com/clojure/algo.generic/archive" + "/algo.generic-" version ".tar.gz")) + (sha256 + (base32 "12w9681i545gp1af4576z1qbixwps1j13c16fmcc7zsb0bd1zr7w")))) + (build-system clojure-build-system) + (arguments + '(#:source-dirs '("src/main/clojure/") + #:test-dirs '("src/test/clojure/") + #:doc-dirs '())) + (synopsis "Generic versions of common functions") + (description + "Generic versions of commonly used functions, implemented as multimethods +that can be implemented for any data type.") + (home-page "https://github.com/clojure/algo.generic") + (license license:epl1.0))) + (define-public clojure-core-match (let ((commit "1837ffbd4a150e8f3953b2d9ed5cf4a4ad3720a7") (revision "1")) ; this is the 1st commit buildable with clojure 1.9 -- 2.19.1 From patchwork Wed Oct 31 06:13:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Vong X-Patchwork-Id: 68 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 804351676A; Wed, 31 Oct 2018 06:14:12 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id 2C2121675C for ; Wed, 31 Oct 2018 06:14:12 +0000 (GMT) Received: from localhost ([::1]:57507 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjlb-0005nh-F3 for patchwork@mira.cbaines.net; Wed, 31 Oct 2018 02:14:11 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58537) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjlV-0005nR-Qo for guix-patches@gnu.org; Wed, 31 Oct 2018 02:14:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHjlS-0004T2-Iv for guix-patches@gnu.org; Wed, 31 Oct 2018 02:14:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:51943) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHjlS-0004Sk-EK for guix-patches@gnu.org; Wed, 31 Oct 2018 02:14:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gHjlS-0006oW-65 for guix-patches@gnu.org; Wed, 31 Oct 2018 02:14:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33215] [PATCH 10/11] gnu: Add clojure-tools-macro. References: <87muquhcw3.fsf@gmail.com> In-Reply-To: <87muquhcw3.fsf@gmail.com> Resent-From: Alex Vong Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 31 Oct 2018 06:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33215 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33215@debbugs.gnu.org Received: via spool by 33215-submit@debbugs.gnu.org id=B33215.154096642526162 (code B ref 33215); Wed, 31 Oct 2018 06:14:02 +0000 Received: (at 33215) by debbugs.gnu.org; 31 Oct 2018 06:13:45 +0000 Received: from localhost ([127.0.0.1]:56201 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjlA-0006nq-1d for submit@debbugs.gnu.org; Wed, 31 Oct 2018 02:13:45 -0400 Received: from mail-pg1-f181.google.com ([209.85.215.181]:34823) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjl8-0006nd-Ti for 33215@debbugs.gnu.org; Wed, 31 Oct 2018 02:13:43 -0400 Received: by mail-pg1-f181.google.com with SMTP id 32-v6so6867631pgu.2 for <33215@debbugs.gnu.org>; Tue, 30 Oct 2018 23:13:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:user-agent:mime-version; bh=pkoJHS84eK4eH0JOIYVnps1ErLcIHBSppKLynnEUbI0=; b=UnDhG+qP/Tv3qLZAApHWtzDVGaWT0Wgu+7ftnh+BA39dy7tiwhZkNWZOysSk/G6puC TwB8J7oW8AX2W+c673m9TgxIZUX5JxHHOym+/cl4nAgIL69+v4Koct5CJbq1ntak7xiL RQOcbxr3XzQdN2KnwtL15DBVB4m538V7kD6OuvnN909M5Xh8HJlk+dlFPHLWv9oWa0h0 T2W6NfKxlrBSP3FmXeWgaidIGV1qHdrUZ6zpf6Zl2nbr243irlSfQ5UY5VCYGzyYqmrv 1OVt5wGeZA5cTJ63a66q7tmmPvXpkQDOHnSsc9GbsvSNYJpW75YkchhLU/3Ur2+K0aLD /5sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :mime-version; bh=pkoJHS84eK4eH0JOIYVnps1ErLcIHBSppKLynnEUbI0=; b=Otg+qnL0LxBvSHn2XKgHM01wUJOB/4bPk7CngN0/YpMQEuGA2GI/q1Qcy9KbK18Lk3 gl8IfIUFCXmJ5KnwuRMC5R9dRD3U6XQFPnAsirbZq5yOhA4YyWPkNa3WnDNq7Al7KhN9 oNoVq+SfsZG2AOGUUeXe7W2dMRqon0TwEJ4jpMaGdpRwnUuhAi467gMEjBna+uGRB5aW pxuXoFc0+Sj8cpmudHaqbMJedfwAFLrUrE3hnQ62drxkAIxYJG2NY9LMPtCPhksNCecW eR3uIN/AX/09rMlCJ+2rMvcQXaRez1l7rtzq5MOHX7TwOynKilPx6AO/D8wQSFiXhAd7 Eztw== X-Gm-Message-State: AGRZ1gKEaFRdQkgW0/zM4S86PqGoi4jVzl8bs2OAkvFRM1L+LzXiKb44 wMoEa0gWovOUuet0/QlrK/A= X-Google-Smtp-Source: AJdET5eQZIvljbsG/ObqMon8eyCUCaywu+ZXJdYB6j4H2yyIhnJjq/xffCEMBdfusCFJhhVmLnNrEQ== X-Received: by 2002:a62:20d8:: with SMTP id m85-v6mr1964075pfj.152.1540966417280; Tue, 30 Oct 2018 23:13:37 -0700 (PDT) Received: from debian (42-3-197-089.static.netvigator.com. [42.3.197.89]) by smtp.gmail.com with ESMTPSA id q127-v6sm79460725pgq.19.2018.10.30.23.13.35 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 30 Oct 2018 23:13:36 -0700 (PDT) From: Alex Vong Date: Wed, 31 Oct 2018 14:13:31 +0800 Message-ID: <87d0rqfxtg.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexvong1995@gmail.com Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From 49e2e0297ed26ce7c753d5abd0bcdaf3f636384b Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sun, 14 Oct 2018 19:37:40 +0800 Subject: [PATCH 10/11] gnu: Add clojure-tools-macro. * gnu/packages/lisp.scm (clojure-tools-macro): New public variable. --- gnu/packages/lisp.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 78a74e981..9fda122cc 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -1707,6 +1707,28 @@ tree. (home-page "https://github.com/Engelberg/instaparse") (license license:epl1.0)))) +(define-public clojure-tools-macro + (package + (name "clojure-tools-macro") + (version "0.1.5") + (source + (origin + (method url-fetch) + (uri + (string-append "https://github.com/clojure/tools.macro/archive" + "/tools.macro-" version ".tar.gz")) + (sha256 + (base32 "0fs64a0g63xx6g7sj6vrsqknhl90s0isf6k053nw8vv5prfzc7v6")))) + (build-system clojure-build-system) + (arguments + '(#:source-dirs '("src/main/clojure/") + #:test-dirs '("src/test/clojure/") + #:doc-dirs '())) + (synopsis "Utilities for macro writers") + (description "Tools for writing macros.") + (home-page "https://github.com/clojure/tools.macro") + (license license:epl1.0))) + (define-public confusion-mdl (let* ((commit "12a055581fc262225272df43287dae48281900f5")) (package -- 2.19.1 From patchwork Wed Oct 31 06:14:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Vong X-Patchwork-Id: 69 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 0B2711676A; Wed, 31 Oct 2018 06:15:14 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id A13671675C for ; Wed, 31 Oct 2018 06:15:13 +0000 (GMT) Received: from localhost ([::1]:57513 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjmb-0005tR-0j for patchwork@mira.cbaines.net; Wed, 31 Oct 2018 02:15:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58691) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHjmW-0005tJ-HL for guix-patches@gnu.org; Wed, 31 Oct 2018 02:15:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHjmT-00055S-8z for guix-patches@gnu.org; Wed, 31 Oct 2018 02:15:08 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:51947) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gHjmS-00055O-Vq for guix-patches@gnu.org; Wed, 31 Oct 2018 02:15:05 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gHjmP-0006qK-NH for guix-patches@gnu.org; Wed, 31 Oct 2018 02:15:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33215] [PATCH 11/11] gnu: Add clojure-algo-monads. References: <87muquhcw3.fsf@gmail.com> In-Reply-To: <87muquhcw3.fsf@gmail.com> Resent-From: Alex Vong Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 31 Oct 2018 06:15:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33215 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33215@debbugs.gnu.org Received: via spool by 33215-submit@debbugs.gnu.org id=B33215.154096646326244 (code B ref 33215); Wed, 31 Oct 2018 06:15:01 +0000 Received: (at 33215) by debbugs.gnu.org; 31 Oct 2018 06:14:23 +0000 Received: from localhost ([127.0.0.1]:56205 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjlm-0006pE-Lm for submit@debbugs.gnu.org; Wed, 31 Oct 2018 02:14:22 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:41344) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gHjll-0006p1-4l for 33215@debbugs.gnu.org; Wed, 31 Oct 2018 02:14:21 -0400 Received: by mail-pl1-f196.google.com with SMTP id p16-v6so596940plr.8 for <33215@debbugs.gnu.org>; Tue, 30 Oct 2018 23:14:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:user-agent:mime-version; bh=zF6So6/14QG9RrdjrK9t60C5biTyi2iYiQBlgnXffU8=; b=daVs3xuNU65E/EmICuPxRYbaOiOGYFHvZTVPbY9EmXqhhTeQJDDEPX27UiXFz7KvhW CtD2a3VtsJCfYqmY4lMkxG6i5dZaxjahMXcvFoWWt7chmsc9Vqapq7/epNVS7tjj2PeN W3Ew32sg8jqJoB1MJs1Qs0Nm5Owr8UaUP9QqeUoGpSOD6hKnIQr51yxetflyRYJPUKSt PU5Xv2geaLrqauBte0+kSmfbAUcQE1ElqZ7ZbuPNgs9UGcsXQj6xJZvn8En5Tp4eRVjf yB2I7TvgKaJnwhtToTe1SPh0SHbhjFtwl0Xt3pauW0fKxR39XbjCje0vwNZdymgKR7IM O3yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :mime-version; bh=zF6So6/14QG9RrdjrK9t60C5biTyi2iYiQBlgnXffU8=; b=n3bj1dV1MoPzXb1v7TaYdnhnEiiJPMqEHUWTPxh736NJK/6K6FL6vddkuHDHlhF/wt wsy21YBp7caonHRtpj2jC1EStNXpQMt8MQKE2oqluIlc9Zh8s+1AYZy+Hl8JJ+1NQsLX V1FNP3dVshYHnoTdOR0aODqf9+WIq2f7mzzzpKRWbQGKRLjePEQV9l3cCSGlA+so6mST ivT3A3ZkeLf2Euw2THUUggogDRTjK6u0obblGha82FSpK6iG9ZU97oTT8XzI1ZepZ5kf DaK/a1GBoVfswlXd1XgNGNeQrY257uJB74OzYfT9T3UKmNWpqUNOrS4nJBxl5N95AA2W 4W2Q== X-Gm-Message-State: AGRZ1gKQt6LGKObhOV+9nkEuivGLIq0czhzkgYrBaujrya9LWg4SeyMV jLygKjLo3BBa7XbqF/aq3nc= X-Google-Smtp-Source: AJdET5cdVsYLRk8p7twXsYkIRiVqR0YKiYG0Ut5p7Lyuc6Q8m680rvPwrn6UXn2UtbPBP4U0iZTHOw== X-Received: by 2002:a17:902:61:: with SMTP id 88-v6mr1968930pla.189.1540966455584; Tue, 30 Oct 2018 23:14:15 -0700 (PDT) Received: from debian (42-3-197-089.static.netvigator.com. [42.3.197.89]) by smtp.gmail.com with ESMTPSA id s2-v6sm61610456pfk.133.2018.10.30.23.14.14 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 30 Oct 2018 23:14:15 -0700 (PDT) From: Alex Vong Date: Wed, 31 Oct 2018 14:14:09 +0800 Message-ID: <878t2efxse.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alexvong1995@gmail.com Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From 71e3bdb546ca258debf56ecdd60df86610a4cadc Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sun, 14 Oct 2018 20:15:02 +0800 Subject: [PATCH 11/11] gnu: Add clojure-algo-monads. * gnu/packages/lisp.scm (clojure-algo-monads): New public variable. --- gnu/packages/lisp.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 9fda122cc..aa8963fee 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -1628,6 +1628,33 @@ that can be implemented for any data type.") (home-page "https://github.com/clojure/algo.generic") (license license:epl1.0))) +(define-public clojure-algo-monads + (package + (name "clojure-algo-monads") + (version "0.1.6") + (source + (origin + (method url-fetch) + (uri + (string-append "https://github.com/clojure/algo.monads/archive" + "/algo.monads-" version ".tar.gz")) + (sha256 + (base32 "14gbvfgmrda990h45yn7zag83vp1kdkz4f4yzmyvkr0sjihlgdmq")))) + (build-system clojure-build-system) + (arguments + '(#:source-dirs '("src/main/clojure/") + #:test-dirs '("src/test/clojure/") + #:doc-dirs '())) + (native-inputs + `(("clojure-tools-macro" ,clojure-tools-macro))) + (synopsis + "Monad Macros and Definitions") + (description + "This library contains the most commonly used monads as well as macros for +defining and using monads and useful monadic functions.") + (home-page "https://github.com/clojure/algo.monads") + (license license:epl1.0))) + (define-public clojure-core-match (let ((commit "1837ffbd4a150e8f3953b2d9ed5cf4a4ad3720a7") (revision "1")) ; this is the 1st commit buildable with clojure 1.9 -- 2.19.1