diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..846c39f --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# Created by https://www.toptal.com/developers/gitignore/api/clojure +# Edit at https://www.toptal.com/developers/gitignore?templates=clojure + +### Clojure ### +pom.xml +pom.xml.asc +*.jar +*.class +/lib/ +/classes/ +/target/ +/checkouts/ +.lein-deps-sum +.lein-repl-history +.lein-plugins/ +.lein-failures +.nrepl-port +.cpcache/ +.clj-kondo/*/ + +# End of https://www.toptal.com/developers/gitignore/api/clojure diff --git a/bb.edn b/bb.edn new file mode 100644 index 0000000..37672ca --- /dev/null +++ b/bb.edn @@ -0,0 +1,37 @@ +{:deps {local/deps {:local/root "."}} + :paths ["src" "test"] + + :tasks + {:init + (do + (defn kaocha [alias args] + (apply shell "bin/kaocha" alias args))) + + test-9 + {:task (kaocha :clj-1-9 *command-line-args*)} + + test-10 + {:task (kaocha :clj-1-10 *command-line-args*)} + + test-11 + {:task (kaocha :clj-1-11 *command-line-args*)} + + test-clj + {:task (doseq [alias [:clj-1-9 :clj-1-10 :clj-1-11]] + (kaocha alias *command-line-args*))} + + test-bb + {:requires ([clojure.test :as t] + [net.cgrand.xforms-test]) + :task (t/run-tests 'net.cgrand.xforms-test)} + + perf-bb + {:requires ([net.cgrand.xforms :as x]) + :task + (let [n 10000 + m (zipmap (range 100) (range)) + mapping (map (fn [[k v]] [k (inc v)])) + xforing (x/for [[k v] _] [k (inc v)])] + (time (dotimes [_ n] (into {} mapping m))) + (time (dotimes [_ n] (into {} xforing m))) + (time (dotimes [_ n] (x/into {} xforing m))))}}} diff --git a/bin/kaocha b/bin/kaocha new file mode 100755 index 0000000..7f0174f --- /dev/null +++ b/bin/kaocha @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +set -x +clojure -Srepro -M:kaocha:test"$1" "${@:2}" diff --git a/deps.edn b/deps.edn new file mode 100644 index 0000000..206736c --- /dev/null +++ b/deps.edn @@ -0,0 +1,28 @@ +{:deps {net.cgrand/macrovich {:mvn/version "0.2.1"}} + :paths ["src"] + + :aliases + {:dev + {:extra-paths ["dev"]} + + :clj-1-9 + {:extra-deps + {org.clojure/clojure {:mvn/version "1.9.0"} + org.clojure/clojurescript {:mvn/version "1.9.293"}}} + + :clj-1-10 + {:extra-deps + {org.clojure/clojure {:mvn/version "1.10.3"} + org.clojure/clojurescript {:mvn/version "1.10.914"}}} + + :clj-1-11 + {:extra-deps + {org.clojure/clojure {:mvn/version "1.11.1"} + org.clojure/clojurescript {:mvn/version "1.11.60"}}} + + :test + {:extra-paths ["test"]} + + :kaocha + {:extra-deps {lambdaisland/kaocha {:mvn/version "1.69.1069"}} + :main-opts ["-m" "kaocha.runner"]}}} diff --git a/dev/user.clj b/dev/user.clj new file mode 100644 index 0000000..ca9ada7 --- /dev/null +++ b/dev/user.clj @@ -0,0 +1,3 @@ +(ns user) + +(set! *warn-on-reflection* true) diff --git a/project.clj b/project.clj index 771ae0b..6498344 100644 --- a/project.clj +++ b/project.clj @@ -1,8 +1,14 @@ -(defproject net.cgrand/xforms "0.19.2" +(defproject net.cgrand/xforms "0.19.3-SNAPSHOT" :description "Extra transducers for Clojure" :url "https://github.com/cgrand/xforms" :license {:name "Eclipse Public License" :url "http://www.eclipse.org/legal/epl-v10.html"} - :dependencies [[org.clojure/clojure "1.8.0" :scope "provided"] - [org.clojure/clojurescript "1.9.293" :scope "provided"] - [net.cgrand/macrovich "0.2.0"]]) \ No newline at end of file + + :plugins [[lein-tools-deps "0.4.5"]] + :middleware [lein-tools-deps.plugin/resolve-dependencies-with-deps-edn] + :lein-tools-deps/config {:config-files [:project]} + + :profiles + {:provided + {:dependencies [[org.clojure/clojure "1.8.0"] + [org.clojure/clojurescript "1.9.293"]]}}) diff --git a/tests.edn b/tests.edn new file mode 100644 index 0000000..9d8d845 --- /dev/null +++ b/tests.edn @@ -0,0 +1 @@ +#kaocha/v1 {}