• 0 Posts
  • 34 Comments
Joined 1 year ago
cake
Cake day: September 24th, 2023

help-circle





  • The liquor store presumably? Just submitting patches is a simple 12 step process. I can’t imagine the development and review process is any easier.

    I have implemented a Git client from scratch which involved quite a bit of reading the Git source code. It’s not bad code but it’s definitely the sort of code that would break in all sorts of unexpected ways if you changed something. I wouldn’t volunteer my time their tbh.






  • Yeah it’s easier to compile software with support for the latest vector extensions etc. if you do it from source. It is also possible to do runtime detection and switch between implementations that way, but it requires more work.

    Tbh I don’t think it would make much difference in practice. If you are ok with supporting only recentish CPUs you can use one of these options:

    • -march=x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2

    • -march=x86-64-v2: (close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3

    • -march=x86-64-v3: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE

    • -march=x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL

    v2 is definitely fine and v3 is probably acceptable by now.

    In short I don’t think -march is a compelling argument for avoiding binary distribution. If it really makes a big difference either distribute multiple versions of your software using the flags above, or do runtime detection.


  • Good luck with this approach on a server.

    Indeed, obviously I’m talking about desktops here.

    If by ‘suspend’ you mean that the process will just halt, then: Which processes? All of them? Good luck displaying a message then.

    You could use some kind of heuristic to suspend ones using the most memory/CPU. Or just suspend them all. Obviously you would exclude the processes needed to display the message.

    If by ‘suspend’ you mean moving the memory to disk

    No I meant just pausing their execution. I’m pretty sure ctrl-alt-del does something like this on Windows.


  • Ah maybe. I’m still on RHEL8. Even so, “it hangs a bit and kills a random process” is still shit! What it should do is suspend processes, and show you a GUI saying “you’re running low on memory, here are your running programs and how much they are using” and allow you to choose which processes to kill, or whatever.

    That would be far too user friendly for Linux though. I don’t think the kernel/Wayland Devs could really comprehend that tbh. They’ll say something along the lines of “users shouldn’t be doing that”.



  • You basically shouldn’t until you are forced to move. Almost all of the improvements so far are in the internal architecture.

    You might notice some tiny differences if you switch, like logging in doesn’t show a black screen at any point, and window choosers when screen sharing show a (totally broken) grid of previews instead of a plain list of window titles.

    Hopefully when X is fully dead (give it another 10 years) we’ll see some actual improvements, e.g. RDP-style remote desktop, good support for multi-monitor, HDR, HiDPI, etc.