Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,798,956 events total
2026-02-14 17:25:16 Fijxu_ joins (~Fijxu@user/fijxu)
2026-02-14 17:26:58 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-14 17:27:11 × Fijxu quits (~Fijxu@user/fijxu) (Ping timeout: 250 seconds)
2026-02-14 17:27:37 × tabaqui quits (~tabaqui@167.71.80.236) (Ping timeout: 250 seconds)
2026-02-14 17:28:09 tabaqui joins (~tabaqui@167.71.80.236)
2026-02-14 17:31:42 emmanuelux joins (~em@user/emmanuelux)
2026-02-14 17:33:41 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2026-02-14 17:41:05 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2026-02-14 17:41:22 spew joins (~spew@user/spew)
2026-02-14 17:43:12 × Pozyomka quits (~pyon@user/pyon) (Quit: bbl)
2026-02-14 17:47:10 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-14 17:51:59 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-02-14 17:53:23 <monochrom> I want 3/2 to be rational, or polymorphic over fields.
2026-02-14 17:54:21 <monochrom> Actually put it this way: polymorphic over fields, ideally. (Pun!)
2026-02-14 17:56:56 <fgarcia> would import Data.Ratio work? then 3 % 2
2026-02-14 17:57:29 <monochrom> I am too lazy to import that. I use "3/2 :: Rational". :)
2026-02-14 18:03:45 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-14 18:08:47 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2026-02-14 18:09:15 × caubert quits (~caubert@user/caubert) (Ping timeout: 265 seconds)
2026-02-14 18:10:13 × mulk quits (~mulk@pd95140e6.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2026-02-14 18:10:48 mulk joins (~mulk@p5b2dcbcc.dip0.t-ipconnect.de)
2026-02-14 18:20:39 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-14 18:22:37 caubert joins (~caubert@user/caubert)
2026-02-14 18:25:41 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2026-02-14 18:26:09 × tromp quits (~textual@2001:1c00:3487:1b00:701a:bd9c:28fd:d022) (Ping timeout: 245 seconds)
2026-02-14 18:30:02 tromp joins (~textual@2001:1c00:3487:1b00:49b4:8838:6b5e:2a21)
2026-02-14 18:36:36 Pozyomka joins (~pyon@user/pyon)
2026-02-14 18:36:53 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-14 18:39:04 qqq joins (~qqq@185.54.22.240)
2026-02-14 18:39:39 × housemate quits (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/)
2026-02-14 18:40:22 prdak joins (~Thunderbi@user/prdak)
2026-02-14 18:41:34 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-02-14 18:44:44 × prdak quits (~Thunderbi@user/prdak) (Ping timeout: 252 seconds)
2026-02-14 18:45:39 × ouilemur quits (~jgmerritt@user/ouilemur) (Quit: WeeChat 4.8.1)
2026-02-14 18:48:06 × tromp quits (~textual@2001:1c00:3487:1b00:49b4:8838:6b5e:2a21) (Quit: My iMac has gone to sleep. ZZZzzz…)
2026-02-14 18:48:25 housemate joins (~housemate@202.7.248.67)
2026-02-14 18:52:44 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-14 18:57:56 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-02-14 19:01:50 tromp joins (~textual@2001:1c00:3487:1b00:49b4:8838:6b5e:2a21)
2026-02-14 19:08:37 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-14 19:10:02 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
2026-02-14 19:10:19 × caubert quits (~caubert@user/caubert) (Ping timeout: 250 seconds)
2026-02-14 19:15:01 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-02-14 19:18:24 × emmanuelux quits (~em@user/emmanuelux) (Ping timeout: 252 seconds)
2026-02-14 19:22:28 caubert joins (~caubert@user/caubert)
2026-02-14 19:23:13 emmanuelux joins (~em@user/emmanuelux)
2026-02-14 19:27:27 target_i joins (~target_i@user/target-i/x-6023099)
2026-02-14 19:27:47 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-14 19:32:02 × target_i quits (~target_i@user/target-i/x-6023099) (Ping timeout: 252 seconds)
2026-02-14 19:32:35 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-02-14 19:36:19 × traxex quits (traxex@user/traxex) (Ping timeout: 264 seconds)
2026-02-14 19:38:06 target_i joins (~target_i@user/target-i/x-6023099)
2026-02-14 19:38:28 <probie> Dumb question: what's the correct way to do `x += y` with a mutable unboxed vector such that it'll generate SIMD instructions (when using the LLVM backend)?
2026-02-14 19:43:55 <probie> If I just do something like `V.imapM_ (\ix a -> (a +) <$> V.read y ix) x` will it work?
2026-02-14 19:43:56 peterbecich joins (~Thunderbi@71.84.33.135)
2026-02-14 19:43:58 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-14 19:44:54 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
2026-02-14 19:45:19 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
2026-02-14 19:45:55 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 264 seconds)
2026-02-14 19:46:15 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2026-02-14 19:46:15 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2026-02-14 19:46:39 ChaiTRex joins (~ChaiTRex@user/chaitrex)
2026-02-14 19:48:09 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
2026-02-14 19:49:05 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-02-14 19:49:35 <tomsmeding> probie: if you're talking about LLVM, then the only real answer is to try it :p
2026-02-14 19:49:56 <tomsmeding> GHC will not generate SIMD instructions here, but if the work is suitably arranged, LLVM will do it
2026-02-14 19:50:15 <tomsmeding> will the work be suitably arranged? That depends on the vagaries of the code generator, as well as the implementation of V.imapM_
2026-02-14 19:53:27 <tomsmeding> I wonder if the maintainer of the playground could be bribed to make -fllvm work there.
2026-02-14 19:55:11 <int-e> subtle
2026-02-14 19:56:56 <tomsmeding> seems LLVM 12 will do for 9.0 up to and including 9.8
2026-02-14 19:57:35 <tomsmeding> and 13-17 for 9.10 and higher
2026-02-14 19:58:30 <tomsmeding> no that's not quite right
2026-02-14 20:00:09 <int-e> Hmm, https://minoki.github.io/posts/2025-01-13-ghc-simd.html looks like a decent overview of the state of the SIMD primitives in GHC?
2026-02-14 20:00:37 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-14 20:00:47 <int-e> `vector` makes at least one SIMD-unfriendly design choice though: `drop` is O(1) so there's no alignment guaranteee beyond the primitive data type for unboxed vectors.
2026-02-14 20:04:33 <probie> now how do I tell GHC where my llvm is...
2026-02-14 20:04:52 <tomsmeding> it seems it will just look for `opt` in $PATH
2026-02-14 20:05:01 <tomsmeding> though perhaps it looks for llvm-config first
2026-02-14 20:05:06 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2026-02-14 20:05:16 <tomsmeding> generally one tells programs of LLVM by ensuring its llvm-config executable is in $PATH
2026-02-14 20:05:35 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-02-14 20:05:45 chexum joins (~quassel@gateway/tor-sasl/chexum)
2026-02-14 20:06:09 infinity0 joins (~infinity0@pwned.gg)
2026-02-14 20:06:21 <probie> the problem is that the `opt` there is the wrong version. I'm just going to brute force my way through and make symlinks to the right ones in a folder and the stick that folder on my path
2026-02-14 20:06:54 <tomsmeding> probie: https://git.tomsmeding.com/pathenv/tree/pathenv ?
2026-02-14 20:07:44 <probie> It's good to know I'm not the only one to have that idea
2026-02-14 20:09:53 <int-e> There are half a dozen -pgm* flags for the various llvm tools ghc might use. -pgmlo is for `opt`.
2026-02-14 20:10:26 <int-e> (And I see no indication that it can interrogate llvm-config)
2026-02-14 20:11:04 <tomsmeding> int-e: https://play.haskell.org/saved/yNy86HlS this output suggest it does _something_
2026-02-14 20:11:14 <tomsmeding> apart from just calling `opt`, that is
2026-02-14 20:12:11 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
2026-02-14 20:13:04 <tomsmeding> this seems to be the compatibility matrix https://paste.tomsmeding.com/NJhIVIyh
2026-02-14 20:14:11 <int-e> tomsmeding: AFAICS it tries llc -version (or whatever -pgmlc is)
2026-02-14 20:14:18 <tomsmeding> lame
2026-02-14 20:14:58 <geekosaur> I think you can specify a path in the settings file?
2026-02-14 20:15:13 caubert joins (~caubert@user/caubert)
2026-02-14 20:15:14 <geekosaur> $(ghc --print-libdir)/settings
2026-02-14 20:15:32 <geekosaur> "LLVM opt command" (and similar for llc)
2026-02-14 20:16:26 <int-e> tomsmeding: https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/SysTools/Tasks.hs#L341-350 (and beyond)
2026-02-14 20:16:55 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)

All times are in UTC.