Re: Ready for Guile 2.2!

2017-04-23 Thread Maxim Cournoyer
Hi Ludo,

l...@gnu.org (Ludovic Courtès) writes:

> Maxim Cournoyer  skribis:
>
[...]
>>
>> Impressive :). Is there a blog post/article/information somewhere about
>> what went in Guile to make it that faster?
>
> I highly recommend posts from the last couple of years (or more!) at
> .  :-)
>
>  has pointers to
> the most important bits.
>
> Ludo’.

Thanks for the pointers. Bookmarked :)

Maxim


signature.asc
Description: PGP signature


Re: Ready for Guile 2.2!

2017-04-22 Thread Ludovic Courtès
Joshua Branson  skribis:

> So are you building (aka compiling) libreoffice, certbot, and xmonad in 
> essentially 2 seconds?  That sounds a little too fast...

No no, they were already in /gnu/store.  What this test measures is the
time it takes to compute the derivations (those /gnu/store/….drv files.)

Ludo’.



Re: Ready for Guile 2.2!

2017-04-22 Thread Joshua Branson
So are you building (aka compiling) libreoffice, certbot, and xmonad in 
essentially 2 seconds?  That sounds a little too fast...


On 04/20/2017 11:21 AM, Maxim Cournoyer wrote:
> Andy Wingo  writes:
>
>> On Thu 20 Apr 2017 14:35, l...@gnu.org (Ludovic Courtès) writes:
>>
>>> l...@gnu.org (Ludovic Courtès) skribis:
>>>
 ;; 2.724686s real time, 3.117062s run time.  0.880827s spent in GC.
 scheme@(guile-user)> (version)
 $1 = "2.0.13"

>>> scheme@(guile-user)> ,use(guix scripts build)
>>> scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" 
>>> "-n" "--no-substitutes" "--no-build-hook")
>>>
>>> [...]
>>>
>>> ;; 1.826528s real time, 1.994426s run time.  0.382750s spent in GC.
>>> scheme@(guile-user)> (version)
>>> $1 = "2.2.1"
>>>
>>> That’s a 33% speedup compared to 2.0.
>> That is a 50% speedup compared to 2.0 :)  If we consider its speed as
>> being how many times you could do this per second, then 2.0 speed is
>> 1/2.72, and 2.2.1 speed is 1/1.82.  Speed ratio is then
>> 2.72/1.82=1.4945.  So 2.2.1 is 1.5x the speed of 2.0, or 50% faster :)
>>
>> Andy, who is not looking for praise, but who likes perf numbers :)
> Impressive :). Is there a blog post/article/information somewhere about
> what went in Guile to make it that faster?
>
> Thank you for your work!
>
> Maxim



Re: Ready for Guile 2.2!

2017-04-21 Thread Ludovic Courtès
Andy Wingo  skribis:

> On Thu 20 Apr 2017 14:35, l...@gnu.org (Ludovic Courtès) writes:
>
>> l...@gnu.org (Ludovic Courtès) skribis:
>>
>>> ;; 2.724686s real time, 3.117062s run time.  0.880827s spent in GC.
>>> scheme@(guile-user)> (version)
>>> $1 = "2.0.13"
>>>
>> scheme@(guile-user)> ,use(guix scripts build)
>> scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" "-n" 
>> "--no-substitutes" "--no-build-hook")
>>
>> [...]
>>
>> ;; 1.826528s real time, 1.994426s run time.  0.382750s spent in GC.
>> scheme@(guile-user)> (version)
>> $1 = "2.2.1"
>>
>> That’s a 33% speedup compared to 2.0.
>
> That is a 50% speedup compared to 2.0 :)  If we consider its speed as
> being how many times you could do this per second, then 2.0 speed is
> 1/2.72, and 2.2.1 speed is 1/1.82.  Speed ratio is then
> 2.72/1.82=1.4945.  So 2.2.1 is 1.5x the speed of 2.0, or 50% faster :)

Right!  What I meant to say is that:

  2.72 - 0.33×2.72 = 1.82

But maybe that’s not the preferred way to present things?

Anyway, it’s _way faster_.  :-)

Ludo’.



Re: Ready for Guile 2.2!

2017-04-21 Thread Ludovic Courtès
Maxim Cournoyer  skribis:

> Andy Wingo  writes:
>
>> On Thu 20 Apr 2017 14:35, l...@gnu.org (Ludovic Courtès) writes:
>>
>>> l...@gnu.org (Ludovic Courtès) skribis:
>>>
 ;; 2.724686s real time, 3.117062s run time.  0.880827s spent in GC.
 scheme@(guile-user)> (version)
 $1 = "2.0.13"

>>> scheme@(guile-user)> ,use(guix scripts build)
>>> scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" 
>>> "-n" "--no-substitutes" "--no-build-hook")
>>>
>>> [...]
>>>
>>> ;; 1.826528s real time, 1.994426s run time.  0.382750s spent in GC.
>>> scheme@(guile-user)> (version)
>>> $1 = "2.2.1"
>>>
>>> That’s a 33% speedup compared to 2.0.
>>
>> That is a 50% speedup compared to 2.0 :)  If we consider its speed as
>> being how many times you could do this per second, then 2.0 speed is
>> 1/2.72, and 2.2.1 speed is 1/1.82.  Speed ratio is then
>> 2.72/1.82=1.4945.  So 2.2.1 is 1.5x the speed of 2.0, or 50% faster :)
>>
>> Andy, who is not looking for praise, but who likes perf numbers :)
>
> Impressive :). Is there a blog post/article/information somewhere about
> what went in Guile to make it that faster?

I highly recommend posts from the last couple of years (or more!) at
.  :-)

 has pointers to
the most important bits.

Ludo’.



Re: Ready for Guile 2.2!

2017-04-20 Thread Maxim Cournoyer
Andy Wingo  writes:

> On Thu 20 Apr 2017 14:35, l...@gnu.org (Ludovic Courtès) writes:
>
>> l...@gnu.org (Ludovic Courtès) skribis:
>>
>>> ;; 2.724686s real time, 3.117062s run time.  0.880827s spent in GC.
>>> scheme@(guile-user)> (version)
>>> $1 = "2.0.13"
>>>
>> scheme@(guile-user)> ,use(guix scripts build)
>> scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" "-n" 
>> "--no-substitutes" "--no-build-hook")
>>
>> [...]
>>
>> ;; 1.826528s real time, 1.994426s run time.  0.382750s spent in GC.
>> scheme@(guile-user)> (version)
>> $1 = "2.2.1"
>>
>> That’s a 33% speedup compared to 2.0.
>
> That is a 50% speedup compared to 2.0 :)  If we consider its speed as
> being how many times you could do this per second, then 2.0 speed is
> 1/2.72, and 2.2.1 speed is 1/1.82.  Speed ratio is then
> 2.72/1.82=1.4945.  So 2.2.1 is 1.5x the speed of 2.0, or 50% faster :)
>
> Andy, who is not looking for praise, but who likes perf numbers :)

Impressive :). Is there a blog post/article/information somewhere about
what went in Guile to make it that faster?

Thank you for your work!

Maxim


signature.asc
Description: PGP signature


Re: Ready for Guile 2.2!

2017-04-20 Thread Andy Wingo
On Thu 20 Apr 2017 14:35, l...@gnu.org (Ludovic Courtès) writes:

> l...@gnu.org (Ludovic Courtès) skribis:
>
>> ;; 2.724686s real time, 3.117062s run time.  0.880827s spent in GC.
>> scheme@(guile-user)> (version)
>> $1 = "2.0.13"
>>
> scheme@(guile-user)> ,use(guix scripts build)
> scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" "-n" 
> "--no-substitutes" "--no-build-hook")
>
> [...]
>
> ;; 1.826528s real time, 1.994426s run time.  0.382750s spent in GC.
> scheme@(guile-user)> (version)
> $1 = "2.2.1"
>
> That’s a 33% speedup compared to 2.0.

That is a 50% speedup compared to 2.0 :)  If we consider its speed as
being how many times you could do this per second, then 2.0 speed is
1/2.72, and 2.2.1 speed is 1/1.82.  Speed ratio is then
2.72/1.82=1.4945.  So 2.2.1 is 1.5x the speed of 2.0, or 50% faster :)

Andy, who is not looking for praise, but who likes perf numbers :)



Re: Ready for Guile 2.2!

2017-04-20 Thread Ludovic Courtès
Hello Guix!

l...@gnu.org (Ludovic Courtès) skribis:

> An unscientific illustration of this point:
>
> scheme@(guile-user)> ,use(guix scripts build)
> scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" "-n" 
> "--no-substitutes" "--no-build-hook")
> The following derivations would be built:
>
> [...]
>
> ;; 2.724686s real time, 3.117062s run time.  0.880827s spent in GC.
> scheme@(guile-user)> (version)
> $1 = "2.0.13"
>
>
> Compared to:
>
> scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" "-n" 
> "--no-substitutes" "--no-build-hook")
>
> [...]
>
> ;; 2.224821s real time, 2.347463s run time.  0.374545s spent in GC.
>
> Roughly an 18% speedup here.

In Guile 2.2.1 Andy fixed an optimization of ‘thunk?’, which is called a
lot when we load packages (via ‘make-promise’, for record fields marked
as ‘delayed’).  Now we get… drum roll…

--8<---cut here---start->8---
scheme@(guile-user)> ,use(guix scripts build)
scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" "-n" 
"--no-substitutes" "--no-build-hook")

[...]

;; 1.826528s real time, 1.994426s run time.  0.382750s spent in GC.
scheme@(guile-user)> (version)
$1 = "2.2.1"
--8<---cut here---end--->8---

That’s a 33% speedup compared to 2.0.

Andy super-hero!

Ludo’.



Re: Ready for Guile 2.2!

2017-03-31 Thread Ludovic Courtès
Hello!

l...@gnu.org (Ludovic Courtès) skribis:

> Building Guix with 2.2 is the first migration step.  The next steps are:
>
>   1. Renaming ‘guile-next’ to ‘guile’ and making 2.2 the default.  Some
>  packages (notably Guile-SSH, GDB, LilyPond) don’t work with 2.2 yet
>  so for these we’ll change ‘guile’ to ‘guile-2.0’.  This can start
>  as soon as this week.  :-)
>
>  We’ll replace ‘package-for-guile-2.2’ with ‘package-for-guile-2.0’,
>  though I don’t think it’ll make sense to keep both a 2.0 and a 2.2
>  version of all the packages.

This first step has started: we have a bunch of Guile packages that are
2.2 by default, sometimes with an additional 2.0 variant.

I think we should keep incrementally moving things to 2.2-by-default,
along the lines of commit 7c86c0310939619cb37d4706ca3446ed342a2444 and
the previous ones.

Help welcome!  :-)

Ludo’.



Re: Ready for Guile 2.2!

2017-03-15 Thread Ludovic Courtès
l...@gnu.org (Ludovic Courtès) skribis:

> Guile 2.2 comes with a new compiler and a new virtual machine.  As a
> result, one of the main user-visible changes is that things are faster.

An unscientific illustration of this point:

--8<---cut here---start->8---
scheme@(guile-user)> ,use(guix scripts build)
scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" "-n" 
"--no-substitutes" "--no-build-hook")
The following derivations would be built:

[...]

;; 2.724686s real time, 3.117062s run time.  0.880827s spent in GC.
scheme@(guile-user)> (version)
$1 = "2.0.13"
--8<---cut here---end--->8---

Compared to:

--8<---cut here---start->8---
scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" "-n" 
"--no-substitutes" "--no-build-hook")

[...]

;; 2.224821s real time, 2.347463s run time.  0.374545s spent in GC.
--8<---cut here---end--->8---

Roughly an 18% speedup here.

Ludo’.



Re: Ready for Guile 2.2!

2017-03-15 Thread Pjotr Prins
On Wed, Mar 15, 2017 at 05:13:01PM +0100, Ludovic Courtès wrote:
> Hello Guix!
> 
> Exciting times!
> 
> As of commit 608e42e7c92114497e7908980424288079acee1e, Guix builds with
> Guile 2.2 (to be released sometime within the next 24 hours) and the
> whole test suite passes.

Very cool. Hats off to you and Andy and others to make it work!

Pj.