v1.4.0
Bug fixes and minor improvements. Highlights:
- I have moved all the docs to the FSet wiki on gitlab.common-lisp.net 🎉 and updated the link in the README.
- Issues fixed: #26, #28, #35, #40, #42, #44, #46. Although #44 was clearly a bug, I suppose there is a remote chance that some client out there is depending on the current behavior. Seems unlikely, though.
- More FSet operations also work on lists:
with-first
,with-last
,contains?
,filter
. map-union
andmap-intersection
now handle aval-fn
result of:no-value
, indicating that the result map should have no entry for the corresponding key.- New modify macros
set-differencef
,map-unionf
,map-intersectf
. - The
query
andquery-multi
operations onlist-relation
have a simplified API; the old API is still supported, but deprecated. (Is anyone usinglist-relation
?) Instead of supplying a separatemetapattern
to indicate which pattern elements to search on, you just putfset::?
in the pattern in uninstantiated locations. - The API and internals of
query-registry
have been significantly revamped. Operationswith-query
andless-query
are nowwith
andless
, and no longer take ametapattern
;forward-key
,lookup-restricted
, andlookup-multi-restricted
are all removed; andlookup-multi
no longer has exponential time complexity (!). I'll be very surprised if anyone besides me is using this class, so I haven't bothered with backward compatibility here.