Flow v1.0.0
What's Changed
- Improve test coverage and encourage Flow idioms by @godofecht in #477
- docs: enable MkDocs Material instant navigation features by @godofecht in #513
- 🧪 Add unit tests for
resolve_modulesby @godofecht in #502 - 🧪 [testing improvement description] by @godofecht in #498
- Fix empty gutter beside docs sidebar by @godofecht in #514
- fix: emit via FLOWC_IN/OUT in bootstrap_from_c.sh by @godofecht in #516
- ⚡ Optimize regex compilation in simd_check loop by @godofecht in #501
- Implement note string parser in
note_to_midiby @godofecht in #512 - 🧹 Fix nested generics parsing to support pointer arrays for Audio Buffer by @godofecht in #511
- Refactor planet.flow to use procgen.flow by @godofecht in #509
- feat(audio): implement Comb and Allpass filters for Reverb by @godofecht in #506
- 🧹 [Code Health] Apply Synthesizer Filter in Synth Module by @godofecht in #504
- 🧪 [testing improvement] Add test coverage for get_module_resolver and resolve_modules by @godofecht in #488
- 🧪 [testing improvement] Add unit tests for
generate_metal_shadersby @godofecht in #485 - 🧪 test: add edge case tests for propagate_effects by @godofecht in #484
- 🧪 Add testing for gpu_copy_from_device and other gpu_runtime functions by @godofecht in #483
- 🧪 test: add test coverage for reachable_functions by @godofecht in #492
- 🧪 Add comprehensive test for FIR analysis orchestration by @godofecht in #493
- 🧪 Testing improvement: add tests for call_graph_edges by @godofecht in #499
- Wiki home showcase and clearer navigation by @godofecht in #515
- docs: refresh repository statistics by @godofecht in #518
- wasm gallery: 158/158 — every example builds and runs as a card by @godofecht in #464
- Fix TCO miscompiling extern/@cEmbed shim tail calls into infinite loops (#517) by @godofecht in #523
- test: coverage plan, meta-agents notes, and small unit tests by @godofecht in #522
- docs: refresh repository statistics by @godofecht in #526
- Add first-class MLIR to wasm32 compilation target by @godofecht in #529
- Execute direct MLIR wasm32 output in CI by @godofecht in #530
- Exercise direct wasm32 linear-memory marshalling by @godofecht in #532
- Fix private function collisions across modules by @godofecht in #531
- Fix time.h extern prototype clashes by @godofecht in #533
- Execute allocation-backed Flow under direct wasm32 by @godofecht in #534
- Gate direct wasm32 against native MLIR parity by @godofecht in #535
- MLIR: rotate counted loops and inline trivial accessors by @godofecht in #538
- docs: measure whether the documented examples compile by @godofecht in #540
- docs: make every anchor resolve, on the wiki as well as GitHub by @godofecht in #542
- docs: check that every part of the language has a documented home by @godofecht in #543
- docs: one nav manifest, validated, and every page reachable by @godofecht in #544
- docs: retire the core library page, which documented an API that does not exist by @godofecht in #545
- docs: cover the direct wasm32 target, and let CI run on docs-only PRs by @godofecht in #539
- ci: gate documentation coverage and examples by @godofecht in #546
- docs: resolve imports when checking examples, and mark the aspirational ones by @godofecht in #548
- fix: lib/stdlib/posix.flow and net.flow never parsed by @godofecht in #549
- fix: posix.flow function names that are libc macros by @godofecht in #551
- docs: fix the vacuity check, four broken tutorials, and an unsafe stdlib extern by @godofecht in #552
- Add a BPF (bpfel) compilation target by @godofecht in #555
- ci: let the coverage gate see every backend, and document the one it caught by @godofecht in #556
- docs: preamble= for running examples, and three more Book fixes by @godofecht in #553
- docs: refresh repository statistics by @godofecht in #554
- design: anchor the wiki shell, set headings in Archivo, harden against clipping by @godofecht in #558
- Expand effects and capabilities documentation by @godofecht in #557
- Lower sum(range) to closed-form arithmetic by @godofecht in #536
- docs: show the verification result on every example, and publish the totals by @godofecht in #559
- fix: capability method bodies did not know their own parameter types by @godofecht in #560
- docs: correct three effects limitations that were broader than the truth by @godofecht in #565
- Stop using Image.getdata, which Pillow 14 removes by @godofecht in #568
- Connect the two effects pages where a reader actually needs the link by @godofecht in #570
- Range algebra: union and intersection inside sum (#476) by @godofecht in #567
- Report an undeclared type as undeclared, not as a type failing to match itself by @godofecht in #571
- Report a capability used as a value in Flow terms, not as a clang error (#561) by @godofecht in #569
- Return array<T, N> by value instead of pointing into the dead frame (#573) by @godofecht in #576
- Tag three rejection demos, and make the ledger say what each one proves by @godofecht in #572
- Make lib/stdlib/audio/README.md describe the API that exists by @godofecht in #574
- Represent array<array<T, N>, M> as rows, not as an array of pointers (#575) by @godofecht in #578
- String concatenation is a string, whatever the other operand is (#577) by @godofecht in #580
- Implement from=, so a page that inlines a program cannot drift from it by @godofecht in #582
- Run defers after the return value is read, and on every return (#594) by @godofecht in #595
- Run the documentation examples, not only compile them by @godofecht in #596
- Release 0.12.0 by @godofecht in #597
- add Solve It the Flow Way problem gallery by @godofecht in #581
- Let a flow member be elided and carry a dimension by @godofecht in #599
- Record the furthest meaningful failure for unverified examples too (#588) by @godofecht in #600
- Let a documentation block build on an earlier one on the same page (#584) by @godofecht in #601
- Call a C math function by the name that is actually emitted (#590 part 1) by @godofecht in #603
- Tag the two lifetime-domain rejection demos expect-error (#593) by @godofecht in #602
- Classify metasyntactic fences, with three corrections (#589) by @godofecht in #604
- Two galleries of recorded clips existed with no gallery to show them by @godofecht in #605
- Make every example in the dynamics API reference compile by @godofecht in #606
- Bind POSIX and sockets through the system headers (#550) by @godofecht in #598
- Parse array repeat initializers [value; N] (#585) by @godofecht in #609
- fix: link Python-host
flow runwith libm by @godofecht in #566 - Remove test.txt, swept in by mistake by @godofecht in #608
- Make the language spec's effect and type examples compile by @godofecht in #610
- Every Solve It the Flow Way example runs in the browser by @godofecht in #617
- Let a theorem name its parameters without typing them (#587) by @godofecht in #618
- Pin flowc f64 const emission regression (#612) by @godofecht in #619
- Make every example in the expressions and matching chapter compile by @godofecht in #622
- Make every example in the evolution and dynamics chapter compile by @godofecht in #624
- Define the functions the pipelines chapter pipes through by @godofecht in #625
- Make Flow documentation compiler-audited by construction by @godofecht in #579
- Keep imported module entry points out of the root program by @godofecht in #626
- Read the declaration forms glibc uses, so @cImport works on Linux (#550) by @godofecht in #627
- flowc: lower a slice using the sliced variable's element type by @godofecht in #632
- Type-check span.data by @godofecht in #634
- Lower an exhaustive match as a total if/else chain by @godofecht in #635
- Reject an unqualified effect operation in Flow by @godofecht in #637
- Evaluate a span borrow's source expression exactly once by @godofecht in #636
- Model the pthread binding on the real header types by @godofecht in #629
- Parse numeric and keyword decorator arguments by @godofecht in #639
- Rebuild stale self-hosted compiler drivers by @godofecht in #638
- docs: define Flow 1.x security support lifecycle by @godofecht in #656
- test: start the permanent Flow 1.0 conformance corpus by @godofecht in #657
- docs: define Flow 1.x stability contract by @godofecht in #655
- ci: make zero documentation debt a Flow 1.0 release gate by @godofecht in #659
- docs: add Flow 1.0 stabilisation roadmap by @godofecht in #654
- selfhost: port range sums and overload compatibility core to Flow by @godofecht in #660
- ci: qualify Linux and macOS as Flow 1.0 Tier 1 candidates by @godofecht in #658
- security: add Flow 1.0 toolchain threat model and invariants by @godofecht in #661
- stability: freeze the Flow 1.0 CLI and manifest core by @godofecht in #662
- docs: record the landed Tier 1 qualification state by @godofecht in #663
- release: prepare the Flow 1.0.0 cut by @godofecht in #697
- stability: freeze the initial Flow 1.0 compatibility surface by @godofecht in #698
- test: expand the Flow 1.0 Stable-core conformance corpus by @godofecht in #701
- platform: define and exercise the Flow 1.0 C toolchain floor by @godofecht in #702
- release: gate publication on full 1.0 qualification by @godofecht in #699
- docs: close the Flow 1.0 executable-documentation debt by @godofecht in #703
- selfhost: port pure eBPF target checks to Flow by @godofecht in #705
- selfhost: port Field DSL lexical core to Flow by @godofecht in #707
- selfhost: port ordering provenance core to Flow by @godofecht in #706
- release: sync final main into 1.0.0 candidate by @godofecht in #708
- release: prepare Flow 1.0.0 by @godofecht in #704
Full Changelog: v0.11.1...v1.0.0