Logs on 2024-11-05 (liberachat/#haskell)
| 00:00:35 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 00:05:51 | × | gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds) |
| 00:11:34 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:13:26 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 00:16:12 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 00:17:40 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 00:23:47 | × | xff0x quits (~xff0x@2405:6580:b080:900:26bf:a0f9:b4d:93d8) (Ping timeout: 265 seconds) |
| 00:24:34 | × | rini quits (~rini@user/rini) (Ping timeout: 260 seconds) |
| 00:25:36 | → | rini joins (~rini@user/rini) |
| 00:26:53 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:31:13 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 00:37:25 | × | sprotte24 quits (~sprotte24@p200300d16f3c620054c3529ac9abaeb8.dip0.t-ipconnect.de) (Quit: Leaving) |
| 00:37:56 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 260 seconds) |
| 00:39:02 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 00:42:14 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:46:59 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 00:48:04 | → | sroso joins (~sroso@user/SrOso) |
| 00:50:24 | × | Square quits (~Square@user/square) (Ping timeout: 252 seconds) |
| 00:54:48 | × | jess quits (meow@libera/staff/cat/jess) (Quit: Lost terminal) |
| 00:57:38 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:02:09 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 01:02:59 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 01:04:38 | → | jess joins (meow@libera/staff/cat/jess) |
| 01:10:52 | → | gmg joins (~user@user/gehmehgeh) |
| 01:12:16 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 01:13:57 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:14:00 | <sclv> | Inst: servant has a special helper just for your use case of exposing a directory https://hackage.haskell.org/package/servant-server-0.20.2/docs/Servant-Server-StaticFiles.html#v:serveDirectoryWebApp |
| 01:16:43 | × | m5zs7k quits (aquares@web10.mydevil.net) (Read error: Connection reset by peer) |
| 01:17:08 | → | m5zs7k joins (aquares@web10.mydevil.net) |
| 01:18:32 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 01:20:36 | → | Square2 joins (~Square4@user/square) |
| 01:26:56 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 260 seconds) |
| 01:28:13 | → | madhavanmiui joins (~madhavanm@152.58.212.143) |
| 01:28:16 | × | madhavanmiui quits (~madhavanm@152.58.212.143) (Client Quit) |
| 01:29:08 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 01:29:21 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:29:43 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich) |
| 01:30:11 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 01:39:42 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 01:48:14 | → | rvalue- joins (~rvalue@user/rvalue) |
| 01:48:18 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 01:48:57 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds) |
| 01:50:33 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 01:50:49 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:52:22 | rvalue- | is now known as rvalue |
| 01:52:38 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
| 01:55:39 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 02:06:11 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:10:36 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 02:13:33 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 02:15:31 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 02:18:25 | → | troojg joins (~troojg@user/troojg) |
| 02:21:34 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:26:40 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 02:31:38 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:34:59 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
| 02:35:24 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 02:36:14 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 02:37:49 | × | spew quits (~spew@201.141.99.170) (Quit: spew) |
| 02:39:51 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 02:40:06 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 02:43:23 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Quit: Leaving...) |
| 02:51:35 | × | machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 255 seconds) |
| 02:52:25 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:53:51 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 02:56:59 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 02:59:25 | → | hgolden__ joins (~hgolden@23.162.40.28) |
| 03:01:51 | × | hgolden_ quits (~hgolden@23.162.40.69) (Ping timeout: 252 seconds) |
| 03:07:47 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:14:46 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 03:25:49 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:28:15 | <arahael> | I'm attempting to install haskell on debian trixie. However, ghcup installs the wrong version. |
| 03:28:32 | <arahael> | It's installing the version for bookworm instead. |
| 03:30:49 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 03:38:57 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Ping timeout: 252 seconds) |
| 03:41:06 | <geekosaur> | afaict there isn't one for trixie |
| 03:41:11 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:41:26 | <arahael> | Hmm, so I should stick with the distro-provided ghc and cabal et al. |
| 03:41:49 | <arahael> | Or use distrobox and get myself setup with bookworm I guess. |
| 03:42:13 | <geekosaur> | there are two debian distributions in the ghcup metadata from what I saw, if neither is compatible then you'll have to file a bug about getting a compatible build |
| 03:42:19 | × | terrorjack4 quits (~terrorjac@2a01:4f8:c17:dc9f::) (Quit: The Lounge - https://thelounge.chat) |
| 03:42:19 | × | Square2 quits (~Square4@user/square) (Ping timeout: 260 seconds) |
| 03:42:35 | <arahael> | What are those two debians? |
| 03:43:04 | <arahael> | I suppose it's possible ghcup don't want to support a testing release until it's properly released as stable? |
| 03:43:10 | <geekosaur> | I see "< 10" and ">= 10" |
| 03:43:26 | <arahael> | That's... Interesting. |
| 03:43:53 | <arahael> | By contrast, I saw that ghcup instructed me to install packages that no-longer exist, and tried to install for version 11. |
| 03:43:59 | <arahael> | (And I'm on version 12 - trixie) |
| 03:44:00 | → | terrorjack4 joins (~terrorjac@2a01:4f8:c17:dc9f::) |
| 03:45:33 | × | troojg quits (~troojg@user/troojg) (Ping timeout: 252 seconds) |
| 03:45:46 | <geekosaur> | sorry, once I get to a modern version it's three (<10, 10, >=11) |
| 03:45:49 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 03:46:29 | <arahael> | Ah, that makes sense again, then. |
| 03:46:45 | <arahael> | I could give it a go, regardless, and try the 'bookworm' version. |
| 03:49:20 | <arahael> | Ah, it seems to be a little inconsistent - some of the packages are for bookworm, and some are for trixie. |
| 03:49:53 | <arahael> | ghci> putStrLn "Hello World!" |
| 03:49:55 | <arahael> | Hello World! |
| 03:49:57 | <arahael> | All good! |
| 03:53:33 | × | td_ quits (~td@i53870904.versanet.de) (Ping timeout: 265 seconds) |
| 03:54:55 | → | td_ joins (~td@i53870915.versanet.de) |
| 03:57:56 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:02:21 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 04:13:19 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:16:55 | × | migas977 quits (~migas@static.140.65.63.178.clients.your-server.de) (Ping timeout: 264 seconds) |
| 04:17:54 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 04:28:27 | → | migas977 joins (~migas@static.140.65.63.178.clients.your-server.de) |
| 04:28:41 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:34:54 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 04:36:54 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 04:47:49 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:54:43 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 05:03:23 | → | nandv joins (~nandv@2405:201:5c16:135:44cd:556f:6094:4e46) |
| 05:05:51 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:10:16 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 05:21:53 | × | nandv quits (~nandv@2405:201:5c16:135:44cd:556f:6094:4e46) (Ping timeout: 248 seconds) |
| 05:25:21 | × | litharge quits (litharge@libera/bot/litharge) (*.net *.split) |
| 05:25:21 | × | td_ quits (~td@i53870915.versanet.de) (*.net *.split) |
| 05:25:21 | × | jess quits (meow@libera/staff/cat/jess) (*.net *.split) |
| 05:25:21 | × | roosterphant_ quits (~roosterph@185.21.217.76) (*.net *.split) |
| 05:25:21 | × | weary-traveler quits (~user@user/user363627) (*.net *.split) |
| 05:25:21 | × | Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (*.net *.split) |
| 05:25:22 | × | tomboy64 quits (~tomboy64@user/tomboy64) (*.net *.split) |
| 05:25:22 | × | driib318 quits (~driib@vmi931078.contaboserver.net) (*.net *.split) |
| 05:25:23 | × | hololeap quits (~quassel@user/hololeap) (*.net *.split) |
| 05:25:23 | × | guygastineau quits (~guygastin@137.184.131.156) (*.net *.split) |
| 05:25:23 | × | ThePenguin quits (~ThePengui@cust-95-80-24-166.csbnet.se) (*.net *.split) |
| 05:25:23 | × | igemnace quits (~igemnace@user/igemnace) (*.net *.split) |
| 05:25:23 | × | tomsmeding quits (~tomsmedin@2a01:4f8:c0c:5e5e::2) (*.net *.split) |
| 05:25:23 | × | Techcable quits (sid534393@user/Techcable) (*.net *.split) |
| 05:25:23 | × | mrmonday quits (~robert@what.i.hope.is.not.a.tabernaevagant.es) (*.net *.split) |
| 05:25:23 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (*.net *.split) |
| 05:25:24 | × | orcus quits (~orcus@mail.brprice.uk) (*.net *.split) |
| 05:25:24 | × | krei-se quits (~krei-se@p5085d46e.dip0.t-ipconnect.de) (*.net *.split) |
| 05:25:24 | × | gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (*.net *.split) |
| 05:25:24 | × | picnoir quits (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (*.net *.split) |
| 05:25:24 | × | berberman quits (~berberman@user/berberman) (*.net *.split) |
| 05:25:24 | × | nckhexen quits (nckx@libera/staff/owl/nckx) (*.net *.split) |
| 05:25:24 | × | smalltalkman quits (uid545680@id-545680.hampstead.irccloud.com) (*.net *.split) |
| 05:25:24 | × | dunj3 quits (~dunj3@2a01:239:328:1600::1) (*.net *.split) |
| 05:25:24 | × | Vajb quits (~Vajb@n7m8bu6eaitlx0eukg2-1.v6.elisa-mobile.fi) (*.net *.split) |
| 05:25:24 | × | mrvdb quits (~mrvdb@2001:19f0:5000:8582:5400:ff:fe07:3df5) (*.net *.split) |
| 05:25:24 | × | b20n quits (sid115913@id-115913.uxbridge.irccloud.com) (*.net *.split) |
| 05:25:25 | × | Moyst__ quits (~moyst@user/moyst) (*.net *.split) |
| 05:25:25 | × | c_wraith quits (~c_wraith@adjoint.us) (*.net *.split) |
| 05:25:25 | × | yushyin quits (Uxh5EO4c9E@karif.server-speed.net) (*.net *.split) |
| 05:25:25 | × | Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (*.net *.split) |
| 05:25:25 | × | ggVGc quits (~ggVGc@a.lowtech.earth) (*.net *.split) |
| 05:25:25 | × | rini quits (~rini@user/rini) (*.net *.split) |
| 05:25:25 | × | Digitteknohippie quits (~user@user/digit) (*.net *.split) |
| 05:25:25 | × | alphazone_ quits (~alphazone@2.219.56.221) (*.net *.split) |
| 05:25:25 | × | alp quits (~alp@2001:861:e3d6:8f80:8ee1:f46d:3f90:227c) (*.net *.split) |
| 05:25:25 | × | Leary quits (~Leary@user/Leary/x-0910699) (*.net *.split) |
| 05:25:26 | × | Eoco quits (~ian@128.101.131.218) (*.net *.split) |
| 05:25:26 | × | JamesMowery43 quits (~JamesMowe@ip98-167-207-182.ph.ph.cox.net) (*.net *.split) |
| 05:25:26 | × | gawen quits (~gawen@user/gawen) (*.net *.split) |
| 05:25:26 | × | haskellbridge quits (~hackager@syn-024-093-192-219.res.spectrum.com) (*.net *.split) |
| 05:25:26 | × | infinity0 quits (~infinity0@pwned.gg) (*.net *.split) |
| 05:25:26 | × | img quits (~img@user/img) (*.net *.split) |
| 05:25:26 | × | Pozyomka quits (~pyon@user/pyon) (*.net *.split) |
| 05:25:27 | × | ggb quits (a62ffbaf4f@2a03:6000:1812:100::3ac) (*.net *.split) |
| 05:25:27 | × | jakzale quits (6291399afa@user/jakzale) (*.net *.split) |
| 05:25:27 | × | ACuriousMoose quits (~ACuriousM@156.34.161.188) (*.net *.split) |
| 05:25:27 | × | pandeyan quits (~pandeyan@135-180-52-227.fiber.dynamic.sonic.net) (*.net *.split) |
| 05:25:27 | × | jrm quits (~jrm@user/jrm) (*.net *.split) |
| 05:25:27 | × | swistak quits (~swistak@185.21.216.141) (*.net *.split) |
| 05:25:28 | × | rembo10 quits (~rembo10@main.remulis.com) (*.net *.split) |
| 05:25:28 | × | Typedfern quits (~Typedfern@59.red-83-37-27.dynamicip.rima-tde.net) (*.net *.split) |
| 05:25:28 | × | mewra quits (~aranea@wireguard/contributorcat/mira) (*.net *.split) |
| 05:25:28 | × | tomku quits (~tomku@user/tomku) (*.net *.split) |
| 05:25:28 | × | haveo quits (~weechat@pacamara.iuwt.fr) (*.net *.split) |
| 05:25:28 | × | Rembane quits (~Rembane@user/Rembane) (*.net *.split) |
| 05:25:28 | × | tnks quits (sid412124@id-412124.helmsley.irccloud.com) (*.net *.split) |
| 05:25:28 | × | NemesisD quits (sid24071@id-24071.lymington.irccloud.com) (*.net *.split) |
| 05:25:28 | × | hovsater quits (sid499516@user/hovsater) (*.net *.split) |
| 05:25:28 | × | buhman quits (sid411355@user/buhman) (*.net *.split) |
| 05:25:29 | × | Hecate quits (~mariposa@user/hecate) (*.net *.split) |
| 05:25:29 | × | mniip_ quits (mniip@libera/staff/mniip) (*.net *.split) |
| 05:25:29 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (*.net *.split) |
| 05:25:29 | × | mauke quits (~mauke@user/mauke) (*.net *.split) |
| 05:25:29 | × | Hafydd quits (~Hafydd@user/hafydd) (*.net *.split) |
| 05:25:29 | × | ouroboros quits (~ouroboros@user/ouroboros) (*.net *.split) |
| 05:25:29 | × | peutri quits (~peutri@bobo.desast.re) (*.net *.split) |
| 05:25:29 | × | farn__ quits (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (*.net *.split) |
| 05:25:29 | × | lbseale_ quits (~quassel@user/ep1ctetus) (*.net *.split) |
| 05:25:29 | × | ent-_ quits (entgod@kapsi.fi) (*.net *.split) |
| 05:25:29 | × | ringo_ quits (~ringo@157.230.117.128) (*.net *.split) |
| 05:25:29 | × | samhh__ quits (7569f027cf@2a03:6000:1812:100::e4) (*.net *.split) |
| 05:25:29 | × | tok quits (da65c7b04b@user/tok) (*.net *.split) |
| 05:25:29 | × | raghavgururajan quits (ea769b8000@user/raghavgururajan) (*.net *.split) |
| 05:25:29 | × | rselim quits (ce261f06ff@user/milesrout) (*.net *.split) |
| 05:25:30 | × | flocks quits (~flocks@134.122.90.60) (*.net *.split) |
| 05:25:30 | × | coldtom quits (~coldtom@coldrick.cc) (*.net *.split) |
| 05:25:30 | × | finsternis quits (~X@23.226.237.192) (*.net *.split) |
| 05:25:30 | × | arkeet quits (~arkeet@moriya.ca) (*.net *.split) |
| 05:25:30 | × | sm quits (~znc@plaintextaccounting/sm) (*.net *.split) |
| 05:25:31 | × | mhatta quits (~mhatta@www21123ui.sakura.ne.jp) (*.net *.split) |
| 05:25:31 | × | NiKaN quits (sid385034@id-385034.helmsley.irccloud.com) (*.net *.split) |
| 05:25:31 | × | Fangs quits (sid141280@id-141280.hampstead.irccloud.com) (*.net *.split) |
| 05:25:31 | × | cheater quits (~Username@user/cheater) (*.net *.split) |
| 05:25:31 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (*.net *.split) |
| 05:25:31 | × | bsima quits (~bsima@143.198.118.179) (*.net *.split) |
| 05:25:31 | × | crazazy quits (~crazazy@tilde.town) (*.net *.split) |
| 05:25:31 | × | masterbuilder quits (~quassel@user/masterbuilder) (*.net *.split) |
| 05:25:31 | × | nisstyre quits (wes@user/nisstyre) (*.net *.split) |
| 05:25:31 | × | Athas quits (athas@sigkill.dk) (*.net *.split) |
| 05:25:31 | × | edwtjo quits (~edwtjo@fsf/member/edwtjo) (*.net *.split) |
| 05:25:32 | × | bcksl quits (~bcksl@user/bcksl) (*.net *.split) |
| 05:25:32 | × | edwardk quits (sid47016@haskell/developer/edwardk) (*.net *.split) |
| 05:25:32 | × | saolsen quits (sid26430@id-26430.lymington.irccloud.com) (*.net *.split) |
| 05:25:32 | × | acro quits (~acro@user/acro) (*.net *.split) |
| 05:25:32 | × | cjay quits (cjay@nerdbox.nerd2nerd.org) (*.net *.split) |
| 05:25:32 | × | teesquare_ quits (~teesquare@user/teesquare) (*.net *.split) |
| 05:25:32 | × | degraafk quits (sid71464@id-71464.lymington.irccloud.com) (*.net *.split) |
| 05:25:32 | × | liskin quits (~liskin@xmonad/liskin) (*.net *.split) |
| 05:25:32 | × | Patternmaster quits (~georg@user/Patternmaster) (*.net *.split) |
| 05:25:32 | × | sefidel quits (~sefidel@user/sefidel) (*.net *.split) |
| 05:25:32 | × | bgamari quits (~bgamari@64.223.233.64) (*.net *.split) |
| 05:25:33 | × | landonf quits (landonf@mac68k.info) (*.net *.split) |
| 05:25:33 | × | beaky quits (~beaky@198.211.118.219) (*.net *.split) |
| 05:25:33 | × | ncf quits (~n@monade.li) (*.net *.split) |
| 05:25:33 | × | ChanServ quits (ChanServ@services.libera.chat) (*.net *.split) |
| 05:25:51 | → | Sgeo_ joins (~Sgeo@ool-45759c8b.dyn.optonline.net) |
| 05:26:06 | → | ChanServ joins (ChanServ@services.libera.chat) |
| 05:26:06 | → | litharge joins (litharge@libera/bot/litharge) |
| 05:26:06 | mercury.libera.chat | sets mode +o ChanServ |
| 05:26:36 | → | biberu\ joins (~biberu@user/biberu) |
| 05:26:55 | → | Ram-Z joins (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) |
| 05:27:04 | samhh | is now known as 082AAS5CR |
| 05:27:08 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 05:27:08 | → | mauke joins (~mauke@user/mauke) |
| 05:27:08 | → | Hafydd joins (~Hafydd@user/hafydd) |
| 05:27:08 | → | ouroboros joins (~ouroboros@user/ouroboros) |
| 05:27:08 | → | peutri joins (~peutri@bobo.desast.re) |
| 05:27:08 | → | farn__ joins (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) |
| 05:27:08 | → | lbseale_ joins (~quassel@user/ep1ctetus) |
| 05:27:08 | → | ent-_ joins (entgod@kapsi.fi) |
| 05:27:08 | → | ringo_ joins (~ringo@157.230.117.128) |
| 05:27:08 | → | samhh joins (7569f027cf@2a03:6000:1812:100::e4) |
| 05:27:08 | → | tok joins (da65c7b04b@user/tok) |
| 05:27:08 | → | raghavgururajan joins (ea769b8000@user/raghavgururajan) |
| 05:27:08 | → | rselim joins (ce261f06ff@user/milesrout) |
| 05:27:08 | → | flocks joins (~flocks@134.122.90.60) |
| 05:27:08 | → | coldtom joins (~coldtom@coldrick.cc) |
| 05:27:08 | → | finsternis joins (~X@23.226.237.192) |
| 05:27:08 | → | arkeet joins (~arkeet@moriya.ca) |
| 05:27:08 | → | sm joins (~znc@plaintextaccounting/sm) |
| 05:27:08 | → | mhatta joins (~mhatta@www21123ui.sakura.ne.jp) |
| 05:27:08 | → | NiKaN joins (sid385034@id-385034.helmsley.irccloud.com) |
| 05:27:08 | → | Fangs joins (sid141280@id-141280.hampstead.irccloud.com) |
| 05:27:08 | → | cheater joins (~Username@user/cheater) |
| 05:27:08 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 05:27:08 | → | bsima joins (~bsima@143.198.118.179) |
| 05:27:08 | → | crazazy joins (~crazazy@tilde.town) |
| 05:27:08 | → | masterbuilder joins (~quassel@user/masterbuilder) |
| 05:27:08 | → | nisstyre joins (wes@user/nisstyre) |
| 05:27:08 | → | Athas joins (athas@sigkill.dk) |
| 05:27:08 | → | edwtjo joins (~edwtjo@fsf/member/edwtjo) |
| 05:27:08 | → | bcksl joins (~bcksl@user/bcksl) |
| 05:27:08 | → | edwardk joins (sid47016@haskell/developer/edwardk) |
| 05:27:08 | → | saolsen joins (sid26430@id-26430.lymington.irccloud.com) |
| 05:27:08 | → | acro joins (~acro@user/acro) |
| 05:27:08 | → | cjay joins (cjay@nerdbox.nerd2nerd.org) |
| 05:27:08 | → | teesquare_ joins (~teesquare@user/teesquare) |
| 05:27:08 | → | ncf joins (~n@monade.li) |
| 05:27:08 | → | degraafk joins (sid71464@id-71464.lymington.irccloud.com) |
| 05:27:08 | → | liskin joins (~liskin@xmonad/liskin) |
| 05:27:08 | → | Patternmaster joins (~georg@user/Patternmaster) |
| 05:27:08 | → | sefidel joins (~sefidel@user/sefidel) |
| 05:27:08 | → | bgamari joins (~bgamari@64.223.233.64) |
| 05:27:08 | → | landonf joins (landonf@mac68k.info) |
| 05:27:08 | → | beaky joins (~beaky@198.211.118.219) |
| 05:27:35 | × | finsternis quits (~X@23.226.237.192) (Max SendQ exceeded) |
| 05:27:36 | × | Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 243 seconds) |
| 05:27:48 | → | rini joins (~rini@user/rini) |
| 05:27:48 | → | Digitteknohippie joins (~user@user/digit) |
| 05:27:48 | → | alp joins (~alp@2001:861:e3d6:8f80:8ee1:f46d:3f90:227c) |
| 05:27:48 | → | Leary joins (~Leary@user/Leary/x-0910699) |
| 05:27:48 | → | Eoco joins (~ian@128.101.131.218) |
| 05:27:48 | → | JamesMowery43 joins (~JamesMowe@ip98-167-207-182.ph.ph.cox.net) |
| 05:27:48 | → | gawen joins (~gawen@user/gawen) |
| 05:27:48 | → | haskellbridge joins (~hackager@syn-024-093-192-219.res.spectrum.com) |
| 05:27:48 | → | infinity0 joins (~infinity0@pwned.gg) |
| 05:27:48 | → | img joins (~img@user/img) |
| 05:27:48 | → | Pozyomka joins (~pyon@user/pyon) |
| 05:27:48 | → | ggb joins (a62ffbaf4f@2a03:6000:1812:100::3ac) |
| 05:27:48 | → | jakzale joins (6291399afa@user/jakzale) |
| 05:27:48 | → | ACuriousMoose joins (~ACuriousM@156.34.161.188) |
| 05:27:48 | → | pandeyan joins (~pandeyan@135-180-52-227.fiber.dynamic.sonic.net) |
| 05:27:48 | → | jrm joins (~jrm@user/jrm) |
| 05:27:48 | → | swistak joins (~swistak@185.21.216.141) |
| 05:27:48 | → | rembo10 joins (~rembo10@main.remulis.com) |
| 05:27:48 | → | Typedfern joins (~Typedfern@59.red-83-37-27.dynamicip.rima-tde.net) |
| 05:27:48 | → | mewra joins (~aranea@wireguard/contributorcat/mira) |
| 05:27:48 | → | tomku joins (~tomku@user/tomku) |
| 05:27:48 | → | haveo joins (~weechat@pacamara.iuwt.fr) |
| 05:27:48 | → | Rembane joins (~Rembane@user/Rembane) |
| 05:27:48 | → | tnks joins (sid412124@id-412124.helmsley.irccloud.com) |
| 05:27:48 | → | NemesisD joins (sid24071@id-24071.lymington.irccloud.com) |
| 05:27:48 | → | hovsater joins (sid499516@user/hovsater) |
| 05:27:48 | → | buhman joins (sid411355@user/buhman) |
| 05:27:48 | → | Hecate joins (~mariposa@user/hecate) |
| 05:27:48 | → | mniip_ joins (mniip@libera/staff/mniip) |
| 05:27:48 | mercury.libera.chat | sets mode +v haskellbridge |
| 05:27:54 | → | briandaed joins (~root@185.234.210.211) |
| 05:28:11 | → | finsternis joins (~X@23.226.237.192) |
| 05:28:25 | → | td_ joins (~td@i53870915.versanet.de) |
| 05:28:25 | → | jess joins (meow@libera/staff/cat/jess) |
| 05:28:25 | → | roosterphant_ joins (~roosterph@185.21.217.76) |
| 05:28:25 | → | weary-traveler joins (~user@user/user363627) |
| 05:28:25 | → | Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius) |
| 05:28:25 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 05:28:25 | → | driib318 joins (~driib@vmi931078.contaboserver.net) |
| 05:28:25 | → | hololeap joins (~quassel@user/hololeap) |
| 05:28:25 | → | guygastineau joins (~guygastin@137.184.131.156) |
| 05:28:25 | → | ThePenguin joins (~ThePengui@cust-95-80-24-166.csbnet.se) |
| 05:28:25 | → | igemnace joins (~igemnace@user/igemnace) |
| 05:28:25 | → | tomsmeding joins (~tomsmedin@2a01:4f8:c0c:5e5e::2) |
| 05:28:25 | → | Techcable joins (sid534393@user/Techcable) |
| 05:28:25 | → | mrmonday joins (~robert@what.i.hope.is.not.a.tabernaevagant.es) |
| 05:28:25 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 05:28:25 | → | orcus joins (~orcus@mail.brprice.uk) |
| 05:28:25 | → | krei-se joins (~krei-se@p5085d46e.dip0.t-ipconnect.de) |
| 05:28:25 | → | gabiruh joins (~gabiruh@vps19177.publiccloud.com.br) |
| 05:28:25 | → | picnoir joins (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) |
| 05:28:25 | → | berberman joins (~berberman@user/berberman) |
| 05:28:25 | → | nckhexen joins (nckx@libera/staff/owl/nckx) |
| 05:28:25 | → | smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com) |
| 05:28:25 | → | dunj3 joins (~dunj3@2a01:239:328:1600::1) |
| 05:28:25 | → | Vajb joins (~Vajb@n7m8bu6eaitlx0eukg2-1.v6.elisa-mobile.fi) |
| 05:28:25 | → | mrvdb joins (~mrvdb@2001:19f0:5000:8582:5400:ff:fe07:3df5) |
| 05:28:25 | → | b20n joins (sid115913@id-115913.uxbridge.irccloud.com) |
| 05:28:25 | → | Moyst__ joins (~moyst@user/moyst) |
| 05:28:25 | → | c_wraith joins (~c_wraith@adjoint.us) |
| 05:28:25 | → | yushyin joins (Uxh5EO4c9E@karif.server-speed.net) |
| 05:28:25 | → | ggVGc joins (~ggVGc@a.lowtech.earth) |
| 05:28:34 | → | alphazone joins (~alphazone@2.219.56.221) |
| 05:28:48 | × | Me-me quits (~me-me@kc.randomserver.name) (Changing host) |
| 05:28:48 | → | Me-me joins (~me-me@user/me-me) |
| 05:28:50 | × | igemnace quits (~igemnace@user/igemnace) (Max SendQ exceeded) |
| 05:28:50 | × | Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded) |
| 05:29:13 | → | igemnace joins (~igemnace@user/igemnace) |
| 05:29:59 | × | biberu quits (~biberu@user/biberu) (Ping timeout: 255 seconds) |
| 05:29:59 | biberu\ | is now known as biberu |
| 05:31:33 | × | NiKaN quits (sid385034@id-385034.helmsley.irccloud.com) (Ping timeout: 248 seconds) |
| 05:32:15 | × | Techcable quits (sid534393@user/Techcable) (Ping timeout: 252 seconds) |
| 05:33:24 | → | Techcable joins (sid534393@user/Techcable) |
| 05:33:38 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:33:51 | → | NiKaN joins (sid385034@id-385034.helmsley.irccloud.com) |
| 05:35:14 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 05:35:35 | × | litharge quits (litharge@libera/bot/litharge) (Ping timeout: 630 seconds) |
| 05:35:40 | → | Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius) |
| 05:36:19 | → | litharge joins (litharge@libera/bot/litharge) |
| 05:38:01 | → | FinnBoat joins (~user@29.118.67.37.rev.sfr.net) |
| 05:40:54 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 05:42:14 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 05:43:02 | → | michalz joins (~michalz@185.246.207.203) |
| 05:46:08 | × | pabs3 quits (~pabs3@user/pabs3) (Read error: Connection reset by peer) |
| 05:46:52 | → | pabs3 joins (~pabs3@user/pabs3) |
| 05:47:49 | → | nandv joins (~nandv@2405:201:5c16:135:e925:789:fa7f:2328) |
| 05:48:30 | × | byte quits (~byte@149.28.222.189) (Ping timeout: 252 seconds) |
| 05:48:36 | → | natoshi-sakamoto joins (~natoshi-s@2405:201:5c16:135:7459:cd00:c885:3805) |
| 05:49:58 | × | alp quits (~alp@2001:861:e3d6:8f80:8ee1:f46d:3f90:227c) (Ping timeout: 272 seconds) |
| 05:51:49 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:53:06 | → | byte joins (~byte@149.28.222.189) |
| 05:56:48 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 05:57:17 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds) |
| 06:04:20 | × | FinnBoat quits (~user@29.118.67.37.rev.sfr.net) (Remote host closed the connection) |
| 06:06:34 | → | euleritian joins (~euleritia@dynamic-176-007-145-160.176.7.pool.telefonica.de) |
| 06:07:12 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:07:34 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 260 seconds) |
| 06:09:29 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 06:09:48 | × | nandv quits (~nandv@2405:201:5c16:135:e925:789:fa7f:2328) (Ping timeout: 276 seconds) |
| 06:11:03 | × | euleritian quits (~euleritia@dynamic-176-007-145-160.176.7.pool.telefonica.de) (Ping timeout: 252 seconds) |
| 06:11:36 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 06:14:14 | → | frxi joins (~frxi@49.36.234.228) |
| 06:14:34 | → | euleritian joins (~euleritia@dynamic-176-006-131-070.176.6.pool.telefonica.de) |
| 06:22:19 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:22:34 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:23:28 | → | misterfish joins (~misterfis@84.53.85.146) |
| 06:23:42 | × | euleritian quits (~euleritia@dynamic-176-006-131-070.176.6.pool.telefonica.de) (Ping timeout: 252 seconds) |
| 06:24:31 | → | euleritian joins (~euleritia@dynamic-176-000-012-045.176.0.pool.telefonica.de) |
| 06:28:00 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 06:30:03 | × | Sgeo_ quits (~Sgeo@ool-45759c8b.dyn.optonline.net) (Read error: Connection reset by peer) |
| 06:32:56 | → | poscat0x04 joins (~poscat@user/poscat) |
| 06:33:12 | × | poscat quits (~poscat@user/poscat) (Ping timeout: 276 seconds) |
| 06:34:39 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:35:53 | × | natoshi-sakamoto quits (~natoshi-s@2405:201:5c16:135:7459:cd00:c885:3805) (Quit: CoreIRC for Android - www.coreirc.com) |
| 06:35:57 | → | longlongdouble joins (~longlongd@2405:201:5c16:135:7459:cd00:c885:3805) |
| 06:36:11 | × | frxi quits (~frxi@49.36.234.228) (Remote host closed the connection) |
| 06:37:29 | × | mulk quits (~mulk@pd95146e9.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
| 06:39:00 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 06:39:20 | → | mulk joins (~mulk@pd95146e9.dip0.t-ipconnect.de) |
| 06:50:02 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:54:23 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 06:58:48 | → | acidjnk joins (~acidjnk@p200300d6e7283f86fde9f223924bb8a1.dip0.t-ipconnect.de) |
| 07:02:53 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 245 seconds) |
| 07:15:38 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 07:23:30 | → | l-Shane-l joins (~l-Shane-l@171.33.234.132) |
| 07:27:24 | → | hgolden_ joins (~hgolden@169.150.203.36) |
| 07:29:58 | × | hgolden__ quits (~hgolden@23.162.40.28) (Ping timeout: 252 seconds) |
| 07:38:24 | × | l-Shane-l quits (~l-Shane-l@171.33.234.132) (Quit: Client closed) |
| 07:44:58 | → | l-Shane-l joins (~l-Shane-l@user/l-Shane-l) |
| 07:46:19 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds) |
| 07:47:08 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 07:47:43 | → | nandv joins (~nandv@2405:201:5c16:135:1dc1:6936:d420:250a) |
| 07:51:13 | → | abyss joins (~nandv@185.107.56.128) |
| 07:54:07 | × | nandv quits (~nandv@2405:201:5c16:135:1dc1:6936:d420:250a) (Ping timeout: 264 seconds) |
| 08:00:00 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 08:00:39 | → | caconym joins (~caconym@user/caconym) |
| 08:06:03 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 08:06:20 | → | misterfish joins (~misterfis@h239071.upc-h.chello.nl) |
| 08:07:34 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:07:34 | × | youthlic quits (~Thunderbi@user/youthlic) (Quit: youthlic) |
| 08:08:58 | × | l-Shane-l quits (~l-Shane-l@user/l-Shane-l) (Quit: Client closed) |
| 08:09:22 | → | youthlic joins (~Thunderbi@user/youthlic) |
| 08:14:00 | → | simendsjo joins (~user@79.161.5.185) |
| 08:24:05 | → | nandv joins (~nandv@2405:201:5c16:135:1dc1:6936:d420:250a) |
| 08:25:42 | × | abyss quits (~nandv@185.107.56.128) (Ping timeout: 252 seconds) |
| 08:25:44 | × | youthlic quits (~Thunderbi@user/youthlic) (Quit: youthlic) |
| 08:25:56 | × | simendsjo quits (~user@79.161.5.185) (Ping timeout: 255 seconds) |
| 08:27:36 | → | youthlic joins (~Thunderbi@user/youthlic) |
| 08:27:57 | → | alp joins (~alp@static-176-175-89-30.ftth.abo.bbox.fr) |
| 08:28:16 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 08:33:48 | → | todi joins (~todi@p57803331.dip0.t-ipconnect.de) |
| 08:34:09 | × | notzmv quits (~daniel@user/notzmv) (Ping timeout: 260 seconds) |
| 08:38:39 | × | ubert quits (~Thunderbi@178.115.51.39.wireless.dyn.drei.com) (Ping timeout: 276 seconds) |
| 08:46:46 | → | merijn joins (~merijn@77.242.116.146) |
| 08:48:31 | × | euleritian quits (~euleritia@dynamic-176-000-012-045.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
| 08:48:47 | → | Versality joins (~Versality@user/Versality) |
| 08:48:49 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 08:58:30 | → | machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net) |
| 09:04:27 | × | enikar quits (~enikar@user/enikar) (Quit: WeeChat 3.0) |
| 09:04:43 | → | enikar joins (~enikar@user/enikar) |
| 09:05:14 | → | abyss joins (~nandv@37.19.205.154) |
| 09:08:33 | × | nandv quits (~nandv@2405:201:5c16:135:1dc1:6936:d420:250a) (Ping timeout: 276 seconds) |
| 09:08:37 | → | ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 09:08:39 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 09:09:06 | <Inst> | is Text `Either` Bool cancerous? |
| 09:09:13 | <Inst> | or is it an actually acceptable use of Haskell syntax? |
| 09:10:02 | <Inst> | also, where's the config for default fixity / precedence when you backtick a function? |
| 09:11:09 | <kaol> | I get "Illegal term-level use of the type constructor or class ‘Either’" when I try anything like that. |
| 09:13:22 | <Leary> | Type level or not doesn't make a difference; infix is fine iff the identifier is suitably named. "a `Or` b" would be fine, but "a `Either` b" isn't. |
| 09:13:44 | <Leary> | Anyway, you can always just `type (+) = Either`. |
| 09:15:30 | <tomsmeding> | arahael: I guess ghcup doesn't provide versions for newer distro versions because 1. the older ones work and 2. fewer distribution artifacts lightens the load on release managers / CI infra etc. :) |
| 09:19:24 | <geekosaur> | last I heard Julian was doing his own builds on the default channel, so I imagine adding extra ones would be even more work for him. (The vanilla channel contains upstream-provided builds.) |
| 09:19:28 | <Inst> | I heard people complaining about `type ($) a b = a b |
| 09:20:03 | <geekosaur> | how much of that is complaining about `($)` in general? |
| 09:20:15 | <Inst> | kaol: try :k instead of :t |
| 09:20:51 | <Inst> | I don't know, but tbh anti-parens crusade, and the ridiculously we do with crazy stuff like do bulleting |
| 09:21:03 | <Inst> | *riduculousness |
| 09:21:19 | <geekosaur> | anyway I think it's acceptable to the compiler (at type level, of course) but it makes code harder to read |
| 09:21:36 | <Inst> | Haskell 98 apparently defaults to infixl 9, section seems missing in Haskell 2010, though |
| 09:22:04 | <geekosaur> | I strongly prefer to save operator syntax for things that are actually operator-like |
| 09:22:27 | <haskellbridge> | <hellwolf> I think there is beauty in '$ <$> <$ $> <_> <_ *> >>= >=> <=<` |
| 09:22:38 | <haskellbridge> | <hellwolf> * >=< |
| 09:22:46 | <haskellbridge> | <hellwolf> * "$ \<$> \<$ $> \<_\> \<_ \*> >>= >=\< \<=\<\" |
| 09:22:53 | <haskellbridge> | <hellwolf> * <$> <$ $> <_> <_ *> >>= >=< <=<" |
| 09:23:12 | <geekosaur> | https://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-820004.4.2 |
| 09:23:15 | <haskellbridge> | <hellwolf> * "$, <$>, <$, $>, <_>, <_, *>, >>=, >=<, |
| 09:23:27 | <haskellbridge> | <hellwolf> * <*, |
| 09:23:42 | <haskellbridge> | <hellwolf> * >=>, |
| 09:23:55 | <geekosaur> | ugh, those edits are cancer IRC-side |
| 09:24:09 | <haskellbridge> | <hellwolf> sorry, I forget this is IRC channel, I was aware of it. |
| 09:24:28 | <tomsmeding> | (isn't "cancer" a bit overblown?) |
| 09:24:46 | haskellbridge | hellwolf slaps myself with a large trout in good old IRC fashion |
| 09:24:46 | <Inst> | (.) doesn't seem to work that well on type level, though |
| 09:24:47 | <Inst> | sorry |
| 09:24:53 | <tomsmeding> | (though yes it's ugly and fairly unreadable sometimes) |
| 09:25:05 | <tomsmeding> | Inst: it's called Compose |
| 09:25:06 | <Inst> | the problem is that Either is supposed to be the standard sum type |
| 09:25:09 | <Inst> | ah |
| 09:25:13 | <tomsmeding> | but it's a newtype |
| 09:25:14 | <geekosaur> | it's too overloaded, I suspect, especially given `forall …. .` |
| 09:25:51 | <arahael> | tomsmeding: That does make sense. Was just a bit confusing. |
| 09:25:52 | <tomsmeding> | in general, in haskell, if a type synonym / family thing doesn't work too well in haskell, an extra newtype layer often fixes things |
| 09:25:52 | <haskellbridge> | <hellwolf> "(.)" |
| 09:25:52 | <haskellbridge> | ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/KtvFpYdPnvlljZESVtlFKcjB/LggDqDvOMGc (7 lines) |
| 09:25:58 | geekosaur | needs to try to go back to bed |
| 09:26:04 | <haskellbridge> | <hellwolf> I alwsy remember when Edward Kmett blew my mind with those combinators |
| 09:26:21 | <tomsmeding> | hellwolf: (.) = fmap, so (.) . (.) = fmap fmap fmap |
| 09:26:30 | <Inst> | good luck, and don't stress too much today, it'll be over when it's over, and it's over in 4-8 years afterwards anyways |
| 09:27:03 | Digitteknohippie | is now known as Digit |
| 09:27:03 | <haskellbridge> | <hellwolf> no, (.) != fmap. I just double checked with hoogle ;) |
| 09:27:30 | <tomsmeding> | :t (.) . (.) |
| 09:27:31 | <lambdabot> | (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c |
| 09:27:33 | <tomsmeding> | :t fmap fmap fmap |
| 09:27:34 | <lambdabot> | (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b) |
| 09:27:35 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 09:27:36 | <Inst> | (.) = fmap for instance Functor (r ->) |
| 09:27:51 | <tomsmeding> | now set (f1 ~ (->) a1) and (f2 ~ (->) a2) |
| 09:28:04 | → | rvalue joins (~rvalue@user/rvalue) |
| 09:31:48 | <haskellbridge> | <hellwolf> https://kf8nh.com/_heisenbridge/media/matrix.org/xKUfmoznwCHkVefPSdGMuRsW/vGfaLYyIYNk/image.png |
| 09:31:53 | <haskellbridge> | <hellwolf> Hope screenshot works for IRC users too. |
| 09:32:19 | <tomsmeding> | we get a link :) (wait a minute and it'll show up here https://ircbrowse.tomsmeding.com/browse/lchaskell?events_page=13963 ) |
| 09:32:44 | <haskellbridge> | <hellwolf> sorry for not sorry for the digress. I figured it's an IRC channel, I can get away with some interjections. |
| 09:32:46 | haskellbridge | hellwolf duck now |
| 09:33:47 | <kaol> | Some people just want to see the world burn. Like by redefining map = fmap = (.). |
| 09:35:22 | <kaol> | Just to get "(+1) . [1,2,3]". Not confusing at all. |
| 09:35:45 | <Inst> | . is confusing, tbh |
| 09:36:10 | <Inst> | you can remember it's supposed to resemble the composition operator in math, but there's a dozen other things it's used in computer science |
| 09:36:21 | <Inst> | it's also used for Module.bindingInModule |
| 09:36:33 | <Inst> | and RecordDotSyntax |
| 09:38:23 | <kaol> | That's just syntax. I'm thinking of type level mayhem. |
| 09:38:38 | <haskellbridge> | <hellwolf> . to ∘ is simplified chinese to traditional chinese. |
| 09:38:52 | <merijn> | RecordDotSyntax exists solely to make Haskell's relatively clean grammar a confusing nightmare hellscape |
| 09:39:17 | <kaol> | I'll happily never use it myself. |
| 09:39:26 | <merijn> | It's a bad extension that should feel bad about itself >.< |
| 09:41:02 | <Inst> | nice analogy, given that o takes forever to type whereas . is a keyboard default |
| 09:41:26 | <Inst> | (since simplified Chinese, among other things, makes Chinese far faster to write in non-cursive forms) |
| 09:42:30 | <haskellbridge> | <hellwolf> 书 / 書 (book) |
| 09:42:30 | <haskellbridge> | 广 / 廣 (wide, adj.) |
| 09:48:11 | → | rvalue- joins (~rvalue@user/rvalue) |
| 09:48:44 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 272 seconds) |
| 09:49:26 | → | chele joins (~chele@user/chele) |
| 09:49:56 | × | cyphase quits (~cyphase@user/cyphase) (Read error: Connection reset by peer) |
| 09:51:32 | → | cyphase joins (~cyphase@user/cyphase) |
| 09:54:04 | rvalue- | is now known as rvalue |
| 09:58:31 | × | enikar quits (~enikar@user/enikar) (Quit: WeeChat 3.0) |
| 09:59:52 | → | ubert joins (~Thunderbi@178.115.51.39.wireless.dyn.drei.com) |
| 10:08:05 | × | misterfish quits (~misterfis@h239071.upc-h.chello.nl) (Ping timeout: 255 seconds) |
| 10:08:44 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 10:09:04 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 260 seconds) |
| 10:09:34 | → | l-Shane-l joins (~l-Shane-l@user/l-Shane-l) |
| 10:13:36 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 252 seconds) |
| 10:14:17 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 10:16:23 | → | emfrom joins (~emfrom@37.171.102.197) |
| 10:17:37 | → | libertyprime joins (~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz) |
| 10:17:48 | × | abyss quits (~nandv@37.19.205.154) (Ping timeout: 265 seconds) |
| 10:24:33 | → | misterfish joins (~misterfis@31-161-39-137.biz.kpn.net) |
| 10:24:51 | × | alp quits (~alp@static-176-175-89-30.ftth.abo.bbox.fr) (Remote host closed the connection) |
| 10:25:13 | → | alp joins (~alp@2001:861:e3d6:8f80:86cd:f9bc:2fcc:950e) |
| 10:29:18 | → | ash3en1 joins (~Thunderbi@146.70.124.222) |
| 10:29:24 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 265 seconds) |
| 10:29:24 | × | kronicmage quits (~kronicmag@neotame.csclub.uwaterloo.ca) (Ping timeout: 265 seconds) |
| 10:29:25 | ash3en1 | is now known as ash3en |
| 10:29:42 | <probie> | Handwriting is one thing, but it's the same amount of effort to type 马 as 馬 |
| 10:31:32 | → | kronicmage joins (~kronicmag@neotame.csclub.uwaterloo.ca) |
| 10:34:08 | <probie> | . is slightly easier to type than ∘, but with a proper input method, it's not _much_ harder. My normal setup for writing unicode maths characters in code is based on Agda's input method, so it's just `\o` (two key presses) |
| 10:35:29 | × | longlongdouble quits (~longlongd@2405:201:5c16:135:7459:cd00:c885:3805) (Ping timeout: 252 seconds) |
| 10:40:25 | → | longlongdouble joins (~longlongd@117.234.189.117) |
| 10:42:45 | → | notzmv joins (~daniel@user/notzmv) |
| 10:43:27 | → | ash3en1 joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 10:44:52 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
| 10:45:44 | × | ash3en quits (~Thunderbi@146.70.124.222) (Ping timeout: 272 seconds) |
| 10:45:45 | ash3en1 | is now known as ash3en |
| 10:53:16 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 10:53:53 | <kuribas> | Is an ADT a category? |
| 10:54:00 | <kuribas> | Then mapping an ADT into another one would be a functor? |
| 10:56:16 | → | supercode joins (~supercode@user/supercode) |
| 11:03:14 | → | harveypwca joins (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) |
| 11:03:15 | <tomsmeding> | kuribas: if it's a category, then what are its objects and its arrows? |
| 11:04:53 | <kuribas> | tomsmeding: Arrows are the products and sums I suppose? |
| 11:05:03 | <kuribas> | Objects are the types? |
| 11:05:35 | <ncf> | ?? |
| 11:05:35 | <tomsmeding> | the "standard" example of a category in the context of FP is: objects are types, arrows (morphisms) are functions |
| 11:05:58 | <tomsmeding> | it works because the identity function is a thing at each type (i.e. on each object), and functions compose |
| 11:06:10 | <tomsmeding> | an ADT would be one object in that category |
| 11:06:53 | <tomsmeding> | kuribas: are you trying to encapsulate some kind of structure in a function from one ADT to another, more than there is in "any function"? |
| 11:07:01 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
| 11:07:59 | <tomsmeding> | if so, then perhaps the concept of an F-algebra is what you are looking for |
| 11:08:04 | <kuribas> | tomsmeding: I am reading the "databases as categories" article: https://math.libretexts.org/Bookshelves/Applied_Mathematics/Seven_Sketches_in_Compositionality%3A_An_Invitation_to_Applied_Category_Theory_(Fong_and_Spivak)/03%3A_Databases-_Categories_functors_and_(co)limits/3.03%3A_Functors_natural_transformations_and_databases |
| 11:08:11 | <kuribas> | I wonder if that works for ADTs too. |
| 11:08:28 | <kuribas> | So I could transform an ADT to a database table, using a functor. |
| 11:08:42 | <tomsmeding> | how on Earth does an ADT correspond to a database table? :p |
| 11:09:36 | <kuribas> | An ORM for example. |
| 11:10:08 | tomsmeding | is out of comfort zone |
| 11:10:31 | <Inst> | wait, do database tables support sum types? |
| 11:10:43 | <Inst> | as in, can a database table be in one of two different schemas? |
| 11:11:06 | tomsmeding | has no clue what's going on on that page |
| 11:11:11 | tomsmeding | sneaks off |
| 11:11:38 | → | xff0x joins (~xff0x@2405:6580:b080:900:fc69:912f:320c:e811) |
| 11:11:59 | <ncf> | this is the most programmer-brained introduction to presheaves i have ever seen |
| 11:14:30 | × | supercode quits (~supercode@user/supercode) (Quit: Client closed) |
| 11:14:40 | <probie> | Inst: If it's not a normal relational database, then sum types may be easily supported :p. If you want to model it in a relational database and don't want to risk being two variants at once, you can have n columns, each being a nullable foreign key to that variant's table, and a constraint that exactly one of those columns is not null |
| 11:14:44 | <ncf> | Inst: as long as you can come up with a notion of homomorphism between instances of different schemas, sure ("there are none" is a valid answer) |
| 11:15:26 | <haskellbridge> | <hellwolf> I recalled a talk from "David Spivak: Categorical Databases". I appreciate people's relentless searches of composition, especially from mathematicians (Bartosz Milewski, et. al.) ... but sometimes someone just gotta find a concrete use case that others can understand and apply the insights. |
| 11:17:20 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 244 seconds) |
| 11:17:23 | → | ash3en1 joins (~Thunderbi@146.70.124.222) |
| 11:18:47 | × | emfrom quits (~emfrom@37.171.102.197) (Remote host closed the connection) |
| 11:19:01 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 11:19:09 | → | euleritian joins (~euleritia@dynamic-176-006-146-045.176.6.pool.telefonica.de) |
| 11:19:26 | × | euleritian quits (~euleritia@dynamic-176-006-146-045.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 11:19:40 | ash3en1 | is now known as ash3en |
| 11:19:42 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 11:20:31 | × | ash3en quits (~Thunderbi@146.70.124.222) (Client Quit) |
| 11:20:52 | → | ash3en joins (~Thunderbi@146.70.124.222) |
| 11:20:59 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 255 seconds) |
| 11:21:55 | → | merijn joins (~merijn@77.242.116.146) |
| 11:22:30 | × | longlongdouble quits (~longlongd@117.234.189.117) (Ping timeout: 244 seconds) |
| 11:25:54 | → | longlongdouble joins (~longlongd@117.234.41.81) |
| 11:27:45 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
| 11:31:28 | → | ash3en1 joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 11:33:04 | × | ash3en quits (~Thunderbi@146.70.124.222) (Ping timeout: 252 seconds) |
| 11:33:04 | ash3en1 | is now known as ash3en |
| 11:34:11 | → | merijn joins (~merijn@77.242.116.146) |
| 11:42:42 | → | Guest0012 joins (~Guest0012@2402:a00:401:f093:da9e:f3ff:fe4b:8a8b) |
| 11:47:03 | × | Guest0012 quits (~Guest0012@2402:a00:401:f093:da9e:f3ff:fe4b:8a8b) (Ping timeout: 256 seconds) |
| 11:52:08 | × | libertyprime quits (~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz) (Remote host closed the connection) |
| 11:52:40 | → | SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky) |
| 11:57:28 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 11:59:58 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds) |
| 12:00:05 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 12:00:51 | → | euleritian joins (~euleritia@dynamic-176-006-146-045.176.6.pool.telefonica.de) |
| 12:01:24 | × | spenat quits (~spenat@c-1125235c.012-6-62726f1.bbcust.telenor.se) (Ping timeout: 252 seconds) |
| 12:02:07 | → | caconym joins (~caconym@user/caconym) |
| 12:05:32 | × | longlongdouble quits (~longlongd@117.234.41.81) (Ping timeout: 255 seconds) |
| 12:08:41 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 255 seconds) |
| 12:11:08 | → | merijn joins (~merijn@77.242.116.146) |
| 12:12:17 | → | longlongdouble joins (~longlongd@117.225.99.28) |
| 12:13:30 | × | euleritian quits (~euleritia@dynamic-176-006-146-045.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 12:13:48 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 12:20:48 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 12:26:23 | × | longlongdouble quits (~longlongd@117.225.99.28) (Ping timeout: 265 seconds) |
| 12:26:42 | → | longlongdouble joins (~longlongd@117.234.170.44) |
| 12:31:13 | × | sroso quits (~sroso@user/SrOso) (Quit: Leaving :)) |
| 12:38:12 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:46:30 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 12:49:45 | × | harveypwca quits (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving) |
| 12:57:32 | × | ol0ck quits (~quassel@user/ol0ck) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 12:57:46 | → | ol0ck joins (~quassel@2001:41d0:2:8cda::1) |
| 12:58:30 | × | ol0ck quits (~quassel@2001:41d0:2:8cda::1) (Changing host) |
| 12:58:30 | → | ol0ck joins (~quassel@user/ol0ck) |
| 12:59:32 | × | ol0ck quits (~quassel@user/ol0ck) (Client Quit) |
| 13:00:14 | → | ol0ck joins (~quassel@user/ol0ck) |
| 13:08:45 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |
| 13:09:41 | → | Everything joins (~Everythin@178-133-144-30.mobile.vf-ua.net) |
| 13:12:58 | → | spenat joins (~spenat@c-92-35-37-17.bbcust.telenor.se) |
| 13:15:48 | × | Versality quits (~Versality@user/Versality) (Remote host closed the connection) |
| 13:16:45 | → | Versality joins (~Versality@user/Versality) |
| 13:19:56 | → | Square2 joins (~Square4@user/square) |
| 13:24:45 | → | Guest12 joins (~Guest12@31.154.179.218) |
| 13:25:11 | × | Guest12 quits (~Guest12@31.154.179.218) (Quit: Client closed) |
| 13:25:25 | → | Guest73 joins (~Guest12@31.154.179.218) |
| 13:33:44 | × | Versality quits (~Versality@user/Versality) (Remote host closed the connection) |
| 13:34:53 | → | Versality joins (~Versality@user/Versality) |
| 13:42:09 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 248 seconds) |
| 13:44:06 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 13:45:03 | → | enikar joins (~enikar@user/enikar) |
| 13:47:23 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:49:10 | × | bastelfreak quits (bastelfrea@libera/staff/VoxPupuli.bastelfreak) (Quit: WeeChat 4.3.5) |
| 13:49:52 | → | bastelfreak joins (bastelfrea@libera/staff/VoxPupuli.bastelfreak) |
| 13:50:19 | → | weary-traveler joins (~user@user/user363627) |
| 13:55:37 | × | Everything quits (~Everythin@178-133-144-30.mobile.vf-ua.net) (Quit: leaving) |
| 13:57:46 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:59:06 | × | longlongdouble quits (~longlongd@117.234.170.44) (Ping timeout: 252 seconds) |
| 14:00:12 | → | longlongdouble joins (~longlongd@2405:201:5c16:135:7459:cd00:c885:3805) |
| 14:05:35 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
| 14:05:53 | × | Guest73 quits (~Guest12@31.154.179.218) (Ping timeout: 256 seconds) |
| 14:06:41 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 14:07:01 | → | Guest12 joins (~Guest12@31.154.179.218) |
| 14:07:54 | → | merijn joins (~merijn@77.242.116.146) |
| 14:13:52 | → | emma-underscores joins (~underscor@pool-108-54-214-254.nycmny.fios.verizon.net) |
| 14:14:23 | × | mulk quits (~mulk@pd95146e9.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 14:16:52 | → | mulk joins (~mulk@pd95146e9.dip0.t-ipconnect.de) |
| 14:18:30 | <iphy> | {-# LANGUAGE DeriveFunctor #-} |
| 14:18:30 | <iphy> | {-# LANGUAGE DeriveGeneric #-} |
| 14:18:30 | <iphy> | {-# LANGUAGE DerivingVia #-} |
| 14:18:30 | <iphy> | {-# LANGUAGE StrictData #-} |
| 14:18:30 | <iphy> | {-# LANGUAGE TypeOperators #-} |
| 14:18:31 | <iphy> | module Language.Cimple.Annot |
| 14:18:31 | <iphy> | ( AnnotF (..) |
| 14:18:32 | <iphy> | ) where |
| 14:18:33 | <iphy> | import Data.Fix (Fix, hoistFix) |
| 14:18:33 | <iphy> | import Data.Functor.Classes (Eq1, Read1, Show1) |
| 14:18:34 | <iphy> | import Data.Functor.Classes.Generic (FunctorClassesDefault (..)) |
| 14:18:34 | <iphy> | import Data.Functor.Compose (Compose (..)) |
| 14:18:35 | <iphy> | import GHC.Generics (Generic, Generic1) |
| 14:18:36 | <iphy> | data AnnotF attr a = Annot { attr :: attr, unAnnot :: a } |
| 14:18:36 | <iphy> | deriving (Functor, Generic, Generic1) |
| 14:18:37 | <iphy> | deriving (Show1, Read1, Eq1) via FunctorClassesDefault (AnnotF attr) |
| 14:18:42 | <iphy> | oops, sorry |
| 14:18:50 | <iphy> | https://www.irccloud.com/pastebin/dwAsXj9Z/ |
| 14:19:30 | <iphy> | this is not working on ghc 9.6.5 anymore, but it works on 9.4.3. am I doing something wrong? is there something new I need to do for this? |
| 14:20:23 | <iphy> | this is the error https://www.irccloud.com/pastebin/VqT6CteH/error |
| 14:22:59 | <tomsmeding> | iphy: is it the ghc version that makes the difference, or the version of some library? Are you using the same version of transformers-compat in both cases? |
| 14:25:43 | × | Versality quits (~Versality@user/Versality) (Remote host closed the connection) |
| 14:29:37 | <tomsmeding> | iphy: compiles for me if I add (Show, Read, Eq) to the first deriving clause |
| 14:32:45 | <tomsmeding> | my conjecture is that 9.6 changed its handling of quantified constraints, in particular the one in the superclass list of GEq1 https://hackage.haskell.org/package/transformers-compat-0.7.2/docs/Data-Functor-Classes-Generic-Internal.html#t:GEq1 |
| 14:42:07 | × | SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Ping timeout: 264 seconds) |
| 14:43:00 | <iphy> | Good question, I haven't checked the versions |
| 14:43:05 | <iphy> | But thanks, I'll try that |
| 14:44:36 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds) |
| 14:48:10 | → | euleritian joins (~euleritia@dynamic-176-006-148-028.176.6.pool.telefonica.de) |
| 14:48:13 | → | SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky) |
| 14:49:26 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 265 seconds) |
| 14:49:31 | × | Guest12 quits (~Guest12@31.154.179.218) (Ping timeout: 256 seconds) |
| 14:49:57 | × | misterfish quits (~misterfis@31-161-39-137.biz.kpn.net) (Ping timeout: 248 seconds) |
| 15:05:24 | → | benkard joins (~mulk@pd95146e9.dip0.t-ipconnect.de) |
| 15:06:00 | × | mulk quits (~mulk@pd95146e9.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 15:06:00 | benkard | is now known as mulk |
| 15:12:13 | × | alp quits (~alp@2001:861:e3d6:8f80:86cd:f9bc:2fcc:950e) (Remote host closed the connection) |
| 15:16:54 | × | longlongdouble quits (~longlongd@2405:201:5c16:135:7459:cd00:c885:3805) (Read error: Connection reset by peer) |
| 15:19:37 | → | Leonard26 joins (~Leonard26@49.236.10.26) |
| 15:21:38 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 245 seconds) |
| 15:23:02 | <Leonard26> | Hello! =D I was wondering if in Haskell there is a way to simulate pointers like in C/C++? |
| 15:23:02 | <Leonard26> | Particularly I am interested in reproducing this piece of code |
| 15:23:03 | <Leonard26> | static GstElement *cur_effect; |
| 15:23:03 | <Leonard26> | I'm not sure how it is even called in C, I've only learned Haskell up so far, from what I understand it's some type of static variable? |
| 15:25:07 | <haskellbridge> | <hellwolf> IO MVar? |
| 15:25:42 | <haskellbridge> | <hellwolf> unless you want to touch some unsafe stuff. |
| 15:26:45 | <Leonard26> | It tells me that the package is deprecated in favour of another. |
| 15:26:45 | <Leonard26> | https://hackage.haskell.org/package/strict-mvar |
| 15:27:27 | <Leonard26> | I'm a bit concerned of the consequences of unsafe stuff, I think you mean unsafePerformIO? |
| 15:27:41 | → | merijn joins (~merijn@77.242.116.146) |
| 15:29:12 | <l-Shane-l> | {-# LANGUAGE ForeignFunctionInterface #-} |
| 15:29:12 | <l-Shane-l> | and import Foreign.Ptr maybe? |
| 15:30:00 | <haskellbridge> | <hellwolf> stuff from Foreign.Marshal.Array |
| 15:30:01 | <haskellbridge> | <hellwolf> e.g. |
| 15:30:56 | <haskellbridge> | <hellwolf> again, I'd probably start with what do you want to achieve, a lot of safe options will get you quite far in Haskell |
| 15:31:30 | <haskellbridge> | <hellwolf> Retro fit Haskell with what you knew from other languages typically works poorly in Haskell. |
| 15:32:55 | <Leonard26> | Yes, as I understand it Haskell doens't require pointers, that's just because I'm trying to reproduce some code from C I guess |
| 15:32:57 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 15:34:19 | <Leonard26> | https://paste.tomsmeding.com/iFRl46SM |
| 15:34:19 | <Leonard26> | This is the code I'm trying to reproduce, I managed to get just about everything right but I can't get some variables to work in the functions outside of the main function. |
| 15:34:20 | <Leonard26> | Mainly pad_probe_cb and event_probe_cb |
| 15:34:42 | → | ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 15:34:50 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Remote host closed the connection) |
| 15:36:39 | <Leonard26> | https://paste.tomsmeding.com/9JN3hbuD |
| 15:36:40 | <Leonard26> | This is my haskell code |
| 15:36:40 | <Leonard26> | https://paste.tomsmeding.com/0FCFJiGp |
| 15:36:41 | <Leonard26> | And this is the error log |
| 15:37:31 | → | alexherbo2 joins (~alexherbo@2a02-8440-3311-b70e-c993-5f39-72e6-f3a6.rev.sfr.net) |
| 15:38:36 | <Leonard26> | In C all those variables are defined at the beginning of the code, like so |
| 15:38:36 | <Leonard26> | static GstPad *blockpad; |
| 15:38:37 | <Leonard26> | static GstElement *conv_before; |
| 15:38:37 | <Leonard26> | static GstElement *conv_after; |
| 15:38:38 | <Leonard26> | static GstElement *cur_effect; |
| 15:38:38 | <Leonard26> | static GstElement *pipeline; |
| 15:38:39 | <Leonard26> | But in Haskell I can't figure out a way to reproduce this =( |
| 15:40:45 | <geekosaur> | there are ways to do it, but we strongly prefer passing them in either `State` or `ReaderT` with a record of the "environment" (if they're mutable, it's `ReaderT Env IO` with `ENV` being a record of `IORef`s) |
| 15:41:11 | <geekosaur> | and use `StateT`/`ReaderT` to transparently pass it around as needed |
| 15:41:45 | <institor> | gtk on windows huh... |
| 15:41:54 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:41:56 | <institor> | on a more concrete level, `source` and `pipeline` simply aren't defined |
| 15:42:01 | <institor> | what are you expecting these to be |
| 15:42:24 | <institor> | the names are just not in scope |
| 15:43:50 | <Leonard26> | They are defined in main, row 148 and 156 |
| 15:45:02 | <Leonard26> | I'll read on about `State` and `ReaderT`, thank you |
| 15:45:18 | → | alp joins (~alp@2001:861:e3d6:8f80:86cd:f9bc:2fcc:950e) |
| 15:47:57 | → | Smiles joins (uid551636@id-551636.lymington.irccloud.com) |
| 15:51:34 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:58:36 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 272 seconds) |
| 15:59:09 | → | longlongdouble joins (~longlongd@2405:201:5c16:135:7459:cd00:c885:3805) |
| 16:04:44 | → | tabaqui joins (~root@91.73.194.130) |
| 16:04:45 | → | merijn joins (~merijn@77.242.116.146) |
| 16:07:49 | × | ZLima12 quits (~zlima12@user/meow/ZLima12) (Ping timeout: 260 seconds) |
| 16:08:55 | × | alexherbo2 quits (~alexherbo@2a02-8440-3311-b70e-c993-5f39-72e6-f3a6.rev.sfr.net) (Remote host closed the connection) |
| 16:11:54 | → | spew joins (~spew@155.133.15.183) |
| 16:16:09 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
| 16:19:02 | <institor> | Leonard26: then they are only in scope in `main` |
| 16:19:22 | <institor> | Leonard26: you would do well to understand how `do` notation desugars into the bind operator |
| 16:19:25 | <institor> | as a synopsis |
| 16:21:47 | <institor> | foo :: IO () |
| 16:21:51 | <institor> | foo = do |
| 16:21:56 | <institor> | putSTr "Enter name: " |
| 16:22:00 | <institor> | name <- getLine |
| 16:22:07 | <institor> | putStrLn $ "Hello " ++ name |
| 16:22:09 | <institor> | desugars to |
| 16:22:13 | <merijn> | In fact, for educational purposes I would recommend avoiding do notation |
| 16:22:40 | <institor> | putStr "Enter name: " >> getLine >>= (\name -> putStrLn $ "Hello " ++ name) |
| 16:22:44 | <institor> | s/putSTr/putStr |
| 16:22:51 | <institor> | sorry, i don't believe in copy/paste |
| 16:23:02 | <institor> | i agree with merijn |
| 16:23:21 | <institor> | in fact i usually consider do notation a mild code smell |
| 16:23:27 | <institor> | it suggests there is too much orchestration going on |
| 16:23:32 | <merijn> | I disagree with that, tbh |
| 16:23:44 | <merijn> | I *love* do notation, it's amazing |
| 16:23:59 | <merijn> | Just not for gaining understanding of what you're doing if you don't already know :) |
| 16:24:09 | <institor> | maybe |
| 16:24:13 | × | euleritian quits (~euleritia@dynamic-176-006-148-028.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:24:15 | <institor> | in any case i also use it liberally myself |
| 16:24:30 | → | euleritian joins (~euleritia@77.22.252.56) |
| 16:24:34 | <institor> | i suppose i am just lazy to find pointfree solutions |
| 16:24:41 | <institor> | s/lazy/too lazy |
| 16:24:57 | <institor> | eh maybe i don't mean pointfree |
| 16:25:02 | <institor> | i will shut up now |
| 16:26:24 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:29:00 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 272 seconds) |
| 16:32:06 | <Leonard26> | I'm fairly new to coding, to be honest now that I'm here I'm thinking it would have been better if I started with C in the first place because the language bindings are such hell sometimes, but at the time I didn't really know where to begin with, so now I'm just trying to finish this project in Haskell and move on :] |
| 16:33:10 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:33:20 | → | ash3en joins (~Thunderbi@146.70.124.222) |
| 16:35:12 | <geekosaur> | C has its own problems, mostly that it won't stop you from shooting yourself in the foot |
| 16:35:18 | <geekosaur> | <-- longtime C programmer |
| 16:37:10 | <kuribas> | It's good to know a bit of all, basics of C, functional programming in haskell, ... |
| 16:37:56 | <c_wraith> | As far as I can tell, C makes it almost impossible to not shoot yourself in the foot. |
| 16:38:50 | <c_wraith> | You have to make simplifying assumptions before you know that adding two ints together is safe. |
| 16:40:13 | <merijn> | c_wraith: Just use unsigned :p |
| 16:40:19 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 16:40:37 | <Leonard26> | Well, now I'm feeling relieved! :') |
| 16:40:40 | <c_wraith> | It's tempting, until you see all the bugs related to subtracting size_t values! |
| 16:40:45 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:41:48 | <merijn> | Leonard26: I mean, I have written quite a lot of C/C++ professionally and I'm pretty sure I never wrote anything over 100 lines that didn't have at least several potential bugs in it despite my paranoia :p |
| 16:43:13 | <dolio> | Doesn't really seem like a claim that C is better on its own merits. Just that there's some complicated system being used that's written in C and not Haskell. |
| 16:43:52 | <haskellbridge> | <hellwolf> which makes them complicated |
| 16:44:32 | <Leonard26> | merijn sucks :( |
| 16:45:13 | <haskellbridge> | <hellwolf> but fair enough. I was a C++ person for a good decade or more. |
| 16:50:48 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 245 seconds) |
| 16:51:42 | <Rembane> | c_wraith: Is it totally safe to subtract size_ts until you wrap around? |
| 16:52:11 | <c_wraith> | depends on your definition of "safe" |
| 16:52:43 | <Rembane> | Pick a good one! |
| 16:52:46 | <c_wraith> | it's not UB |
| 16:52:48 | <Rembane> | \o/ |
| 16:52:55 | <Rembane> | Is it derp in a defined way? |
| 16:53:25 | <c_wraith> | I think it's implementation-defined |
| 16:55:12 | <c_wraith> | but in either case, it doesn't make much sense with size_t, so it's very likely to result in logic bugs elsewhere. those are the kinds of issues I was referring to |
| 16:55:23 | <Rembane> | Exciting! :D |
| 16:55:43 | <Rembane> | Maybe size_t is one of those types of number that shouldn't have subtraction nor addition. |
| 16:55:50 | <Rembane> | I don't really know, I'm just guessing. |
| 16:57:49 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 17:03:17 | × | machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds) |
| 17:03:51 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 17:03:53 | → | euphores joins (~SASL_euph@user/euphores) |
| 17:04:36 | × | spew quits (~spew@155.133.15.183) (Quit: spew) |
| 17:07:31 | → | ash3en1 joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 17:07:56 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Client Quit) |
| 17:08:11 | × | ash3en quits (~Thunderbi@146.70.124.222) (Ping timeout: 252 seconds) |
| 17:08:11 | ash3en1 | is now known as ash3en |
| 17:09:10 | <tomsmeding> | c_wraith: are you saying that you can't subtract size_t values? |
| 17:09:32 | <tomsmeding> | ("can't" in the sense of "the implementation might decide to do something weird") |
| 17:09:42 | <c_wraith> | no. |
| 17:09:45 | <geekosaur> | UB if it would be negative |
| 17:09:47 | → | Versality joins (~Versality@user/Versality) |
| 17:09:59 | <c_wraith> | im pretty sure it's not UB, as it's an unsigned type |
| 17:10:03 | <tomsmeding> | unsigned integer wraparound is defined in C; does that not extend to size_t? |
| 17:10:43 | <tomsmeding> | c_wraith: "no" to "subtract" or "no" to "can't" :D |
| 17:11:06 | <c_wraith> | just that the results are often going to violate assumptions made elsewhere on the program. that has been a recurring source of bugs in programs. arithmetic that would be right with a signed type being wrong with an unsigned type |
| 17:11:18 | <tomsmeding> | because of wraparound? |
| 17:11:23 | <c_wraith> | yeah |
| 17:11:28 | <tomsmeding> | okay sure |
| 17:11:43 | <tomsmeding> | so what did you mean with "implementation-defined"? |
| 17:12:32 | <c_wraith> | I can't remember if C defines the results as wrapping, saturating, or makes it implementation-defined |
| 17:12:45 | <tomsmeding> | for regular old unsigned types, it's wrapping |
| 17:13:03 | <tomsmeding> | (certainly not saturating because then the common implementations would be wrong) |
| 17:13:08 | <c_wraith> | in all cases it *is* defined! |
| 17:13:24 | <tomsmeding> | and I'm fairly sure that it's actually _defined_ to wrap, not only implementation-defined |
| 17:14:36 | × | Pozyomka quits (~pyon@user/pyon) (Ping timeout: 272 seconds) |
| 17:14:42 | <tomsmeding> | wikipedia agrees with me (last paragraph of the introduction) https://en.wikipedia.org/wiki/Integer_overflow |
| 17:14:50 | <tomsmeding> | now I'm aware that wikipedia is not a definitive source :) |
| 17:17:15 | → | spew joins (~spew@201.141.99.170) |
| 17:21:30 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds) |
| 17:22:19 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 17:25:38 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:29:05 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 17:32:05 | × | mulk quits (~mulk@pd95146e9.dip0.t-ipconnect.de) (Quit: ZNC - http://znc.in) |
| 17:36:12 | → | mulk joins (~mulk@pd95146e9.dip0.t-ipconnect.de) |
| 17:37:34 | → | tyzef joins (~tyzef@user/tyzef) |
| 17:38:15 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 252 seconds) |
| 17:39:34 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 265 seconds) |
| 17:45:51 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 17:49:31 | → | ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 17:51:58 | × | Leonard26 quits (~Leonard26@49.236.10.26) (Quit: Client closed) |
| 18:02:23 | × | tyzef quits (~tyzef@user/tyzef) (Quit: WeeChat 3.8) |
| 18:03:03 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:10:58 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 18:13:08 | → | sprotte24 joins (~sprotte24@134.245.44.86) |
| 18:14:39 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 18:17:28 | × | l-Shane-l quits (~l-Shane-l@user/l-Shane-l) (Quit: Client closed) |
| 18:18:18 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 18:18:21 | → | BolzmannPain joins (~BolzmannP@user/BolzmannPain) |
| 18:37:15 | × | Nachtgespenst quits (~user@user/siracusa) (Quit: Bye!) |
| 18:44:52 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish) |
| 18:45:48 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 18:49:25 | <dolio> | I tried to look in my copy of the standard, but it's hard to find stuff in there. |
| 18:49:55 | <tomsmeding> | dolio++ for even trying |
| 18:50:14 | <dolio> | I probably don't know what term to search for. |
| 18:50:25 | <tomsmeding> | the wikipedia article has a citation, perhaps that helps? |
| 18:50:29 | <tomsmeding> | it refers to C11 |
| 18:55:56 | × | SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving) |
| 18:56:18 | × | BolzmannPain quits (~BolzmannP@user/BolzmannPain) (Quit: Client closed) |
| 18:57:59 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Remote host closed the connection) |
| 18:57:59 | → | SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky) |
| 18:58:52 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 18:59:24 | × | longlongdouble quits (~longlongd@2405:201:5c16:135:7459:cd00:c885:3805) (Ping timeout: 276 seconds) |
| 18:59:55 | <dolio> | I think that's probably the one I have, but they only appear to cite the entire document. |
| 19:00:55 | <tomsmeding> | dolio: I suppose you have a physical copy? With a digital one, I would search for the quoted "a computation involving unsigned operands can never overflow" |
| 19:01:07 | × | AWizzArd quits (~code@gehrels.uberspace.de) (Changing host) |
| 19:01:07 | → | AWizzArd joins (~code@user/awizzard) |
| 19:01:46 | <dolio> | Oh okay. Yeah. |
| 19:02:38 | <tomsmeding> | here (C11 draft: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf ) I find, in section 9.2.5 paragraph 9: "A computation involving unsigned operands can never overflow, because a result that cannot be represented by the resulting unsigned integer type is reduced modulo the number that is one greater than the largest value that can be represented by the resulting type." |
| 19:02:48 | <dolio> | It's defined to be modular arithmetic. And apparently the reason I was having trouble is that C considers that to not be "overflow". |
| 19:03:20 | <tomsmeding> | I agree it's somewhat confusing terminology |
| 19:03:25 | <tomsmeding> | c_wraith: ^ |
| 19:03:37 | <tomsmeding> | I guess also Rembane |
| 19:03:40 | <dolio> | So if you look in the index for overflow, you won't get that page, I expect. |
| 19:03:44 | <tomsmeding> | heh |
| 19:04:43 | <Rembane> | tomsmeding: Lovely! Fun! I can't see how that every could go wrong. :D |
| 19:05:07 | <tomsmeding> | Rembane: unsigned integers wrapping? What alternative would you suggest :p |
| 19:05:17 | <dolio> | (And just searching for "overflow" in the document has too many hits.) |
| 19:05:17 | <tomsmeding> | I guess the only other sensible alternative is trapping |
| 19:05:31 | <Rembane> | tomsmeding: I think I'm more of the trapping school. |
| 19:05:35 | <Rembane> | tomsmeding: But IIRC that's super slow. |
| 19:05:47 | <tomsmeding> | Rembane: depends on the cpu, I think |
| 19:05:55 | → | ZLima12 joins (~zlima12@user/meow/ZLima12) |
| 19:06:04 | <Rembane> | tomsmeding: Sweet. Maybe I have mixed it up with actually doing bounds checking before the fact. |
| 19:06:10 | <tomsmeding> | x86 has an overflow (! naming ._.) flag that you can check for with a single conditional branch instruction |
| 19:06:46 | <tomsmeding> | a very predictable branch, at that, so while it does increase your code size and increases the pressure on the branch predictor cache, it won't be _too_ egregious |
| 19:07:31 | <tomsmeding> | bounds checking typically involves more than 1 instruction, perhaps even a memory load for the size of the array |
| 19:07:57 | <Rembane> | Good point. Then that instruction shouldn't be too heavy. |
| 19:08:10 | <tomsmeding> | and people have array accesses in the dependency chain (how is that called again?) in hot loops, but usually not unsigned integer arithmetic :p |
| 19:08:31 | <tomsmeding> | well, I guess index arithmetic could be unsigned integer arithmetic, but it's _signed_ integer arithmetic in practice in C |
| 19:11:12 | <monochrom> | BTW the unsigned modulo rule is (in C 2018) 6.2.5 item 9. |
| 19:11:20 | <tomsmeding> | we found it :) |
| 19:11:40 | <tomsmeding> | (though I found it in C11 -- apparently the section numbering didn't change significantly from C11 to C18?) |
| 19:11:59 | <monochrom> | Hrm maybe I should also download the C11 and other versions. (University grants access.) |
| 19:12:26 | <tomsmeding> | er -- I said "9.2.5 paragraph 9" but that was a typo/thinko, should have been 6.2.5 par 9, clearly |
| 19:12:56 | <dolio> | I assume 2018 still isn't free? |
| 19:13:07 | <tomsmeding> | are any free? |
| 19:13:16 | <dolio> | Yeah, the one I have was free. |
| 19:13:23 | <tomsmeding> | O.o |
| 19:13:24 | <dolio> | I'm not going to pay for something like that. |
| 19:13:34 | <tomsmeding> | where did you get it |
| 19:13:47 | <monochrom> | Is it a draft? |
| 19:14:34 | <tomsmeding> | drafts are free indeed, I have never seen anyone before claim that a _final_ version was free |
| 19:14:43 | <tomsmeding> | ISO won't even sell me C11 any more -.- |
| 19:15:01 | <dolio> | Ah, well, drafts are good enough for me. |
| 19:15:19 | <tomsmeding> | they are enough for everyone by plain stupidity of charging for the actual version |
| 19:15:27 | <tomsmeding> | the draft _becomes_ the de facto actual version |
| 19:15:48 | <tomsmeding> | <insert further rant about pointlessness of charging for a _standard_> |
| 19:16:30 | <dolio> | I mainly wanted it to go through and nitpick all the ways in which the supposedly glorious C standard wasn't as well defined as someone here was presenting it as. |
| 19:16:46 | <dolio> | vs. Haskell. |
| 19:16:52 | <tomsmeding> | glorious? |
| 19:17:54 | <tomsmeding> | perhaps the authors of the 701-page document can feel self-satisfied with their volume of output, and therewith call the thing "glorious" |
| 19:18:13 | → | flounders joins (~flounders@173.246.200.74) |
| 19:19:26 | → | hgolden__ joins (~hgolden@146.70.173.165) |
| 19:19:42 | <monochrom> | Both extremes exists. There are also people who unconditionally claim "UB" and they are sometimes wrong. :) |
| 19:21:35 | <dolio> | It was some complaint that the Haskell standard doesn't nail down the exact implementation behavior of enough things. But C really doesn't, either, for a lot of things if you actually look. |
| 19:22:04 | × | hgolden_ quits (~hgolden@169.150.203.36) (Ping timeout: 260 seconds) |
| 19:22:19 | tomsmeding | was told at some point that the C standard actually guarantees very little about implementation details |
| 19:23:04 | <tomsmeding> | due to wanting to support platforms with very unusual (or historical) pointer representations, etc. |
| 19:23:20 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 19:23:27 | → | swamp_ joins (~zmt00@user/zmt00) |
| 19:24:42 | <dolio> | Yeah. There's no guarantee that differen't types inhabit the same memory, so things like casting between different pointer types isn't necessarily kosher. |
| 19:25:13 | × | emma-underscores quits (~underscor@pool-108-54-214-254.nycmny.fios.verizon.net) (Quit: WeeChat 4.4.3) |
| 19:25:14 | <tomsmeding> | hence the cast-through-a-union dance |
| 19:25:29 | <dolio> | Or exact representations of all the integer types. |
| 19:25:29 | <tomsmeding> | because that, supposedly, _is_ defined (or so I was told) |
| 19:25:40 | <tomsmeding> | hence undefined signed integer overflow |
| 19:27:21 | × | zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 276 seconds) |
| 19:31:01 | <dolio> | What is cast-through-a-union? I'd have to look, but I wouldn't necessarily expect a pointer to a union to be guaranteed to have the same address space as a pointer to either of its components. |
| 19:31:12 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 19:31:23 | <dolio> | Also, I think there's no guarantee that writing to one field of a union and reading from a different field actually works. |
| 19:31:39 | <tomsmeding> | no it's not a general casting trick, it is essentially c++'s reinterpret_cast |
| 19:32:04 | <tomsmeding> | int32_t float_to_int(float x) { union { int32_t i; float f; } u; u.f = x; return u.i; } |
| 19:32:21 | <tomsmeding> | as opposed to what naive C enthousiasts might write: |
| 19:32:25 | → | ham2 joins (~ham@user/ham) |
| 19:32:26 | × | hamster quits (~ham@user/ham) (Read error: Connection reset by peer) |
| 19:32:38 | <tomsmeding> | int32_t float_to_int_wrong(float x) { return *(int*)&x; } |
| 19:32:53 | <tomsmeding> | er, *(int32_t*)&x |
| 19:33:04 | <tomsmeding> | dolio: oh isn't there? That would be funny |
| 19:33:20 | <tomsmeding> | I know people are doing this precisely to evade the "pointer casting is not necessarily defined" thing |
| 19:33:25 | <dolio> | There might be special cases where unions like that are defined to work. But not in general, I think. |
| 19:33:46 | <monochrom> | By 6.2.6.2 item 4, you get much guarantees by using memcpy(&dst, &src, the_size). |
| 19:33:51 | × | Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 19:34:59 | <tomsmeding> | monochrom: what standard version are you looking at? In my draft copy of C11, 6.2.6.2#4 is about bitwise operators applied to negative zero |
| 19:35:03 | <tomsmeding> | (of all things) |
| 19:35:25 | <monochrom> | OK OK nitpicking: It only says "copying to unsigned char[n] is OK", they probably forgot to say anything about "from". :) |
| 19:35:31 | <monochrom> | 2018 |
| 19:36:31 | <tomsmeding> | monochrom: same https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2310.pdf (page 48, pdfpage 35) |
| 19:36:39 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 260 seconds) |
| 19:37:41 | <probie> | tomsmeding: I'm pretty sure that use of a union is also not kosher. I'm 90% sure that reading u.i after setting u.f is UB |
| 19:37:55 | tomsmeding | is too lazy to actually go search in the standard myself |
| 19:38:25 | <monochrom> | Oh! Oops, 6.2.6.1 rule 4. |
| 19:38:26 | <tomsmeding> | probie: would that mean that memcpy() is the only defined way to look at the bits of a float value? |
| 19:39:58 | <tomsmeding> | monochrom: that "e.g." is tantalising |
| 19:40:41 | <monochrom> | Programmers probably don't make great lawyers. :) |
| 19:42:06 | <tomsmeding> | and indeed it is funny that they don't say that "copying _from_ unsigned char[n]" is fine |
| 19:42:32 | <monochrom> | "It is safe to copy your data to /dev/null" >:) |
| 19:42:56 | × | flounders quits (~flounders@173.246.200.74) (Ping timeout: 252 seconds) |
| 19:44:20 | <tomsmeding> | probie: footnote 99 on page 72 (pdfpage 59) in section 6.5.2.3 item 3 is relevant here ( https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2310.pdf ) |
| 19:44:35 | <tomsmeding> | (found by <ctrl-F> "object repr") |
| 19:45:03 | → | flounders joins (~flounders@2607:fb91:f6f:855:576:16c:1a7a:3eb2) |
| 19:45:30 | <tomsmeding> | monochrom: so I guess one can memcpy() to an unsigned char[n], put that in a union together with the original type, and take the original type out |
| 19:45:45 | <tomsmeding> | if you don't change the value, it's not a trap representation, and you're safe -- if I'm reading this correctly |
| 19:47:05 | <tomsmeding> | integer types can have trap representations according to the standard, so indeed probie: that union is not kosher! |
| 19:47:25 | <tomsmeding> | (the float value might have an object representation that is a trap representation for int) |
| 19:48:04 | <tomsmeding> | (then again, I used 'int32_t', not 'int' -- searching for "int32_t" doesn't have any hits, so that code was implementation-dependent anyway) |
| 19:48:20 | <tomsmeding> | what a crappy language |
| 19:49:49 | <probie> | At least you can 100% safely use unions to convert between a signed int and an unsigned int of the same size |
| 19:50:37 | <tomsmeding> | probie: it says in 6.2.6.2#5 that every signed int object repr is also a valid object repr for the unsigned int of that size |
| 19:50:45 | <tomsmeding> | it doesn't provide the reverse implication |
| 19:50:55 | <tomsmeding> | do they give that elsewhere? |
| 19:51:32 | <monochrom> | Yeah you don't even need union or memcpy for that special case. |
| 19:51:43 | <tomsmeding> | (also that) |
| 19:52:00 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 19:54:04 | <dolio> | Are float and int compatible types? Seems like the only way the union thing might work. |
| 19:54:11 | <probie> | I should clarify; I'm not saying you should do it, I'm just saying it's a guaranteed predictable case. Since 6.2.6 doesn't explicitly specify a representation for floats, the representation is unspecified (as per 6.2.6.1.1) |
| 19:54:13 | <dolio> | But I don't see anything saying they are. |
| 19:56:59 | <tomsmeding> | dolio: "compatible" seems to be intended for equal types, composite types composed of compatible types (inductively), or enum <-> the underlying int |
| 19:57:25 | <tomsmeding> | e.g. _Generic selects by "compatible" type, which would be pointless if float and int were compatible |
| 19:57:35 | <tomsmeding> | (6.5.1.1) |
| 19:58:03 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 19:59:45 | → | Square joins (~Square@user/square) |
| 20:00:00 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 20:00:09 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
| 20:00:39 | → | caconym joins (~caconym@user/caconym) |
| 20:01:48 | × | Square2 quits (~Square4@user/square) (Ping timeout: 276 seconds) |
| 20:02:43 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 20:03:04 | × | ljdarj1 quits (~Thunderbi@user/ljdarj) (Ping timeout: 272 seconds) |
| 20:03:09 | × | euphores quits (~SASL_euph@user/euphores) (Ping timeout: 246 seconds) |
| 20:04:54 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 20:06:11 | <probie> | If you want to "be safe" you also probably need to check that `__STDC_IEC_559__` is defined, so that you're guaranteed the normal IEEE-754 representations for floats |
| 20:06:31 | <tomsmeding> | probie: is that guaranteed to have no trap representations? |
| 20:06:39 | <tomsmeding> | is there a similar thing for `int`? |
| 20:11:14 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 20:11:28 | → | euphores joins (~SASL_euph@user/euphores) |
| 20:14:56 | <probie> | I just mean that you're guaranteed a representation. The core standard itself defines that for ints, but if `__STDC_IEC_559__` isn't defined, there's nothing stopping an implementation having `float` and `double` be the same type, or using something different to what you'd expect, like posits |
| 20:15:01 | → | weary-traveler joins (~user@user/user363627) |
| 20:19:24 | <tomsmeding> | probie: in my reading of the standard, it doesn't guarantee that `int` has no trap representations |
| 20:20:00 | <tomsmeding> | otherwise, in 6.2.6.2#5, the "(non-trap)" would be redundant |
| 20:20:55 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:25:17 | × | briandaed quits (~root@185.234.210.211) (Remote host closed the connection) |
| 20:25:50 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 20:27:55 | <tomsmeding> | monochrom: reflecting a little bit, while 6.2.6.1#4 is overly restrictive in only allowing to copy _to_ unsigned char[n] and not necessarily _from_, footnote 99 in 6.5.2.3#3 does say that as long as you don't hit trap representations, you can convert through a union |
| 20:29:22 | → | son0p joins (~ff@181.237.206.243) |
| 20:33:23 | monochrom | downloaded the finalized C11 through university access, and snickers at the uncaught typo they had to publish a corrigendum later. |
| 20:33:53 | → | machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net) |
| 20:34:09 | <tomsmeding> | monochrom: from where did you download that? I wanna check if my university pays for this madness too |
| 20:34:09 | × | SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving) |
| 20:35:20 | <monochrom> | So basically they left, e.g., _ _STDC_VERSION_ _ defined as 201ymmL and forgot to fix that. The corrigendum then said "oh we mean 201112L". There are a couple others similar macros. |
| 20:35:40 | <tomsmeding> | that's funny |
| 20:35:51 | <monochrom> | My university library website refers me to techstreet.com. |
| 20:35:56 | <tomsmeding> | O.o |
| 20:36:02 | <monochrom> | or rather, links me to. |
| 20:36:21 | <tomsmeding> | that doesn't seem to have an A record |
| 20:36:37 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:37:19 | <monochrom> | OK right it has to be subscriptions.techstreet.com |
| 20:37:26 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 265 seconds) |
| 20:37:30 | → | Guest7 joins (~Guest7@137.79.192.219) |
| 20:37:53 | → | Guest5 joins (~Guest5@137.79.192.219) |
| 20:38:33 | <monochrom> | That is strange. I thought it was 2024 and no one would set up x.y.com without also setting up y.com. |
| 20:38:57 | × | Guest5 quits (~Guest5@137.79.192.219) (Client Quit) |
| 20:38:58 | <tomsmeding> | oh this seems to be a subscription manager that your university contracted? |
| 20:39:08 | <monochrom> | Counterexample to the fundamental theorem of DNS "DNS is suffix-closed". >:) |
| 20:39:47 | <tomsmeding> | can't find anything for "9899:2024" in the title field, supposedly that should have found it |
| 20:39:51 | <monochrom> | I don't actually know. |
| 20:40:11 | <monochrom> | Right they haven't had 2024 yet, only 2018 for now. |
| 20:40:36 | <monochrom> | But they also have old ones esp. c11 and c99 if you still want them. |
| 20:40:37 | → | sprotte24_ joins (~sprotte24@p200300d16f3f2c00b0d50a9d74dbbab9.dip0.t-ipconnect.de) |
| 20:41:27 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 20:44:42 | × | sprotte24 quits (~sprotte24@134.245.44.86) (Ping timeout: 276 seconds) |
| 20:51:59 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:56:38 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 20:59:02 | × | Guest7 quits (~Guest7@137.79.192.219) (Remote host closed the connection) |
| 20:59:21 | → | Guest7 joins (~Guest7@137.79.192.219) |
| 21:05:29 | → | CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) |
| 21:07:21 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:11:54 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 21:12:57 | → | postcerebral joins (~postcereb@user/postcerebral) |
| 21:17:50 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 21:19:46 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 244 seconds) |
| 21:20:05 | → | ash3en joins (~Thunderbi@146.70.124.222) |
| 21:20:20 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 272 seconds) |
| 21:20:59 | → | Everything joins (~Everythin@178-133-16-55.mobile.vf-ua.net) |
| 21:21:53 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 21:22:46 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:25:14 | × | ubert quits (~Thunderbi@178.115.51.39.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 21:27:08 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 21:27:36 | → | ubert joins (~Thunderbi@178.115.51.39.wireless.dyn.drei.com) |
| 21:28:00 | → | ash3en1 joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 21:29:00 | × | ash3en quits (~Thunderbi@146.70.124.222) (Ping timeout: 252 seconds) |
| 21:29:01 | ash3en1 | is now known as ash3en |
| 21:30:16 | → | Zer000 joins (~02@64.137.132.10) |
| 21:30:48 | <Zer000> | Is there a mirror for wiki.haskell.org? |
| 21:31:30 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:33:09 | <tomsmeding> | the wiki has been offline since yesterday, admins are working on it -- it's a botched upgrade |
| 21:33:37 | <tomsmeding> | (i.e. known issue) |
| 21:36:13 | × | ubert quits (~Thunderbi@178.115.51.39.wireless.dyn.drei.com) (Quit: ubert) |
| 21:36:31 | → | ubert joins (~Thunderbi@178.115.51.39.wireless.dyn.drei.com) |
| 21:37:02 | × | ubert quits (~Thunderbi@178.115.51.39.wireless.dyn.drei.com) (Client Quit) |
| 21:37:13 | → | ubert1 joins (~Thunderbi@178.115.51.39.wireless.dyn.drei.com) |
| 21:38:08 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:38:25 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 21:39:34 | ubert1 | is now known as ubert |
| 21:42:33 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 21:46:33 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 21:49:13 | × | notzmv quits (~daniel@user/notzmv) (Ping timeout: 244 seconds) |
| 21:52:18 | × | ubert quits (~Thunderbi@178.115.51.39.wireless.dyn.drei.com) (Ping timeout: 276 seconds) |
| 21:53:30 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:54:15 | → | harveypwca joins (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) |
| 21:55:22 | <justsomeguy> | I hope they have snapshots and load balancers. |
| 21:55:51 | <mauke> | does anyone know if there's a copy of c11 freely available somewhere? |
| 21:56:25 | <mauke> | (or at least a reasonable price, i.e. not hundreds of dollars for a superseded standard) |
| 21:56:27 | → | hgolden joins (~hgolden@static-198-44-129-51.cust.tzulo.com) |
| 21:57:10 | <dolio> | Is a draft good enough? I'm pretty sure I got mine from the ANSI site. |
| 21:57:41 | × | hgolden__ quits (~hgolden@146.70.173.165) (Ping timeout: 248 seconds) |
| 22:00:25 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 22:00:33 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Read error: Connection reset by peer) |
| 22:00:38 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:01:31 | <mauke> | I already have the drafts |
| 22:03:52 | <dolio> | Ah. |
| 22:04:11 | × | CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 22:04:21 | <monochrom> | I think I heard that they don't even sell the superseded standard. (Alternatively, you can call it infinitely many dollars. :) ) |
| 22:04:42 | → | abenson joins (~user@109.255.240.83) |
| 22:05:08 | → | CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) |
| 22:05:09 | <mauke> | I'm still salty because at one point (in the early 2000s?) they had C89 as a pdf file for like ... $18? |
| 22:05:24 | <mauke> | but the only accepted payment method was a credit card, which I didn't have |
| 22:06:09 | <mauke> | a couple years later, when I had access to a credit card, the price was suddenly around $200 |
| 22:06:34 | <mauke> | or 300? |
| 22:09:45 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 265 seconds) |
| 22:09:53 | × | CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 22:11:34 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:16:18 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 22:17:08 | × | michalz quits (~michalz@185.246.207.203) (Remote host closed the connection) |
| 22:24:01 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds) |
| 22:24:43 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 22:26:53 | → | ash3en1 joins (~Thunderbi@193.32.248.167) |
| 22:26:57 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:28:03 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 246 seconds) |
| 22:28:03 | ash3en1 | is now known as ash3en |
| 22:31:36 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 22:37:10 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 22:37:43 | × | Zer000 quits (~02@64.137.132.10) (Quit: Leaving) |
| 22:42:19 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:42:22 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 22:46:10 | → | ash3en1 joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 22:46:36 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 22:48:22 | × | ash3en quits (~Thunderbi@193.32.248.167) (Ping timeout: 272 seconds) |
| 22:48:23 | ash3en1 | is now known as ash3en |
| 22:54:41 | → | Nachtgespenst joins (~user@user/siracusa) |
| 22:56:42 | → | supercode joins (~supercode@user/supercode) |
| 22:58:15 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:01:34 | × | Guest7 quits (~Guest7@137.79.192.219) (Remote host closed the connection) |
| 23:01:51 | → | Guest7 joins (~Guest7@137.79.192.219) |
| 23:02:55 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 23:08:23 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 23:12:07 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 264 seconds) |
| 23:12:07 | ljdarj1 | is now known as ljdarj |
| 23:13:41 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:15:24 | × | Versality quits (~Versality@user/Versality) (Remote host closed the connection) |
| 23:17:18 | → | Square2 joins (~Square4@user/square) |
| 23:18:09 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 23:19:23 | × | remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!) |
| 23:19:58 | → | remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz) |
| 23:19:59 | × | Square quits (~Square@user/square) (Ping timeout: 252 seconds) |
| 23:24:24 | → | CoolMa7 joins (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) |
| 23:28:48 | × | CoolMa7 quits (~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 23:29:01 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:31:29 | × | Everything quits (~Everythin@178-133-16-55.mobile.vf-ua.net) (Quit: leaving) |
| 23:32:27 | × | acidjnk quits (~acidjnk@p200300d6e7283f86fde9f223924bb8a1.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 23:35:20 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 23:35:48 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 23:43:15 | × | alp quits (~alp@2001:861:e3d6:8f80:86cd:f9bc:2fcc:950e) (Remote host closed the connection) |
| 23:47:06 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:50:26 | × | euphores quits (~SASL_euph@user/euphores) (Ping timeout: 252 seconds) |
| 23:50:36 | × | supercode quits (~supercode@user/supercode) (Quit: Client closed) |
| 23:51:32 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 23:52:49 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:56:17 | → | euphores joins (~SASL_euph@user/euphores) |
| 23:57:45 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 23:58:37 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
All times are in UTC on 2024-11-05.