--- Begin Message ---
Subject: |
High CPU load and no return value with 3.0.0 |
Date: |
Mon, 09 Mar 2020 13:13:21 +0100 |
User-agent: |
Evolution 3.34.4 (3.34.4-1.fc31) |
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
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#39997: High CPU load and no return value with 3.0.0 |
Date: |
Wed, 11 Mar 2020 15:11:48 +0100 |
User-agent: |
Evolution 3.34.4 (3.34.4-1.fc31) |
On Wed, 2020-03-11 at 15:05 +0100, Ludovic Courtès wrote:
> Roel Janssen <address@hidden> skribis:
>
> > On Wed, 2020-03-11 at 12:07 +0100, Ludovic Courtès wrote:
>
> [...]
>
> > > The Guix package has this patch:
> > >
> > > '(begin
> > > ;; Work around miscompilation on Guile 3.0.0 at -O2:
> > > ;; <https://bugs.gnu.org/39251>;;.
> > > (substitute* "src/md5.scm"
> > > (("\\(define f-ash ash\\)")
> > > "(define f-ash (@ (guile) ash))\n")
> > > (("\\(define f-add \\+\\)")
> > > "(define f-add (@ (guile) +))\n"))
> > > #t)
> > >
> > > It’s very likely that you’re hitting this problem.
> >
> > Yes! Thanks for sharing this fix.
> > I applied the same changes to my code and now I don't encounter the
> > bug
> > anymore.
> >
> > I tested the patched code with both guile-2.2 and guile-3.0. Do
> > you
> > know whether this will also work with guile-2.0? (I'd like to keep
> > things compatible with guile-2.0 for a few more years).
>
> Yes, the change above also works for Guile 2.0.
Thanks for the confirmation. I'm closing this bug, as it is basically
a duplicate of #39251.
Kind regards,
Roel Janssen
--- End Message ---