#300 fasl-compile: defmethod inside eval-when breaks the action classifier ('value is not a byte-vector') — blocks asdf.lisp fasl
closedFound during cave#299's asdf stretch. (fasl-compile "asdf.lisp" ...) dies in 0.05s with 'the value is not a byte-vector | in: FASL-COMPILE'. Minimal repro (saved during the hunt): (eval-when (:compile-toplevel :load-toplevel :execute) (defmethod package-designator ((c type-error)) ...)) — defmethod inside eval-when breaks the Phase-0.5 fasl action classifier; deftype and define-condition in the same position compile fine. The mini-clos defmethod expansion reaches an emitter expecting a bv name. First hit at asdf.lisp:148-221 (uiop/package's eval-when). This is now THE blocker for an asdf fasl — the perf + buffer work from cave#299 is done and waiting.
Fixed in 316ca5b: the classifier now splices macroexpansions (progn subforms re-enter per-arm) and lambda-lifts CO-RUN thunks via ag-repl-process-form — the minimal repro (eval-when + defmethod) fasl-compiles, fresh-loads, and the method DISPATCHES (package-designator on a type-error → 42). HEADLINE: asdf.lisp now FASL-COMPILES — 251.85s, 5,055,137-byte fasl (first ever). Its LOAD then fails early on a DISTINCT new blocker: 'invalid number of arguments: ENSURE-PACKAGE expected 1, got 25 | in: LOAD' — KIND-7 resolved-call relocs re-resolve BY NAME against the consumer fn-table, so the fasl's call to uiop's 25-arg ensure-package bound to a different same-named 1-arg function already in the image. Package-aware call resolution needed (the v5 home-pkg field already exists for exactly this). Filed separately; closing this issue as its defect (the classifier) is fixed and verified (full battery 0 NILs).