chicken-hackers
[Top][All Lists]
Advanced

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

[Chicken-hackers] merging the "argvector" changes


From: felix . winkelmann
Subject: [Chicken-hackers] merging the "argvector" changes
Date: Fri, 28 Aug 2015 12:32:27 +0200

Hello!

Peter asked me to write a few words about the status of the "argvector" related
changes (passing arguments to CPS-procedures in a stack-allocated vector
instead of doing it directly).

As I already wrote, the initial reason for this change was the new ARM64 iOS
ABI, which rigorously punishes the undefined behaviour we exploit in the way
CHICKEN translates Scheme to C. At bevuta, we have a large mobile App that
needed to be ported to arm64 (Apple requires this now for all updates in the
App Store and of course for all newly submitted apps). The changes in the
"argvector" branch of the core repo have been used for the new (universal)
32/64-bit build and seem to work flawlessly. We are not sure about any
performance differences yet - one tester say it actually got faster, but that
is likely to be caused by the 64-bit environment and not by the
argvector-related differences in the generated code, I guess.

Mario was so kind to run Salmonella on the argvector branch and the results are
actually quite good: 50 or so eggs break vs. 16 previously, and nearly all of
the breakages are caused by the new signature of "C_apply" (was "C_do_apply")
and "C_values", but these are very easy to fix.

So we think this should be merged. Peter already has prepared patches for the
"numbers" egg and the chicken-5 core.

Opinions and comments are welcome.


felix




reply via email to

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