[opensuse-haskell] HackWeek 14 + propose change to binary packages.
Hi all, On Friday was started SUSE's Hackweek 14. Peter Simons and I working on project named " Automate Haskell Packaging" -- https://hackweek.suse.com/14/projects/1368 One of project result is proposal to globally enable macro "%ghc_without_dynamic 1" which causes all Haskell Apps -- binary packages like "pandoc" , "git-annex" will be build with staticaly linked binaries. As result user instaling only this package not need install full haskell stack. Any comments, suggestions to this Proposal? PRO: binary with very small amount of deps, Very fast start of packages CONS: very big binaries --> for example git-annex Kind Regards, Ondrej Sukup -- To unsubscribe, e-mail: opensuse-haskell+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-haskell+owner@opensuse.org
On Mon, 2016-06-27 at 12:53 +0200, Ondřej Súkup wrote:
Hi all,
On Friday was started SUSE's Hackweek 14. Peter Simons and I working on project named " Automate Haskell Packaging" -- https://hackweek.suse.com/14/projects/1368
One of project result is proposal to globally enable macro "%ghc_without_dynamic 1" which causes all Haskell Apps -- binary packages like "pandoc" , "git-annex" will be build with staticaly linked binaries. As result user instaling only this package not need install full haskell stack.
Any comments, suggestions to this Proposal?
PRO: binary with very small amount of deps, Very fast start of packages
Do we have any benchmarks on the start up speed?
CONS: very big binaries --> for example git-annex
This part I worry about. How many statically linked apps are we talking about, and how much size will we add overall? I find the idea of statically linked Pandoc interesting, but I'm not sure if the benefits outweigh the disadvantages. It might make sense if we want to create a "stable" Pandoc for instance that gets rebuilt/relinked less often than the rest of the libraries. It could reduce regressions. But if Pandoc and the other apps will get rebuilt/relinked with the rolling library updates, then we don't gain in that respect. -Scott
On 27 June 2016 at 13:51, Scott Bahling <sbahling@suse.com> wrote:
On Mon, 2016-06-27 at 12:53 +0200, Ondřej Súkup wrote:
Hi all,
On Friday was started SUSE's Hackweek 14. Peter Simons and I working on project named " Automate Haskell Packaging" -- https://hackweek.suse.com/14/projects/1368
One of project result is proposal to globally enable macro "%ghc_without_dynamic 1" which causes all Haskell Apps -- binary packages like "pandoc" , "git-annex" will be build with staticaly linked binaries. As result user instaling only this package not need install full haskell stack.
Any comments, suggestions to this Proposal?
PRO: binary with very small amount of deps, Very fast start of packages
Do we have any benchmarks on the start up speed?
CONS: very big binaries --> for example git-annex
This part I worry about. How many statically linked apps are we talking about, and how much size will we add overall?
all haskell libraries before used as shared after change will be part of app binary, so for examaple pandoc.rpm -- dynamically linker about 0.5 MB , statically 7MB but diferrence in requires: static package> https://build.opensuse.org/package/binary/home:mimi_vx:static/pandoc?arch=x86_64&filename=pandoc-1.17.1-2.1.x86_64.rpm&repository=openSUSE_Tumbleweed vs dynamic package> https://build.opensuse.org/package/binary/devel:languages:haskell/pandoc?arch=x86_64&filename=pandoc-1.17.1-28.8.x86_64.rpm&repository=openSUSE_Tumbleweed --> user of pandoc practically installs only pandoc.rpm itself ... and not bazzilion of libraray packages :) of course if You want a devel packages it installs all ghc-package libraries ..
I find the idea of statically linked Pandoc interesting, but I'm not sure if the benefits outweigh the disadvantages. It might make sense if we want to create a "stable" Pandoc for instance that gets rebuilt/relinked less often than the rest of the libraries. It could reduce regressions. But if Pandoc and the other apps will get rebuilt/relinked with the rolling library updates, then we don't gain in that respect.
-Scott -- To unsubscribe, e-mail: opensuse-haskell+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-haskell+owner@opensuse.org
On 27 June 2016 at 13:51, Scott Bahling <sbahling@suse.com> wrote:
On Mon, 2016-06-27 at 12:53 +0200, Ondřej Súkup wrote:
Hi all,
On Friday was started SUSE's Hackweek 14. Peter Simons and I working on project named " Automate Haskell Packaging" -- https://hackweek.suse.com/14/projects/1368
One of project result is proposal to globally enable macro "%ghc_without_dynamic 1" which causes all Haskell Apps -- binary packages like "pandoc" , "git-annex" will be build with staticaly linked binaries. As result user instaling only this package not need install full haskell stack.
Any comments, suggestions to this Proposal?
PRO: binary with very small amount of deps, Very fast start of packages
Do we have any benchmarks on the start up speed? yes, difference between startup times is surprisingly huge:
First test is buildtime of git-annex in OBS, part of package building process is own testsuite which runs many times git-annex binary* Statically linked: Total build: 1198 s Dynamically linked: Total build: 8278 s And from Peter Simons tests: "git annex version" run 100 times. Statically linked: 1s; dynamically linked: 1m24.718s. So the dynamically linked versions starts up 85 times slower -- on a fast machine with a fast SSD and lots of memory. (DELL Latitude E7450 iCore 7 (broadwell) + 8GB of RAM and 256GB in M2 format..
CONS: very big binaries --> for example git-annex
This part I worry about. How many statically linked apps are we talking about, and how much size will we add overall?
I find the idea of statically linked Pandoc interesting, but I'm not sure if the benefits outweigh the disadvantages. It might make sense if we want to create a "stable" Pandoc for instance that gets rebuilt/relinked less often than the rest of the libraries. It could reduce regressions. But if Pandoc and the other apps will get rebuilt/relinked with the rolling library updates, then we don't gain in that respect.
-Scott
LINKS to OBS: https://build.opensuse.org/package/statistics/home:mimi_vx:static/git-annex?arch=x86_64&repository=openSUSE_Tumbleweed https://build.opensuse.org/package/statistics/devel:languages:haskell/git-annex?arch=x86_64&repository=openSUSE_Tumbleweed Bye , Ondrej -- To unsubscribe, e-mail: opensuse-haskell+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-haskell+owner@opensuse.org
participants (2)
-
Ondřej Súkup
-
Scott Bahling