Skip to content

Commit 3b4d55c

Browse files
committed
Significantly improve performance, reliability and memory usage
1 parent ae097aa commit 3b4d55c

21 files changed

+942
-542
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: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ maven_install(
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",

frozen_deps_install.json

Lines changed: 14 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"dependency_tree": {
33
"__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL",
4-
"__INPUT_ARTIFACTS_HASH": 1821179851,
5-
"__RESOLVED_ARTIFACTS_HASH": 452372209,
4+
"__INPUT_ARTIFACTS_HASH": -466098146,
5+
"__RESOLVED_ARTIFACTS_HASH": -1276423949,
66
"conflict_resolution": {},
77
"dependencies": [
88
{
@@ -40,7 +40,7 @@
4040
"org.clojure:tools.analyzer.jvm:1.2.1",
4141
"org.clojure:tools.analyzer:1.1.0",
4242
"org.clojure:tools.logging:1.2.1",
43-
"org.clojure:tools.reader:1.3.6",
43+
"org.clojure:tools.reader:1.4.0",
4444
"org.eclipse.jetty:jetty-client:9.4.44.v20210927",
4545
"org.eclipse.jetty:jetty-http:9.4.44.v20210927",
4646
"org.eclipse.jetty:jetty-io:9.4.44.v20210927",
@@ -100,7 +100,7 @@
100100
"org.clojure:data.priority-map:1.1.0",
101101
"org.clojure:tools.analyzer.jvm:1.2.1",
102102
"org.clojure:tools.analyzer:1.1.0",
103-
"org.clojure:tools.reader:1.3.6",
103+
"org.clojure:tools.reader:1.4.0",
104104
"org.eclipse.jetty:jetty-client:9.4.44.v20210927",
105105
"org.eclipse.jetty:jetty-http:9.4.44.v20210927",
106106
"org.eclipse.jetty:jetty-io:9.4.44.v20210927",
@@ -1222,7 +1222,7 @@
12221222
"org.clojure:data.priority-map:1.1.0",
12231223
"org.clojure:tools.analyzer.jvm:1.2.1",
12241224
"org.clojure:tools.analyzer:1.1.0",
1225-
"org.clojure:tools.reader:1.3.6",
1225+
"org.clojure:tools.reader:1.4.0",
12261226
"org.ow2.asm:asm:5.2"
12271227
],
12281228
"directDependencies": [
@@ -1410,14 +1410,14 @@
14101410
"org.clojure:core.memoize:1.0.253",
14111411
"org.clojure:data.priority-map:1.1.0",
14121412
"org.clojure:tools.analyzer:1.1.0",
1413-
"org.clojure:tools.reader:1.3.6",
1413+
"org.clojure:tools.reader:1.4.0",
14141414
"org.ow2.asm:asm:5.2"
14151415
],
14161416
"directDependencies": [
14171417
"org.clojure:clojure:1.11.1",
14181418
"org.clojure:core.memoize:1.0.253",
14191419
"org.clojure:tools.analyzer:1.1.0",
1420-
"org.clojure:tools.reader:1.3.6",
1420+
"org.clojure:tools.reader:1.4.0",
14211421
"org.ow2.asm:asm:5.2"
14221422
],
14231423
"file": "v1/https/repo1.maven.org/maven2/org/clojure/tools.analyzer.jvm/1.2.1/tools.analyzer.jvm-1.2.1.jar",
@@ -1519,7 +1519,7 @@
15191519
"org.clojure:tools.cli:1.0.206",
15201520
"org.clojure:tools.gitlibs:2.4.181",
15211521
"org.clojure:tools.logging:1.2.1",
1522-
"org.clojure:tools.reader:1.3.6",
1522+
"org.clojure:tools.reader:1.4.0",
15231523
"org.codehaus.plexus:plexus-cipher:2.0",
15241524
"org.codehaus.plexus:plexus-classworlds:2.6.0",
15251525
"org.codehaus.plexus:plexus-component-annotations:2.1.0",
@@ -1604,42 +1604,21 @@
16041604
"url": "https://repo1.maven.org/maven2/org/clojure/tools.logging/1.2.1/tools.logging-1.2.1.jar"
16051605
},
16061606
{
1607-
"coord": "org.clojure:tools.namespace:1.1.0",
1608-
"dependencies": [
1609-
"org.clojure:clojure:1.11.1",
1610-
"org.clojure:java.classpath:1.0.0",
1611-
"org.clojure:tools.reader:1.3.6"
1612-
],
1613-
"directDependencies": [
1614-
"org.clojure:clojure:1.11.1",
1615-
"org.clojure:java.classpath:1.0.0",
1616-
"org.clojure:tools.reader:1.3.6"
1617-
],
1618-
"file": "v1/https/repo1.maven.org/maven2/org/clojure/tools.namespace/1.1.0/tools.namespace-1.1.0.jar",
1619-
"mirror_urls": [
1620-
"https://repo1.maven.org/maven2/org/clojure/tools.namespace/1.1.0/tools.namespace-1.1.0.jar",
1621-
"https://repo.clojars.org/org/clojure/tools.namespace/1.1.0/tools.namespace-1.1.0.jar"
1622-
],
1623-
"packages": [],
1624-
"sha256": "ac2229edb009bb71af5d2c2cf68e38757f20dcd594f4d60d1b36e289b992fe78",
1625-
"url": "https://repo1.maven.org/maven2/org/clojure/tools.namespace/1.1.0/tools.namespace-1.1.0.jar"
1626-
},
1627-
{
1628-
"coord": "org.clojure:tools.reader:1.3.6",
1607+
"coord": "org.clojure:tools.reader:1.4.0",
16291608
"dependencies": [
16301609
"org.clojure:clojure:1.11.1"
16311610
],
16321611
"directDependencies": [
16331612
"org.clojure:clojure:1.11.1"
16341613
],
1635-
"file": "v1/https/repo1.maven.org/maven2/org/clojure/tools.reader/1.3.6/tools.reader-1.3.6.jar",
1614+
"file": "v1/https/repo1.maven.org/maven2/org/clojure/tools.reader/1.4.0/tools.reader-1.4.0.jar",
16361615
"mirror_urls": [
1637-
"https://repo1.maven.org/maven2/org/clojure/tools.reader/1.3.6/tools.reader-1.3.6.jar",
1638-
"https://repo.clojars.org/org/clojure/tools.reader/1.3.6/tools.reader-1.3.6.jar"
1616+
"https://repo1.maven.org/maven2/org/clojure/tools.reader/1.4.0/tools.reader-1.4.0.jar",
1617+
"https://repo.clojars.org/org/clojure/tools.reader/1.4.0/tools.reader-1.4.0.jar"
16391618
],
16401619
"packages": [],
1641-
"sha256": "11d1b31f2c65c3355b292bb9b44b8fcafda54b44da63e34ab97b79a8ab3bb8e0",
1642-
"url": "https://repo1.maven.org/maven2/org/clojure/tools.reader/1.3.6/tools.reader-1.3.6.jar"
1620+
"sha256": "8ccef0ca73635bd787f54794163c6cbb2a9581535a5d2ceb2c77b99e84aef01e",
1621+
"url": "https://repo1.maven.org/maven2/org/clojure/tools.reader/1.4.0/tools.reader-1.4.0.jar"
16431622
},
16441623
{
16451624
"coord": "org.codehaus.plexus:plexus-cipher:2.0",

src/rules_clojure/BUILD

Lines changed: 9 additions & 11 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,7 +82,7 @@ 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",
8688
"@rules_clojure_maven_deps//:org_clojure_spec_alpha",
@@ -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+
"clojure.tools.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)