[08:07] <Saviq> Good morn'
[08:12] <alan_g[m]> Hello!
[10:11] <Saviq> > That looks like the compiler confusing itself
[10:11] <Saviq> Precompiled headers are part of the cause.
[10:13] <Saviq> *symptom ¯_(ツ)_/¯
[10:13] <alan_g[m]> So, disable them for ricsv?
[10:14] <Saviq> That's arm64, and not just yet
[10:15] <Saviq> I have reproduced in my test environment, will file a bug against the toolchain and try and dumb it down to a small reproducer. Though pch is not going to make that trivial
[10:22] <Saviq> FYI: https://bugs.launchpad.net/ubuntu/+source/gcc-12/+bug/1983852
[11:51] -GitHub[m]:#mir-server- **[MirServer/mir]** bors[bot] merged [pull request #2537](https://github.com/MirServer/mir/pull/2537): Send keyboard modifiers after keyboard enter
[11:51] -GitHub[m]:#mir-server- **[MirServer/mir]** bors[bot] closed [issue #2535](https://github.com/MirServer/mir/issues/2535): Send keyboard modifiers after keyboard enter
[11:51] -GitHub[m]:#mir-server- **[MirServer/mir]** bors[bot] closed [issue #2025](https://github.com/MirServer/mir/issues/2025): Keyboard modifier state gets out of sync
[13:32] <alan_g[m]> Saviq what happened with space for spread? You tried a wrong incantation?
[13:34] <Saviq> That's what I'm trying to find out, but snapd is using the same… https://github.com/snapcore/snapd/blob/fedbe2f1258695f85e0816c334f1739b28c60e1f/spread.yaml#L106
[13:37] <Saviq> Oh I think I know
[13:38] <Saviq> All the systems need to be scalars or maps, not mixed
[13:38] <Saviq> Actually no. I messed indentation up.
[13:59] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths closed [issue #2438](https://github.com/MirServer/mir/issues/2438): Wayland platform keymap glitch
[14:08] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths closed [issue #2370](https://github.com/MirServer/mir/issues/2370): Port SurfaceObserver to modern observer system
[14:09] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths closed [issue #2311](https://github.com/MirServer/mir/issues/2311): Direct executor global
[15:26] <Saviq> > Precompiled headers are part of the cause.
[15:26] <Saviq> Hmm. Do PCH even make sense in CI / package builds? We don't share them between build targets, so they're quite likely to have an adverse effect in single-use environments?
[15:27] <Saviq> We could/should share them, https://cmake.org/cmake/help/latest/command/target_precompile_headers.html#reusing-precompile-headers - that could have a positive impact
[15:29] <alan_g[m]> I've not looked into the PCH use, but surely they are shared between translation units. Otherwise what is the point?
[15:30] <alan_g[m]> Not on Mir, but I have had the experience of disabling PCH speeding the build process significantly
[15:30] <Saviq> Rebuilds
[15:31] <Saviq> disabling → speeding, or the other way around?
[15:31] <alan_g[m]> Without PCH the build was 4hrs, with 6hrs
[15:32] <Saviq> Oh right, that's my point. In one-off environments, unless we explicitly share the precompiled headers, that's likely to have negative effects
[15:32] <Saviq> We only use them in three test targets, and declare them separately, rather than reuse
[15:32] <alan_g[m]> When I first got involved the "daily build" was taking 26hrs. And that was "too slow" (this was some time ago)
[15:33] <alan_g[m]> I got it down to 3hrs
[15:35] <alan_g[m]> In Mir we are sharing them across TUs - there are multiple TUs in each "build target".
[15:35] -GitHub[m]:#mir-server- **[MirServer/mir]** Saviq drafted [pull request #2538](https://github.com/MirServer/mir/pull/2538): ci: disable precompiled headers
[15:36] <Saviq> Here's one way to find out. I will also try reusing them there.
[15:36] <Saviq> afterwards
[15:37] <alan_g[m]> E.g. acceptance-tests has 18 .cpp files sharing a PCH
[15:38] <alan_g[m]> Yeah, when they were introduced I asked if the effect was measurable...
[15:39] <Saviq> Right, I mistakenly considered a target to always share that. Would be a waste otherwise… but of course you're right
[15:39] <Saviq> Let's see!
[15:40] <Saviq> Reusing them won't be much of a gain, then - it took maybe 30s to precompile on the arm64 env I was working on
[15:40] <Saviq> So at most it would shave a minute off
[15:41] <Saviq> This should be default behaviour. We could shave megawatthours off build usage.
[15:41] <Saviq> We need a global ccache.
[15:42] <alan_g[m]> That would be a far better optimisation
[15:55] <Saviq> First results show < 5% slowdown when disabling PCH, so at least they do have an effect
[15:55] <Saviq> *a positive
[16:22] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths assigned AlanGriffiths to [issue #1284](https://github.com/MirServer/mir/issues/1284): Can not close xterm when launched by Mir
[21:24] -GitHub[m]:#mir-server- **[MirServer/mir]** wmww opened [pull request #2539](https://github.com/MirServer/mir/pull/2539): Include null terminator in keymap
[21:24] -GitHub[m]:#mir-server-  
[21:24] -GitHub[m]:#mir-server- > Fixes #2533. I haven't observed any bugs related to this, but it is technically required by the latest wayland.xml.
[21:25] -GitHub[m]:#mir-server- **[MirServer/mir]** wmww edited [pull request #2539](https://github.com/MirServer/mir/pull/2539): Include null terminator in keymap
[21:29] -GitHub[m]:#mir-server- **[MirServer/mir]** wmww opened [pull request #2540](https://github.com/MirServer/mir/pull/2540): mmap keymap fd instead of reading from it
[21:29] -GitHub[m]:#mir-server-  
[21:29] -GitHub[m]:#mir-server- > This and #2508 are the final two pieces required to make input work with wayvnc. I don't completely understand why reading from the fd works for squeekboard and not wayvnc, but mmap works for both and it's what wlroots does.
[21:31] <sophie-w> Got wayvnc working with input! Will work in main once https://github.com/MirServer/mir/pull/2540 and https://github.com/MirServer/mir/pull/2508 are merged.