chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-hackers] [PATCH] Fix #1317


From: Peter Bex
Subject: [Chicken-hackers] [PATCH] Fix #1317
Date: Sat, 24 Sep 2016 12:12:01 +0200
User-agent: Mutt/1.5.23 (2014-03-12)

Hi all,

At the Sun & Fun conference I had some time to look into #1317, which
was tricky to find but once found easy to fix.

The reason the fibc benchmark would hang is because the "addc" procedure
gets compiled to a looping C function which builds up stack, and then it
needs to perform a minor GC.  When it does, it needs to save the
argvector so that it can re-invoke the calculation's continuation.

The bug is that it would save the _original_ argvector, while the loop
will mutate a working copy of each argument.  The fix simply refreshes
the argvector with the current working values.

I decided not to add fibc as a test, because it's such an extremely
specific issue, and it's hard to guarantee that it will be compiled
exactly in such a way that it triggers this bug.

Cheers,
Peter

Attachment: 0001-Copy-temp-arg-values-back-into-argvector-on-loop.master.patch
Description: Text Data

Attachment: 0001-Copy-temp-arg-values-back-into-argvector-on-loop.chicken-5.patch
Description: Text Data

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]