Subject: bug#39997: High CPU load and no return value with 3.0.0

From: Roel Janssen <[email-masked]>
Date: Mon, 09 Mar 2020 13:13:21 +0100

Dear Guile hackers,

When I use the "md5" module from guile-lib (release 0.2.6.1) together
with the following snippet in Guile 3.0.0, it never returns, while on
Guile 2.2.6, it returns the MD5 sum of the input string:
---
(use-modules (md5))

(define (md5-from-string input)
  (call-with-input-string input md5))

(define (random-ascii length)
  "Returns a random string of ASCII characters of length LENGTH."
  (list->string
   (map (lambda _ (integer->char (+ (random 95) 32)))
        (iota length))))

(display
 (md5-from-string
  (random-ascii 32)))
---

Could you point me in the right direction for finding the problem?

This could be completely off-topic:
I also noticed that the function "read-string!/partial" (used by the
md5 module) no longer appears in the manual since the Guile 2.2.  Is
the usage of this function considered deprecated?

Kind regards,
Roel Janssen