Home liberachat/#haskell: Logs Calendar

Logs on 2026-02-14 (liberachat/#haskell)

00:03:50 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
00:05:49 caubert joins (~caubert@user/caubert)
00:05:57 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
00:09:45 khumba joins (~khumba@user/khumba)
00:10:59 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
00:15:20 <yin> is hackage slow or what?
00:17:00 w00ter joins (~w00ter@user/w00ter)
00:17:39 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:17:39 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
00:17:39 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection)
00:17:51 <haskellbridge> <maerwald> Always
00:17:58 califax joins (~califax@user/califx)
00:18:08 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
00:18:11 <geekosaur> auto-status says it's having problems
00:18:13 ChaiTRex joins (~ChaiTRex@user/chaitrex)
00:20:05 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:21:33 <haskellbridge> <sm> flora.pm too, at the same time, unfortunately. You can still view haddocks at stackage though.
00:24:55 <geekosaur> sadly, it's causing a CI fail for me
00:25:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
00:26:30 × Tuplanolla quits (~Tuplanoll@85-156-32-207.elisa-laajakaista.fi) (Quit: Leaving.)
00:28:12 <haskellbridge> <sm> flora's outage started 8 hours ago, and the problem with hackage's haddocks half an hour ago. I guess they're not related.
00:28:35 <haskellbridge> <sm> the rest of hackage seems ok
00:29:31 <Clint> i have sporadic timeouts
00:35:54 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:41:14 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
00:41:23 caubert joins (~caubert@user/caubert)
00:42:09 × sefidel quits (~sefidel@user/sefidel) (Ping timeout: 260 seconds)
00:42:43 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:42:58 califax joins (~califax@user/califx)
00:45:31 eason joins (~eason@user/eason)
00:48:56 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
00:51:56 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:54:59 × eason quits (~eason@user/eason) (Ping timeout: 252 seconds)
00:58:50 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
00:59:58 sefidel joins (~sefidel@user/sefidel)
01:04:20 × sefidel quits (~sefidel@user/sefidel) (Ping timeout: 244 seconds)
01:09:58 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:15:01 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
01:18:26 omidmash1 joins (~omidmash@user/omidmash)
01:20:21 × omidmash quits (~omidmash@user/omidmash) (Ping timeout: 244 seconds)
01:20:21 omidmash1 is now known as omidmash
01:25:44 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:30:44 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
01:35:09 × khumba quits (~khumba@user/khumba) ()
01:36:43 × GdeVolpiano quits (~GdeVolpia@user/GdeVolpiano) (Ping timeout: 246 seconds)
01:38:48 GdeVolpiano joins (~GdeVolpia@user/GdeVolpiano)
01:41:32 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:45:37 × caubert quits (~caubert@user/caubert) (Ping timeout: 264 seconds)
01:46:41 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
01:53:36 caubert joins (~caubert@user/caubert)
01:55:16 × acidjnk quits (~acidjnk@p200300d6e700e5608d0c25f05fb9749b.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
01:57:18 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:00:01 × caubert quits (~caubert@user/caubert) (Ping timeout: 264 seconds)
02:04:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
02:06:51 sefidel joins (~sefidel@user/sefidel)
02:12:54 caubert joins (~caubert@user/caubert)
02:14:36 × sefidel quits (~sefidel@user/sefidel) (Ping timeout: 244 seconds)
02:18:12 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:25:44 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
02:26:42 × s3np41 quits (~s3np41@078088254000.unknown.vectranet.pl) (Quit: WeeChat 4.8.1)
02:37:31 × machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 264 seconds)
02:38:56 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:45:44 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
02:58:18 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:03:08 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
03:13:42 Vizious joins (~bes@user/Vizious)
03:14:32 × td_ quits (~td@i5387090A.versanet.de) (Ping timeout: 244 seconds)
03:14:37 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:16:35 td_ joins (~td@i5387091C.versanet.de)
03:17:26 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
03:17:27 × omidmash quits (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
03:19:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
03:22:02 omidmash joins (~omidmash@user/omidmash)
03:25:54 × attlin quits (~user@user/attlin) (Ping timeout: 244 seconds)
03:30:33 caubert joins (~caubert@user/caubert)
03:32:10 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:36:41 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
03:37:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
03:40:40 mange joins (~mange@user/mange)
03:40:44 × xff0x quits (~xff0x@ai083101.d.east.v6connect.net) (Ping timeout: 245 seconds)
03:48:43 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:53:44 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
03:54:03 caubert joins (~caubert@user/caubert)
03:58:41 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
04:03:53 xff0x joins (~xff0x@2405:6580:b080:900:5cce:24e5:6536:44dc)
04:05:22 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:07:13 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 264 seconds)
04:10:19 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
04:22:24 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:28:55 caubert joins (~caubert@user/caubert)
04:29:25 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
04:31:53 eason joins (~eason@user/eason)
04:32:46 polykernel_ joins (~polykerne@user/polykernel)
04:35:25 × polykernel quits (~polykerne@user/polykernel) (Ping timeout: 264 seconds)
04:35:25 polykernel_ is now known as polykernel
04:40:55 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:46:13 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
04:58:48 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:03:39 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
05:11:01 sefidel joins (~sefidel@user/sefidel)
05:15:49 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:20:44 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
05:21:32 sp1ff joins (~user@2601:1c2:4701:7850::1844)
05:23:28 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:28:20 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
05:38:23 × lol__ quits (~lol@2603:3016:1e01:b940:68ef:3a08:e1ae:d136) (Quit: Leaving)
05:38:30 lol__ joins (~lol@2603:3016:1e01:b940:75b2:faa1:cf91:eeec)
05:39:34 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:44:29 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
05:50:43 × Square2 quits (~Square@user/square) (Ping timeout: 260 seconds)
05:52:32 × emaczen quits (~user@user/emaczen) (Ping timeout: 252 seconds)
05:54:09 hakutaku joins (~textual@user/hakutaku)
05:56:34 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:00:07 attlin joins (~user@user/attlin)
06:00:34 prdak joins (~Thunderbi@user/prdak)
06:01:56 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
06:03:07 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
06:03:23 chexum joins (~quassel@gateway/tor-sasl/chexum)
06:05:02 × prdak quits (~Thunderbi@user/prdak) (Ping timeout: 244 seconds)
06:13:34 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:15:53 × eason quits (~eason@user/eason) (Ping timeout: 244 seconds)
06:18:04 × haritz quits (~hrtz@user/haritz) (Remote host closed the connection)
06:18:20 takuan joins (~takuan@d8D86B9E9.access.telenet.be)
06:20:35 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
06:24:48 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:29:04 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
06:36:01 × califax quits (~califax@user/califx) (Remote host closed the connection)
06:36:07 califax_ joins (~califax@user/califx)
06:36:13 × omidmash quits (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
06:37:25 califax_ is now known as califax
06:40:39 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:41:14 omidmash joins (~omidmash@user/omidmash)
06:45:53 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
06:58:06 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:03:01 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
07:10:20 tromp joins (~textual@2001:1c00:3487:1b00:701a:bd9c:28fd:d022)
07:12:19 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
07:14:21 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:19:26 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
07:21:59 × xff0x quits (~xff0x@2405:6580:b080:900:5cce:24e5:6536:44dc) (Ping timeout: 245 seconds)
07:25:26 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:26:33 Enrico63 joins (~Enrico63@host-82-63-21-32.business.telecomitalia.it)
07:29:10 xff0x joins (~xff0x@2405:6580:b080:900:9c89:4c9f:731a:2a84)
07:30:26 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
07:33:09 × hakutaku quits (~textual@user/hakutaku) (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:42:06 × Enrico63 quits (~Enrico63@host-82-63-21-32.business.telecomitalia.it) (Quit: Client closed)
07:42:09 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:49:08 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
07:52:03 hakutaku joins (~textual@user/hakutaku)
07:58:11 × caubert quits (~caubert@user/caubert) (Ping timeout: 244 seconds)
08:02:25 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
08:07:24 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
08:10:36 caubert joins (~caubert@user/caubert)
08:13:14 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
08:16:30 ljdarj joins (~Thunderbi@user/ljdarj)
08:16:34 × caubert quits (~caubert@user/caubert) (Ping timeout: 245 seconds)
08:17:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
08:17:42 Enrico63 joins (~Enrico63@host-82-63-21-32.business.telecomitalia.it)
08:21:59 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
08:24:51 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:26:30 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
08:27:33 × Enrico63 quits (~Enrico63@host-82-63-21-32.business.telecomitalia.it) (Quit: Client closed)
08:28:58 caubert joins (~caubert@user/caubert)
08:31:09 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
08:38:13 × tromp quits (~textual@2001:1c00:3487:1b00:701a:bd9c:28fd:d022) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:42:48 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
08:46:36 tromp joins (~textual@2001:1c00:3487:1b00:701a:bd9c:28fd:d022)
08:47:59 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
08:57:20 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
08:58:57 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
09:03:39 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
09:11:38 oskarw joins (~user@user/oskarw)
09:11:57 caubert joins (~caubert@user/caubert)
09:15:39 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
09:20:12 × califax quits (~califax@user/califx) (Remote host closed the connection)
09:20:19 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
09:20:27 califax joins (~califax@user/califx)
09:24:19 × jle` quits (~jle`@2603:8001:3b00:11:6773:850f:e41e:de84) (Ping timeout: 264 seconds)
09:27:26 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
09:34:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
09:43:35 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
09:46:47 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
09:51:34 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
10:00:51 × tromp quits (~textual@2001:1c00:3487:1b00:701a:bd9c:28fd:d022) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:03:59 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
10:06:04 tromp joins (~textual@2001:1c00:3487:1b00:701a:bd9c:28fd:d022)
10:08:50 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
10:09:37 × caubert quits (~caubert@user/caubert) (Ping timeout: 264 seconds)
10:20:02 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
10:21:13 × picnoir quits (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Quit: WeeChat 4.8.1)
10:22:11 caubert joins (~caubert@user/caubert)
10:23:18 picnoir joins (~picnoir@about/aquilenet/vodoo/NinjaTrappeur)
10:24:54 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
10:26:29 × Googulator quits (~Googulato@2a01-036d-0106-499d-6164-ec92-51a0-9cde.pool6.digikabel.hu) (Quit: Client closed)
10:26:34 × caubert quits (~caubert@user/caubert) (Ping timeout: 245 seconds)
10:26:43 Googulator joins (~Googulato@2a01-036d-0106-499d-6164-ec92-51a0-9cde.pool6.digikabel.hu)
10:26:48 × divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer)
10:27:03 divlamir joins (~divlamir@user/divlamir)
10:28:12 × op_4 quits (~tslil@user/op-4/x-9116473) (Remote host closed the connection)
10:28:31 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
10:30:37 op_4 joins (~tslil@user/op-4/x-9116473)
10:33:40 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
10:34:08 × hakutaku quits (~textual@user/hakutaku) (Ping timeout: 252 seconds)
10:35:07 × op_4 quits (~tslil@user/op-4/x-9116473) (Remote host closed the connection)
10:35:43 op_4 joins (~tslil@user/op-4/x-9116473)
10:35:45 lxsameer joins (~lxsameer@Serene/lxsameer)
10:39:17 caubert joins (~caubert@user/caubert)
10:41:40 acidjnk joins (~acidjnk@p200300d6e700e5606490ca8182989074.dip0.t-ipconnect.de)
10:44:02 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
10:46:24 wootehfoot joins (~wootehfoo@user/wootehfoot)
10:46:38 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
10:48:57 ljdarj joins (~Thunderbi@user/ljdarj)
10:49:11 caubert joins (~caubert@user/caubert)
10:51:34 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
10:57:53 machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net)
11:03:12 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
11:08:14 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
11:08:24 hakutaku joins (~textual@user/hakutaku)
11:11:24 Tuplanolla joins (~Tuplanoll@85-156-32-207.elisa-laajakaista.fi)
11:14:50 × Digit quits (~user@user/digit) (Ping timeout: 252 seconds)
11:19:12 × spew quits (~spew@user/spew) (Quit: nyaa~)
11:20:17 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
11:26:58 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
11:29:28 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
11:31:24 × Googulator quits (~Googulato@2a01-036d-0106-499d-6164-ec92-51a0-9cde.pool6.digikabel.hu) (Quit: Client closed)
11:31:34 Googulator joins (~Googulato@2a01-036d-0106-499d-6164-ec92-51a0-9cde.pool6.digikabel.hu)
11:32:36 fp joins (~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi)
11:34:38 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
11:35:03 × mange quits (~mange@user/mange) (Quit: Zzz...)
11:35:43 × fp quits (~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Client Quit)
11:40:28 Digit joins (~user@user/digit)
11:46:33 merijn joins (~merijn@62.45.136.136)
11:47:47 Digit is now known as digitteknohippie
11:48:43 digitteknohippie is now known as Digit
11:51:09 × merijn quits (~merijn@62.45.136.136) (Ping timeout: 245 seconds)
11:56:48 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
12:02:13 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
12:08:08 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
12:11:29 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
12:16:43 emmanuelux joins (~em@user/emmanuelux)
12:18:56 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
12:25:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
12:26:23 caubert joins (~caubert@user/caubert)
12:28:22 emmanuelux_ joins (~em@92-184-96-253.mobile.fr.orangecustomers.net)
12:29:04 × emmanuelux quits (~em@user/emmanuelux) (Ping timeout: 245 seconds)
12:30:28 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
12:31:13 × caubert quits (~caubert@user/caubert) (Ping timeout: 264 seconds)
12:35:19 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
12:42:10 diabloblanco joins (~diablobla@user/diabloblanco)
12:42:34 × ZLima12 quits (~zlima12@user/meow/ZLima12) (Ping timeout: 260 seconds)
12:42:50 ZLima12 joins (~zlima12@user/meow/ZLima12)
12:43:21 caubert joins (~caubert@user/caubert)
12:47:02 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
12:47:49 × caubert quits (~caubert@user/caubert) (Ping timeout: 245 seconds)
12:49:04 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 245 seconds)
12:51:59 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
13:00:44 caubert joins (~caubert@user/caubert)
13:04:02 merijn joins (~merijn@62.45.136.136)
13:04:55 troydm joins (~troydm@user/troydm)
13:05:56 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
13:11:00 × merijn quits (~merijn@62.45.136.136) (Ping timeout: 252 seconds)
13:21:19 Jackneill joins (~Jackneill@94-21-15-238.pool.digikabel.hu)
13:21:39 × Jackneill quits (~Jackneill@94-21-15-238.pool.digikabel.hu) (Max SendQ exceeded)
13:22:25 × ames quits (~amelia@offtopia/offtopian/amelia) (Ping timeout: 245 seconds)
13:23:05 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
13:27:09 jonnie joins (~jonnie@user/jonnie)
13:27:26 × hakutaku quits (~textual@user/hakutaku) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:27:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
13:28:14 notzmv joins (~umar@user/notzmv)
13:28:49 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
13:31:29 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
13:34:41 wootehfoot joins (~wootehfoo@user/wootehfoot)
13:36:44 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
13:37:07 caubert joins (~caubert@user/caubert)
13:37:08 × diabloblanco quits (~diablobla@user/diabloblanco) (Remote host closed the connection)
13:46:38 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
13:50:07 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
13:54:41 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
14:07:29 caubert joins (~caubert@user/caubert)
14:07:42 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
14:12:29 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
14:12:37 × caubert quits (~caubert@user/caubert) (Ping timeout: 264 seconds)
14:14:47 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
14:19:07 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 250 seconds)
14:24:08 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
14:24:32 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
14:25:45 × emmanuelux_ quits (~em@92-184-96-253.mobile.fr.orangecustomers.net) (Quit: bye)
14:26:19 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
14:26:41 ChaiTRex joins (~ChaiTRex@user/chaitrex)
14:27:16 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
14:27:36 ChaiTRex joins (~ChaiTRex@user/chaitrex)
14:29:05 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
14:31:31 Enrico63 joins (~Enrico63@host-82-63-21-32.business.telecomitalia.it)
14:36:22 ames joins (~amelia@offtopia/offtopian/amelia)
14:41:05 caubert joins (~caubert@user/caubert)
14:41:17 × polykernel quits (~polykerne@user/polykernel) (Remote host closed the connection)
14:41:36 polykernel joins (~polykerne@user/polykernel)
14:47:01 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
14:48:19 Milan joins (~Milan@88.212.61.169)
14:48:31 × Milan quits (~Milan@88.212.61.169) (Remote host closed the connection)
14:50:18 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
14:53:14 karenw_ joins (~karenw@user/karenw)
14:54:54 weary-traveler joins (~user@user/user363627)
14:55:23 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
14:56:39 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
14:57:58 lxsameer joins (~lxsameer@Serene/lxsameer)
14:58:23 jle` joins (~jle`@2603:8001:3b00:11:6d67:a516:e093:4066)
15:07:49 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
15:13:04 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
15:25:18 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
15:25:38 × ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds)
15:27:32 ystael joins (~ystael@user/ystael)
15:30:19 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
15:34:54 × tromp quits (~textual@2001:1c00:3487:1b00:701a:bd9c:28fd:d022) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:41:37 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
15:45:26 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
15:48:11 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
15:55:41 tromp joins (~textual@2001:1c00:3487:1b00:701a:bd9c:28fd:d022)
15:57:45 caubert joins (~caubert@user/caubert)
15:58:59 jmcantrell_ joins (~weechat@user/jmcantrell)
16:00:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
16:01:23 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
16:02:25 × caubert quits (~caubert@user/caubert) (Ping timeout: 264 seconds)
16:05:14 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
16:05:42 Sgeo joins (~Sgeo@user/sgeo)
16:06:09 × cipherrot quits (~jez@user/petrichor) (Ping timeout: 245 seconds)
16:14:55 jmcantrell_ is now known as jmcantrell
16:15:25 petrichor joins (~jez@user/petrichor)
16:17:25 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
16:18:10 wootehfoot joins (~wootehfoo@user/wootehfoot)
16:22:24 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
16:25:58 caubert joins (~caubert@user/caubert)
16:30:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
16:32:46 × karenw_ quits (~karenw@user/karenw) (Quit: Deep into that darkness peering...)
16:32:59 karenw_ joins (~karenw@user/karenw)
16:36:28 × caubert quits (~caubert@user/caubert) (Ping timeout: 260 seconds)
16:38:28 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
16:46:27 × mulk quits (~mulk@p5b1128da.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
16:48:06 mulk joins (~mulk@pd95140e6.dip0.t-ipconnect.de)
16:48:40 caubert joins (~caubert@user/caubert)
16:49:37 lxsameer joins (~lxsameer@Serene/lxsameer)
16:51:31 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
16:51:34 larsivi joins (~larsivi@user/larsivi)
16:53:39 × caubert quits (~caubert@user/caubert) (Ping timeout: 245 seconds)
16:54:15 <larsivi> Good afternoon! Newbie here trying to do something like ceiling(x / y), where x and y are Integers or so. This gives me RealFrac woes. Why doesn't this work out-of-the-box?
16:55:00 <haskellbridge> <alexfmpe> What do you expect the type and value of, say, 3/2 to be?
16:55:17 <haskellbridge> <alexfmpe> If you want integer division, use `div` instead of /
16:55:58 <haskellbridge> <alexfmpe> If you want 1.5, convert the arguments to Float or Double or Rational or Scientific or so
16:56:21 <mauke> > let { ceilDiv x y = (x + y - 1) `div` y } in 3 `ceilDiv` 2
16:56:23 <lambdabot> 2
16:56:49 <haskellbridge> <alexfmpe> Or keep thjngs polymorphic with Integral/RealFrac and make use sites decide the type
16:57:01 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
16:57:11 <haskellbridge> <alexfmpe> What do you expect the semantics and type of, say, 3/2 to be?
16:58:36 <larsivi> I want 1.5 - compiler tells me the result is Fractional
16:58:55 <mauke> that's not a ceiling
16:58:56 <larsivi> Of course, mauke's solution will also work for me
16:59:22 smiesner joins (b0cf5acf8c@user/smiesner)
17:00:07 <larsivi> for 3/2 I want 2 to be the answer, 1.5 was a reply to the alex question above
17:00:28 <mauke> > realToFrac 2
17:00:29 <lambdabot> 2.0
17:01:11 × samhh quits (7569f027cf@2a03:6000:1812:100::e4) (Ping timeout: 250 seconds)
17:01:11 samhh_ is now known as samhh
17:01:40 samhh_ joins (7569f027cf@2a03:6000:1812:100::e4)
17:01:40 <tomsmeding> larsivi: if you want to go via a floating point number, you'll have to explicitly convert first (using realToFrac as mauke just posted)
17:01:58 <tomsmeding> Haskell does not automatically coerce numeric types like Javascript :)
17:03:58 × karenw_ quits (~karenw@user/karenw) (Quit: Deep into that darkness peering...)
17:04:05 <larsivi> I get that tomsmeding :)
17:04:35 <tomsmeding> well, this answers why 'ceiling (x / y)' does not work out-of-the-box :)
17:04:57 prdak joins (~Thunderbi@user/prdak)
17:05:05 × chr55 quits (57a0c161b0@user/chr55) (Ping timeout: 250 seconds)
17:07:41 chr55 joins (57a0c161b0@user/chr55)
17:08:35 caubert joins (~caubert@user/caubert)
17:08:59 × eso quits (a0662dfd5e@2a03:6000:1812:100::1266) (Ping timeout: 250 seconds)
17:09:16 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
17:09:35 × prdak quits (~Thunderbi@user/prdak) (Ping timeout: 252 seconds)
17:09:48 <larsivi> Indeed :) I did also misunderstand the compiler error - I thought it was the result of the division that didn't typecheck, but it was the division itself. Thanks all!
17:10:39 eso joins (a0662dfd5e@2a03:6000:1812:100::1266)
17:11:35 × sweater quits (~sweater@206.81.18.26) (Ping timeout: 250 seconds)
17:11:35 × s4msung quits (TgRRXvmJBT@user/s4msung) (Ping timeout: 250 seconds)
17:11:54 s4msung joins (koCZlVvn6A@user/s4msung)
17:12:05 sweater joins (~sweater@206.81.18.26)
17:12:11 <tomsmeding> ah :)
17:13:59 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
17:16:32 emaczen joins (~user@user/emaczen)
17:21:53 × Enrico63 quits (~Enrico63@host-82-63-21-32.business.telecomitalia.it) (Ping timeout: 272 seconds)
17:22:27 × sa quits (sid1055@id-1055.tinside.irccloud.com) (Ping timeout: 250 seconds)
17:22:41 __monty__ joins (~toonn@user/toonn)
17:24:46 sa joins (sid1055@id-1055.tinside.irccloud.com)
17:25:16 Fijxu_ joins (~Fijxu@user/fijxu)
17:26:58 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
17:27:11 × Fijxu quits (~Fijxu@user/fijxu) (Ping timeout: 250 seconds)
17:27:37 × tabaqui quits (~tabaqui@167.71.80.236) (Ping timeout: 250 seconds)
17:28:09 tabaqui joins (~tabaqui@167.71.80.236)
17:31:42 emmanuelux joins (~em@user/emmanuelux)
17:33:41 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
17:41:05 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
17:41:22 spew joins (~spew@user/spew)
17:43:12 × Pozyomka quits (~pyon@user/pyon) (Quit: bbl)
17:47:10 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
17:51:59 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
17:53:23 <monochrom> I want 3/2 to be rational, or polymorphic over fields.
17:54:21 <monochrom> Actually put it this way: polymorphic over fields, ideally. (Pun!)
17:56:56 <fgarcia> would import Data.Ratio work? then 3 % 2
17:57:29 <monochrom> I am too lazy to import that. I use "3/2 :: Rational". :)
18:03:45 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
18:08:47 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
18:09:15 × caubert quits (~caubert@user/caubert) (Ping timeout: 265 seconds)
18:10:13 × mulk quits (~mulk@pd95140e6.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
18:10:48 mulk joins (~mulk@p5b2dcbcc.dip0.t-ipconnect.de)
18:20:39 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
18:22:37 caubert joins (~caubert@user/caubert)
18:25:41 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
18:26:09 × tromp quits (~textual@2001:1c00:3487:1b00:701a:bd9c:28fd:d022) (Ping timeout: 245 seconds)
18:30:02 tromp joins (~textual@2001:1c00:3487:1b00:49b4:8838:6b5e:2a21)
18:36:36 Pozyomka joins (~pyon@user/pyon)
18:36:53 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
18:39:04 qqq joins (~qqq@185.54.22.240)
18:39:39 × housemate quits (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/)
18:40:22 prdak joins (~Thunderbi@user/prdak)
18:41:34 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
18:44:44 × prdak quits (~Thunderbi@user/prdak) (Ping timeout: 252 seconds)
18:45:39 × ouilemur quits (~jgmerritt@user/ouilemur) (Quit: WeeChat 4.8.1)
18:48:06 × tromp quits (~textual@2001:1c00:3487:1b00:49b4:8838:6b5e:2a21) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:48:25 housemate joins (~housemate@202.7.248.67)
18:52:44 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
18:57:56 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
19:01:50 tromp joins (~textual@2001:1c00:3487:1b00:49b4:8838:6b5e:2a21)
19:08:37 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:10:02 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
19:10:19 × caubert quits (~caubert@user/caubert) (Ping timeout: 250 seconds)
19:15:01 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
19:18:24 × emmanuelux quits (~em@user/emmanuelux) (Ping timeout: 252 seconds)
19:22:28 caubert joins (~caubert@user/caubert)
19:23:13 emmanuelux joins (~em@user/emmanuelux)
19:27:27 target_i joins (~target_i@user/target-i/x-6023099)
19:27:47 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:32:02 × target_i quits (~target_i@user/target-i/x-6023099) (Ping timeout: 252 seconds)
19:32:35 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
19:36:19 × traxex quits (traxex@user/traxex) (Ping timeout: 264 seconds)
19:38:06 target_i joins (~target_i@user/target-i/x-6023099)
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)?
19:43:55 <probie> If I just do something like `V.imapM_ (\ix a -> (a +) <$> V.read y ix) x` will it work?
19:43:56 peterbecich joins (~Thunderbi@71.84.33.135)
19:43:58 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:44:54 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
19:45:19 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
19:45:55 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 264 seconds)
19:46:15 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
19:46:15 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
19:46:39 ChaiTRex joins (~ChaiTRex@user/chaitrex)
19:48:09 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
19:49:05 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
19:49:35 <tomsmeding> probie: if you're talking about LLVM, then the only real answer is to try it :p
19:49:56 <tomsmeding> GHC will not generate SIMD instructions here, but if the work is suitably arranged, LLVM will do it
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_
19:53:27 <tomsmeding> I wonder if the maintainer of the playground could be bribed to make -fllvm work there.
19:55:11 <int-e> subtle
19:56:56 <tomsmeding> seems LLVM 12 will do for 9.0 up to and including 9.8
19:57:35 <tomsmeding> and 13-17 for 9.10 and higher
19:58:30 <tomsmeding> no that's not quite right
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?
20:00:37 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
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.
20:04:33 <probie> now how do I tell GHC where my llvm is...
20:04:52 <tomsmeding> it seems it will just look for `opt` in $PATH
20:05:01 <tomsmeding> though perhaps it looks for llvm-config first
20:05:06 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
20:05:16 <tomsmeding> generally one tells programs of LLVM by ensuring its llvm-config executable is in $PATH
20:05:35 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
20:05:45 chexum joins (~quassel@gateway/tor-sasl/chexum)
20:06:09 infinity0 joins (~infinity0@pwned.gg)
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
20:06:54 <tomsmeding> probie: https://git.tomsmeding.com/pathenv/tree/pathenv ?
20:07:44 <probie> It's good to know I'm not the only one to have that idea
20:09:53 <int-e> There are half a dozen -pgm* flags for the various llvm tools ghc might use. -pgmlo is for `opt`.
20:10:26 <int-e> (And I see no indication that it can interrogate llvm-config)
20:11:04 <tomsmeding> int-e: https://play.haskell.org/saved/yNy86HlS this output suggest it does _something_
20:11:14 <tomsmeding> apart from just calling `opt`, that is
20:12:11 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
20:13:04 <tomsmeding> this seems to be the compatibility matrix https://paste.tomsmeding.com/NJhIVIyh
20:14:11 <int-e> tomsmeding: AFAICS it tries llc -version (or whatever -pgmlc is)
20:14:18 <tomsmeding> lame
20:14:58 <geekosaur> I think you can specify a path in the settings file?
20:15:13 caubert joins (~caubert@user/caubert)
20:15:14 <geekosaur> $(ghc --print-libdir)/settings
20:15:32 <geekosaur> "LLVM opt command" (and similar for llc)
20:16:26 <int-e> tomsmeding: https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/SysTools/Tasks.hs#L341-350 (and beyond)
20:16:55 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:17:44 <tomsmeding> I see
20:17:56 <int-e> (Rather than digging into the history I'll just assume this hasn't changed recently except for bumping versions.)
20:18:07 s3np41 joins (~s3np41@078088254000.unknown.vectranet.pl)
20:18:17 <tomsmeding> do you happen to know how critical those version upper bounds are, in GHC's LLVM support?
20:18:38 <int-e> I don't
20:21:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
20:22:08 <int-e> Hmm. For me, the baked in commands (from the settings file) have a version, e.g. llc-14 for ghc-9.10.3 and llc-19 for ghc-9.12.2. I wonder what the binary distributions put there... ghc --info | grep LLVM will show that info without you having to go looking for the settings file.
20:23:07 <geekosaur> they can be pretty critical but I don't think it's critical for recent versions
20:23:31 <geekosaur> there was a point where `opt` parameters changed and ghc didn't know how tgo call newer versions correctly
20:25:54 <geekosaur> also I mentioned the settings file bvecause I saw a claim in backscroll that the correct llvm version wasn't on their PATH, which means a settings file edit to point to the correct one
20:26:38 ouilemur joins (~jgmerritt@user/ouilemur)
20:28:52 <probie> It's not giving me SIMD instruction :'(
20:29:02 <probie> I wonder if it's the use of `read` instead of `unsafeRead`?
20:29:31 pavonia joins (~user@user/siracusa)
20:32:46 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:33:37 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds)
20:34:44 <tomsmeding> possibly, yes
20:37:41 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
20:38:17 × caubert quits (~caubert@user/caubert) (Ping timeout: 250 seconds)
20:38:35 × Pixi quits (~Pixi@user/pixi) (Quit: Leaving)
20:43:03 <[exa]> probie: btw why not make a small FFI to a relatively portable C?
20:43:41 <[exa]> (man, can we FFI to futhark?)
20:43:46 Pixi joins (~Pixi@user/pixi)
20:44:08 <tomsmeding> [exa]: https://gitlab.com/Gusten_Isfeldt/futhask
20:44:27 <tomsmeding> (never used it)
20:45:36 peterbecich joins (~Thunderbi@71.84.33.135)
20:45:43 <[exa]> ok not bad :)
20:49:55 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:52:13 <probie> [exa]: Because I shouldn't need to
20:53:21 caubert joins (~caubert@user/caubert)
20:54:32 × machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 252 seconds)
20:56:12 <[exa]> probie: I find it better than relying on the compiler accidentaly noticing that I want SIMD (but yeah it's still :( )
20:56:37 <tomsmeding> GHC has SIMD primops, but they only work with LLVM
20:56:50 <tomsmeding> very recently IIRC some of them started working on NCG too
20:56:55 <[exa]> probie: btw try to unroll the loop manually, that might give llvm enough decisive force
20:57:02 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
20:57:03 <probie> I don't think it's LLVM's problem here; GHC is just not generating good code https://paste.tomsmeding.com/8ZYY5Pka
20:58:11 <tomsmeding> why are there so many loads for only two stores? I assume this is different code than you posted originally?
20:58:23 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
20:59:21 <[exa]> that looks like a lot of indirection
20:59:26 <probie> https://paste.tomsmeding.com/NRYKh5Fj
21:00:09 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 260 seconds)
21:00:22 <[exa]> probie: you have unboxed or primitive vectors?
21:01:42 <tomsmeding> probie: if it's easy to paste the optimised LLVM IR, that would make it easier to see what's going on, probably
21:02:03 <int-e> IOVector is boxed.
21:02:09 <tomsmeding> there are a bunch of loop-invariant loads here that I expect llvm to lift out
21:02:22 <EvanR> last I heard ghc didn't have SIMD support
21:02:35 <EvanR> oh, LLVM
21:02:52 <tomsmeding> int-e: every mutable vector variant has its own definition of the "IOVector" type synonym
21:02:59 <[exa]> int-e: afaik you can import the one from the .unboxed.mutable or .primitive.mutable module
21:03:10 <int-e> tomsmeding: gah
21:03:28 <probie> int-e: it's not I omitted the `import qualified Data.Vector.Unboxed.Mutable as V`. Weirdly, I get slightly better llvm if I use `Storable` instead of `Unboxed`
21:03:42 <int-e> Right. I should've known that.
21:03:48 <tomsmeding> in general, Storable is more straightforward
21:03:56 <tomsmeding> but in theory, either should work here
21:04:08 <fgarcia> llvm goes to at least 23 now. it could be the SIMD changes haven't made it down
21:04:25 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 255 seconds)
21:06:12 <[exa]> probie: man, you're introducing a data dependency there, it can't simd
21:06:45 <tomsmeding> [exa]: isn't this code just zipWith (+)
21:06:50 <tomsmeding> oh no
21:06:57 <[exa]> it's writing back to the original vector
21:07:02 <tomsmeding> yeah probie ^
21:07:15 <tomsmeding> lol
21:07:34 caubert joins (~caubert@user/caubert)
21:07:50 <[exa]> probie: try this https://paste.tomsmeding.com/GjpwizwI
21:08:28 <[exa]> (edited right into pastebin so didn't try it but you see the point I guess)
21:08:49 <tomsmeding> with this being Word8 you may even want to unroll 32x
21:09:11 <tomsmeding> or at least 16x to use 128bit SSE4 registers
21:09:20 <[exa]> oh
21:09:27 <[exa]> ok I somehow hoped this is at least floats
21:09:30 <tomsmeding> but 4 should at least get you different assembly
21:09:35 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:09:40 <[exa]> are there SIMD instructions for chars?
21:09:48 <tomsmeding> yes
21:10:02 [exa] learned today
21:10:17 <tomsmeding> https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=epi8
21:10:29 <tomsmeding> _mm_add_epi8 is the one you want here (paddb)
21:11:05 <tomsmeding> or the _mm256 version, or _mm512 if you want to use your juicy AVX512
21:11:39 <tomsmeding> think about that, 64 adds with 1-cycle latency
21:11:56 <[exa]> oh these are the epi8 instructions from the intrinsic guide that I ignored everytime
21:12:10 <tomsmeding> epi is integer stuff
21:12:20 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 256 seconds)
21:12:51 <tomsmeding> and apparently it can even do two of those _mm256_add_epi8 instructions in one cycle, by the CPI of 0.5
21:13:28 <tomsmeding> (yes, the throughput label is misleading; I checked that a div_pd has 4 there and add_pd 0.5, so indeed it's CPI = 1/throughput)
21:13:46 <probie> There isn't really a data dependency though, since memory is never read again after being written
21:13:52 <[exa]> tomsmeding: where do you read that? intel intrinsics guide says 3 per cycle
21:13:56 <probie> oh wait, <expletive>
21:14:04 <tomsmeding> probie: the compiler doesn't know that
21:14:06 <probie> there can be aliasing
21:14:09 <tomsmeding> yes
21:14:20 <[exa]> probie: memory order too strong QQ
21:14:29 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
21:14:33 <tomsmeding> [exa]: oh I mistyped, I meant _mm512_add_epi8
21:14:38 <[exa]> probie: anyway it might be the case that the compiler just ignores it but I'd bet this is the problem number 1
21:14:40 <tomsmeding> the _mm256 and _mm variants indeed have 3
21:14:52 <tomsmeding> this is DEFINITELY not ignored by llvm
21:15:11 <probie> Even gcc only ignores it if you pass -O3 IIRC
21:15:13 <tomsmeding> and I can also assure you that GHC will not tell LLVM that these things do not alias
21:15:23 <tomsmeding> ignoring this is a blatant violation of the semantics
21:15:42 <tomsmeding> I would be surprised if ghc does this at any optimisation level
21:16:00 <tomsmeding> -ffast-math dances circles around IEEE semantics, but memory semantics aren't broken down as far as I know
21:16:32 <tomsmeding> s/ghc/gcc/
21:16:34 <tomsmeding> I can't type any more
21:17:27 <geekosaur> (I typo each of those into the other constantly…)
21:19:28 L29Ah joins (~L29Ah@wikipedia/L29Ah)
21:19:33 <[exa]> tomsmeding: cool I'm going to simd my stupid database string-indexing code :D
21:19:44 <tomsmeding> <3
21:20:25 <[exa]> probie: btw if this fails, try making sure the reads are aligned (no real clue how to help there tho.)
21:21:18 × tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
21:21:42 <probie> [exa]: It did fail, and the reads are absolutely not aligned
21:21:54 <[exa]> :(
21:23:55 <probie> I think if I want to do this in "pure" Haskell, I'm better off ditching vector, and using `MutableByteArray#`s with the explicit SIMD operations from ghc-prim
21:24:30 infinity0 joins (~infinity0@pwned.gg)
21:25:04 <[exa]> probie: there should be some (ugly but working) way to get a pointer to the vector which can be used as the required target type for the primitive op
21:25:32 <tomsmeding> recommend storable vectors for that though, as they have a sensible withForeignPtr function
21:25:55 <tomsmeding> the idea of unboxed vectors is that they are struct-of-arrays transformed, i.e. a vector of (Int, Int) is actually two vectors under the hood
21:25:59 <[exa]> probie: also highly suggest having a look at if repa/massiv can do this and if it can, copy what they did. IIRC these would still count these as "pure" haskell.
21:26:10 <tomsmeding> so there is indirection between the vector you have in hand and the underlying storage
21:26:29 <tomsmeding> storable vectors are just C-style arrays as you expect
21:26:51 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:31:32 <probie> Vector still has alignment issues though, so I'm not inclined to bend over backwards to get it to work
21:31:44 machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net)
21:31:59 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
21:33:48 <[exa]> probie: the alignment isn't a totally huge deal (just adds a bit of a weight on whether llvm later chooses the unaligned load or doesn't even trigger)
21:34:23 <tomsmeding> [exa]: simd instructions do have alignment constraints where normal x86 memory ops don't
21:34:47 <[exa]> loadu doesn't exist for epi8?
21:34:58 <tomsmeding> but yes, I guess that llvm will have to deal with unaligned arrays anyway because it cannot assume any arbitrary pointer is aligned
21:35:07 <tomsmeding> so it should just generate a prologue
21:35:33 <tomsmeding> [exa]: good point, my bad, yes loadu is a thing
21:35:40 <tomsmeding> I'm... not sure what I was thinking
21:36:00 <[exa]> like, ofc llvm is going to brainify that to The Way Better Aligned Load
21:36:01 <int-e> tomsmeding: well, the alignment is already fixed by how you unrolled the loop
21:36:17 <tomsmeding> ah yes, in this case it is
21:36:54 <[exa]> is it? (does the vector start on aligned addr?)
21:37:01 <int-e> And I don't think you can express the promise that these two pointers never alias at the Haskell level.
21:37:11 <tomsmeding> [exa]: remember this is a loop with dependencies so llvm can't unroll
21:37:24 <[exa]> oh yes true
21:38:03 <int-e> and it'll get awkward regardless if the relative alignment of the two pointers isn't 0.
21:38:36 <probie> We need a new GHC extension that introduces the `restrict` keyword (although I can't imagine that being a sane thing to have in the context of non-strict evaluation)
21:39:05 <tomsmeding> it might be possible to devise something in combination with linear types
21:40:12 <int-e> probie: Well, you have mutable data there; even lazy evaluation shouldn't accidentally alias those. (Though for people who remember the early days of bytestring... yes, these things have happened.)
21:40:41 <int-e> It lead to `inlinePerformIO` being renamed :-)
21:40:44 × caubert quits (~caubert@user/caubert) (Ping timeout: 245 seconds)
21:40:50 <int-e> *led
21:40:56 <[exa]> probie: btw really try if repa manages to SIMD, deconstructing a working instance is a MUCH easier way to debug compilers than trying to hit a subtle trick that does it
21:42:43 <tomsmeding> 99% certain they don't built on top of vector and allocate their own primitive arrays
21:43:27 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:48:14 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
21:54:34 caubert joins (~caubert@user/caubert)
21:56:09 × acidjnk quits (~acidjnk@p200300d6e700e5606490ca8182989074.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
21:59:52 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:59:59 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
22:04:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
22:05:52 tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
22:08:42 wickedjargon joins (~user@24.83.46.194)
22:08:50 haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
22:08:50 × haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
22:08:50 haritz joins (~hrtz@user/haritz)
22:10:49 poscat0x04 joins (~poscat@user/poscat)
22:11:29 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:12:19 × poscat quits (~poscat@user/poscat) (Ping timeout: 250 seconds)
22:16:09 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
22:27:11 caubert joins (~caubert@user/caubert)
22:27:20 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:30:55 × housemate quits (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/)
22:32:59 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
22:38:48 housemate joins (~housemate@202.7.248.67)
22:46:09 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:50:02 × oskarw quits (~user@user/oskarw) (Ping timeout: 252 seconds)
22:51:08 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
22:53:36 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
22:56:09 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
23:03:16 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:05:14 elarks joins (~elarks@user/yerrii)
23:08:13 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
23:09:35 × elarks quits (~elarks@user/yerrii) (Client Quit)
23:18:14 × takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 245 seconds)
23:18:38 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
23:19:05 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:23:26 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:23:39 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
23:24:44 × housemate quits (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/)
23:26:27 × juri_ quits (~juri@217-114-215-140.pool.ovpn.com) (Ping timeout: 252 seconds)
23:27:42 housemate joins (~housemate@202.7.248.67)
23:29:38 caubert joins (~caubert@user/caubert)
23:34:50 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:36:10 × tromp quits (~textual@2001:1c00:3487:1b00:49b4:8838:6b5e:2a21) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:37:06 acidjnk joins (~acidjnk@p200300d6e700e53408753edc2ee6991b.dip0.t-ipconnect.de)
23:38:10 × acidjnk quits (~acidjnk@p200300d6e700e53408753edc2ee6991b.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
23:41:37 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
23:51:05 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
23:52:51 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:55:01 ljdarj joins (~Thunderbi@user/ljdarj)
23:57:55 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)

All times are in UTC on 2026-02-14.