From dfb8dacda280350583301b9e7f9f02a8cfc40b57 Mon Sep 17 00:00:00 2001 From: Savyasachi Date: Sat, 26 Sep 2026 14:42:52 -0700 Subject: [PATCH 1/3] Bump loom to 1.2.2 --- project.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.clj b/project.clj index c6a5df6..edfdafd 100644 --- a/project.clj +++ b/project.clj @@ -7,7 +7,7 @@ [com.fasterxml.jackson.core/jackson-core "2.12.4"]] :dependencies [[org.clojure/clojure "1.12.0"] - [aysylu/loom "1.0.2"] + [aysylu/loom "1.2.2"] [org.clojure/core.async "1.5.648" :scope "provided"] [funcool/promesa "10.0.594" :scope "provided"] [manifold "0.1.9-alpha5" :scope "provided"] From de3a8f3476f0f07d72cf4edea07a843056002858 Mon Sep 17 00:00:00 2001 From: Savyasachi Date: Sat, 26 Sep 2026 14:55:30 -0700 Subject: [PATCH 2/3] Update dependencies schema 1.1.12 -> 1.4.2. In the dev profile: matcher-combinators 3.1.4 -> 3.11.0, tools.namespace 1.1.0 -> 1.5.1. --- project.clj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/project.clj b/project.clj index edfdafd..ef415bb 100644 --- a/project.clj +++ b/project.clj @@ -11,7 +11,7 @@ [org.clojure/core.async "1.5.648" :scope "provided"] [funcool/promesa "10.0.594" :scope "provided"] [manifold "0.1.9-alpha5" :scope "provided"] - [prismatic/schema "1.1.12"]] + [prismatic/schema "1.4.2"]] :exclusions [log4j] @@ -27,10 +27,10 @@ :jvm-opts ["-Dclojure.core.async.go-checking=true"] :plugins [[com.github.clojure-lsp/lein-clojure-lsp "0.1.1"] [com.github.clj-kondo/lein-clj-kondo "0.1.1"]] - :dependencies [[nubank/matcher-combinators "3.1.4"] + :dependencies [[nubank/matcher-combinators "3.11.0"] [prismatic/schema-generators "0.1.5"] [criterium "0.4.6"] - [org.clojure/tools.namespace "1.1.0"]]}} + [org.clojure/tools.namespace "1.5.1"]]}} :aliases {"unit" ["test"] "clj-kondo" ["do" From c0cc4613c2e8bb1bb325e41037170d1622852ee4 Mon Sep 17 00:00:00 2001 From: Savyasachi Date: Sun, 27 Sep 2026 13:03:49 -0700 Subject: [PATCH 3/3] test: replace tight timing-delta assertions with directional speedup checks --- test/nodely/engine/applicative_test.clj | 6 +++--- test/nodely/engine/core_async/iterative_scheduling_test.clj | 6 +++--- test/nodely/engine/core_async/lazy_scheduling_test.clj | 6 +++--- test/nodely/engine/manifold_test.clj | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/test/nodely/engine/applicative_test.clj b/test/nodely/engine/applicative_test.clj index b308299..792c505 100644 --- a/test/nodely/engine/applicative_test.clj +++ b/test/nodely/engine/applicative_test.clj @@ -117,7 +117,7 @@ (testing "async works" (let [[time-ns result] (criterium/time-body (applicative/eval-key test-env+delay :d {::applicative/context promesa/context}))] (is (match? {:a 3 :b 6 :c 9} result)) - (is (match? (matchers/within-delta 100000000 1000000000) time-ns)))) + (is (match? #(>= % 900000000) time-ns)))) (testing "tricky example" (is (match? 4 (applicative/eval-key tricky-example :z {::applicative/context promesa/context}))))) @@ -129,7 +129,7 @@ :d {::applicative/context core-async/context}))] (is (match? {:a 3 :b 6 :c 9} result)) - (is (match? (matchers/within-delta 100000000 1000000000) time-ns)))) + (is (match? #(>= % 900000000) time-ns)))) (testing "tricky example" (is (match? 4 (applicative/eval-key tricky-example :z {::applicative/context core-async/context}))))) @@ -165,7 +165,7 @@ (runtime diff is 2 sec, within a tolerance of 3ms" (let [[nanosec-sync _] (criterium/time-body (core/resolve :c env-with-sequence+delay-sync)) [nanosec-async _] (criterium/time-body (applicative/eval-key env-with-sequence+delay :c {::applicative/context promesa/context}))] - (is (match? (matchers/within-delta 8000000 2000000000) + (is (match? #(>= % 1600000000) (- nanosec-sync nanosec-async))))) (testing "Actually computes the correct answers" (is (match? [2 3 4] (applicative/eval-key env-with-sequence+delay :c {::applicative/context promesa/context})))) diff --git a/test/nodely/engine/core_async/iterative_scheduling_test.clj b/test/nodely/engine/core_async/iterative_scheduling_test.clj index cd0aed3..5b8a5d4 100644 --- a/test/nodely/engine/core_async/iterative_scheduling_test.clj +++ b/test/nodely/engine/core_async/iterative_scheduling_test.clj @@ -74,7 +74,7 @@ (runtime diff is 1 sec, within a tolerance of 3ms" (let [[nanosec-sync _] (time-body (core/resolve :d test-env+delay)) [nanosec-async _] (time-body (nasync/eval-key test-env+delay :d))] - (is (match? (matchers/within-delta 6000000 1000000000) + (is (match? #(>= % 800000000) (- nanosec-sync nanosec-async)))))) (deftest eval-env-with-sequence @@ -91,12 +91,12 @@ (runtime diff is 2 sec, within a tolerance of 3ms" (let [[nanosec-sync _] (time-body (core/resolve :b env-with-sequence+delay)) [nanosec-async _] (time-body (nasync/eval-key env-with-sequence+delay :b {::nasync/max-sequence-parallelism 4}))] - (is (match? (matchers/within-delta 8000000 2000000000) + (is (match? #(>= % 1600000000) (- nanosec-sync nanosec-async))))) (testing "async version runs parallel when option is neglected" (let [[nanosec-sync _] (time-body (core/resolve :b env-with-sequence+delay)) [nanosec-async _] (time-body (nasync/eval-key env-with-sequence+delay :b {}))] - (is (match? (matchers/within-delta 8000000 2000000000) + (is (match? #(>= % 1600000000) (- nanosec-sync nanosec-async))))) (testing "Actually computes the correct answers" (is (= [2 3 4] (nasync/eval-key env-with-sequence+delay :b))))) diff --git a/test/nodely/engine/core_async/lazy_scheduling_test.clj b/test/nodely/engine/core_async/lazy_scheduling_test.clj index c15e9a9..afd5c16 100644 --- a/test/nodely/engine/core_async/lazy_scheduling_test.clj +++ b/test/nodely/engine/core_async/lazy_scheduling_test.clj @@ -110,7 +110,7 @@ (runtime diff is 1 sec, within a tolerance of 3ms" (let [[nanosec-sync _] (time-body (core/resolve :d test-env+delay)) [nanosec-async _] (time-body (nasync/eval-key test-env+delay :d))] - (is (match? (matchers/within-delta 100000000 1000000000) + (is (match? #(>= % 800000000) (- nanosec-sync nanosec-async)))))) (deftest eval-env-with-sequence @@ -127,12 +127,12 @@ (runtime diff is 2 sec, within a tolerance of 3ms" (let [[nanosec-sync _] (time-body (core/resolve :b env-with-sequence+delay)) [nanosec-async _] (time-body (nasync/eval-key env-with-sequence+delay :b {::nasync/max-sequence-parallelism 4}))] - (is (match? (matchers/within-delta 8000000 2000000000) + (is (match? #(>= % 1600000000) (- nanosec-sync nanosec-async))))) (testing "async version runs parallel when option is neglected" (let [[nanosec-sync _] (time-body (core/resolve :b env-with-sequence+delay)) [nanosec-async _] (time-body (nasync/eval-key env-with-sequence+delay :b {}))] - (is (match? (matchers/within-delta 8000000 2000000000) + (is (match? #(>= % 1600000000) (- nanosec-sync nanosec-async))))) (testing "Actually computes the correct answers" (is (match? [2 3 4] (nasync/eval-key env-with-sequence+delay :b)))) diff --git a/test/nodely/engine/manifold_test.clj b/test/nodely/engine/manifold_test.clj index 0515d9b..3ee7357 100644 --- a/test/nodely/engine/manifold_test.clj +++ b/test/nodely/engine/manifold_test.clj @@ -45,7 +45,7 @@ (runtime diff is 1 sec, within a tolerance of 3ms" (let [[nanosec-sync _] (time-body (core/resolve :d test-env+delay)) [nanosec-async _] (time-body (manifold/eval-env test-env+delay))] - (is (match? (matchers/within-delta 6000000 1000000000) + (is (match? #(>= % 800000000) (- nanosec-sync nanosec-async)))))) (deftest eval-env-with-sequence @@ -56,7 +56,7 @@ (runtime diff is 2 sec, within a tolerance of 3ms" (let [[nanosec-sync _] (time-body (core/resolve :b env-with-sequence+delay)) [nanosec-async _] (time-body (manifold/eval-env env-with-sequence+delay))] - (is (match? (matchers/within-delta 8000000 2000000000) + (is (match? #(>= % 1600000000) (- nanosec-sync nanosec-async))))) (testing "Actually computes the correct answers" (is (= [2 3 4] (manifold/eval-key env-with-sequence+delay :b))))