- Fix boxed math warning. [thx @tonsky]
- Update deps
- Simplify equality test for A* algorithm, increasing diff speed up to 60% for some data sets.
- A couple of typos in code and documentation.
- Breaking Change
:str-diff?
option fordiff
to:str-diff
, whose value could be:none
(default, no diff inside string),:line
(diff by line),:word
(diff by word) or:character
(diff by character, original string diff, very expensive).
:vec-timeout
option fordiff
, to specify a timeout in milliseconds (default 1000), for it is sometimes too expensive to diff vectors. It is O(n^2), after all. When timed-out, a replacement will be used.:str-change-limit
option fordiff
, a less than1.0
and greater than0.0
double, representing percentage (default0.2
). Only diff string when less than given percentage is changed, otherwise replace the string. Because string diff is expensive, it may be cheaper to replace the whole string.
- Speed up string diff by coercing into vector first.
- Bump Clojure version
- Remove a warning in certain cljs environment, and it's an error in latest cljs [Thanks @Outrovurt]
- Correct conversion of edits to editscript for string diffs
- Consolidate all public functions in core
- Better handling of MapEntry [Thanks @lnostdal]
- handle MapEntry [#18]
- Enhanced A* diff algorithm speed for cases of increased data size
- Sligtly better heuristic for A* diff algorithm
- consistent use of keywords
- correct
patch
with string diff inside
- require both algorithms in core
:str-diff?
option to determine if strings need to be diffed, if so,:s
operator is used to represents the diff of two strings
- Better heuristic for A* diff algorithm, more than 2X speed improvement for some data sets
- Documentation improvement and dependency bump
- Fix suboptimality for vectors and lists too
- Fix A* optimality for special cases of smaller
a
- Change A* algorithm equality handling to improve speed for very small diffs
- Change equality handling to accommodate older versions of Clojure (1.9.0 and older)
- Relax
valid-edits?
to accept more valid edits
edits->script
function to convert a vector of edits to an EditScriptvalid-edits?
function to validate the edits vector- link to cljdoc documentation
- Instead of using cost, use a more accurate size for
get-size
of an EditScript
- Minor dependency bump
combine
function to combine two EditScripts- package.json for npm publising [Andrea Richiardi]
- Fix a cljs warning
- Minor speed improvement
- Revert heuristic change in 0.3.0, which breaks optimality
- cljc version
- Simplify heuristic
- Use defn in place of declare, see http://dev.clojure.org/jira/browse/CLJS-1871
- Expand the use of quick algorithm in
A*
to cases where one party contains only leaves - Implements pairing heap for priority queue
- java.util.PriorityQueue and HashMap as dependency
- Wrong test ns declaration preventing
lein test
A*
uses quick algorithm for all leaves list/vector comparison- Quick algorithm aggressively converts replacement
A*
uses global order number for heuristic
- Developed an
A*
algorithm for diffing
- clojure.data.priority-map as a dependency
- all tests passing
- Initial commits