Re: [PATCH] Pick rest argument values directly from the argvector without consing

2019-11-18 Thread felix . winkelmann
> Thanks for the suggestions, they clean up the code quite a bit. > Attached is a new version of the patch that implements these changes. > I also found out that there was still a bug: when a procedure was > customizable, the generated C rest arg accessor would crash because > there's no "av" nor "

Re: [PATCH] Pick rest argument values directly from the argvector without consing

2019-11-06 Thread Peter Bex
On Fri, Nov 01, 2019 at 02:15:51PM +0100, felix.winkelm...@bevuta.com wrote: > Hi! > > > Very nice, works well and makes sense. Here a few suggestions: Thanks for the suggestions, they clean up the code quite a bit. Attached is a new version of the patch that implements these changes. I also fou

Re: [PATCH] Pick rest argument values directly from the argvector without consing

2019-11-01 Thread felix . winkelmann
Hi! Very nice, works well and makes sense. Here a few suggestions: - For new optimizations, I'd add 'x to the debugging flags given to "debugging", that way one can easily see new or experimental compiler features at work an whether they cause trouble. - The implementation of C_get_rest_a

Re: [PATCH] Pick rest argument values directly from the argvector without consing

2019-10-27 Thread felix . winkelmann
Hi! Very cool, Peter. Please let me have a look at this before we seriously consider adding the patch. felix

Re: [PATCH] Pick rest argument values directly from the argvector without consing

2019-10-27 Thread Peter Bex
On Sun, Oct 27, 2019 at 04:22:58PM +0100, Jörg F. Wittenberger wrote: > Likely. Though I've seen graphics code, which had a huge amount of keyword > args. Will this change speed them up too? No, keyword arguments are basically handled as plists. It might be possible to translate this to some sort

Re: [PATCH] Pick rest argument values directly from the argvector without consing

2019-10-27 Thread Jörg F . Wittenberger
Thanks Peter for investing your time into this. While I did not proof-read your code, my bet is that this kind of optimizations do add up at the end of the day. On Oct 27 2019, Peter Bex wrote: On Sun, Oct 27, 2019 at 01:16:10PM +0100, Peter Bex wrote: This super simple benchmark runs 25% f

Re: [PATCH] Pick rest argument values directly from the argvector without consing

2019-10-27 Thread Peter Bex
On Sun, Oct 27, 2019 at 01:16:10PM +0100, Peter Bex wrote: > This super simple benchmark runs 25% faster with -O3: > > (define (foo #!optional (a 1) (b 2)) > (+ a b)) > > (time > (let lp ((i 0)) > (unless (= i 1) > (foo 1 3) > (lp (add1 i) I've tested some more, a

[PATCH] Pick rest argument values directly from the argvector without consing

2019-10-27 Thread Peter Bex
Hi all, Here's my patch for https://bugs.call-cc.org/ticket/1623. The commit message should provide sufficient details to understand what it does, I hope. This super simple benchmark runs 25% faster with -O3: (define (foo #!optional (a 1) (b 2)) (+ a b)) (time (let lp ((i 0)) (unless (=