| 30 May 2024 |
Qyriad | Plus some other stuff in the derivation that wasn't right for static builds | 01:09:57 |
delroth | oh, I couldn't get this to work because then stuff linking with libexpr would break due to libexpr link_whole-ing libstore but meson not passing the transitive dependencies of libstore to the builds | 01:10:59 |
delroth | must have missed something when I tried | 01:11:05 |
delroth | cool that this does end up working | 01:11:12 |
Qyriad | the trick is to only link_whole : on executables | 01:18:01 |
Qyriad | liblixexpr = declare_dependency(
include_directories : include_directories('.'),
link_with : libexpr,
)
if is_static
liblixexpr_mstatic = declare_dependency(
include_directories : include_directories('.'),
link_whole : libexpr,
)
else
liblixexpr_mstatic = liblixexpr
endif
and then
nix = executable(
'nix',
….
dependencies : [
liblixcmd,
liblixutil,
liblixstore_mstatic,
liblixexpr_mstatic,
liblixfetchers_mstatic,
liblixmain,
boehm,
nlohmann_json,
],
)
| 01:19:55 |
Qyriad | liblixexpr = declare_dependency(
include_directories : include_directories('.'),
link_with : libexpr,
)
if is_static
liblixexpr_mstatic = declare_dependency(
include_directories : include_directories('.'),
link_whole : libexpr,
)
else
liblixexpr_mstatic = liblixexpr
endif
and then
nix = executable(
'nix',
…
dependencies : [
liblixcmd,
liblixutil,
liblixstore_mstatic,
liblixexpr_mstatic,
liblixfetchers_mstatic,
liblixmain,
boehm,
nlohmann_json,
],
)
| 01:20:11 |
delroth | ugh, hacky | 01:22:12 |
delroth | hopefully #359 can deprecate this in the future, can you leave a comment on the issue once you've merged this? | 01:22:42 |
delroth | so we remember to have a look at removing it when static initializers are gone | 01:22:57 |
Qyriad | yep, we were also going to leave comments in these parts of the meson files saying to remove them when the static initializers are gone | 01:23:25 |
jade_ | https://gerrit.lix.systems/c/lix/+/1351 10% knocked off of build times :D | 04:17:46 |
Qyriad | I love you | 04:24:05 |
jade_ | btw | 04:24:06 |
jade_ |  Download image.png | 04:24:09 |
jade_ | in case you are wondering why error.hh is expensive | 04:24:12 |
jade_ | it's fucking boost fmt | 04:24:16 |
jade_ | 419ms of it is boost/format.hpp | 04:24:29 |
jade_ | don't you love when you can just attach a profiler to the bad thing and get 10% improvement in 30 minutes :D thanks so much to tom for splitting util.hh so we could do this | 04:25:27 |
quartz | In reply to @jade_:matrix.org https://gerrit.lix.systems/c/lix/+/1351 10% knocked off of build times :D that's A Lot | 04:26:28 |
jade_ | it's cpu-seconds, mind | 04:26:42 |
jade_ | my last build time hacking got 15% off the build times: https://gerrit.lix.systems/c/lix/+/588
sadly, these things need doing every so often, since we are, even after my latest optimization, apparently 100 cpu seconds worse than we were then :P | 04:28:12 |
jade_ | someone could probably iwyu some more time off of it | 04:28:32 |
jade_ | anyway. i am so so so so glad for the clang self-profiler -ftime-trace. it's the best. | 04:29:33 |
jade_ | https://wiki.lix.systems/books/lix-contributors/page/improving-build-times wow that page was outdated, i have updated it so it is good now | 04:50:08 |
quartz | In reply to @jade_:matrix.org it's cpu-seconds, mind still a good bit! | 04:51:15 |
jade_ | for sure! | 04:51:31 |
jade_ | and it really literally is just shuffling code around | 04:51:40 |
| linj joined the room. | 06:47:19 |
| aprl (GPN; DECT 2774; SIP GAYS) changed their display name from aprl to aprl (GPN; DECT 2774; SIP GAYS). | 09:21:22 |