Skip to content

Commit ebfc2a7

Browse files
committed
Update roadmap
1 parent 150e9e2 commit ebfc2a7

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

README.md

+12-10
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ We put the above qualities over performance. But that doesn't mean we neccessari
3232

3333
## How?
3434

35+
🚧 *Disclaimer: This section is now particularly outdated and the rewrite of all documentation is next on [the roadmap](#Roadmap)*.
36+
3537
The following explanations touch only parts of the SwiftNodes API. We recommend exploring the [DocC reference](https://swiftpackageindex.com/codeface-io/SwiftNodes/documentation), [unit tests](https://github.com/codeface-io/SwiftNodes/tree/master/Tests) and [production code](https://github.com/codeface-io/SwiftNodes/tree/master/Code). The code in particular is actually small and easy to grasp.
3638

3739
### Insert Values
@@ -181,7 +183,7 @@ SwiftNodes has begun to accumulate [some graph algorithms](https://github.com/co
181183

182184
### Transitive Reduction
183185

184-
`graph.findTransitiveEdges()` finds all edges which are **not** in the [transitive reduction (the minimum equivalent graph)](https://en.wikipedia.org/wiki/Transitive_reduction) of the `graph`. **You** can also use `filterTransitiveReduction()` and `filteredTransitiveReduction()` to create a graph's [minimum equivalent graph](https://en.wikipedia.org/wiki/Transitive_reduction).
186+
`graph.findTransitiveReductionEdges()` finds all edges of the [transitive reduction (the minimum equivalent graph)](https://en.wikipedia.org/wiki/Transitive_reduction) of the `graph`. **You** can also use `filterTransitiveReduction()` and `filteredTransitiveReduction()` to create a graph's [minimum equivalent graph](https://en.wikipedia.org/wiki/Transitive_reduction).
185187

186188
Right now, all this only works on acyclic graphs and might even hang or crash on cyclic ones.
187189

@@ -220,13 +222,13 @@ SwiftNodes is already being used in production, but [Codeface](https://codeface.
220222

221223
## Roadmap
222224

223-
1. Round out and add algorithms (starting with the needs of Codeface):
225+
1. Review, update and complete all documentation, including API comments.
226+
2. Round out and add algorithms (starting with the needs of Codeface):
224227
1. Make existing algorithms compatible with cycles (two algorithms are still not). meaning: don't hang or crash, maybe throw an error!
225-
2. Update and complete documentation
226-
3. Move to version 1.0.0 if possible
227-
4. Add general purpose graph traversal algorithms (BFT, DFT, compatible with potentially cyclic graphs)
228-
5. Add better ways of topological sorting
229-
6. Approximate the [minimum feedback arc set](https://en.wikipedia.org/wiki/Feedback_arc_set), so Codeface can guess "faulty" or unintended dependencies, i.e. the fewest dependencies that need to be cut in order to break all cycles.
230-
2. Possibly optimize performance – but only based on measurements and only if measurements show that the optimization yields significant acceleration. Optimizing the algorithms might be more effective than optimizing the data structure itself.
231-
* What role does `@inlinable` play here?
232-
* What role does [`lazy`](https://developer.apple.com/documentation/swift/sequence/lazy) play here?
228+
2. Move to version 1.0.0 if possible
229+
3. Add general purpose graph traversal algorithms (BFT, DFT, compatible with potentially cyclic graphs)
230+
4. Add better ways of topological sorting
231+
5. Approximate the [minimum feedback arc set](https://en.wikipedia.org/wiki/Feedback_arc_set), so Codeface can guess "faulty" or unintended dependencies, i.e. the fewest dependencies that need to be cut in order to break all cycles.
232+
3. Possibly optimize performance – but only based on measurements and only if measurements show that the optimization yields significant acceleration. Optimizing the algorithms might be more effective than optimizing the data structure itself.
233+
* What role can `@inlinable` play here?
234+
* What role can [`lazy`](https://developer.apple.com/documentation/swift/sequence/lazy) play here?

0 commit comments

Comments
 (0)