Logs on 2024-05-02 (liberachat/#haskell)
| 00:03:05 | × | yin quits (~yin@user/zero) (Ping timeout: 256 seconds) |
| 00:04:50 | → | yin joins (~yin@user/zero) |
| 00:17:00 | → | waldo joins (~waldo@user/waldo) |
| 00:24:14 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 00:26:35 | × | xff0x quits (~xff0x@softbank219059019218.bbtec.net) (Ping timeout: 245 seconds) |
| 00:29:00 | → | k`` joins (~k``@136.54.34.25) |
| 00:29:43 | × | yin quits (~yin@user/zero) (Ping timeout: 255 seconds) |
| 00:38:46 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 00:42:02 | × | waldo quits (~waldo@user/waldo) (Quit: waldo) |
| 00:43:15 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 245 seconds) |
| 00:46:35 | × | lockna quits (~lockna@2a01:4f8:10b:14f1::2) (Ping timeout: 245 seconds) |
| 00:47:27 | → | lockna joins (~lockna@2a01:4f8:10b:14f1::2) |
| 01:03:51 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 272 seconds) |
| 01:10:32 | × | haskellbridge quits (~haskellbr@69.135.3.34) (Remote host closed the connection) |
| 01:12:45 | → | haskellbridge joins (~haskellbr@syn-069-135-003-034.biz.spectrum.com) |
| 01:12:45 | ChanServ | sets mode +v haskellbridge |
| 01:13:38 | × | k`` quits (~k``@136.54.34.25) (Ping timeout: 250 seconds) |
| 01:13:59 | → | causal joins (~eric@50.35.88.207) |
| 01:22:31 | → | Axma88620 joins (~Axman6@user/axman6) |
| 01:22:52 | → | Axma43234 joins (~Axman6@user/axman6) |
| 01:24:36 | × | Axman6 quits (~Axman6@user/axman6) (Ping timeout: 244 seconds) |
| 01:25:07 | × | Axma89310 quits (~Axman6@user/axman6) (Ping timeout: 244 seconds) |
| 01:26:39 | × | otto_s quits (~user@p4ff27c65.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 01:27:52 | → | otto_s joins (~user@p5b04466a.dip0.t-ipconnect.de) |
| 01:38:22 | → | tzh joins (~tzh@c-73-164-206-160.hsd1.or.comcast.net) |
| 01:48:55 | <haskellbridge> | <sm> gitlab search: unusable by me... |
| 01:53:11 | <geekosaur> | or anyone else, from what I've heard |
| 02:03:27 | × | petrichor quits (~znc-user@user/petrichor) (Quit: ZNC 1.8.2 - https://znc.in) |
| 02:03:46 | → | petrichor joins (~znc-user@user/petrichor) |
| 02:09:36 | <monochrom> | tomsmeding: I don't teach existential types. I just teach Haskell 2010; even then maybe only a basic subset. |
| 02:11:21 | <monochrom> | I think I can summarize what I cover as Hindley-Milner plus single-param type classes up to classes of * -> * kinds so I can cover Foldable. |
| 02:14:22 | → | tabemann_ joins (~tabemann@2600:1700:7990:24e0:24f2:d535:ef6d:1b9a) |
| 02:15:34 | → | ell joins (~ellie@user/ellie) |
| 02:15:45 | × | tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Ping timeout: 245 seconds) |
| 02:24:12 | → | madeleine-sydney joins (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) |
| 02:24:16 | → | Axman6 joins (~Axman6@user/axman6) |
| 02:24:29 | × | Axma88620 quits (~Axman6@user/axman6) (Ping timeout: 258 seconds) |
| 02:24:52 | × | Axma43234 quits (~Axman6@user/axman6) (Ping timeout: 258 seconds) |
| 02:24:56 | → | Axma84850 joins (~Axman6@user/axman6) |
| 02:27:01 | × | td_ quits (~td@i53870927.versanet.de) (Ping timeout: 256 seconds) |
| 02:27:26 | <bsima> | is there a way to tell ghc or haddock to error if a function or type isn't documented? |
| 02:28:29 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Quit: WeeChat 4.1.2) |
| 02:28:29 | → | td_ joins (~td@i5387093e.versanet.de) |
| 02:30:46 | → | philopsos joins (~caecilius@user/philopsos) |
| 02:39:18 | × | [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection) |
| 02:42:21 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 03:00:55 | × | joeyadams quits (~joeyadams@2603:6010:5100:2ed:7613:7f5a:3f36:628c) (Quit: Leaving) |
| 03:08:15 | → | bgt32 joins (~keutoi@223.184.79.113) |
| 03:12:10 | <bgt32> | I'm getting a 'Non type-variable argument in the constraint: MArray (STUArray s) a (ST s)' error, but only in older version of haskell ~ 8.10.1. This isn't happening in 9.2.8. Any idea why? |
| 03:14:53 | <monochrom> | haddock reports how many things are undocumented, but I don't know how to make it an error. |
| 03:15:59 | → | rdcdr_ joins (~rdcdr@75-172-82-76.tukw.qwest.net) |
| 03:16:10 | × | rdcdr quits (~rdcdr@user/rdcdr) (Ping timeout: 245 seconds) |
| 03:17:16 | <monochrom> | New GHCs default to implicit {-# language GHC2021 #-} which implies FlexibleContexts allowing those constraints. |
| 03:18:19 | <c_wraith> | bgt32: in addition to monochrom's answer, see https://downloads.haskell.org/ghc/9.8.2/docs/users_guide/exts/flexible_contexts.html |
| 03:18:24 | <bgt32> | monochrom: thank you |
| 03:18:59 | <c_wraith> | bgt32: the GHC2021 thing is a link, which gives a list of all the things on by default now |
| 03:21:50 | <bgt32> | Wow, many changes. I should have suspected something when tuplesections worked without the extension enabled. |
| 03:22:08 | × | off^ quits (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection) |
| 03:22:30 | <monochrom> | :) That's also one of them. |
| 03:25:21 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich) |
| 03:26:01 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 03:39:51 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 268 seconds) |
| 03:40:29 | Pixi` | is now known as Pixi |
| 03:58:01 | → | ddellacosta joins (~ddellacos@ool-44c73d29.dyn.optonline.net) |
| 03:58:53 | → | aforemny joins (~aforemny@2001:9e8:6cd3:1d00:230b:c373:dfe7:68c3) |
| 03:59:10 | → | [Leary] joins (~Leary]@user/Leary/x-0910699) |
| 03:59:56 | × | aforemny_ quits (~aforemny@i59F516D1.versanet.de) (Ping timeout: 260 seconds) |
| 04:01:27 | → | tomku joins (~tomku@user/tomku) |
| 04:02:08 | × | tomku|two quits (~tomku@user/tomku) (Ping timeout: 256 seconds) |
| 04:06:26 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 04:06:57 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 04:16:32 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 04:16:38 | × | Axma84850 quits (~Axman6@user/axman6) (Remote host closed the connection) |
| 04:17:08 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 04:26:10 | × | Katarushisu1 quits (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Ping timeout: 245 seconds) |
| 04:39:19 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 04:44:15 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds) |
| 04:44:44 | → | as__ joins (~as@2800:a4:2c7:9600:4168:6667:410d:d0ba) |
| 04:47:01 | × | tabemann_ quits (~tabemann@2600:1700:7990:24e0:24f2:d535:ef6d:1b9a) (Remote host closed the connection) |
| 04:47:07 | × | as_ quits (~as@2800:a4:2f2:ee00:2a7d:f1f0:f562:40ce) (Ping timeout: 255 seconds) |
| 04:47:19 | → | tabemann_ joins (~tabemann@2600:1700:7990:24e0:1855:3a30:76c0:62ca) |
| 04:58:02 | × | tabemann_ quits (~tabemann@2600:1700:7990:24e0:1855:3a30:76c0:62ca) (Remote host closed the connection) |
| 04:58:19 | → | tabemann_ joins (~tabemann@2600:1700:7990:24e0:f2fd:c0bd:8a82:7af3) |
| 05:07:41 | × | Pixi quits (~Pixi@user/pixi) (Ping timeout: 272 seconds) |
| 05:09:53 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds) |
| 05:11:58 | → | michalz joins (~michalz@185.246.207.205) |
| 05:12:36 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 05:13:42 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 05:14:07 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 05:16:53 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 05:17:31 | × | tabemann_ quits (~tabemann@2600:1700:7990:24e0:f2fd:c0bd:8a82:7af3) (Remote host closed the connection) |
| 05:17:34 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 05:17:43 | → | tabemann_ joins (~tabemann@2600:1700:7990:24e0:ee7e:48a3:1361:6ba6) |
| 05:18:36 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 05:21:30 | → | img joins (~img@user/img) |
| 05:28:03 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 05:29:21 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 05:30:01 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 05:33:56 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 05:34:23 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 05:34:54 | → | rvalue joins (~rvalue@user/rvalue) |
| 05:37:17 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 05:37:51 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 05:38:26 | → | euleritian joins (~euleritia@dynamic-176-001-008-145.176.1.pool.telefonica.de) |
| 05:50:57 | × | talismanick quits (~user@2601:644:937c:ed10:536b:7670:fffc:851a) (Read error: Connection reset by peer) |
| 05:56:01 | → | bilegeek joins (~bilegeek@2600:1008:b09c:cc45:af3c:c61e:6890:be8f) |
| 06:05:00 | → | acidjnk joins (~acidjnk@p200300d6e714dc31f1fc423ebb03a89f.dip0.t-ipconnect.de) |
| 06:12:45 | → | billchenchina joins (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
| 06:17:33 | × | billchenchina quits (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection) |
| 06:17:35 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:18:14 | → | Pixi joins (~Pixi@user/pixi) |
| 06:28:56 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 06:42:09 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 06:45:25 | × | mikess quits (~mikess@user/mikess) (Ping timeout: 256 seconds) |
| 06:51:20 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 06:52:51 | × | euleritian quits (~euleritia@dynamic-176-001-008-145.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
| 06:53:14 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 06:54:28 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 06:55:21 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:02:06 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 07:02:19 | → | euleritian joins (~euleritia@dynamic-176-001-008-145.176.1.pool.telefonica.de) |
| 07:06:06 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:06:16 | × | madeleine-sydney quits (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Konversation terminated!) |
| 07:11:42 | × | euleritian quits (~euleritia@dynamic-176-001-008-145.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:11:59 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:16:01 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds) |
| 07:16:34 | → | euleritian joins (~euleritia@dynamic-176-001-008-145.176.1.pool.telefonica.de) |
| 07:21:07 | → | oo_miguel joins (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) |
| 07:21:32 | → | danse-nr3 joins (~danse-nr3@151.43.230.153) |
| 07:22:28 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds) |
| 07:22:42 | × | euleritian quits (~euleritia@dynamic-176-001-008-145.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:22:59 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:24:09 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 07:26:15 | <tomsmeding> | monochrom: sounds good! How often do you think "if only I had a compiler that supported just Haskell2010 and gave error messages that don't jump outside that fragment"? |
| 07:26:49 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 07:27:53 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 07:31:46 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 07:32:40 | → | euleritian joins (~euleritia@dynamic-176-001-008-145.176.1.pool.telefonica.de) |
| 07:33:19 | → | RedFlamingos joins (~RedFlamin@user/RedFlamingos) |
| 07:35:13 | × | euleritian quits (~euleritia@dynamic-176-001-008-145.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:35:14 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 07:35:30 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:42:32 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 256 seconds) |
| 07:43:11 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 07:44:00 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 07:44:14 | × | philopsos quits (~caecilius@user/philopsos) (Ping timeout: 256 seconds) |
| 07:46:39 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 07:46:42 | → | rosco joins (~rosco@yp-146-6.tm.net.my) |
| 07:47:02 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 07:47:27 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 07:48:26 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:49:19 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 07:49:41 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 07:54:55 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:56:24 | → | xff0x joins (~xff0x@softbank219059019218.bbtec.net) |
| 08:03:13 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 08:04:29 | × | xff0x quits (~xff0x@softbank219059019218.bbtec.net) (Ping timeout: 240 seconds) |
| 08:04:36 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 08:04:39 | → | sprout joins (~quassel@2a02-a448-3a80-0-5c1b-ee26-e387-5025.fixed6.kpn.net) |
| 08:06:37 | → | xff0x joins (~xff0x@softbank219059019218.bbtec.net) |
| 08:09:55 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 245 seconds) |
| 08:13:14 | → | gmg joins (~user@user/gehmehgeh) |
| 08:15:08 | → | raoul joins (~raoul@95.179.203.88) |
| 08:15:17 | × | bilegeek quits (~bilegeek@2600:1008:b09c:cc45:af3c:c61e:6890:be8f) (Quit: Leaving) |
| 08:21:03 | × | xff0x quits (~xff0x@softbank219059019218.bbtec.net) (Ping timeout: 268 seconds) |
| 08:21:04 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 08:22:17 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 08:22:44 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 08:33:11 | → | akegalj joins (~akegalj@180-51.dsl.iskon.hr) |
| 08:35:52 | × | rosco quits (~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal) |
| 08:41:23 | × | danse-nr3 quits (~danse-nr3@151.43.230.153) (Ping timeout: 264 seconds) |
| 08:41:34 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 255 seconds) |
| 08:41:48 | → | TheCoffeMaker_ joins (~TheCoffeM@200.114.213.75) |
| 08:44:14 | → | danse-nr3 joins (~danse-nr3@151.43.230.153) |
| 08:44:24 | × | tzh quits (~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz) |
| 08:49:30 | × | demon-cat quits (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) (Ping timeout: 245 seconds) |
| 08:52:49 | × | TheCoffeMaker_ quits (~TheCoffeM@200.114.213.75) (Ping timeout: 268 seconds) |
| 08:55:32 | → | chele joins (~chele@user/chele) |
| 09:00:27 | × | TMA quits (tma@twin.jikos.cz) (Ping timeout: 255 seconds) |
| 09:00:41 | → | TMA joins (tma@twin.jikos.cz) |
| 09:00:53 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 09:02:38 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 09:03:42 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 09:04:49 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 09:08:21 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 09:15:38 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:16:50 | → | demon-cat joins (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) |
| 09:21:10 | × | demon-cat quits (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) (Ping timeout: 245 seconds) |
| 09:24:34 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds) |
| 09:24:53 | × | welterde quits (welterde@thinkbase.srv.welterde.de) (Ping timeout: 268 seconds) |
| 09:36:25 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 09:36:55 | → | welterde joins (welterde@thinkbase.srv.welterde.de) |
| 09:39:12 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 09:39:33 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 09:44:25 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:47:08 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 260 seconds) |
| 09:50:53 | → | agent314 joins (~quassel@104.193.135.218) |
| 09:50:53 | → | zetef joins (~quassel@2a02:2f00:5202:1200:2128:605:71c4:66a4) |
| 09:53:04 | → | mikess joins (~mikess@user/mikess) |
| 09:54:01 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 09:57:26 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer) |
| 09:58:03 | → | demon-cat joins (~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) |
| 10:06:12 | → | destituion joins (~destituio@85.221.111.174) |
| 10:06:23 | → | __monty__ joins (~toonn@user/toonn) |
| 10:08:54 | × | zetef quits (~quassel@2a02:2f00:5202:1200:2128:605:71c4:66a4) (Remote host closed the connection) |
| 10:13:18 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 10:13:40 | × | mwnaylor quits (~user@2601:5cf:837e:2bb0::9c1d) (Ping timeout: 245 seconds) |
| 10:15:17 | → | euleritian joins (~euleritia@dynamic-176-001-009-078.176.1.pool.telefonica.de) |
| 10:23:13 | × | euleritian quits (~euleritia@dynamic-176-001-009-078.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
| 10:23:32 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 10:24:15 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 10:29:01 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds) |
| 10:31:06 | × | bgt32 quits (~keutoi@223.184.79.113) (Ping timeout: 252 seconds) |
| 10:35:37 | × | danse-nr3 quits (~danse-nr3@151.43.230.153) (Read error: Connection reset by peer) |
| 10:36:43 | × | TMA quits (tma@twin.jikos.cz) (Ping timeout: 268 seconds) |
| 10:36:59 | → | danse-nr3 joins (~danse-nr3@151.19.252.164) |
| 10:37:04 | → | TMA joins (tma@twin.jikos.cz) |
| 10:43:28 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 10:44:18 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 10:46:18 | × | tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 10:48:17 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 10:50:20 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 10:50:23 | × | danse-nr3 quits (~danse-nr3@151.19.252.164) (Ping timeout: 264 seconds) |
| 10:53:11 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 10:55:06 | → | euleritian joins (~euleritia@dynamic-176-001-009-078.176.1.pool.telefonica.de) |
| 10:57:54 | × | euleritian quits (~euleritia@dynamic-176-001-009-078.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
| 10:59:43 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 11:00:15 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds) |
| 11:02:55 | → | Square3 joins (~Square4@user/square) |
| 11:07:44 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 11:08:38 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 11:09:02 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 11:15:36 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer) |
| 11:15:56 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 11:19:00 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:25:00 | × | Rodney_ quits (~Rodney@176.254.244.83) (Ping timeout: 252 seconds) |
| 11:29:15 | → | danse-nr3 joins (~danse-nr3@151.35.226.248) |
| 11:29:35 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 272 seconds) |
| 11:31:36 | × | kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 268 seconds) |
| 11:33:52 | → | xff0x joins (~xff0x@softbank219059019218.bbtec.net) |
| 11:34:21 | × | danse-nr3 quits (~danse-nr3@151.35.226.248) (Ping timeout: 252 seconds) |
| 11:34:51 | → | k`` joins (~k``@136.54.34.25) |
| 11:35:20 | → | danse-nr3 joins (~danse-nr3@151.35.226.248) |
| 11:39:05 | × | jinsun quits (~jinsun@user/jinsun) (Ping timeout: 245 seconds) |
| 11:42:02 | × | xff0x quits (~xff0x@softbank219059019218.bbtec.net) (Ping timeout: 252 seconds) |
| 11:44:07 | → | xff0x joins (~xff0x@softbank219059019218.bbtec.net) |
| 11:44:45 | × | thaliaa quits (uid486183@id-486183.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 11:44:52 | → | jinsun joins (~jinsun@user/jinsun) |
| 11:45:35 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 11:50:49 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 11:52:39 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 11:53:17 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 11:59:49 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:59:55 | → | oneeyedalien joins (~oneeyedal@user/oneeyedalien) |
| 12:03:47 | → | Guest95 joins (~Guest95@217.7.130.9) |
| 12:03:50 | → | kritzefitz joins (~kritzefit@debian/kritzefitz) |
| 12:04:48 | × | xff0x quits (~xff0x@softbank219059019218.bbtec.net) (Ping timeout: 260 seconds) |
| 12:05:31 | × | ddellacosta quits (~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 12:06:10 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds) |
| 12:12:37 | → | oneeyedalien_ joins (~oneeyedal@user/oneeyedalien) |
| 12:13:47 | → | euleritian joins (~euleritia@dynamic-176-001-009-078.176.1.pool.telefonica.de) |
| 12:15:06 | × | oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Ping timeout: 256 seconds) |
| 12:19:47 | × | connrs quits (~connrs@user/connrs) (Ping timeout: 264 seconds) |
| 12:23:50 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds) |
| 12:25:53 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 12:28:58 | → | connrs joins (~connrs@user/connrs) |
| 12:32:42 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 12:36:40 | × | barak quits (~barak@2a0d:6fc2:68c1:7200:3cf2:a87d:a02b:3e21) (Ping timeout: 256 seconds) |
| 12:42:40 | × | oneeyedalien_ quits (~oneeyedal@user/oneeyedalien) (Quit: Leaving) |
| 12:45:56 | → | hseg joins (~gesh@77.137.75.224) |
| 12:48:05 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 256 seconds) |
| 12:54:03 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 12:54:46 | × | Guest95 quits (~Guest95@217.7.130.9) (Ping timeout: 250 seconds) |
| 13:00:09 | × | mikess quits (~mikess@user/mikess) (Ping timeout: 252 seconds) |
| 13:02:07 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 13:05:29 | → | ystael joins (~ystael@user/ystael) |
| 13:06:12 | × | danse-nr3 quits (~danse-nr3@151.35.226.248) (Ping timeout: 252 seconds) |
| 13:13:14 | → | danse-nr3 joins (~danse-nr3@151.35.226.248) |
| 13:15:36 | × | danse-nr3 quits (~danse-nr3@151.35.226.248) (Remote host closed the connection) |
| 13:15:58 | → | danse-nr3 joins (~danse-nr3@151.35.226.248) |
| 13:18:13 | → | Rodney_ joins (~Rodney@176.254.244.83) |
| 13:19:39 | → | rosco joins (~rosco@yp-146-6.tm.net.my) |
| 13:19:42 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 13:21:21 | → | barak joins (~barak@2a0d:6fc2:68c1:7200:3cf2:a87d:a02b:3e21) |
| 13:25:22 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 13:26:49 | × | euleritian quits (~euleritia@dynamic-176-001-009-078.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
| 13:28:39 | → | euleritian joins (~euleritia@77.22.252.56) |
| 13:29:45 | → | mikess joins (~mikess@user/mikess) |
| 13:33:59 | × | mikess quits (~mikess@user/mikess) (Ping timeout: 256 seconds) |
| 13:40:05 | × | kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 256 seconds) |
| 13:43:21 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 13:44:31 | × | rosco quits (~rosco@yp-146-6.tm.net.my) (Ping timeout: 246 seconds) |
| 13:45:27 | → | rosco joins (~rosco@yp-146-6.tm.net.my) |
| 13:47:36 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:54:22 | <haskellbridge> | <magic_rb> tomsmeding: you dont happen to be at the utrecht university campus |
| 13:55:01 | <haskellbridge> | <magic_rb> *science park ig |
| 13:59:29 | → | yin joins (~yin@user/zero) |
| 14:02:20 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 14:03:25 | × | danse-nr3 quits (~danse-nr3@151.35.226.248) (Ping timeout: 246 seconds) |
| 14:12:16 | → | danse-nr3 joins (~danse-nr3@151.35.226.248) |
| 14:15:37 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 14:22:04 | × | haritz quits (~hrtz@user/haritz) (Remote host closed the connection) |
| 14:23:00 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 14:24:01 | → | haritz joins (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) |
| 14:25:51 | × | haritz quits (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host) |
| 14:25:51 | → | haritz joins (~hrtz@user/haritz) |
| 14:27:49 | × | destituion quits (~destituio@85.221.111.174) (Ping timeout: 256 seconds) |
| 14:32:13 | × | as__ quits (~as@2800:a4:2c7:9600:4168:6667:410d:d0ba) (Quit: Leaving) |
| 14:36:12 | <tomsmeding> | magic_rb: I do |
| 14:37:11 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Quit: WeeChat 4.1.2) |
| 14:37:40 | <tomsmeding> | But I kind of have a paper deadline in like 5 days so :p |
| 14:40:14 | <haskellbridge> | <magic_rb> We already dipped sadly |
| 14:41:52 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 14:43:09 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:51:02 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Quit: WeeChat 4.1.2) |
| 14:52:15 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 14:59:55 | × | haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb2 - https://znc.in) |
| 15:01:55 | → | haritz joins (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) |
| 15:02:14 | × | ocra8 quits (ocra8@user/ocra8) (Quit: WeeChat 4.2.2) |
| 15:03:48 | × | haritz quits (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host) |
| 15:03:48 | → | haritz joins (~hrtz@user/haritz) |
| 15:08:07 | × | EvanR quits (~EvanR@user/evanr) (Remote host closed the connection) |
| 15:08:26 | → | EvanR joins (~EvanR@user/evanr) |
| 15:10:59 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:11:06 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.1) |
| 15:14:09 | × | danse-nr3 quits (~danse-nr3@151.35.226.248) (Ping timeout: 256 seconds) |
| 15:15:01 | × | rosco quits (~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal) |
| 15:17:22 | → | danse-nr3 joins (~danse-nr3@151.35.226.248) |
| 15:20:41 | → | ocra8 joins (ocra8@user/ocra8) |
| 15:21:05 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:24:08 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:29:32 | × | qqq quits (~qqq@92.43.167.61) (Remote host closed the connection) |
| 15:31:31 | × | danse-nr3 quits (~danse-nr3@151.35.226.248) (Ping timeout: 272 seconds) |
| 15:36:05 | → | tzh joins (~tzh@c-73-164-206-160.hsd1.or.comcast.net) |
| 15:38:37 | → | kritzefitz joins (~kritzefit@debian/kritzefitz) |
| 15:39:38 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
| 15:45:08 | <hseg> | Trying to compile my code with -pie unsuccessfully -- no matter what combination of flags I pass it, ld complains and advises passing -fPIE. Advice? |
| 15:45:46 | <tomsmeding> | hseg: trying to compile haskell code or C code? |
| 15:45:49 | <hseg> | haskell |
| 15:46:03 | <tomsmeding> | what special linking are you doing |
| 15:46:05 | <tomsmeding> | > |
| 15:46:07 | <tomsmeding> | * ? |
| 15:46:34 | <tomsmeding> | if you don't have any C sources in your project and are just 'cabal build'ing, and you get an error from ld, something fishy is going on |
| 15:46:40 | <hseg> | actually, there might be C components in deps |
| 15:46:54 | <tomsmeding> | can you post the full output of your build command? |
| 15:48:34 | <hseg> | https://0x0.st/XXen.txt |
| 15:49:32 | <hseg> | I've tried with/without --enable-shared, with/without -fPIE, nothing works |
| 15:51:01 | <tomsmeding> | hseg: have you tried without that entire second line of the configure command? (Make sure you're deleting any config files created by the configure command) |
| 15:51:04 | <tomsmeding> | er |
| 15:51:09 | <tomsmeding> | without the third line of that command |
| 15:51:33 | <hseg> | without the third line things build perfectly |
| 15:51:39 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 15:51:47 | <tomsmeding> | (side note, `cabal configure` is unnecessary here, you can just pass those flags to `cabal build` -- and why are you doing `v2-build`? `build` should work fine with non-ancient cabal) |
| 15:51:55 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 246 seconds) |
| 15:52:00 | × | yin quits (~yin@user/zero) (Ping timeout: 245 seconds) |
| 15:52:16 | <tomsmeding> | is that a solution then? |
| 15:52:17 | <hseg> | ah, that's probably cargo-culted from an old build script |
| 15:52:46 | <tomsmeding> | the -O is also redundant (it's default), and the --jobs is also default |
| 15:52:52 | <hseg> | also, I'm configuring since in a later step I also run tests and install it into a directory to be zipped up into a package |
| 15:53:01 | <tomsmeding> | `cabal build --prefix=/usr --docdir=... --enable-tests` should do the job |
| 15:53:12 | <hseg> | (presumably, those need the configuration to carry over?) |
| 15:53:13 | <tomsmeding> | I see |
| 15:53:16 | <tomsmeding> | yeah |
| 15:53:19 | × | gmg quits (~user@user/gehmehgeh) (Killed (NickServ (Forcing logout gmg -> gehmehgeh))) |
| 15:53:20 | gehmehgeh | is now known as gmg |
| 15:53:20 | <tomsmeding> | still, those three flags should be enough |
| 15:53:50 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 260 seconds) |
| 15:55:08 | <hseg> | except the resulting code doesn't have relro or pie enabled (building to double check) |
| 15:55:14 | <tomsmeding> | is that a problem? |
| 15:55:20 | <tomsmeding> | it's an executable, right? |
| 15:55:32 | <hseg> | yeah, it's executable |
| 15:56:06 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 15:56:06 | <tomsmeding> | as far as I understand, those flags are typically relevant if you want to build libraries dynamically |
| 15:56:28 | <tomsmeding> | but haskell libraries are usually linked statically into haskell executables |
| 15:56:40 | <hseg> | ah, OK. Was worried since the packaging system was yelling at me |
| 15:56:49 | <hseg> | https://wiki.archlinux.org/title/Arch_package_guidelines/Security is the relevant policy |
| 15:56:52 | <tomsmeding> | with sufficient magic you can make that go dynamically too, but there is typically no good reason for that |
| 15:56:57 | <tomsmeding> | that is pointless for haskell |
| 15:57:22 | <tomsmeding> | the usual security reason for dynamic libraries (disclaimer: I haven't read that specific page) is that you can update dynamic libraries without updating the executable |
| 15:57:32 | <tomsmeding> | hence allowing one to distribute security updates without having to rebuild the world |
| 15:57:46 | <tomsmeding> | but GHC doesn't have a stable ABI so that doesn't work for haskell, you have to rebuild dependents anyway |
| 15:57:46 | <hseg> | right, which given ghc's cross-module optimizations, is irrelevant for ghc haskell |
| 15:57:49 | <tomsmeding> | so you might as well static link |
| 15:57:58 | <hseg> | sniped |
| 15:58:13 | <tomsmeding> | optimisations too, but that's mostly irrelevant to the point -- even without optimisations it would be pointless |
| 15:58:20 | <tomsmeding> | the only reason would be to save a bit of disk space |
| 15:58:46 | <tomsmeding> | but in the haskell community that's a considered a meager win versus the significant increased hassle of dynamic linking |
| 15:58:49 | <tomsmeding> | (for haskell) |
| 15:58:53 | danso_o | is now known as danso |
| 15:58:54 | <hseg> | oh? I thought the ABI instability was caused by the libraries getting infected with the build plans? |
| 15:58:59 | <tomsmeding> | note that system libs are still linked dynamically |
| 15:59:05 | <tomsmeding> | e.g. libc, zlib, gmp, etc |
| 15:59:12 | <tomsmeding> | yeah also |
| 15:59:28 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 15:59:49 | <tomsmeding> | but if you recompile a new version of a library, even if the haskell-level interface is compatible, the binary interface is probably not |
| 15:59:56 | <tomsmeding> | GHC makes no guarantees there |
| 16:00:05 | <tomsmeding> | so you have to rebuild dependent libraries and executables anyway |
| 16:00:26 | <tomsmeding> | (this is different from the C world, where C-level compatibility implies ABI-level compatibility if you have the same compiler) |
| 16:00:35 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 16:00:56 | <hseg> | hrm. What causes that instability? |
| 16:01:07 | <tomsmeding> | just that there's no effort at stability |
| 16:01:19 | <tomsmeding> | the reason for which is, indeed, cross-module optimisations |
| 16:01:54 | <tomsmeding> | so indirectly it's because of optimisations, but the direct cause is lack of ABI stability |
| 16:02:01 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 16:02:27 | <hseg> | ah -- because a haskell-compatible library edit might expose new optimizations, which might change the effective ABI? |
| 16:02:38 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 16:02:39 | <tomsmeding> | yep |
| 16:02:52 | <hseg> | eg you'd get a function dropped since it gets inlined everywhere? |
| 16:02:52 | → | califax joins (~califax@user/califx) |
| 16:03:12 | <tomsmeding> | more that the types of the arguments might change on the assembly level |
| 16:03:14 | <tomsmeding> | names too |
| 16:03:25 | <hseg> | oh, because of specialization? |
| 16:03:39 | <tomsmeding> | the haskell interface file (.hi) produced by GHC as a side effect of compilation describes where the code is and what it looks like in the object file |
| 16:03:45 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:03:55 | <tomsmeding> | e.g. specialisation, but also worker-wrapper transformation |
| 16:04:28 | <tomsmeding> | (if you write `foo :: Int -> Int`, that converts into `foo :: Int -> Int ; foo (I# i) = I# (foo$w i) where foo$w :: Int# -> Int#`) |
| 16:04:38 | <hseg> | right, and that transformation can change intermediate types even if the worker's type doesn't |
| 16:04:44 | <tomsmeding> | where the outer foo just does wrapping in data constructors and the inner foo$w works on unboxed values |
| 16:04:55 | <tomsmeding> | the outer foo doesn't have any code generated because it is intended to be inlined everywhere |
| 16:05:15 | <tomsmeding> | the type of foo$w is dependent on the implementation of foo, unlike the type of foo itself which is independent on foo's implementation |
| 16:05:21 | <hseg> | ohhh and so everyone will be calling the worker, whose type can change between recompilations? |
| 16:05:24 | <tomsmeding> | yes |
| 16:05:40 | <hseg> | ah yeah that would definitely be a problem |
| 16:06:06 | <hseg> | and it's fundamental enough I can't even picture what an ABI-stable GHC is anymore |
| 16:06:11 | <tomsmeding> | :) |
| 16:06:20 | <tomsmeding> | I mean, it wouldn't be that hard |
| 16:06:49 | <tomsmeding> | you'd have to define some standard calling convention, and use that to define additional wrapper functions that _are_ materialised in the object files, and just unused whenever GHC can see the interface file |
| 16:07:03 | <tomsmeding> | then you'd have to convince GHC to use those wrappers instead of the workers directly |
| 16:07:17 | <tomsmeding> | conceptually this isn't very difficult, but it would be a lot of engineering |
| 16:07:23 | <hseg> | but wouldn't that lose optimization opportunities? |
| 16:07:25 | <tomsmeding> | yes |
| 16:07:40 | <hseg> | right, because now the workers will be opaque |
| 16:07:45 | <tomsmeding> | indeed |
| 16:07:54 | <tomsmeding> | worker-wrapper is one thing I know of where this plays a role |
| 16:08:07 | <tomsmeding> | there may well me more reasons for ABI instability that I'm not aware of -- I'm not a ghc hacker |
| 16:08:22 | <hseg> | fair enough |
| 16:08:31 | <tomsmeding> | but compiling a standardised wrapper function would theoretically be possible always |
| 16:08:36 | <EvanR> | IANAGH |
| 16:08:37 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 16:08:52 | <tomsmeding> | question is whether it would be worth the effort and the potential loss of some performance (to be measured) |
| 16:09:13 | <hseg> | just realized -- this has nothing to do with reproducible builds, that is something GHC *could* theoretically guarantee (and that is something that's more desireable to me) |
| 16:09:24 | <tomsmeding> | indeed |
| 16:09:31 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 16:09:50 | <tomsmeding> | same code with same compiler and same flags could, in principle, produce the same object code |
| 16:10:14 | <tomsmeding> | it probably doesn't for the standard reasons why builds are not reproducible, timestamps, paths etc |
| 16:10:21 | <hseg> | right |
| 16:11:23 | <tomsmeding> | EvanR: makes me think of this guy's name https://hackage.haskell.org/user/IanLynagh |
| 16:11:32 | <tomsmeding> | (random page with the name on it) |
| 16:12:06 | <hseg> | wait, isn't *PIC* for dynamic libraries, but *PIE* for any executable? |
| 16:12:20 | <hseg> | after all, it enables ASLR |
| 16:12:30 | <tomsmeding> | I guess? I don't know too much about this |
| 16:12:41 | <EvanR> | randomly clicking utf8-string on that page makes me think there should be a note about how Text is utf8 now |
| 16:12:48 | <tomsmeding> | haskell executables do link dynamically against C libraries though |
| 16:13:08 | <hseg> | right, but that means that even statically-linked haskell should benefit from -pie |
| 16:13:22 | <hseg> | (and relro, but that's a separate thing) |
| 16:13:54 | <tomsmeding> | isn't an executable already PIE if it's dynamically linking against stuff? |
| 16:14:26 | → | califax joins (~califax@user/califx) |
| 16:14:42 | <tomsmeding> | about worker-wrapper, by the way: here https://play.haskell.org/saved/yjnPTDnN if you click on "Core" you see 'foo' at the bottom with annotations that say that it can be inlined; the NOINLINE is on M.$wfoo right above |
| 16:14:51 | <tomsmeding> | despite the NOINLINE on foo in the source |
| 16:14:54 | <hseg> | nope -- PIC is for libraries, PIE is for executables AFAIK |
| 16:15:49 | <tomsmeding> | debian has given up on that for haskell apparently https://wiki.debian.org/StaticLinking#Haskell |
| 16:16:54 | <hseg> | on dynamic linking, yes |
| 16:17:03 | <hseg> | have they given up on ASLR for haskell? |
| 16:17:50 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 245 seconds) |
| 16:19:07 | <hseg> | in any case, that does put pie and relro back on the table for me |
| 16:19:15 | → | yin joins (~yin@user/zero) |
| 16:19:19 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:23:01 | <tomsmeding> | hseg: is 'ELF 64-bit LSB pie executable' in file(1) output what you're looking for? |
| 16:23:11 | <tomsmeding> | try cabal configure --enable-shared --ghc-options='-pie -dynamic' |
| 16:23:35 | <tomsmeding> | don't even need the --enable-shared |
| 16:23:50 | <hseg> | testing... |
| 16:24:29 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
| 16:24:31 | <int-e> | s/--enable-shared/-fPIE/ I think (different from -pie, you need that for linking) |
| 16:24:54 | <hseg> | tried --ghc-options='-pie -fPIE', didn't work |
| 16:25:01 | <tomsmeding> | I can compile an executable that gives the aforementioned string in file(1) output with just `-pie -dynamic`, nothing else |
| 16:25:14 | <tomsmeding> | I added a non-boot dependency to be sure that that works too, in principle |
| 16:25:15 | → | euleritian joins (~euleritia@dynamic-176-001-008-240.176.1.pool.telefonica.de) |
| 16:27:17 | <int-e> | And the trouble you'll run into is that the base libraries won't be compiled with the requisite -fPIE flag. |
| 16:27:17 | × | euleritian quits (~euleritia@dynamic-176-001-008-240.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:27:41 | <hseg> | https://0x0.st/XX23.txt |
| 16:28:30 | × | noumenon quits (~noumenon@113.51-175-156.customer.lyse.net) (Read error: Connection reset by peer) |
| 16:28:43 | → | euleritian joins (~euleritia@dynamic-176-001-008-240.176.1.pool.telefonica.de) |
| 16:29:40 | <int-e> | That's when trying to link statically; with -dynamic -pie I get a PIE executable that's dynamically linked. (Just a simple hello world, no `cabal` involved) |
| 16:29:56 | <tomsmeding> | I see |
| 16:30:19 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 16:30:31 | tomsmeding | gives up |
| 16:30:34 | <hseg> | I'm confused -- why is it linking statically? |
| 16:30:51 | <tomsmeding> | int-e was referring to the -fPIE note |
| 16:31:06 | <hseg> | ah |
| 16:31:14 | <int-e> | hseg: I'm on my own tangent which may or may not intersect with yours, sorry. |
| 16:31:55 | <tomsmeding> | but yeah sorry, I thought I knew enough to help but I don't |
| 16:31:59 | <int-e> | The reason why Haskell libraries are generally linked statically is that there's no ABI compatibility between recompiled versions of the same library. |
| 16:32:10 | <tomsmeding> | we've gone over that :) |
| 16:32:19 | <int-e> | <s>Ask me about Arch</s> |
| 16:32:24 | <tomsmeding> | hseg's question now is "even if I link statically, can I at least get the security benefits of PIE" |
| 16:32:48 | <tomsmeding> | the answer seems to be, nothing is set up for that so you're on your own? |
| 16:33:18 | <hseg> | int-e: indeed, which is why I've been building all my haskell programs statically on Arch, sidestepping their entire haskell ecosystem |
| 16:33:24 | <int-e> | But I imagine you can still build GHC such that it builds the base libraries with -fPIE. So that's the tangent I'm on right now... but it will take a while to try. |
| 16:34:16 | <tomsmeding> | hseg: that's what everyone here does, ignore anything haskell-related in the arch package repository and just use cabal/stack/whatever |
| 16:34:19 | <tomsmeding> | "cabal install cabal-fmt" |
| 16:35:45 | × | hseg quits (~gesh@77.137.75.224) (Read error: Connection reset by peer) |
| 16:35:59 | <tomsmeding> | bye :p |
| 16:36:06 | → | hseg joins (~gesh@77.137.75.224) |
| 16:36:16 | <hseg> | Apologies, computer crashed |
| 16:36:21 | <tomsmeding> | O.o |
| 16:36:35 | <tomsmeding> | logs link in topic if necessary |
| 16:38:17 | <hseg> | just missed your last three messages |
| 16:38:45 | <hseg> | yeah, so I integrate my haskell-related stuff *slightly* in arch so pacman can track the files |
| 16:38:50 | <hseg> | but not for much else |
| 16:39:02 | <hseg> | (eg am depending on cabal/stack for dependency resolution) |
| 16:39:08 | <tomsmeding> | right |
| 16:39:31 | <tomsmeding> | unless you want to either make your life very difficult, or do the same and also evangelise in the haskell community, I'd recommend skipping PIE :p |
| 16:39:41 | <tomsmeding> | I concede there is something to be won here |
| 16:41:40 | → | califax joins (~califax@user/califx) |
| 16:43:11 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 16:46:42 | → | philopsos joins (~caecilius@user/philopsos) |
| 16:46:53 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 16:47:25 | → | califax joins (~califax@user/califx) |
| 16:50:23 | → | euphores joins (~SASL_euph@user/euphores) |
| 16:51:19 | <int-e> | hseg: I remember using Arch's ghc to build my own, then uninstalling the Arch one. So it was good enough for bootstrapping. |
| 16:52:20 | <hseg> | Right. I'm testing using a statically linked cabal-install and a ghcup-versioned ghc |
| 16:53:42 | × | jcarpenter2 quits (~lol@2603:3016:1e01:b940:e453:9e02:8346:816a) (Read error: Connection reset by peer) |
| 16:53:50 | <hseg> | hrm. enabling relro (with --ld-options='-Wl,-z,relro,-z,now') still complains RELRO is only partially enabled |
| 16:53:55 | <hseg> | but at least it builds |
| 16:54:19 | <hseg> | given that that's no different from the previous behaviour, I'm tempted to drop it |
| 16:54:28 | <hseg> | pie is still a puzzle though |
| 16:56:40 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:04:27 | → | pavonia joins (~user@user/siracusa) |
| 17:05:24 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 17:08:05 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:08:19 | <hseg> | giving up and opening this up to comments from the users of the package |
| 17:08:41 | <hseg> | if they're concerned, let them share the burden of finding a workable build |
| 17:19:42 | → | jamesmartinez joins (uid6451@id-6451.helmsley.irccloud.com) |
| 17:37:59 | <int-e> | hseg: Well, this worked: https://paste.tomsmeding.com/cbI4u3Qk |
| 17:39:04 | <hseg> | hrm, testing |
| 17:39:13 | <int-e> | hseg: note that I rebuilt ghc for this |
| 17:39:46 | <int-e> | (with the settings at the end of that paste) |
| 17:40:11 | × | euleritian quits (~euleritia@dynamic-176-001-008-240.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
| 17:40:24 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds) |
| 17:40:25 | <int-e> | I'm not sure why I needed -fPIC when compiling the final program, and not -fPIE. |
| 17:40:28 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 17:40:49 | <hseg> | no dice |
| 17:41:07 | <hseg> | at least, not with cabal --ghc-options=-pie --ghc-options=-fPIC |
| 17:41:31 | <hseg> | ah, wait |
| 17:41:33 | <hseg> | one moment |
| 17:43:57 | × | hseg quits (~gesh@77.137.75.224) (Read error: Connection reset by peer) |
| 17:44:35 | → | hseg joins (~gesh@77.137.75.224) |
| 17:44:41 | <hseg> | ... and *another* crash |
| 17:45:37 | <hseg> | ironic timing aside, was going to say the problematic case here was compiled with the wrong ghc, trying the correct one, one moment |
| 17:47:37 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 17:47:46 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
| 17:48:13 | → | euleritian joins (~euleritia@dynamic-176-001-008-240.176.1.pool.telefonica.de) |
| 17:55:06 | → | zetef joins (~quassel@5.14.202.140) |
| 17:55:08 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 256 seconds) |
| 17:55:47 | × | yin quits (~yin@user/zero) (Ping timeout: 268 seconds) |
| 17:57:04 | × | k`` quits (~k``@136.54.34.25) (Remote host closed the connection) |
| 17:57:21 | → | k`` joins (~k``@136.54.34.25) |
| 18:03:40 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 18:04:30 | × | zetef quits (~quassel@5.14.202.140) (Ping timeout: 245 seconds) |
| 18:08:24 | <monochrom> | tomsmeding: I haven't wished for a Haskell-2010-only compiler for error message purposes. Even within Haskell 2010, the Num class is already bad enough for that purpose, banning Foldable (for example) is not going to really help. (And I actually teach Foldable after the basics.) |
| 18:12:20 | <tomsmeding> | monochrom: right, overloaded int/float literals are definitely inconvenient for teaching (and frankly sometimes for programming too) |
| 18:13:01 | <tomsmeding> | for curiosity, do you not run into ghc flinging FlexibleConstraints, DataKinds, AllowAmbiguousTypes, RankNTypes, etc. in your students' faces? |
| 18:13:18 | <tomsmeding> | if they made an innocent mistake |
| 18:14:05 | <monochrom> | Here is where I show my laziness. I haven't polled students for what they are going through! |
| 18:14:35 | <Rembane> | monochrom: How much have they told you without polls? |
| 18:14:37 | <tomsmeding> | if you've taught enough students on this topic you'd have received complaints from their side if they're running into it a lot :) |
| 18:15:05 | <monochrom> | But those who came to my office hours have never showed me error messages of that kind. But that is a biased data pool. |
| 18:15:19 | <tomsmeding> | it is indeed, but it says something |
| 18:16:22 | <hseg> | int-e: ... and that's a no for -pie -fPIC via cabal: https://0x0.st/XXLc.txt |
| 18:16:24 | × | sand-witch quits (~m-mzmz6l@vmi833741.contaboserver.net) (Ping timeout: 252 seconds) |
| 18:17:02 | <monochrom> | It is also possible that I only ask them to do basic low-tech things so it is very hard to even randomly wander into the high-tech error space. |
| 18:17:39 | <tomsmeding> | the fact that such a low-tech space exists is good, and mostly what I was asking for :) |
| 18:18:10 | <hseg> | thanks for the help, but ig I'll stick to my previous giving up |
| 18:18:11 | <tomsmeding> | when I do haskelling myself I sometimes marvel at the inscrutability of error messages I get when doing seemingly harmless things that even beginners could do |
| 18:27:00 | × | hseg quits (~gesh@77.137.75.224) (Ping timeout: 260 seconds) |
| 18:28:11 | → | yin joins (~yin@user/zero) |
| 18:29:08 | × | k`` quits (~k``@136.54.34.25) (Remote host closed the connection) |
| 18:29:25 | → | k`` joins (~k``@136.54.34.25) |
| 18:32:06 | × | jamesmartinez quits (uid6451@id-6451.helmsley.irccloud.com) () |
| 18:36:01 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 18:41:28 | × | euleritian quits (~euleritia@dynamic-176-001-008-240.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
| 18:41:41 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 18:42:29 | → | califax joins (~califax@user/califx) |
| 18:45:35 | × | yin quits (~yin@user/zero) (Ping timeout: 264 seconds) |
| 18:50:57 | → | danza joins (~francesco@151.37.226.214) |
| 18:51:10 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 18:51:19 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 18:54:26 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds) |
| 18:57:13 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 19:12:28 | × | Square3 quits (~Square4@user/square) (Ping timeout: 246 seconds) |
| 19:13:33 | → | califax joins (~califax@user/califx) |
| 19:13:51 | → | rvalue- joins (~rvalue@user/rvalue) |
| 19:14:15 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 255 seconds) |
| 19:14:51 | → | Square joins (~Square@user/square) |
| 19:17:52 | rvalue- | is now known as rvalue |
| 19:19:47 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 19:20:32 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 19:21:01 | → | rvalue joins (~rvalue@user/rvalue) |
| 19:21:04 | → | zetef joins (~quassel@5.14.202.140) |
| 19:23:57 | × | danza quits (~francesco@151.37.226.214) (Ping timeout: 272 seconds) |
| 19:26:00 | <int-e> | @tell hseg Building with cabal-install works too if one sets the program flags in the config file (I did it for gcc (-fPIC), ghc (-fPIC and -fPIE), and ld (-pie)); I'm not sure how that translates to command line options. |
| 19:26:00 | <lambdabot> | Consider it noted. |
| 19:27:49 | × | zetef quits (~quassel@5.14.202.140) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 19:29:08 | → | mwnaylor joins (~user@2601:5cf:837e:2bb0::9c1d) |
| 19:30:58 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 19:37:06 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 19:47:18 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:55:11 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:00:59 | × | k`` quits (~k``@136.54.34.25) (Remote host closed the connection) |
| 20:01:17 | → | k`` joins (~k``@136.54.34.25) |
| 20:03:29 | → | hseg joins (~gesh@77.137.75.224) |
| 20:08:59 | × | philopsos quits (~caecilius@user/philopsos) (Ping timeout: 264 seconds) |
| 20:09:56 | → | yin joins (~yin@user/zero) |
| 20:10:11 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 20:10:49 | × | hseg quits (~gesh@77.137.75.224) (Quit: WeeChat 4.2.2) |
| 20:16:00 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 20:24:55 | × | mwnaylor quits (~user@2601:5cf:837e:2bb0::9c1d) (Ping timeout: 245 seconds) |
| 20:31:01 | × | akegalj quits (~akegalj@180-51.dsl.iskon.hr) (Quit: leaving) |
| 20:31:11 | × | yin quits (~yin@user/zero) (Ping timeout: 264 seconds) |
| 20:31:19 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:31:25 | → | jcarpenter2 joins (~lol@2603:3016:1e01:b940:2cfa:366f:20cb:2703) |
| 20:45:07 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:48:10 | → | yin joins (~yin@user/zero) |
| 20:51:56 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:52:14 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 20:59:42 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 21:06:04 | × | k`` quits (~k``@136.54.34.25) (Remote host closed the connection) |
| 21:15:58 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:18:44 | → | philopsos joins (~caecilius@user/philopsos) |
| 21:28:26 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:38:31 | × | michalz quits (~michalz@185.246.207.205) (Quit: ZNC 1.8.2 - https://znc.in) |
| 21:48:01 | → | shapr` joins (~user@c-24-218-186-89.hsd1.ma.comcast.net) |
| 21:48:40 | × | yin quits (~yin@user/zero) (Ping timeout: 245 seconds) |
| 21:49:57 | × | shapr quits (~user@c-24-218-186-89.hsd1.ma.comcast.net) (Ping timeout: 255 seconds) |
| 21:50:42 | → | yin joins (~yin@user/zero) |
| 21:51:04 | → | Square3 joins (~Square4@user/square) |
| 21:53:38 | × | Square quits (~Square@user/square) (Ping timeout: 252 seconds) |
| 21:59:59 | × | acidjnk quits (~acidjnk@p200300d6e714dc31f1fc423ebb03a89f.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 22:04:05 | × | AlexZenon quits (~alzenon@94.233.240.47) (Ping timeout: 245 seconds) |
| 22:12:24 | × | AlexNoo quits (~AlexNoo@94.233.240.47) (Ping timeout: 256 seconds) |
| 22:17:38 | → | waldo joins (~waldo@user/waldo) |
| 22:31:14 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 22:33:15 | × | yin quits (~yin@user/zero) (Ping timeout: 252 seconds) |
| 22:41:02 | → | zetef joins (~quassel@5.14.202.140) |
| 22:45:30 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:55:22 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:57:50 | × | mhatta quits (~mhatta@www21123ui.sakura.ne.jp) (Quit: ZNC 1.8.2+deb4+b2 - https://znc.in) |
| 22:57:56 | → | xff0x joins (~xff0x@softbank219059019218.bbtec.net) |
| 23:02:51 | → | mhatta joins (~mhatta@www21123ui.sakura.ne.jp) |
| 23:04:27 | × | xff0x quits (~xff0x@softbank219059019218.bbtec.net) (Ping timeout: 260 seconds) |
| 23:05:53 | × | mhatta quits (~mhatta@www21123ui.sakura.ne.jp) (Remote host closed the connection) |
| 23:07:52 | → | xff0x joins (~xff0x@om126236141098.32.openmobile.ne.jp) |
| 23:10:47 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 23:12:08 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:27:58 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:32:57 | → | AlexNoo joins (~AlexNoo@178.34.162.113) |
| 23:34:49 | → | AlexZenon joins (~alzenon@178.34.162.113) |
| 23:38:29 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 240 seconds) |
| 23:38:43 | → | madeleine-sydney joins (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) |
| 23:40:13 | × | sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 255 seconds) |
| 23:51:38 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 23:57:48 | × | oo_miguel quits (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 256 seconds) |
All times are in UTC on 2024-05-02.