Skip to content

Commit 96abf51

Browse files
committed
Significantly improve performance, reliability and memory usage
1 parent ae097aa commit 96abf51

25 files changed

+1039
-689
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,3 +304,15 @@ rules_clojure requires JDK 17 or higher. It is currently tested with Bazel 7.4.1
304304

305305
- Forked from https://github.com/simuons/rules_clojure
306306
- Additional inspiration from https://github.com/markdingram/bazel-clojure
307+
- Contains code from tools.namespace https://github.com/clojure/tools.namespace
308+
309+
Copyright and License
310+
----------------------------------------
311+
312+
Copyright © 2025 Griffin Bank. All rights reserved. The use and
313+
distribution terms for this software are covered by the
314+
[Eclipse Public License 1.0] which can be found in the file
315+
epl-v10.html at the root of this distribution. By using this software
316+
in any fashion, you are agreeing to be bound by the terms of this
317+
license. You must not remove this notice, or any other, from this
318+
software.

WORKSPACE

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ maven_install(
2727
maven.artifact(
2828
group = "org.clojure",
2929
artifact = "clojure",
30-
version = "1.11.1",
30+
version = "1.12.1",
3131
exclusions = [
3232
"org.clojure:spec.alpha",
3333
"org.clojure:core.specs.alpha"
@@ -36,21 +36,21 @@ maven_install(
3636
maven.artifact(
3737
group = "org.clojure",
3838
artifact = "spec.alpha",
39-
version = "0.3.218",
39+
version = "0.5.238",
4040
exclusions = ["org.clojure:clojure"]
4141
),
4242
maven.artifact(
4343
group = "org.clojure",
4444
artifact = "core.specs.alpha",
45-
version = "0.2.62",
45+
version = "0.4.74",
4646
exclusions = [
4747
"org.clojure:clojure",
4848
"org.clojure:spec.alpha"
4949
]
5050
),
5151
"org.clojure:data.json:2.4.0",
5252
"org.clojure:java.classpath:1.0.0",
53-
"org.clojure:tools.namespace:1.1.0",
53+
"org.clojure:tools.reader:1.4.0",
5454
"org.clojure:tools.deps.alpha:0.14.1212"
5555
],
5656
maven_install_json = "@//:frozen_deps_install.json",
@@ -75,7 +75,7 @@ rules_clojure_setup()
7575
maven_install(
7676
name = "clojure_old",
7777
artifacts = [
78-
"org.clojure:clojure:1.8.0",],
78+
"org.clojure:clojure:1.8.0"],
7979
fail_if_repin_required = True,
8080
repositories = [
8181
"https://repo1.maven.org/maven2",

deps.edn

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,5 @@
22
{:paths ["src", "classes"]
33
:deps {org.clojure/data.json {:mvn/version "2.4.0"}
44
org.clojure/java.classpath {:mvn/version "1.0.0"}
5-
org.clojure/tools.deps.alpha {:mvn/version "0.14.1212"}
6-
org.clojure/tools.namespace {:mvn/version "1.1.0"}}
5+
org.clojure/tools.deps.alpha {:mvn/version "0.14.1212"}}
76
:aliases {:dev {:extra-paths "test"}}}

deps/rules_clojure_maven_deps.zip

-1.41 KB
Binary file not shown.

examples/simple/deps.edn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{:deps
2-
{org.clojure/clojure {:mvn/version "1.11.1"}}
2+
{org.clojure/clojure {:mvn/version "1.12.1"}}
33
:paths ["src"]}

frozen_deps_install.json

Lines changed: 68 additions & 86 deletions
Large diffs are not rendered by default.

src/rules_clojure/BUILD

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package(default_visibility = ["//visibility:public"])
21

32
load("//:rules.bzl", "clojure_library", "clojure_binary")
43

5-
exports_files(glob(["*.clj"]))
4+
package(default_visibility = ["//visibility:public"])
5+
exports_files(glob(["**/*.clj"]))
66

77
java_library(
88
name="bootstrap",
@@ -12,7 +12,9 @@ java_library(
1212
"fs.clj",
1313
"jar.clj",
1414
"worker.clj",
15-
"parse.clj",
15+
"namespace/parse.cljc",
16+
"namespace/file.clj",
17+
"namespace/find.clj",
1618
"persistent_classloader.clj",
1719
"persistentClassLoader.clj",
1820
"util.clj"],
@@ -24,7 +26,7 @@ java_library(
2426
"@rules_clojure_maven_deps//:org_clojure_core_cache",
2527
"@rules_clojure_maven_deps//:org_clojure_data_json",
2628
"@rules_clojure_maven_deps//:org_clojure_java_classpath",
27-
"@rules_clojure_maven_deps//:org_clojure_tools_namespace"])
29+
"@rules_clojure_maven_deps//:org_clojure_tools_reader"])
2830

2931
java_binary(
3032
name="bootstrap-bin",
@@ -80,14 +82,14 @@ clojure_library(name="libfs",
8082

8183
clojure_library(
8284
name= "libgen_build",
83-
srcs=["gen_build.clj", "parse.clj"],
85+
srcs=["gen_build.clj", "namespace/parse.cljc"],
8486
resource_strip_prefix = "src",
8587
deps=["@rules_clojure_maven_deps//:org_clojure_clojure",
86-
"@rules_clojure_maven_deps//:org_clojure_spec_alpha",
8788
"@rules_clojure_maven_deps//:org_clojure_core_specs_alpha",
88-
"@rules_clojure_maven_deps//:org_clojure_tools_namespace",
89-
"@rules_clojure_maven_deps//:org_clojure_tools_deps_alpha",
9089
"@rules_clojure_maven_deps//:org_clojure_data_json",
90+
"@rules_clojure_maven_deps//:org_clojure_java_classpath",
91+
"@rules_clojure_maven_deps//:org_clojure_spec_alpha",
92+
"@rules_clojure_maven_deps//:org_clojure_tools_deps_alpha",
9193
"libfs"],
9294
aot=["clojure.java.classpath",
9395
"clojure.tools.deps.alpha.extensions",
@@ -103,14 +105,10 @@ clojure_library(
103105
"clojure.tools.reader.impl.utils",
104106
"clojure.tools.reader.reader-types",
105107
"clojure.tools.reader",
106-
"clojure.tools.namespace.parse",
107-
"clojure.tools.namespace.dependency",
108-
"clojure.tools.namespace.track",
109-
"clojure.tools.namespace.file",
110-
"clojure.tools.namespace.find",
111108

112109
"rules-clojure.gen-build",
113-
"rules-clojure.parse"])
110+
"rules-clojure.namespace.file",
111+
"rules-clojure.namespace.find"])
114112

115113
java_binary(name="gen_build",
116114
main_class="rules_clojure.gen_build",

src/rules_clojure/bootstrap_compiler.clj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
[rules-clojure.fs :as fs]))
44

55
(def nses-to-compile
6-
'[rules-clojure.fs
6+
'[clojure.java.classpath
7+
rules-clojure.fs
78
rules-clojure.compile
89
rules-clojure.util])
910

src/rules_clojure/bootstrap_worker.clj

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,18 @@
66
'[clojure.core.cache
77
clojure.data.json
88
clojure.java.classpath
9-
clojure.tools.namespace.file
10-
clojure.tools.namespace.find
11-
clojure.tools.namespace.parse
129
clojure.tools.reader.default-data-readers,
1310
clojure.tools.reader.impl.commons,
1411
clojure.tools.reader.impl.inspect,
1512
clojure.tools.reader.impl.errors,
1613
clojure.tools.reader.impl.utils,
1714
clojure.tools.reader.reader-types,
1815
clojure.tools.reader,
19-
clojure.tools.namespace.parse,
20-
clojure.tools.namespace.dependency,
21-
clojure.tools.namespace.track,
22-
clojure.tools.namespace.file,
23-
clojure.tools.namespace.find
2416
rules-clojure.persistentClassLoader
2517
rules-clojure.util
26-
rules-clojure.parse
18+
rules-clojure.namespace.file
19+
rules-clojure.namespace.find
20+
rules-clojure.namespace.parse
2721
rules-clojure.persistent-classloader
2822
rules-clojure.jar
2923
rules-clojure.fs

0 commit comments

Comments
 (0)