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