- Updated Clojure dep to 1.10.3
- MATCH-129 - fix syntax error using string literal with a / in it
No changes
- MATCH-124 - correct namespaced keywords to work with Clojure 1.9+
- Remove unused tools.analyzer dependency
- Add
matchm
to ClojureScript support
- Fix regression in test sharing due to unfinished literal case work
- Fix fn app pattern issue when nested in maps & vectors
===
- Depend on tools.analyzer
- MATCH-100: Support function application in match syntax
- MATCH-97: satisfies? calls for IMatchLookup perf issues, breaking
- MATCH-98: RegexPattern cannot be aot-compiled
- Depend on tools.analyzer
- MATCH-86: Cannot AOT OrPatterns
- sort pattern duplicates to avoid order issues now that hash values have changed in Clojure 1.6.0
- MATCH-91: keyword with dots cause core.match to fail
None
- MATCH-86: or patterns do not AOT
- Requires ClojureScript 0.0-1889
- Cleaned up dependencies (no more core.logic requirement)
- Use identical? when matching strings and numbers in ClojureScript
- MATCH-82: CLJS locals matching did not work correctly
- MATCH-83: vector pattern with rest pattern bug
- MATCH-84: vector pattern with rest pattern bug
- MATCH-81: fix code-size issue, add match*, matchv* and match-let* which optimize for performance over code-size
- Reorganize ClojureScript support. Runtime support ns is now cljs.core.match and macro support is cljs.core.match.macros. For array specialization you must require clojure.core.match and clojure.core.match.array
- MATCH-80: repeated match literal bug
- Fix no match case, don't reevalute expressions
None
- MATCH-61: emit init expressions only once
- MATCH-77:
*recur-present*
compilation inconsistent
- add
match-let
andmatchv
to ClojureScript support - array specialization for vector patterns when type hinted
- MATCH-73: irrelevant bindings at leaf nodes
- MATCH-71: non-optimal decision trees for map patterns
- Optimize literal matching, don't backtrack just test
====
- Bring CLJS support closer to CLJ
AOT issues should be addressed across the board.
- MATCH-70 map pattern matching behavior is now more logical, specifying a key means it must at least be present even if a wildcard
- MATCH-66: cannot match whole value
- MATCH-51: fail to match empty vector after guard
- MATCH-36: no match now throws an exception if no default provided a la case
- MATCH-55: seq pattern with just rest pattern fails
- MATCH-56: exception when matching empty vector
- MATCH-68: variant of 55
- MATCH-35: seq pattern matching needed to test
seq
- MATCH-67: fix ClojureScript support regression
- MATCH-52: bad map pattern matching behavior
- :when is now for predicates. Use :guard for the old behavior of :when.
- MATCH-62: ClojureScript map-matching should use cljs.core/ILookup, not cljs.core.ILookup
- MATCH-60: Matching maps with :only broken in CLJS
- MATCH-43: fix another subtle pattern ordering issue
- MATCH-45: group like patterns together, including vector patterns of different sizes
- MATCH-46: fix :or leakage
- val-at* -> val-at
- map patterns with heterogenous keys work now
- MATCH-41: remove sorted-set-by use, this returned a incorrect list of column constructors
- MATCH-42: can now match symbols by quoting them
- remove match-1, passing single value to match now works
- MATCH-34: no more infix or pattern syntax
- MATCH-10: support maps with keys of heterogenous types
- MATCH-30: throw if same binding name used in row
- MATCH-33: fix readme typo
- supported flattened syntax for :when and :as
- added Steve Miner's match-let