|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## 0.10.0 (2021-10-18) |
| 4 | + |
| 5 | +### Breaking changes |
| 6 | + |
| 7 | +- `CharSet`: The `intersect` and `without` methods now only take `CharSet`s and `CharRange`s as arguments. |
| 8 | +- `{DFA,ENFA,NFA}#{isDisjointWith,getIntersectionWords,getIntersectionWordSets}` were removed. |
| 9 | +- Removed `NodeList` API for all FA implements. This is a very significant change as to how FAs are implemented but doesn't affect the main FA APIs too much. This change gives users a lot more control over FA implements. |
| 10 | +- Removed `{DFA,ENFA,NFA}.CreationOptions` interfaces. Use the new `NodeFactory` API instead. |
| 11 | +- Removed `{DFA,ENFA,NFA}#options`. Just pass the FA as is instead. |
| 12 | +- Removed `FACreationOptions` interface. |
| 13 | +- `getIntersection{Iterator,Words,WordSets}`, `isDisjointWith`: Replaced optional `FACreationOptions` parameter with optional `maxNodes` parameter. |
| 14 | +- DFA nodes can now only be linked using `CharSet`s. Linking with `Char`s and `CharRange`s is no longer supported. |
| 15 | +- Removed `ENFA`'s `unorderedResolveEpsilon`. Use `resolveEpsilon` instead. |
| 16 | +- `FAIterator.MapFABuilder`: Removed optional `kind` argument. |
| 17 | + |
| 18 | +### Added |
| 19 | + |
| 20 | +- `NodeFactory` interface. This new interface is the basis of all `FABuilder`s and FA implemented. |
| 21 | +- `{DFA,ENFA,NFA}.nodeFactory`: This is an unlimited node factory. |
| 22 | +- `{DFA,ENFA,NFA}.LimitedNodeFactory`: This node factory can be used to limit the number of nodes an FA operation is allowed to create. |
| 23 | +- `CharSet#resize` |
| 24 | +- `CharSet.fromRange` |
| 25 | +- `FAIterator.fromWords` will create a new iterator from a list of words. |
| 26 | +- `FAIterator.fromWordSets` will create a new iterator from a list of word sets. |
| 27 | +- `{DFA,ENFA,NFA}.fromCharSet` will create new FAs from a given `CharSet`. |
| 28 | +- `{DFA,ENFA,NFA}.fromWordSets` will create new FAs from a list of word sets. |
| 29 | +- `{DFA,ENFA,NFA}#countNodes` will return the number of nodes in the FA. |
| 30 | +- `{DFA,ENFA,NFA}#nodes` will iterate through all nodes in the FA. |
| 31 | +- `ENFA.withoutEmptyWord` |
| 32 | +- `ENFA#{append,prepend,union}Into` will move the nodes of the given ENFA instead of copying them. This can be used to improve performance. |
| 33 | + |
| 34 | +### Changed |
| 35 | + |
| 36 | +- `JS.toLiteral`: Setting `unicode: false` in the `flags` option will now always succeed. |
| 37 | + |
| 38 | +### Improved |
| 39 | + |
| 40 | +- `CharMap` is now implemented using a sorted array instead of an AVL tree. This is significantly faster. Most DFA operation are now 10% faster. |
| 41 | +- `FAIterators.iterateWordSets` will now use the natural iteration order of the given FAIterator for words of the same length. This makes `ENFA#wordSets` a lot more logical. |
| 42 | +- `ENFA`'s `resolveEpsilon` is now implemented non-recursively. |
| 43 | +- The docs now have a dark mode thanks to TypeDoc v0.22.0. |
| 44 | + |
| 45 | + |
3 | 46 | ## 0.9.1 (2021-07-26) |
4 | 47 |
|
5 | 48 | ### Fixed |
|
0 commit comments