You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.adoc
+48-8Lines changed: 48 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ If you wish, you can read nitty gritty details on link:doc/design/01-merging-rew
20
20
What follows is a summary of changes.
21
21
22
22
==== New
23
-
* A new home under clj-commons. Thanks to @xsc, rewrite-clj will also retain its same maven coordinates on clojars making for a seamless upgrade path for rewrite-clj v0 users.
23
+
* A new home under clj-commons. Thanks to @xsc, rewrite-clj will also retain its same maven coordinates on Clojars making for a seamless upgrade path for rewrite-clj v0 users.
24
24
* Now supports ClojureScript, merging in rewrite-cljs specific functionality.
25
25
Frustrations like not having namespace map support and differences from rewrite-clj, like whitespace parsing, should now be things of the past.
26
26
Rewrite-cljs users migrating to rewrite-clj v1 are now at, and will remain at, feature parity with rewrite-clj.
@@ -120,11 +120,51 @@ Rewrite-cljs users migrating to rewrite-clj v1 are now at, and will remain at, f
120
120
* Now using `ex-info` for explicitly raised exceptions
121
121
* Rewrite-cljs positional support migrated to rewrite-clj's positional support
122
122
* Namespaced element support reworked
123
+
** v1 changes do not affect node traversal of the namespaced map, number and order of children remain the same.
123
124
** Namespace map prefix, is now stored in a namespaced map qualifier node.
124
-
Prior to v1, was stored as a keyword.
125
-
** Namespaced element sexpr support now relies on user specifiable auto-resolve function to resolve qualifiers
126
-
** Unlike rewrite-clj v0, the default auto-resolve behaviour never consults `\*ns*`
127
-
** An sexpr for keyword node `::alias/foo` no longer returns `:alias/foo` (this could be considered a bug fix, but if your code is expecting this, then you'll need to make changes)
125
+
*** Prior to v1, the prefix was parsed to a keyword-node.
126
+
*** Let's look at what interesting node API functions will return for the prefix node in the following namespaced maps.
127
+
Assume we have parsed the example and traversed down to the prefix node. +
128
+
For example via: `(-> "#:prefix{:a 1}" z/of-string z/down z/node)`. +
still indicates that the node is a leaf node and has no children
154
+
155
+
| v1
156
+
3+| `false`
157
+
| v0
158
+
2+| `false`
159
+
a| * throws on parse
160
+
161
+
| `sexpr`
162
+
4+| <read on below for discussion on sexpr>
163
+
164
+
|===
165
+
** Namespaced element `sexpr` support now relies on user specifiable auto-resolve function to resolve qualifiers
166
+
*** Unlike rewrite-clj v0, the default auto-resolve behaviour never consults `\*ns*`
167
+
*** An sexpr for keyword node `::alias/foo` no longer returns `:alias/foo` (this could be considered a bug fix, but if your code is expecting this, then you'll need to make changes)
128
168
** The following namespaced element `sexpr` examples assume:
129
169
*** `\*ns*` is bound to `user` namespace (important only for rewrite-clj v0):
130
170
*** We are using the default auto-resolve function for rewrite-clj v1
@@ -248,10 +288,10 @@ a| ns-alias qualified
248
288
249
289
|===
250
290
* Potentially breaking
251
-
** Switched to `clojure.tools.reader.edn`
252
-
** Some rewrite-cljs optimizations were dropped in favor of a single code base
291
+
** Some http://rundis.github.io/blog/2015/clojurescript_performance_tuning.html[rewrite-cljs optimizations] were dropped in favor of a single code base.
292
+
If performance for rewrite-clj v1 for ClojureScript users is poor with today's ClojureScript, we shall adapt.
0 commit comments