Logs: liberachat/#haskell
| 2026-04-02 14:06:30 | <mesaoptimizer> | gentauro: I think it makes sense to use text over String as a default, and records as properties instead of functions seems.... I'm unsure about that one. I agree that tooling is really important and I think you underestimate this. I dislike haskell, but I dislike it less than python. Even so, the tooling is a lovely experience in Python and Rust, and the feeling of using the tooling matters. A |
| 2026-04-02 14:06:32 | <mesaoptimizer> | language is not just its syntax and semantics |
| 2026-04-02 14:08:11 | × | mistivia quits (~mistivia@user/mistivia) (Read error: Connection reset by peer) |
| 2026-04-02 14:08:30 | <mesaoptimizer> | int-e: it returns an empty string for me |
| 2026-04-02 14:09:44 | <int-e> | Huh I didn't expectt hat. But it may well explain the difference. |
| 2026-04-02 14:10:13 | <mesaoptimizer> | gentauro: emacs' `haskell-mode` for example, seems terrible |
| 2026-04-02 14:11:31 | <Vq> | mesaoptimizer: haskell-mode is a bit terrible, yeah. But I'm used to it now so it's not too bad. |
| 2026-04-02 14:11:51 | → | sim590 joins (~simon@2001:18c0:a82:2400::9fb) |
| 2026-04-02 14:12:54 | → | machinedgod joins (~machinedg@d172-219-48-230.abhsia.telus.net) |
| 2026-04-02 14:31:25 | <gentauro> | Vq: I got it to work again (LSP) but I was just writing Haskell "without" any help. |
| 2026-04-02 14:31:59 | × | synchromesh quits (~john@2406:5a00:2412:2c00:9d1a:235e:4b6d:c07a) (Read error: Connection reset by peer) |
| 2026-04-02 14:32:01 | <gentauro> | I wouldn't be able to do that if they keep changing the lang (staying with Haskell2010 without all the pragmas enabled by default … jaiks) |
| 2026-04-02 14:32:24 | → | synchromesh joins (~john@2406:5a00:2412:2c00:fc97:d0a4:cdd9:afc1) |
| 2026-04-02 14:35:44 | × | CiaoSen quits (~Jura@p549cb690.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2026-04-02 14:44:38 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2026-04-02 14:49:15 | × | rainbyte quits (~rainbyte@181.47.219.3) (Ping timeout: 246 seconds) |
| 2026-04-02 14:51:57 | → | acidjnk_new3 joins (~acidjnk@p200300d6e700e5001e1160b7d23e5dd6.dip0.t-ipconnect.de) |
| 2026-04-02 14:58:16 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 2026-04-02 15:05:59 | × | jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 252 seconds) |
| 2026-04-02 15:07:05 | <Vq> | gentauro: I haven't started using LSP for any language yet. Does it work well for Haskell? |
| 2026-04-02 15:09:54 | × | somemathguy quits (~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1) |
| 2026-04-02 15:16:44 | → | wennefer0 joins (~wennefer0@user/wennefer0) |
| 2026-04-02 15:17:04 | → | FirefoxDeHuk joins (~FirefoxDe@user/FirefoxDeHuk) |
| 2026-04-02 15:17:54 | × | FirefoxDeHuk quits (~FirefoxDe@user/FirefoxDeHuk) (Client Quit) |
| 2026-04-02 15:19:06 | → | ft joins (~ft@p508db341.dip0.t-ipconnect.de) |
| 2026-04-02 15:20:52 | <gentauro> | Vg: kind of. It gives you hints on refactoring and so. However, if you use `length` you will get annoyed by -> `Name: Infinite: ghc-internal/length`. It's OK I guess |
| 2026-04-02 15:21:17 | <gentauro> | I don't really use the intellisense. I'm kind of used to Hoogle |
| 2026-04-02 15:23:17 | <Vq> | I generally use hoogle as well and the only autocompletion thing I have is hippie-expand. I think I need to try LSP out though. |
| 2026-04-02 15:24:00 | <gentauro> | Vg: it will save you a few compiles ;) |
| 2026-04-02 15:24:50 | <bwe> | Currently I am doing `S.mapM_ f s` over some stream `s`. While this processes the stream sequentially, how do I process the stream concurrently (instead of using S.mapM_ )? https://hackage.haskell.org/package/streaming-0.2.4.0/docs/Streaming-Prelude.html |
| 2026-04-02 15:24:57 | gentauro | a trick to avoid a compile check, is to hook up `stylish-haskell` on save. If the code doesn't format nicely, then there is something that does not compile ;) |
| 2026-04-02 15:25:14 | Vq | does use stylish-haskell |
| 2026-04-02 15:25:39 | <gentauro> | stylish-haskell is pretty, pretty, nice |
| 2026-04-02 15:26:19 | <Vq> | I know it's not universal, but I like the alignment behaviour of stylish-haskell. |
| 2026-04-02 15:26:53 | <mauke> | bwe: depends on what you mean by that |
| 2026-04-02 15:27:12 | <gentauro> | Vq: so do I. However, from time to time, the project changes and then codes become "ugly" until you tweak to your liking |
| 2026-04-02 15:28:21 | <gentauro> | for good or for bad, the `elm-format` is very rigid in the sense that "Evans knows best, take it or leave it". The good thing about that approach, is that all code cases using the tool, looks the same. And that bad is that people who don't like it, just don't use the tool |
| 2026-04-02 15:28:25 | <gentauro> | :-\ |
| 2026-04-02 15:28:26 | <mauke> | bwe: the way I see it, there are two kinds of monadic actions involved. one is the actions "embedded" in the stream; the other kind is the ones returned by your 'f' |
| 2026-04-02 15:28:35 | <Vq> | When I write Python I quite like having the formatter black just strictly format everything, but with Haskell I prefer the amount of artistic freedom stylish-haskell gives me. |
| 2026-04-02 15:29:27 | <gentauro> | Vq: when doing `case … of` all your cases get aligned with a nice uniform separation <3 |
| 2026-04-02 15:29:45 | <Vq> | Maybe I subconsciously regard pretty Python to be a lost cause. :o) |
| 2026-04-02 15:29:50 | <mauke> | bwe: the latter can be parallelized by collecting the values in a list and mapping over that, or by having your 'f' fork off a new thread for each element |
| 2026-04-02 15:30:22 | <mauke> | bwe: the former is impossible because the rest of the stream doesn't exist unless you run the embedded action first |
| 2026-04-02 15:30:35 | <Vq> | gentauro: Guard patterns and long expressions can trigger stylish-haskell to give up on alignment, but doing it by hand in those cases work for me. |
| 2026-04-02 15:31:39 | <bwe> | mauke: well, I could do a chunksOf 5 and fork a thread for that, for example. |
| 2026-04-02 15:32:10 | <bwe> | mauke: then again, how is processing a list concurrently without streams different than with list? |
| 2026-04-02 15:33:05 | <mauke> | huh? |
| 2026-04-02 15:33:17 | <mauke> | the difference between processing a list and a list is |
| 2026-04-02 15:37:20 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 2026-04-02 15:44:53 | → | somemathguy joins (~somemathg@user/somemathguy) |
| 2026-04-02 15:55:44 | <alter2000> | bwe: would it make sense to `S.mapM (Concurrently {- or whatever concurrency primitive type you feel like -}) >>> S.foldM runConcurrently`, or do none of the existing async libraries allow capping out on the number of concurrent coroutines? |
| 2026-04-02 15:56:52 | <alter2000> | iirc Conduit had a useful adaptation of `async` that let you build a thread pool sink that consumed chunks of tasks |
| 2026-04-02 15:57:09 | <geekosaur> | `async-pool` is a thing |
| 2026-04-02 15:57:36 | <alter2000> | (practical library yap aside I don't see any way to handle it besides a sort of `chunksOf <threads>`) |
| 2026-04-02 15:58:19 | <alter2000> | ooh yea that's the one I was thinking about, misremembered the conduit integration |
| 2026-04-02 16:02:04 | → | gmg joins (~user@user/gehmehgeh) |
| 2026-04-02 16:03:55 | → | EvanR joins (~EvanR@user/evanr) |
| 2026-04-02 16:16:25 | × | comerijn quits (~merijn@77.242.116.146) (Ping timeout: 245 seconds) |
| 2026-04-02 16:21:58 | × | califax quits (~califax@user/califx) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2026-04-02 16:22:12 | → | califax joins (~califax@user/califx) |
| 2026-04-02 16:24:18 | × | sp1ff quits (~user@2601:1c2:4080:14c0::ace8) (Read error: Connection reset by peer) |
| 2026-04-02 16:25:26 | × | ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2026-04-02 16:33:54 | × | arandombit quits (~arandombi@user/arandombit) (Ping timeout: 248 seconds) |
| 2026-04-02 16:47:41 | × | vetkat quits (~vetkat@user/vetkat) (Read error: Connection reset by peer) |
| 2026-04-02 16:50:02 | → | vetkat joins (~vetkat@user/vetkat) |
| 2026-04-02 16:52:27 | → | jmcantrell_ joins (~weechat@user/jmcantrell) |
| 2026-04-02 16:53:06 | <tomsmeding> | is there a way to see the hackage build queue? (i.e. not just build reports for a single package, but something that gives an indication of how long it's going to take) |
| 2026-04-02 17:01:24 | → | arandombit joins (~arandombi@2a02:2455:8656:7100:a19d:edd6:ba09:3a91) |
| 2026-04-02 17:01:24 | × | arandombit quits (~arandombi@2a02:2455:8656:7100:a19d:edd6:ba09:3a91) (Changing host) |
| 2026-04-02 17:01:24 | → | arandombit joins (~arandombi@user/arandombit) |
| 2026-04-02 17:02:18 | → | Square3 joins (~Square@user/square) |
| 2026-04-02 17:03:55 | × | alter2000 quits (~alter2000@user/alter2000) (Ping timeout: 264 seconds) |
| 2026-04-02 17:04:41 | × | Square2 quits (~Square4@user/square) (Ping timeout: 248 seconds) |
| 2026-04-02 17:15:45 | → | alter2000 joins (~alter2000@user/alter2000) |
| 2026-04-02 17:16:22 | × | arandombit quits (~arandombi@user/arandombit) (Ping timeout: 276 seconds) |
| 2026-04-02 17:26:04 | → | mistivia joins (~mistivia@user/mistivia) |
| 2026-04-02 17:31:26 | × | alter2000 quits (~alter2000@user/alter2000) (Ping timeout: 256 seconds) |
| 2026-04-02 17:32:04 | → | arandombit joins (~arandombi@2a02:2455:8656:7100:a19d:edd6:ba09:3a91) |
| 2026-04-02 17:32:04 | × | arandombit quits (~arandombi@2a02:2455:8656:7100:a19d:edd6:ba09:3a91) (Changing host) |
| 2026-04-02 17:32:04 | → | arandombit joins (~arandombi@user/arandombit) |
| 2026-04-02 17:34:29 | × | jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 252 seconds) |
| 2026-04-02 17:37:10 | <tomsmeding> | Accelerate 1.4 is a thing! |
| 2026-04-02 17:37:31 | <tomsmeding> | @package accelerate |
| 2026-04-02 17:37:31 | <lambdabot> | https://hackage.haskell.org/package/accelerate |
| 2026-04-02 17:39:37 | → | alter2000 joins (~alter2000@user/alter2000) |
| 2026-04-02 17:47:45 | <Athas> | tomsmeding: hooray! |
| 2026-04-02 17:47:51 | <Athas> | Is it easy to install? |
| 2026-04-02 17:48:21 | <tomsmeding> | that's the perfect question to ask! |
| 2026-04-02 17:48:34 | <tomsmeding> | since this release, no special build of LLVM is required, just install clang(1) |
| 2026-04-02 17:48:40 | <Athas> | You gotta get gloss-accelerate working, that stuff used to be the bomb. |
| 2026-04-02 17:48:49 | <tomsmeding> | and, for the NVIDIA gpu backend, cuda |
| 2026-04-02 17:51:28 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 2026-04-02 17:52:05 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-04-02 17:52:44 | ← | mistivia parts (~mistivia@user/mistivia) (Leaving) |
| 2026-04-02 17:56:36 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-02 18:05:21 | → | YoungFrog joins (~youngfrog@2a02:a03f:ca07:f900:4452:7d8d:4d90:7a3c) |
| 2026-04-02 18:07:38 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-04-02 18:08:18 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2026-04-02 18:08:58 | → | target_i joins (~target_i@user/target-i/x-6023099) |
All times are in UTC.