# Changelog
## 0.4.0 - 2026-06-14
0.4.0 is the first release with a changelog entry; for previous releases, we
didn't have enough users to worry about it.
### Changed
- There is a new "approximate" output mode, which is now the default. Previous
versions of linesweeper provided strong correctness guarantees, but those
guarantees made some cases slow and caused more subdivisions than necessary.
Also, I think that those stronger guarantees are probably not needed for most
applications -- other boolean ops libraries don't provide them as far as I
know. So linesweeper now provides weaker guarantees by default. For the old
behaviour, see `Topology::contours_correct`.
- The winding direction conventions have changed; output curves have been
reversed, so that they agree with `kurbo`'s conventions.
- The `BinaryWindingNumber` API has changed; it now uses the `OneOfTwo` enum to
distinguish the two sets, instead of a `bool`.
### Added
- The new `Topology::has_normal_contours` and `Topology::is_disjoint_tags` allow
for detecting some no-op (or approximate no-op) situations.