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