What's Changed
- fix(isel): 256-align single-entry const tables that cross their window by @apojomovsky in #141
- feat(isel): support cross-context stored callbacks by @apojomovsky in #142
- docs(31): record the epic-math C-path measurement decision by @apojomovsky in #146
- docs(31): record the epic-serial put API decision (#91) by @apojomovsky in #150
- hal-pic16 slice e2e; arity-filter indirect calls; post-banking const window by @apojomovsky in #153
- feat(driver): size and map reporting by @apojomovsky in #156
- fix(alloc): correct the size report's bank counts and ISR fixed region by @apojomovsky in #157
- docs: rename PlatformIO platform to epic8 in doc 31 by @apojomovsky in #158
- fix(isel): measure the const-section start at the assembler's final position by @apojomovsky in #159
- fix(irparse): dispatch folded GEP and ptrtoint in phi and binop operands by @apojomovsky in #162
- fix(driver): ship a freestanding stdlib.h carrying size_t by @apojomovsky in #167
- feat(driver): predefine the XC8 toolchain and part macros by @apojomovsky in #168
- fix(irparse): resolve globals whose types contain unions by @apojomovsky in #169
- fix(driver,irparse): pack PIC18 structs to the XC8 byte-aligned record layout by @apojomovsky in #170
- docs(31): record the HAL-3 close-out and resolve the 877A RAM headroom question by @apojomovsky in #171
- docs(31): record the epic-hal#97 literal printf shim and staged put_str by @apojomovsky in #174
- feat(diagnostics): source-accurate C locations for backend panics by @apojomovsky in #176
- fix(irparse): handle local array alloca [N x T] via ty_size_align by @apojomovsky in #177
- fix(legalize): lower llvm.fshl/fshr.i8/i16/i32 (LFSR rotate) by @apojomovsky in #178
- fix(isel): materialize const string literals for pointer call args by @apojomovsky in #179
- fix(isel,driver): restore master red for cb_dispatch, cc2 and str_literal by @apojomovsky in #181
- fix(isel-pic18): handle i8 to i1 trunc via masked byte copy by @apojomovsky in #180
- ci(rolling-release): checkout the repo in the publish job by @apojomovsky in #182
- fix(alloc): overlay locals by liveness within a frame by @apojomovsky in #184
- fix(iselcore,isel,isel-pic18,alloc): seed non-folding pointer selects as indirect slots by @apojomovsky in #185
- test(driver): e2e for arity-filtered indirect call sites by @apojomovsky in #186
- feat(irparse,isel,isel-pic18,asm,legalize): decode const structs with function-pointer fields by @apojomovsky in #187
- fix(isel,isel-pic18): pass runtime pointer call args and materialize data-global addresses by @apojomovsky in #188
- fix(irparse,isel): lower i64 aggregate struct copies as byte copies by @apojomovsky in #189
- fix(sim): land direct writes to banked SFR windows at the physical address by @apojomovsky in #190
- test(isel): pin the config table crossing its 256-byte window by @apojomovsky in #191
- fix(irparse,iselcore): unblock full-example codegen (inttoptr comma, load-ptr seeding) by @apojomovsky in #192
- fix(pic18): unblock the epic-sdcard/epic-settings PIC18 slice (isel-pic18 gaps) by @apojomovsky in #194
- feat: variadic printf/stdio path (epic-cc#131) by @apojomovsky in #195
- fix(driver,irparse,isel,isel-pic18): whole-program IR cleanup closes the epic-encoder codegen-density gap by @apojomovsky in #198
- fix(driver): base need_stdio/need_string on clang's dependency output, not raw source text by @apojomovsky in #199
- test(driver): add a flash/RAM size-regression suite by @apojomovsky in #201
- docs(driver): correct the XC8 optimization-tier caveat by @apojomovsky in #202
- fix(driver): always-inline single-call-site functions into ordinary callers by @apojomovsky in #208
- fix(docker): ship opt in the release bundles by @apojomovsky in #212
- feat(banking): elide a label's redundant BANKSEL when every path agrees by @apojomovsky in #213
- fix(ci): authenticate the epic-tasks checkout for prose lint by @apojomovsky in #216
- fix(isel): elide a redundant store+immediate-reload of an SSA value in W by @apojomovsky in #215
Full Changelog: v0.0.3...v0.1.0