← board

{$I+} / {$IOCHECKS ON}: raise on Text I/O failure

{$I+} assign(t,'/nonexistent/dir/f'); reset(t);   { FPC: EInOutError }

FPC 3.2.2: caught=1 (and {$I+} is FPC's DEFAULT). pxx: reset silently no-ops (IOResult reports it, {$I-} style — pxx currently behaves as permanently {$I-}).

Design (the {$Q+}/{$R+} pattern, with one twist)

DIALECT-DEFAULT QUESTION (user call — do not decide unilaterally)

FPC defaults to {$I+}; pxx today behaves {$I-} everywhere. Options: (a) keep pxx-lax default (quiet, IOResult-style) with {$I+} opt-in — matches the meta-dialect contract's lenient-default rule; (b) flip to FPC's default under --mimic-fpc only; (c) flip globally (would change failure behavior of every existing program/demo silently — riskiest). Recommend (a)+(b). Cf. the float-exception-mask decision where the user explicitly chose quiet-by-default (feature-float-exception-mask-control).

Acceptance

Log