[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

system exceptions



R5RS states that implementations are not required to detect error situations
referred to as "an error". Implementations are also not required to detect
violations of implementation restrictions.

What does it mean to be "consistent with the semantics of Scheme" in
terms of section 1.3.2 of R5RS? Is it possible for an implementation
to comply with SRFI-12 and still crash on (car '()) or run out of memory
without raising some kind of exception?

There are only seven procedures required by R5RS to "detect and report"
errors:
  scheme-report-environment null-environment  ("version not supported")
  call-with-input-file call-with-output-file open-input-file
open-output-file ("cannot open file")
  read ("eof inside datum")

Since SRFI-12 requires an implementation to raise an exception in these
situations,
I believe it should specify predicates to recognize these exceptions and
procedures
to extract components (file-open-error? file-open-error-filename etc.) I
also think that
SRFI-12 should clarify that raising the corresponding exception is the only
observable
effect of "reporting" in these cases.

Sergei