Colored object diff viewer.
Intended to be used in the test frameworks.
name | target | output | patch |
---|---|---|---|
cl-difflib | sequence | unix-style | * |
clos-diff | clos-object | list | * |
monkeylib-prose-diff | text-file | html | |
diff | text-file | unix-style | |
diff-match-patch | sequence | list | * |
vivid-diff | any object | colored |
(let ((expected '(:a :b :c))
(actual '(:a "b" :c)))
(diff-print (mismatch-sexp actual expected)))
(let ((expected "Common Lisp is awesome!!")
(actual "Common lisp is awesome!!"))
(diff-print (mismatch-sexp actual expected)))
(let ((expected (alexandria:plist-hash-table '(:a "a" :b "b" :c "c")))
(actual (alexandria:plist-hash-table '(:b :b :c "c" :d "d"))))
(diff-print (mismatch-sexp actual expected)))
As the name shows, MISMATCH-SEXP
is for S-Expression, i.e. macroexpanded form.
Please note about uninterned symbols are treated as the same as expected.
(In corner cases, this behavior may be the pitfall though.)
(let ((expected (macroexpand-1 '(with-open-file (s "path") (read s))))
(actual (macroexpand-1 '(with-open-file (out "path") (read out)))))
(diff-print (mismatch-sexp actual expected)))
MIT
SBCL
- SBCL/2.2.4
- CCL/1.12.1
- ECL/21.2.1
- CLISP/2.49
- Allegro/10.1
- CMUCL/21D ; See below.
- ABCL/1.9.0
CMUCL pass the test of vivid-diff
but vivid-colors
that vivid-diff
depends on does not support CMUCL.