summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Update README.mdCliff Click2025-01-151-0/+15
|
* Parallel assign PhisCliff Click2025-01-152-67/+106
|
* New evaluator, more Compiler Driver cleanupCliff Click2025-01-1552-619/+1073
| | | | | | | | | | More compiler driver cleanup: Stop only has Return inputs, never an expr. Drop extra lexical scope. Linker table moves to CodeGen. Replace evaluator with a simpler design; I was unable to get the current design to work with the other changes. Updates to old eval; proper idoms; forced type checks; extensions for Fun, Return, Call, CallEnd. Accessor find next control to execute. Accessor for deciding when its ok to optimize a Function/Return, Call/CallEnd, Stop, ScopeMin (merge) Add local scheduling pass. IRPrinter uses SB instead of StringBuilder Spelling SubF comment
* Fix commentCliff Click2025-01-157-7/+7
|
* Cleanup compile driverCliff Click2025-01-1559-1179/+1693
| | | | | | | | | | Top level makes a "main" function and calls it. Opto() pass inlines main into top-level and removes the function call. If peeps are off, the function call remains; this breaks many tests. Add a FunNode function header; Return is its end. Return no long used at the top level; only a single return per-function, merging all returns (breaks many tests). Add a Call & CallEnd nodes. Fix many tests to pass again. Fix a bunch of minor bugs.
* Intercept first function definitionCliff Click2025-01-153-6/+63
|
* Clean up public API for nil/byte testingCliff Click2025-01-1513-99/+79
|
* All parsing null to be TFP or TMPCliff Click2025-01-1551-429/+1606
| | | | | | | | Insert a TypePtr/TypeNil around TypeMemPtr and TypeFunPtr in the lattice; allows the parsing of "null" to mean either a TMP or TFP null. Cleanup Type null checks and several prints. Drop Type.lub, Type.makeInit. Add a Parser NIL & ZERO. Clean up parser errors, track line numbers for future parser errors.
* Add a tighter/graphviz-oriented type printCliff Click2025-01-158-4/+37
|
* Update README.mdCliff Click2025-01-151-0/+3
|
* Better websocket readerCliff Click2025-01-152-5/+33
| | | | fix bug double-render
* Fix HTML printingCliff Click2025-01-155-6/+7
|
* viewer improvementsCliff Click2025-01-153-27/+57
| | | | | | | viewer highlights parsed text; larger input box removes some double-display handles mouse over-run
* Greatly improved JSViewerCliff Click2025-01-1525-212/+210
| | | | | | | | | | Handle memory edges. Color-coded edges & nodes to match lattice. Add SB vs StringBuilder. JSViewer needs SB to keep my sanity. Catch successful peeps and `show` them. Drop unused LLVM format, so I don't need to support Yet Another Printer. SimpleWebSocket handles longer packets; more robust close. Bug fix st/new fold. Bug fix Phi pull-down op losing precision.
* Progress JSViewCliff Click2025-01-1512-73/+446
| | | | | Larger programs, better layouts. Missing e.g. types, & program text & the inter peeps phase
* Start on a graph viz animation of peepsCliff Click2025-01-1512-2/+2620
|
* Minor grammarCliff Click2025-01-151-3/+3
|
* More lattice docs reworksCliff Click2025-01-1519-784/+2775
|
* Upgrades to the Type lattice diagramsCliff Click2025-01-156-1017/+1105
|
* First cut function ptr typeCliff Click2025-01-155-5/+144
|
* Initial pushCliff Click2025-01-1593-0/+14891
|
* Missing xScopes pushCliff Click2024-11-231-0/+2
|
* Replace loop finding with official algoCliff Click2024-11-2310-104/+85
| | | | Remove old fixLoops, walkInfinite.
* Fix transpiler / ignore not understood test resultsCliff Click2024-11-232-3/+3
|
* Assignment bugsCliff Click2024-11-237-116/+199
| | | | Restructure parsing declarations from assignments; allow assignments almost anywhere as a normal expression.
* Stronger requirement on new type nameCliff Click2024-11-232-12/+14
|
* Straighten out nested forward ref type errorsCliff Click2024-11-232-17/+33
|
* Error on ambiguous -- parseCliff Click2024-11-233-8/+6
| | | | `i -- i` now errors instead of (sometimes) parsing as `i - -i`
* Fix 2 small bugsCliff Click2024-11-233-2/+29
|
* Update README.mdCliff Click2024-11-231-2/+2
|
* Fix spacing readmeCliff Click2024-11-231-6/+8
|
* Update README.mdCliff Click2024-11-231-6/+7
|
* More READMECliff Click2024-11-231-6/+16
|
* more readmeCliff Click2024-11-231-8/+4
|
* Top level readmeCliff Click2024-11-231-4/+3
|
* Allow oper-assign, += -= etcCliff Click2024-11-233-21/+64
|
* Bug fix loop depth on infinite split-tail loopsCliff Click2024-11-233-73/+9
|
* Minor inf loop fixCliff Click2024-11-233-15/+6
|
* Final? pass of finalsCliff Click2024-11-2326-215/+426
| | | | | | | Add a least-upper-bound to set Phis to their respective Top while preserving final fields. Requires a ReadOnly node to "cast-away-writable". Series of isFinal/makeRO in all Types. Changes tests to match r/w intent.
* commentsCliff Click2024-11-232-2/+3
|
* Allow pre-inc/dec on variablesCliff Click2024-11-238-32/+63
|
* Allow C-style for loopsCliff Click2024-11-234-47/+199
|
* Much more robust guarded expression upcastingCliff Click2024-11-2317-122/+187
| | | | | Region does not print id, making all test cases much more stable (and slightly weaker). NotNode gets more precise compute
* Change field mutabilityCliff Click2024-11-2319-95/+365
| | | | | | | | Fields & locals with an initializer are immutable by default; those without are mutable. Make mutable with `!`. Fields are always mutable in a constructor. Add a trinary `pred ? then : else` syntax. SubNode retains as much precision as AddNode. Sharpen some asserts and error cases. Limit Load node cloning if the ptr is not obvious.
* some docsCliff Click2024-11-232-3/+24
|
* var/valCliff Click2024-11-235-30/+94
|
* Support post ++ on arrays and structsCliff Click2024-11-233-14/+67
|
* Missed oneCliff Click2024-11-231-1/+1
|
* Allow post ++, --Cliff Click2024-11-2334-158/+194
| | | | | | | | | | Fix eval auto-string result. Fix tests hacked because of this. Turn on BrainFuck in ch15,16,17, also disabled because of this. Use new features in BrainFuck. Fix bug not lifting forward refs; add a toString to Vars. Fix some missing addDeps. Remove large complex not-productive peep. Upcast after "while" tests. Improves a bunch of tests. Remove dead getBlockStart.
* Some ideas on functionsCliff Click2024-11-231-0/+59
|