Subject: bug#39997: closed (Re: bug#39997: High CPU load and no return value with 3.0.0)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 11 Mar 2020 14:12:02 +0000

Your bug report

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

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
39997: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39997
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#39997: High CPU load and no return value with 3.0.0
From: Roel Janssen <[email-masked]>
To: Ludovic Courtès <[email-masked]>
Cc: [email-masked]
Date: Wed, 11 Mar 2020 15:11:48 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

On Wed, 2020-03-11 at 15:05 +0100, Ludovic Courtès wrote:
> Roel Janssen <[email-masked]> 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

Subject: High CPU load and no return value with 3.0.0
From: Roel Janssen <[email-masked]>
To: [email-masked]
Date: Mon, 09 Mar 2020 13:13:21 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

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