Skip to content

Commit ebf9c6e

Browse files
authored
CLJS-3372: Vendorize data.json, transit-clj, and tools.reader (#177)
vendorize data.json, transit-clj & tools.reader
1 parent 91c597d commit ebf9c6e

28 files changed

+4132
-61
lines changed

deps.edn

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
{:paths ["src/main/clojure" "src/main/cljs" "resources"]
22
:deps
33
{com.google.javascript/closure-compiler-unshaded {:mvn/version "v20220502"}
4-
com.cognitect/transit-clj {:mvn/version "1.0.329"}
4+
com.cognitect/transit-java {:mvn/version "1.0.362"}
55
org.clojure/clojure {:mvn/version "1.10.0"}
66
org.clojure/core.specs.alpha {:mvn/version "0.1.24"}
7-
org.clojure/data.json {:mvn/version "2.4.0"}
87
org.clojure/google-closure-library {:mvn/version "0.0-20211011-0726fdeb"}
98
org.clojure/spec.alpha {:mvn/version "0.1.143"}
109
org.clojure/tools.reader {:mvn/version "1.3.6"}

pom.template.xml

+2-9
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,15 @@
3737
<artifactId>google-closure-library</artifactId>
3838
<version>0.0-20211011-0726fdeb</version>
3939
</dependency>
40-
<dependency>
41-
<groupId>org.clojure</groupId>
42-
<artifactId>data.json</artifactId>
43-
<version>2.4.0</version>
44-
</dependency>
4540
<dependency>
4641
<groupId>org.clojure</groupId>
4742
<artifactId>tools.reader</artifactId>
4843
<version>1.3.6</version>
4944
</dependency>
5045
<dependency>
5146
<groupId>com.cognitect</groupId>
52-
<artifactId>transit-clj</artifactId>
53-
<version>1.0.329</version>
47+
<artifactId>transit-java</artifactId>
48+
<version>1.0.362</version>
5449
<exclusions>
5550
<exclusion>
5651
<groupId>org.clojure</groupId>
@@ -284,8 +279,6 @@
284279
<cleanAOTNamespaces>true</cleanAOTNamespaces>
285280
<namespaces>
286281
<namespace>!clojure.tools.reader.*</namespace>
287-
<namespace>!clojure.data.json.*</namespace>
288-
<namespace>!cognitect.transit.*</namespace>
289282
</namespaces>
290283
</configuration>
291284
</execution>

project.clj

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@
1111
:dependencies [[org.clojure/clojure "1.10.0"]
1212
[org.clojure/spec.alpha "0.1.143"]
1313
[org.clojure/core.specs.alpha "0.1.24"]
14-
[org.clojure/data.json "2.4.0"]
1514
[org.clojure/tools.reader "1.3.6"]
1615
[org.clojure/test.check "1.1.1" :scope "test"]
17-
[com.cognitect/transit-clj "1.0.329"]
16+
[com.cognitect/transit-java "1.0.362"]
1817
[org.clojure/google-closure-library "0.0-20211011-0726fdeb"]
1918
[com.google.javascript/closure-compiler-unshaded "v20220502"]]
2019
:profiles {:1.6 {:dependencies [[org.clojure/clojure "1.6.0"]]}

script/bootstrap

-16
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ CLOJURE_RELEASE="1.9.0"
66
SPEC_ALPHA_RELEASE="0.1.143"
77
CORE_SPECS_ALPHA_RELEASE="0.1.24"
88
CLOSURE_RELEASE="20220502"
9-
DJSON_RELEASE="2.4.0"
10-
TRANSIT_RELEASE="1.0.329"
119
GCLOSURE_LIB_RELEASE="0.0-20211011-0726fdeb"
1210
TREADER_RELEASE="1.3.6"
1311
TEST_CHECK_RELEASE="1.1.1"
@@ -41,20 +39,6 @@ cp core.specs.alpha-$CORE_SPECS_ALPHA_RELEASE.jar lib/core.specs.alpha-$CORE_SPE
4139
echo "Cleaning up core.specs.alpha..."
4240
rm core.specs.alpha-$CORE_SPECS_ALPHA_RELEASE.jar
4341

44-
echo "Fetching data.json..."
45-
curl --retry 3 -O -s https://repo1.maven.org/maven2/org/clojure/data.json/$DJSON_RELEASE/data.json-$DJSON_RELEASE.jar || { echo "Download failed."; exit 1; }
46-
echo "Copying data.json-$DJSON_RELEASE.jar to lib/data.json-$DJSON_RELEASE.jar..."
47-
cp data.json-$DJSON_RELEASE.jar lib/data.json-$DJSON_RELEASE.jar
48-
echo "Cleaning up data.json..."
49-
rm data.json-$DJSON_RELEASE.jar
50-
51-
echo "Fetching transit-clj..."
52-
curl --retry 3 -O -s https://repo1.maven.org/maven2/com/cognitect/transit-clj/$TRANSIT_RELEASE/transit-clj-$TRANSIT_RELEASE.jar || { echo "Download failed."; exit 1; }
53-
echo "Copying transit-clj-$TRANSIT_RELEASE.jar to lib/transit-clj-$TRANSIT_RELEASE.jar..."
54-
cp transit-clj-$TRANSIT_RELEASE.jar lib/transit-clj-$TRANSIT_RELEASE.jar
55-
echo "Cleaning up transit-clj..."
56-
rm transit-clj-$TRANSIT_RELEASE.jar
57-
5842
echo "Fetching Google Closure library..."
5943
mkdir -p closure/library
6044
cd closure/library

script/vendorize_deps

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
mkdir -p src/main/clojure/cljs/vendor
6+
cd src/main/clojure/cljs
7+
8+
DJSON_RELEASE="2.4.0"
9+
TRANSIT_RELEASE="1.0.329"
10+
TREADER_RELEASE="1.3.6"
11+
12+
rm -rf data.json
13+
git clone -b "v$DJSON_RELEASE" --depth 1 [email protected]:clojure/data.json.git
14+
mkdir -p vendor/clojure/data
15+
mv data.json/src/main/clojure/clojure/data/json.clj vendor/clojure/data/
16+
rm -rf data.json
17+
DATA_JSON_FILE=`mktemp /tmp/json.clj.XXXXXXXXXXX`
18+
sed -e 's/clojure.data.json/cljs.vendor.clojure.data.json/' vendor/clojure/data/json.clj > $DATA_JSON_FILE
19+
mv $DATA_JSON_FILE vendor/clojure/data/json.clj
20+
21+
rm -rf transit-clj
22+
git clone -b "v$TRANSIT_RELEASE" --depth 1 [email protected]:cognitect/transit-clj.git
23+
mkdir -p vendor/cognitect
24+
mv transit-clj/src/cognitect/transit.clj vendor/cognitect/
25+
rm -rf transit-clj
26+
TRANSIT_FILE=`mktemp /tmp/transit.clj.XXXXXXXXXXX`
27+
sed -e 's/ns cognitect.transit/ns cljs.vendor.cognitect.transit/' vendor/cognitect/transit.clj > $TRANSIT_FILE
28+
mv $TRANSIT_FILE vendor/cognitect/transit.clj
29+
TRANSIT_FILE=`mktemp /tmp/transit.clj.XXXXXXXXXXX`
30+
sed -e 's/cognitect.transit.WithMeta/cljs.vendor.cognitect.transit.WithMeta/' vendor/cognitect/transit.clj > $TRANSIT_FILE
31+
mv $TRANSIT_FILE vendor/cognitect/transit.clj
32+
33+
rm -rf tools.reader
34+
rm -rf vendor/clojure/tools
35+
git clone -b "v$TREADER_RELEASE" --depth 1 [email protected]:clojure/tools.reader.git
36+
mkdir -p vendor/clojure/tools
37+
mv tools.reader/src/main/clojure/clojure/tools/* vendor/clojure/tools/
38+
rm -rf tools.reader
39+
40+
echo "rewriting tool.reader namespaces"
41+
find vendor/clojure/tools -name '*.clj' -print0 | xargs -0 sed -iBAK 's/clojure.tools/cljs.vendor.clojure.tools/g'
42+
find vendor/clojure/tools -name '*BAK' -delete

src/main/cljs/cljs/stacktrace.cljc

+1-1
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ goog.events.getProxy/f<@http://localhost:9000/out/goog/events/events.js:276:16"
542542

543543
(comment
544544
(require '[cljs.closure :as cljsc]
545-
'[clojure.data.json :as json]
545+
'[cljs.vendor.clojure.data.json :as json]
546546
'[cljs.source-map :as sm]
547547
'[clojure.pprint :as pp])
548548

src/main/clojure/cljs/analyzer.cljc

+8-8
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
[clojure.java.io :as io]
2626
[clojure.set :as set]
2727
[clojure.string :as string]
28-
[clojure.tools.reader :as reader]
29-
[clojure.tools.reader.reader-types :as readers])
28+
[cljs.vendor.clojure.tools.reader :as reader]
29+
[cljs.vendor.clojure.tools.reader.reader-types :as readers])
3030
:cljs (:require [cljs.analyzer.impl :as impl]
3131
[cljs.analyzer.impl.namespaces :as nses]
3232
[cljs.analyzer.passes.and-or :as and-or]
@@ -77,8 +77,8 @@
7777
#?(:clj
7878
(def transit-read-opts
7979
(try
80-
(require '[cognitect.transit])
81-
(when-some [ns (find-ns 'cognitect.transit)]
80+
(require '[cljs.vendor.cognitect.transit])
81+
(when-some [ns (find-ns 'cljs.vendor.cognitect.transit)]
8282
(let [read-handler @(ns-resolve ns 'read-handler)
8383
read-handler-map @(ns-resolve ns 'read-handler-map)]
8484
{:handlers
@@ -91,8 +91,8 @@
9191
#?(:clj
9292
(def transit-write-opts
9393
(try
94-
(require '[cognitect.transit])
95-
(when-some [ns (find-ns 'cognitect.transit)]
94+
(require '[cljs.vendor.cognitect.transit])
95+
(when-some [ns (find-ns 'cljs.vendor.cognitect.transit)]
9696
(let [write-handler @(ns-resolve ns 'write-handler)
9797
write-handler-map @(ns-resolve ns 'write-handler-map)]
9898
{:handlers
@@ -112,8 +112,8 @@
112112
(def transit
113113
(delay
114114
(try
115-
(require '[cognitect.transit])
116-
(when-some [ns (find-ns 'cognitect.transit)]
115+
(require '[cljs.vendor.cognitect.transit])
116+
(when-some [ns (find-ns 'cljs.vendor.cognitect.transit)]
117117
{:writer @(ns-resolve ns 'writer)
118118
:reader @(ns-resolve ns 'reader)
119119
:write @(ns-resolve ns 'write)

src/main/clojure/cljs/closure.clj

+1-3
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@
2020
[clojure.reflect]
2121
[clojure.set :as set]
2222
[clojure.string :as string]
23-
[clojure.data.json :as json]
24-
[clojure.tools.reader :as reader]
25-
[clojure.tools.reader.reader-types :as readers]
23+
[cljs.vendor.clojure.data.json :as json]
2624
[cljs.module-graph :as module-graph])
2725
(:import [java.lang ProcessBuilder]
2826
[java.io

src/main/clojure/cljs/compiler.cljc

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717
[cljs.source-map :as sm]
1818
[cljs.tagged-literals :as tags]
1919
[cljs.util :as util]
20-
[clojure.data.json :as json]
20+
[cljs.vendor.clojure.data.json :as json]
2121
[clojure.java.io :as io]
2222
[clojure.set :as set]
2323
[clojure.string :as string]
24-
[clojure.tools.reader :as reader])
24+
[cljs.vendor.clojure.tools.reader :as reader])
2525
:cljs (:require [cljs.analyzer :as ana]
2626
[cljs.analyzer.impl :as ana.impl]
2727
[cljs.env :as env]

src/main/clojure/cljs/core/macros.clj

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
(ns cljs.core.macros
1010
(:refer-clojure :exclude [alias])
1111
(:require [clojure.java.io :as io]
12-
[clojure.tools.reader :as reader]
13-
[clojure.tools.reader.reader-types :as readers]
12+
[cljs.vendor.clojure.tools.reader :as reader]
13+
[cljs.vendor.clojure.tools.reader.reader-types :as readers]
1414
[cljs.env :as env]
1515
[cljs.analyzer :as ana]
1616
[cljs.repl :refer [source]])
@@ -40,4 +40,4 @@
4040
(defmacro alias [[_ ns] [_ alias]]
4141
(swap! env/*compiler* assoc-in
4242
[::namespaces (.getName *ns*) :requires alias] ns)
43-
nil)
43+
nil)

src/main/clojure/cljs/core/server.clj

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
(ns cljs.core.server
1010
(:refer-clojure :exclude [with-bindings resolve-fn prepl io-prepl])
11-
(:require [clojure.tools.reader.reader-types :as readers]
12-
[clojure.tools.reader :as reader]
11+
(:require [cljs.vendor.clojure.tools.reader.reader-types :as readers]
12+
[cljs.vendor.clojure.tools.reader :as reader]
1313
[cljs.env :as env]
1414
[cljs.closure :as closure]
1515
[cljs.analyzer :as ana]

src/main/clojure/cljs/js_deps.cljc

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
(ns cljs.js-deps
1010
(:require [cljs.util :as util :refer [distinct-by]]
11-
[clojure.data.json :as json]
11+
[cljs.vendor.clojure.data.json :as json]
1212
[clojure.java.io :as io]
1313
[clojure.string :as string])
1414
(:import [java.io File]

src/main/clojure/cljs/repl.cljc

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
(:require [clojure.java.io :as io]
1212
[clojure.string :as string]
1313
[clojure.set :as set]
14-
[clojure.data.json :as json]
15-
[clojure.tools.reader :as reader]
16-
[clojure.tools.reader.reader-types :as readers]
14+
[cljs.vendor.clojure.data.json :as json]
15+
[cljs.vendor.clojure.tools.reader :as reader]
16+
[cljs.vendor.clojure.tools.reader.reader-types :as readers]
1717
[cljs.tagged-literals :as tags]
1818
[clojure.edn :as edn]
1919
[cljs.util :as util]

src/main/clojure/cljs/repl/browser.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
[clojure.java.browse :as browse]
1313
[clojure.string :as string]
1414
[clojure.edn :as edn]
15-
[clojure.data.json :as json]
15+
[cljs.vendor.clojure.data.json :as json]
1616
[cljs.util :as util]
1717
[cljs.closure :as cljsc]
1818
[cljs.repl :as repl]

src/main/clojure/cljs/repl/node.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
[cljs.repl.bootstrap :as bootstrap]
1717
[cljs.cli :as cli]
1818
[cljs.closure :as closure]
19-
[clojure.data.json :as json])
19+
[cljs.vendor.clojure.data.json :as json])
2020
(:import [java.net Socket]
2121
[java.lang StringBuilder]
2222
[java.io File BufferedReader BufferedWriter IOException]

src/main/clojure/cljs/source_map.clj

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
(ns cljs.source-map
1010
(:require [clojure.java.io :as io]
1111
[clojure.string :as string]
12-
[clojure.data.json :as json]
12+
[cljs.vendor.clojure.data.json :as json]
1313
[clojure.set :as set]
1414
[cljs.source-map.base64-vlq :as base64-vlq]))
1515

@@ -104,7 +104,7 @@
104104
(sorted-map)))))
105105

106106
(defn decode-reverse
107-
"Convert a v3 source map JSON object into a nested sorted map
107+
"Convert a v3 source map JSON object into a nested sorted map
108108
organized as file, line, and column. Note this source map
109109
maps from *original* source location to generated source location."
110110
([source-map]
@@ -345,11 +345,11 @@
345345

346346
(comment
347347
;; INSTRUCTIONS:
348-
348+
349349
;; switch into samples/hello
350350
;; run repl to start clojure
351351
;; build with
352-
352+
353353
(require '[cljs.closure :as cljsc])
354354
(cljsc/build "src"
355355
{:optimizations :simple

0 commit comments

Comments
 (0)