diff options
| author | JP Appel <jeanpierre.appel01@gmail.com> | 2025-06-19 01:22:19 -0400 |
|---|---|---|
| committer | JP Appel <jeanpierre.appel01@gmail.com> | 2025-06-19 01:22:19 -0400 |
| commit | 21d72b2f67fb065d9071907c5c3307434aad3795 (patch) | |
| tree | 9313ca1091d0f4c9b3252639d33b582c58f72d87 /cmd/atlas.go | |
| parent | 649bbdf8d3fdda4423f2f30bbf98698e8f2faa07 (diff) | |
Add multiple clause and tree level optimizations
Implement optimizations that can be called in parallel or serial.
Optimizations occur mostly in place and result in a logically equivalent
tree when used correctly.
Optimizations
=============
* Sort - sort all statements within a clause tree
* Simplify - apply negation rules to all statements
* Flatten - merge child clauses with parents
* Compact - merge equivalent statements
* Tidy^ - remove zero statements
* Contradictions - zero contradicting statements and clauses
* StrictEquality - zero fuzzy statements when exact statements are within
clause
* Tighten - combine multiple fuzzy statements to the least (AND) or
most (OR) restrictive bounds
^: when used incorrectly can turn an invalid clause tree into a valid
one
Diffstat (limited to 'cmd/atlas.go')
| -rw-r--r-- | cmd/atlas.go | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/cmd/atlas.go b/cmd/atlas.go index b0cebdb..60da8a2 100644 --- a/cmd/atlas.go +++ b/cmd/atlas.go @@ -208,9 +208,12 @@ func main() { } case "shell": state := make(shell.State) - interpreter := shell.NewInterpreter(state, os.Stdin) + interpreter := shell.NewInterpreter(state, os.Stdin, globalFlags.NumWorkers) if err := interpreter.Run(); err != nil && err != io.EOF { + slog.Error("Fatal error occured", slog.String("err", err.Error())) os.Exit(1) + } else { + fmt.Println("\nLeaving atlasi.") } } |
