GNU bug report logs -
#50349
[PATCH] packages: Add 'define-package' syntax.
Previous Next
Full log
Message #41 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 04.09.2021 16:44, Tobias Geerinckx-Rice wrote:
> Taylan Kammer 写道:
>> To me the most obvious thing to do seems
>>
>> (define-package foo ...) ;no explicit name needed
>>
>> to bind the variable 'foo' and use symbol->string for the name of the
>> package, with the possibility to override the name like
>>
>> (define-package foo (name "foobar") ...)
>>
>> which would bind the variable 'foo' to a package named "foobar".
>
> Right, that's what I meant, and it's how I read bug #15284, and it looks remarkably like the form I use in my personal channels (and I'm sure I'm not the first! :-).
>
> You're much better at the language/implementation side of things than I am, Taylan. Would this negatively affect performance (including ‘guix pull’ compilation)?
>
> Kind regards,
>
> T G-R
I'm flattered, but don't really know the answer, so I decided to attempt
some sort of benchmark. :-P
test1.scm uses the syntax-case macro, test2.scm just define-public.
I don't actually import the Guix modules, so the (package ...) form isn't
macro-expanded, regardless of whether it's used directly or results from
expanding define-package.
This way, the impact of define-package should dominate the time difference.
The results are... interesting. I started out with 256 definitions in the
files, and the define-package one would take about 4.2s to compile while
the regular one about 3.9s. There was some jitter in the results though
after running it several times so I thought, let's increase the number of
packages to reduce noise.
With 512 packages, the one using regular define-public takes a whole
minute to compile, whereas the define-package one just ~14 seconds!
So no idea what's going on there, and how the use of this macro in the
actual (gnu packages ...) modules would affect performance. :-)
--
Taylan
[test1.scm (text/plain, attachment)]
[test2.scm (text/plain, attachment)]
This bug report was last modified 3 years and 281 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.