[CM] R7RS support

Rudolf Adamkovič salutis at me.com
Fri Jan 21 08:27:31 PST 2022

bil at ccrma.Stanford.EDU writes:

> Thanks! I'll merge those changes into my version.
> r7rs.scm can almost pass the chibi r7rs tests -- if I
> had 2 minutes of uninterrupted time, I'd be done.

I wanted to try the new version, but I get:

;can't get (*s7* 'filenames); no such field in *s7*
;    (unless (member lib-filename (*s7*...

Two extra notes on 'r7rs.scm':

(1) I have to always delete the *libc* stuff to avoid:

;unbound variable *libc* in (*libc* 'getenvs)
;    (*libc* 'getenvs)
;    s7.scm, line 465, position: 15208
; (*libc* 'getenvs)

(2) I needed 'parameterize' today, and it does not seem to work.

The following 101 example from R⁷RS …

(parameterize ((current-output-port (open-output-string)))
  (display "piece")
  (display " by piece ")
  (display "by piece.")
  (get-output-string (current-output-port)))

… fails with the following message:

;unbound variable value in (set! old-values (cons value old-values))
;    (set! old-values (cons value...

The example works in Guile, FYI.

As we use it, it also fails (the same way):

(define (test description expected actual)
  (or (equal? expected actual)
      (parameterize ((current-output-port (current-error-port)))
        (display (list "expected" description "to return" expected
                       "but got" actual))

"I love deadlines. I love the whooshing noise they make as they go by."
-- Douglas Adams, The Salmon of Doubt

Rudolf Adamkovič <salutis at me.com> [he/him]
Studenohorská 25
84103 Bratislava

More information about the Cmdist mailing list