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