• by WJW on 10/11/2023, 7:09:52 AM

    Woop! My timerfd change is finally out in the wild!

    This will make it so that (on systems with timerfd) the runtime will no longer have to wait for the next runtime tick before exiting. This saves on average 5 ms per program run, and up to 10 ms for programs with a very short runtime. Not much for server programs with an expected lifetime of days/weeks, but potentially quite nice for CLI programs like hledger or for programs that invoke many other Haskell programs.

    I accidentally discovered this when trying to optimize an Advent of Code problem and couldn't get it below 10 ms no matter what I tried. Eventually I discovered that "hello world" also took 10 ms so I assumed it was just runtime startup costs. Decided to look anyway and found out it was actually runtime shutdown costs, where the runtime would `join` the rts "ticker" thread. The ticker thread would only check for a shutdown flag once every loop, so 10 ms with the default settings. Now it can be shut down immediately, which makes small programs much faster.

  • by trashburger on 10/11/2023, 7:28:45 AM

    > I specified text: 2.1 (a number) instead of text: '2.1' (a string) - causing Stack to complain vigorously

    lol, not even Haskell can escape YAML being YAML.

  • by ridiculous_fish on 10/11/2023, 5:05:06 AM

    Asking as a Haskell dabbler - why are features like `ExtendedLiterals` behind an opt-in language extension? Why not just turn it on for everyone?

  • by endorphine on 10/11/2023, 4:40:49 AM

    > We would like to thank GitHub, IOG, the Zw3rk stake pool, Well-Typed, Tweag I/O, Serokell, Equinix, SimSpace, the Haskell Foundation, and other anonymous contributors whose on-going financial and in-kind support has facilitated GHC maintenance and release management over the years.

    Is GitHub sponsoring Haskell development? Or is this them providing some free services (e.g. more Runners) because it's a large and importans OSS project?

  • by lynx23 on 10/11/2023, 7:18:30 AM

    And stack LTS is still on 9.4...