Skip to content

Commit 90ef0e4

Browse files
Updated changelog
1 parent 89cb233 commit 90ef0e4

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,48 @@
11
# Changelog
22

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+
346
## 0.9.1 (2021-07-26)
447

548
### Fixed

0 commit comments

Comments
 (0)