Interaction of read-suppress and #R:
I believe no error should be signaled as READ-FROM-STRING from sbcl does
23.2.16 read-suppress
...
Except as noted below, any standardized reader macro2 that is defined to read2 a following object or token will do so, but not signal an error if the object read is not of an appropriate type or syntax.
* (WITH-STANDARD-IO-SYNTAX
(LET ((*READ-SUPPRESS* T))
(eclector.reader:READ-FROM-STRING "#0r0")))
debugger invoked on a ECLECTOR.READER:INVALID-RADIX in thread #<THREAD "main thread" RUNNING {10005185B3}>: 0 is too small to be a radix.
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [ABORT] Exit debugger, returning to top level.
(ECLECTOR.BASE:%READER-ERROR #<SB-IMPL::STRING-INPUT-STREAM {1004BA3233}> ECLECTOR.READER:INVALID-RADIX :RADIX 0)
source: (APPLY (FUNCTION ERROR) DATUM :STREAM STREAM :STREAM-POSITION STREAM-POSITION (ALEXANDRIA.0.DEV:REMOVE-FROM-PLIST ARGUMENTS :STREAM-POSITION))
0] 0
* (WITH-STANDARD-IO-SYNTAX
(LET ((*READ-SUPPRESS* T))
(READ-FROM-STRING "#0r0")))
NIL
4
In latest sbcl, eclector git master
Interaction of read-suppress and #R: I believe no error should be signaled as READ-FROM-STRING from sbcl does 23.2.16 read-suppress ... Except as noted below, any standardized reader macro2 that is defined to read2 a following object or token will do so, but not signal an error if the object read is not of an appropriate type or syntax.