Flow v0.11.0
What's Changed
- Fixes #269 #270 #264 #265 — MISRA Phase 0: flags, sanitizers, div0/shift guards by @godofecht in #287
- feat(safety): overflow-checked signed integer arithmetic (#263) by @godofecht in #289
- feat(safety): safety manifest generator (--emit-manifest) by @godofecht in #290
- docs: update README to 0.10.0 with safety profiles and current stats by @godofecht in #292
- fix(cgen): lower nested assignment expressions by @godofecht in #291
- Fixes #266 #279 — null deref + unified fault handler + if-expressions by @godofecht in #288
- Fixes #267 #268 #271 #272 — temp arena, recursion, @max_iterations, bigint/HashMap by @godofecht in #393
- Fixes #274 #275 #276 #277 #278 #280 #281 #283 #284 — MISRA Phase 2 by @godofecht in #394
- feat(rf): c64/c128 complex types, DFT + IQ mixer examples by @godofecht in #395
- feat(rf): phantom rate Signal with compile-time rate checking by @godofecht in #397
- feat(dsp): pipeline stdlib with map/filter/reduce/scan + |> chaining by @godofecht in #398
- feat(dsp): compile-time pipeline fusion for map/scale/offset stages by @godofecht in #399
- refactor: remove MISRA overflow codegen, improve MLIR statics by @godofecht in #402
- fix(mlir): drop unsigned flag on no-op cast; update cert docs by @godofecht in #403
- feat(safety): enforce MISRA 17.2/17.4, route println through FLOW_LOG by @godofecht in #404
- feat: strtod fix, --export ABI, wasm32 datalayout, Python runner by @godofecht in #405
- feat(wcet): WCET and stack depth analysis, MLIR const static init by @godofecht in #406
- feat(plans): generalise multi-implementation selection beyond sort by @godofecht in #407
- fix: multiple compiler bugs and project conventions by @godofecht in #419
- fix: -O2 default, pointer address type check, regression tests by @godofecht in #428
- fix: overload string->ptr compatibility, add parser self-test by @godofecht in #432
- feat(flowc): semicolon and elif support in self-hosted parser by @godofecht in #433
- feat(flowc): println/print intrinsics by @godofecht in #434
- fix(flowc): emit stdbool.h for bool type by @godofecht in #435
- feat(flowc): generic skip, bitwise ~ and &, more integer types by @godofecht in #436
- fix(flowc): DOTDOT lex, for-range check, newline struct fields, array by @godofecht in #437
- feat(flowc): scientific notation, attribute skip, type aliases by @godofecht in #438
- feat(flowc): bitwise | ^, lenient bundle typecheck, fir_analysis by @godofecht in #439
- feat(flowc): function pointer types, unit declarations by @godofecht in #440
- feat(flowc): effect/capability blocks, postfix calls by @godofecht in #441
- feat(flowc): top-level let, hex literals by @godofecht in #442
- feat(flowc): shift operators, compound assignments by @godofecht in #443
- feat(flowc): not keyword, keyword field names, extern function by @godofecht in #444
- feat(flowc): stmt attrs, generic structs, ref/slice types, export type by @godofecht in #445
- feat(flowc): trailing commas, fix generic arg vs comparison by @godofecht in #446
- feat(flowc): stdlib import resolution, math.h, keyword let fix, new ported modules by @godofecht in #447
- feat(flowc): array<T,N> struct fields, c64/c128 types, new ported modules by @godofecht in #454
- fix(flowc): keyword field names in struct literal detection by @godofecht in #455
- feat(flowc): detect string-typed identifiers for str_concat lowering by @godofecht in #456
- feat(flowc): parse extern block signatures and emit forward declarations by @godofecht in #457
- fix(flowc): self-referential struct pointer fields use struct tag by @godofecht in #458
- feat(flowc): lower c64/c128 complex constructors in C generator by @godofecht in #459
- fix(flowc): lower return void to bare return, skip sprintf/snprintf externs by @godofecht in #460
- fix(flowc): skip Flow-defined functions shadowing C standard library names by @godofecht in #461
- fix(flowc): expand libc skip list with more stdio functions by @godofecht in #462
- fix(flowc): emit array<T,N> top-level lets as T name[N] not T* name by @godofecht in #463
Full Changelog: v0.10.0...v0.11.0