2022/09/29

2022-09-29 00:03:03 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-09-29 00:04:13 +0200nate3(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-09-29 00:04:37 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds)
2022-09-29 00:05:39 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 244 seconds)
2022-09-29 00:06:20 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2022-09-29 00:11:32 +0200ardell(~ardell@user/ardell) (Quit: Leaving)
2022-09-29 00:15:01 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-09-29 00:15:22 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-09-29 00:15:25 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)
2022-09-29 00:19:29 +0200mastarija(~mastarija@2a05:4f46:e03:6000:328e:3c75:e042:cc19) (Quit: WeeChat 3.5)
2022-09-29 00:20:35 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 00:31:00 +0200jero98772(~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Ping timeout: 264 seconds)
2022-09-29 00:31:42 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
2022-09-29 00:35:11 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-09-29 00:41:04 +0200Guest73(~Guest73@p200300ef9718351a900cd859c72eccfd.dip0.t-ipconnect.de) (Quit: Client closed)
2022-09-29 00:42:17 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-09-29 00:43:31 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:278:be15:4a20:8304) (Ping timeout: 268 seconds)
2022-09-29 00:44:19 +0200slack1256(~slack1256@186.11.98.123) (Ping timeout: 248 seconds)
2022-09-29 00:45:00 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) (Quit: Leaving.)
2022-09-29 01:15:21 +0200ellensol(~ellen@ua-84-216-129-63.bbcust.telenor.se) (Ping timeout: 252 seconds)
2022-09-29 01:19:04 +0200ellensol(~ellen@ua-84-216-129-63.bbcust.telenor.se)
2022-09-29 01:22:31 +0200thyriaen(~thyriaen@2a02:8109:8340:686c:7383:e0e2:ad95:9fce) (Quit: Leaving)
2022-09-29 01:33:35 +0200slack1256(~slack1256@186.11.98.123)
2022-09-29 01:36:01 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 246 seconds)
2022-09-29 01:44:19 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2022-09-29 01:45:57 +0200causal(~user@50.35.83.177)
2022-09-29 01:51:53 +0200jargon(~jargon@184.101.186.15)
2022-09-29 01:54:49 +0200mvk(~mvk@2607:fea8:5ce3:8500::778c)
2022-09-29 01:55:11 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-09-29 01:58:09 +0200moonsheep(~user@user/moonsheep)
2022-09-29 01:58:30 +0200 <moonsheep> hey, if anyone cares, I've found a solution to my problems this morning: https://hackage.haskell.org/package/memory-0.18.0/docs/Data-ByteArray.html#v:convert
2022-09-29 01:58:33 +0200 <moonsheep> took a bit of digging
2022-09-29 01:58:35 +0200 <moonsheep> thanks everyone
2022-09-29 02:00:20 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-09-29 02:01:32 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-09-29 02:04:50 +0200lottaquestions(~nick@2607:fa49:503e:7100:fd11:b240:caa3:7177) (Ping timeout: 268 seconds)
2022-09-29 02:10:20 +0200 <EvanR> ByteString can't do it?
2022-09-29 02:11:44 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-09-29 02:20:15 +0200 <moonsheep> huh?
2022-09-29 02:20:18 +0200 <moonsheep> what do you mean?
2022-09-29 02:20:49 +0200 <moonsheep> I use that function to convert cryptonite's ByteArrayAccess stuff into ByteStrings
2022-09-29 02:21:03 +0200 <moonsheep> instead of some cursed unsafeio homebrew solution
2022-09-29 02:22:07 +0200 <EvanR> oh, that is specifically for cryptonite
2022-09-29 02:24:21 +0200 <janus> apropos cryptonite, funny how nobody seems to hit this infinite loop https://github.com/haskell-foundation/foundation/issues/569
2022-09-29 02:27:23 +0200 <moonsheep> EvanR: yeah that was the issue I was having this morning
2022-09-29 02:27:54 +0200 <moonsheep> janus: always used stock prelude, so no idea
2022-09-29 02:28:47 +0200 <janus> moonsheep: what is the relation to the prelude?
2022-09-29 02:28:57 +0200 <moonsheep> you linked foundation
2022-09-29 02:29:01 +0200 <moonsheep> isn't that an alternative prelude?
2022-09-29 02:29:05 +0200 <moonsheep> or am I misremembering?
2022-09-29 02:29:49 +0200 <EvanR> actually yeah basement is like, the foundation of ... foundation
2022-09-29 02:29:57 +0200 <janus> it's not really an alternative prelude, even though i see it does use that kinda of terminology
2022-09-29 02:30:09 +0200 <EvanR> an alternative base?
2022-09-29 02:30:27 +0200 <janus> doesn't really matter what we call it, the gist of it is that cryptonite uses it
2022-09-29 02:30:35 +0200 <moonsheep> oh right
2022-09-29 02:30:47 +0200 <moonsheep> well either way I haven't hit any infinite loop
2022-09-29 02:32:46 +0200ddellacosta(~ddellacos@143.244.47.77)
2022-09-29 02:34:16 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-09-29 02:34:16 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-09-29 02:34:16 +0200wroathe(~wroathe@user/wroathe)
2022-09-29 02:36:33 +0200 <Axman6> janus: more worrying than the fact it exists is the fact is hasn't been fixed yet...
2022-09-29 02:48:51 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2022-09-29 02:49:33 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-09-29 02:51:26 +0200 <johnw> how can I ask GHC what the HOST_ARCH flag is for my system?
2022-09-29 02:51:41 +0200 <monochrom> I am going to troll the world and name my alternative prelude RoofGarden. :)
2022-09-29 02:52:47 +0200 <monochrom> I think System.Info has it.
2022-09-29 02:52:57 +0200 <johnw> ah, thank you
2022-09-29 02:52:59 +0200 <johnw> just found that too
2022-09-29 02:53:11 +0200 <geekosaur> or ghc --info (look for "Host platform")
2022-09-29 02:53:32 +0200beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 268 seconds)
2022-09-29 02:55:05 +0200mikoto-chan(~mikoto-ch@85-76-146-167-nat.elisa-mobile.fi) (Ping timeout: 252 seconds)
2022-09-29 02:55:36 +0200moonsheep(~user@user/moonsheep) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.2))
2022-09-29 03:06:13 +0200 <johnw> ah, that's what I was looking for
2022-09-29 03:06:29 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
2022-09-29 03:06:53 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 03:07:43 +0200ellensol(~ellen@ua-84-216-129-63.bbcust.telenor.se) (Read error: Connection reset by peer)
2022-09-29 03:09:37 +0200xff0x(~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 265 seconds)
2022-09-29 03:12:24 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 264 seconds)
2022-09-29 03:14:30 +0200mvk(~mvk@2607:fea8:5ce3:8500::778c) (Ping timeout: 268 seconds)
2022-09-29 03:26:31 +0200 <Clinton[m]> I feel like I can simplify this but I'm not sure exactly how:
2022-09-29 03:26:31 +0200 <Clinton[m]> ```
2022-09-29 03:26:31 +0200 <Clinton[m]> foldl' (.) id . map f
2022-09-29 03:31:01 +0200 <monochrom> foldl' (\a x -> a . f x) id
2022-09-29 03:32:24 +0200mikoto-chan(~mikoto-ch@2001:999:250:8e97:e6cf:477a:ca0:6032)
2022-09-29 03:33:05 +0200gustik(~gustik@2a01:c844:2457:2220:475d:34f:d571:996f) (Quit: Leaving)
2022-09-29 03:33:10 +0200 <monochrom> appEndo . foldMap (Endo . f) >:)
2022-09-29 03:33:20 +0200lyle(~lyle@104.246.145.85) (Ping timeout: 244 seconds)
2022-09-29 03:33:24 +0200matsurago(~matsurago@p0092944-vcngn.tkyo.nt.ngn.ppp.ocn.ne.jp)
2022-09-29 03:34:15 +0200_leo92_(~emmanuelu@2a01cb0000f3930098a404e84c4b65b7.ipv6.abo.wanadoo.fr)
2022-09-29 03:34:20 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-09-29 03:35:56 +0200emmanuelux(~emmanuelu@2a01cb0000f3930028bb2a9bfdb59a78.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2022-09-29 03:36:38 +0200 <Clinton[m]> monochrom: I deleted because I thought I worked it out but I didn't.
2022-09-29 03:36:39 +0200 <Clinton[m]> Basically I want to write `f :: (a -> b -> b) -> [a] -> b -> b`
2022-09-29 03:42:56 +0200 <jackdk> :t flip . foldl' . flip
2022-09-29 03:42:57 +0200 <lambdabot> Foldable t => (a -> c -> c) -> t a -> c -> c
2022-09-29 03:43:58 +0200 <EvanR> :t \f -> flip . f . flip
2022-09-29 03:43:59 +0200 <lambdabot> ((b1 -> a1 -> c1) -> a2 -> b2 -> c2) -> (a1 -> b1 -> c1) -> b2 -> a2 -> c2
2022-09-29 03:44:04 +0200 <EvanR> handy
2022-09-29 03:56:44 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-09-29 04:04:56 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-09-29 04:04:56 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-09-29 04:04:56 +0200wroathe(~wroathe@user/wroathe)
2022-09-29 04:12:15 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 258 seconds)
2022-09-29 04:14:09 +0200td_(~td@muedsl-82-207-238-028.citykom.de) (Ping timeout: 244 seconds)
2022-09-29 04:14:58 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
2022-09-29 04:15:14 +0200mmhat(~mmh@p200300f1c70623c9ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6)
2022-09-29 04:16:18 +0200td_(~td@muedsl-82-207-238-058.citykom.de)
2022-09-29 04:16:41 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-09-29 04:23:58 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-09-29 04:24:54 +0200frost(~frost@user/frost)
2022-09-29 04:26:30 +0200jargon(~jargon@184.101.186.15) (Remote host closed the connection)
2022-09-29 04:28:00 +0200jargon(~jargon@184.101.186.15)
2022-09-29 04:32:21 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 04:34:06 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds)
2022-09-29 04:38:35 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-09-29 04:41:47 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-09-29 04:42:26 +0200ddellacosta(~ddellacos@143.244.47.77) (Ping timeout: 260 seconds)
2022-09-29 04:42:37 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-09-29 04:43:00 +0200Henson(~kvirc@207.136.101.195) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
2022-09-29 04:43:57 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-09-29 04:46:49 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 04:47:53 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-09-29 04:48:07 +0200nate3(~nate@98.45.169.16)
2022-09-29 04:57:52 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-09-29 04:59:03 +0200 <Square> I'd imagine cabal command list quite confusing for beginners. cabal build/new-build/v1-build/v2-build !!
2022-09-29 04:59:07 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2022-09-29 05:00:21 +0200L29Ahwishes there was a function to pin/unpin a ByteString in O(<length(s))
2022-09-29 05:01:48 +0200 <EvanR> we should make a new build system to manage all the ways build with the build systems
2022-09-29 05:02:46 +0200 <EvanR> pinning out of the blue seems hard because it's probably sitting in the GC region which is dynamic
2022-09-29 05:02:57 +0200 <EvanR> unpinning though
2022-09-29 05:04:36 +0200 <pavonia> What is pinning?
2022-09-29 05:05:58 +0200 <sm> Square: yup
2022-09-29 05:06:16 +0200L29Ahrewrites his stuff to use ShortByteString for everything that lives longer than a few hundreds of syscalls
2022-09-29 05:11:55 +0200 <jackdk> EvanR: Nix! (And I say that with great affection)
2022-09-29 05:12:54 +0200 <janus> pavonia: "Pinning is the ability to tell the garbage collector not to move a specific object. "
2022-09-29 05:13:23 +0200 <EvanR> heap objects are normally moved around regularly by the garbage collector, unless they are pinned. Which is handy for interfacing with e.g. C
2022-09-29 05:13:42 +0200 <pavonia> Thanks
2022-09-29 05:20:31 +0200ddellacosta(~ddellacos@89.45.224.53)
2022-09-29 05:26:31 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2022-09-29 05:41:53 +0200nate3(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2022-09-29 05:43:36 +0200vglfr(~vglfr@145.224.100.190) (Ping timeout: 264 seconds)
2022-09-29 05:43:36 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer)
2022-09-29 05:44:52 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-09-29 05:45:34 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-09-29 05:45:59 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-09-29 05:46:36 +0200sagax(~sagax_nb@user/sagax) (Ping timeout: 260 seconds)
2022-09-29 05:48:42 +0200vglfr(~vglfr@145.224.100.190)
2022-09-29 05:49:56 +0200off^(~off@173-160-76-137-atlanta.hfc.comcastbusiness.net)
2022-09-29 05:53:03 +0200ddellacosta(~ddellacos@89.45.224.53) (Ping timeout: 250 seconds)
2022-09-29 05:57:51 +0200P1RATEZ(~piratez@user/p1ratez)
2022-09-29 06:02:06 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-09-29 06:03:27 +0200zaquest(~notzaques@5.130.79.72)
2022-09-29 06:05:36 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-09-29 06:05:55 +0200sagax(~sagax_nb@user/sagax)
2022-09-29 06:06:01 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
2022-09-29 06:09:09 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2022-09-29 06:10:22 +0200 <Axman6> I'm sure there's a function for this that doesn't involve a guard or an if statement: safe n = if n >= 0 then n `mod` 256 else 256 - (n `mod` 256)
2022-09-29 06:12:06 +0200 <dolio> abs n `mod` 256?
2022-09-29 06:13:04 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 06:13:44 +0200 <Axman6> nah:
2022-09-29 06:14:01 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-09-29 06:14:41 +0200 <Axman6> for n = -234567, the result should be 185 but that gives 71
2022-09-29 06:15:19 +0200 <dolio> > 256 - (-234567) `mod` 256
2022-09-29 06:15:21 +0200 <lambdabot> 71
2022-09-29 06:17:46 +0200 <monochrom> > (-234567) `div` 256
2022-09-29 06:17:48 +0200 <lambdabot> -917
2022-09-29 06:18:12 +0200 <monochrom> err quot
2022-09-29 06:18:17 +0200 <monochrom> > (-234567) `rem` 256
2022-09-29 06:18:19 +0200 <lambdabot> -71
2022-09-29 06:18:36 +0200 <monochrom> close enough? :)
2022-09-29 06:18:53 +0200 <Axman6> it might be with a cast via word8...
2022-09-29 06:20:41 +0200 <Axman6> > let let f :: Int -> Int; f n = fromIntegral @Word8 @Int (fromIntegral (n `rem` 256)) in (f 234567, f (-234567))
2022-09-29 06:20:42 +0200 <lambdabot> <hint>:1:32: error:
2022-09-29 06:20:42 +0200 <lambdabot> Pattern syntax in expression context: fromIntegral@Word8
2022-09-29 06:20:42 +0200 <lambdabot> Did you mean to enable TypeApplications?
2022-09-29 06:20:46 +0200 <Axman6> % let let f :: Int -> Int; f n = fromIntegral @Word8 @Int (fromIntegral (n `rem` 256)) in (f 234567, f (-234567))
2022-09-29 06:20:46 +0200 <yahb2> <interactive>:144:112: error: ; parse error (possibly incorrect indentation or mismatched brackets)
2022-09-29 06:20:54 +0200 <Axman6> % let f :: Int -> Int; f n = fromIntegral @Word8 @Int (fromIntegral (n `rem` 256)) in (f 234567, f (-234567))
2022-09-29 06:20:54 +0200 <yahb2> <interactive>:146:43: error: ; Not in scope: type constructor or class ‘Word8’ ; Perhaps you meant ‘Word’ (imported from Prelude)
2022-09-29 06:20:59 +0200 <Axman6> :(
2022-09-29 06:21:02 +0200 <Axman6> anyway, that works
2022-09-29 06:21:40 +0200dontdieych(~quassel@146.56.130.54) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-09-29 06:22:35 +0200dontdieych(~quassel@146.56.130.54)
2022-09-29 06:23:00 +0200nate3(~nate@98.45.169.16)
2022-09-29 06:23:06 +0200 <monochrom> if n>=0 then n `mod` 256 else (-n) `rem` (-256) >:)
2022-09-29 06:23:45 +0200 <monochrom> err nevermind
2022-09-29 06:24:22 +0200 <monochrom> No that's actually right haha.
2022-09-29 06:24:42 +0200 <Axman6> branchless bro
2022-09-29 06:24:51 +0200 <Axman6> PR submitted: https://github.com/haskell-foundation/foundation/pull/570
2022-09-29 06:28:12 +0200nate3(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-09-29 06:30:12 +0200 <janus> cool, thanks for working on a PR
2022-09-29 06:38:34 +0200ardell(~ardell@user/ardell)
2022-09-29 06:39:00 +0200fef(~thedawn@user/thedawn)
2022-09-29 06:39:27 +0200jargon(~jargon@184.101.186.15) (Remote host closed the connection)
2022-09-29 06:43:40 +0200fef(~thedawn@user/thedawn) (Ping timeout: 258 seconds)
2022-09-29 06:45:21 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds)
2022-09-29 06:51:25 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 06:56:18 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds)
2022-09-29 06:58:36 +0200ardell(~ardell@user/ardell) (Quit: Leaving)
2022-09-29 07:00:02 +0200kenran(~user@user/kenran)
2022-09-29 07:00:34 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 07:01:40 +0200matsurago(~matsurago@p0092944-vcngn.tkyo.nt.ngn.ppp.ocn.ne.jp) (Quit: Leaving)
2022-09-29 07:03:15 +0200P1RATEZ(~piratez@user/p1ratez) (Remote host closed the connection)
2022-09-29 07:06:51 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-09-29 07:07:03 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 07:10:49 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 265 seconds)
2022-09-29 07:11:42 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-09-29 07:12:57 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-09-29 07:13:04 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
2022-09-29 07:19:34 +0200 <Axman6> I had some time waiting for some benchmarking to run at work
2022-09-29 07:30:24 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:9e6a:c6cb:5be3:53b3)
2022-09-29 07:36:37 +0200coot(~coot@213.134.165.79)
2022-09-29 07:37:47 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
2022-09-29 07:49:32 +0200 <hololeap> what's the relationship between Simon Peyton Jones and Michael Peyton Jones?
2022-09-29 07:49:59 +0200 <hololeap> just curious
2022-09-29 08:04:11 +0200jco(~jco@90-228-194-139-no542.tbcn.telia.com)
2022-09-29 08:05:37 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-09-29 08:10:30 +0200 <kenran> Do you usually define -O2 in your .cabal files? Our "deployment" overrides the optimization flags anyway, so I'd guess purely for development it would be better to not use img
2022-09-29 08:10:34 +0200 <kenran> it*
2022-09-29 08:11:28 +0200gmg(~user@user/gehmehgeh)
2022-09-29 08:18:22 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 08:18:29 +0200 <hololeap> no, using -02 as a default is discouraged, unless you have benchmarks that show it actually increases performance above -O1
2022-09-29 08:18:35 +0200 <hololeap> *-O2
2022-09-29 08:20:39 +0200michalz(~michalz@185.246.207.197)
2022-09-29 08:21:37 +0200 <hololeap> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/using-optimisation.html#ghc-flag--O2
2022-09-29 08:21:55 +0200 <kenran> hololeap: ty!
2022-09-29 08:22:16 +0200 <hololeap> speaking of, I heard that omitting any -O? options was the same as -O1, but this makes it sound like it's actually -O0
2022-09-29 08:23:06 +0200titibandit(~titibandi@xdsl-212-8-150-57.nc.de)
2022-09-29 08:25:15 +0200titibandit(~titibandi@xdsl-212-8-150-57.nc.de) (Remote host closed the connection)
2022-09-29 08:27:58 +0200titibandit(~titibandi@xdsl-212-8-150-57.nc.de)
2022-09-29 08:34:06 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-09-29 08:35:28 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-09-29 08:39:56 +0200nate3(~nate@98.45.169.16)
2022-09-29 08:44:48 +0200nate3(~nate@98.45.169.16) (Ping timeout: 264 seconds)
2022-09-29 08:46:58 +0200mncheck(~mncheck@193.224.205.254)
2022-09-29 08:48:03 +0200mikoto-chan(~mikoto-ch@2001:999:250:8e97:e6cf:477a:ca0:6032) (Ping timeout: 248 seconds)
2022-09-29 08:48:50 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-09-29 08:51:37 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
2022-09-29 08:59:58 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
2022-09-29 09:01:00 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-29 09:02:05 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 09:06:19 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se)
2022-09-29 09:09:42 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-29 09:10:33 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 252 seconds)
2022-09-29 09:11:21 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:8192:f682:3bfc:a7a0)
2022-09-29 09:12:17 +0200acidjnk_new(~acidjnk@p200300d6e7137a441827c7a2ee98ef4a.dip0.t-ipconnect.de)
2022-09-29 09:12:21 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 09:16:43 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 250 seconds)
2022-09-29 09:24:17 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 09:28:55 +0200m5zs7k(aquares@web10.mydevil.net) (Ping timeout: 268 seconds)
2022-09-29 09:33:23 +0200m5zs7k(aquares@web10.mydevil.net)
2022-09-29 09:35:07 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-09-29 09:36:47 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-09-29 09:39:44 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-09-29 09:47:52 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 09:49:43 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 09:51:02 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds)
2022-09-29 09:52:17 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-09-29 09:54:24 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 264 seconds)
2022-09-29 09:55:00 +0200fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2022-09-29 09:55:47 +0200akegalj(~akegalj@93-139-191-226.adsl.net.t-com.hr)
2022-09-29 09:58:24 +0200MajorBiscuit(~MajorBisc@c-001-013-022.client.tudelft.eduvpn.nl)
2022-09-29 10:08:52 +0200waldo(~waldo@user/waldo)
2022-09-29 10:10:35 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-09-29 10:17:57 +0200jakalx(~jakalx@base.jakalx.net)
2022-09-29 10:19:18 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-29 10:21:32 +0200__monty__(~toonn@user/toonn)
2022-09-29 10:26:51 +0200 <phma> dminuoso: Constant-time ladder rungs are made by computing two numbers (EC points or RSA numbers) and discarding one. Laziness results in the unneeded number not being computed.
2022-09-29 10:27:49 +0200probie(cc0b34050a@user/probie)
2022-09-29 10:30:38 +0200piele_(~piele@tbonesteak.creativeserver.net) (Quit: Ciao!)
2022-09-29 10:31:01 +0200piele(~piele@tbonesteak.creativeserver.net)
2022-09-29 10:31:18 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 10:33:02 +0200nschoe(~quassel@178.251.84.79)
2022-09-29 10:35:31 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 10:36:01 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 250 seconds)
2022-09-29 10:37:24 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-09-29 10:38:57 +0200 <dminuoso> phma: Like I said, lazyness can be gotten rid of.
2022-09-29 10:39:17 +0200 <dminuoso> You can make things strict by using BangPatterns or seq/pseq
2022-09-29 10:39:58 +0200cfricke(~cfricke@user/cfricke)
2022-09-29 10:40:06 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 244 seconds)
2022-09-29 10:40:21 +0200 <DigitalKiwi> hololeap: father son i think
2022-09-29 10:40:53 +0200 <Franciman> dminuoso: that's not enough
2022-09-29 10:41:09 +0200 <Franciman> even if you use bang patterns, there is still laziness going on
2022-09-29 10:41:39 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
2022-09-29 10:41:54 +0200 <dminuoso> Franciman: Given the specific situation mentioned, its fine though.
2022-09-29 10:42:19 +0200ft(~ft@p3e9bc57b.dip0.t-ipconnect.de) (Quit: leaving)
2022-09-29 10:42:21 +0200 <Franciman> furthermore, completely removing laziness can be undesirable sometimes
2022-09-29 10:42:52 +0200 <Franciman> because you would make the runtime an hard time to figure how to optimise your code
2022-09-29 10:42:54 +0200 <Franciman> for speed
2022-09-29 10:43:29 +0200 <dminuoso> Franciman: Yes, but given the topic discussed thats absolutely desirable.
2022-09-29 10:43:58 +0200 <Franciman> no i was commenting on my comment
2022-09-29 10:44:00 +0200 <Franciman> sorry
2022-09-29 10:44:02 +0200 <Franciman> don't worry
2022-09-29 10:44:03 +0200 <dminuoso> Without some peer reviewed research, which sadly does not exist currently, you should not write cryptographic code in Haskell - especially more so with optimization enabled.
2022-09-29 10:44:14 +0200 <dminuoso> But I dont want to rant about cryptonite today.
2022-09-29 10:45:51 +0200_leo92_(~emmanuelu@2a01cb0000f3930098a404e84c4b65b7.ipv6.abo.wanadoo.fr) (Quit: au revoir)
2022-09-29 10:46:09 +0200emmanuelux(~emmanuelu@2a01cb0000f3930098a404e84c4b65b7.ipv6.abo.wanadoo.fr)
2022-09-29 10:46:46 +0200 <probie> If you do crypto entirely over unboxed types, how is it much different to other programming languages?
2022-09-29 10:47:23 +0200 <dminuoso> probie: The simplifier can do extremely far reaching optimizations in Haskell.
2022-09-29 10:48:11 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 10:48:21 +0200 <dminuoso> Can can easily affect execution time and caching behavior.
2022-09-29 10:49:15 +0200{-d0t-}(~q_q@user/-d0t-/x-7915216)
2022-09-29 10:49:36 +0200 <{-d0t-}> ohai! Is it possible to make stack checkout repos from extra-deps into a particular path, rather than /tmp?
2022-09-29 10:50:01 +0200 <dr_merijn> probie: It isn't, because security kinda demands something along those lines
2022-09-29 10:50:16 +0200emmanuelux(~emmanuelu@2a01cb0000f3930098a404e84c4b65b7.ipv6.abo.wanadoo.fr) (Changing host)
2022-09-29 10:50:16 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2022-09-29 10:50:26 +0200 <dr_merijn> I suppose linear haskell might allow a higher level approach to be secure, but then that's fairly niche
2022-09-29 10:50:46 +0200 <probie> dminuoso: Isn't that also true for any language with an aggressive optimiser?
2022-09-29 10:51:16 +0200 <dr_merijn> probie: Yes, consider C which (up until basically this year) had no spec compliant way to guarantee data was zeroed out
2022-09-29 10:51:22 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2022-09-29 10:52:15 +0200 <dminuoso> probie: Yup. That's why in robust cryptographic implementations the optimizations are very carefully chosen, and machine output analysed to ensure constant time guarantees remain.
2022-09-29 10:52:26 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2022-09-29 10:52:54 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Remote host closed the connection)
2022-09-29 10:53:13 +0200 <probie> dminuoso: cool - I think we're on the same page. I thought you were saying Haskell in particular is bad, not that it belongs to a class of languages which are bad
2022-09-29 10:53:16 +0200 <dminuoso> At least -O0 might not even be enough, as GHC will apply a variety of optimizations too
2022-09-29 10:53:18 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-09-29 10:53:41 +0200 <dminuoso> probie: Im just saying its terrible for cryptography simply because no peer-reviewed research or into viability for robust cryptographic implementations exist.
2022-09-29 10:53:45 +0200 <dr_merijn> dminuoso: Although, I don't entirely agree with "don't write cryptographic code in Haskell", more like: "Don't write *security sensitive* cryptographic code in Haskell" :p
2022-09-29 10:53:52 +0200 <dminuoso> Sure.
2022-09-29 10:54:00 +0200chele(~chele@user/chele)
2022-09-29 10:54:15 +0200 <dr_merijn> I'm fairly sure cryptonite's hashes are perfectly fine
2022-09-29 10:54:44 +0200 <dminuoso> dr_merijn: Again, that depends. If you use them for password validation they probably are not.
2022-09-29 10:54:53 +0200 <dminuoso> Wouldn't trust anything but libsodium for that.
2022-09-29 10:55:43 +0200 <__monty__> probie: It is particularly unsuited probably. AFAIK there has been no serious analysis of all the side-channels the run-time causes.
2022-09-29 10:56:48 +0200 <dminuoso> Which is another thing, I would rather trust Berinstein, Lange and Schwage to do this. Vincent just does not seem to have any publications in cryptography at all.
2022-09-29 10:57:12 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se)
2022-09-29 11:02:10 +0200 <probie> I've always thought that cryptographic code would best be written in purpose-built languages which have appropriate primitives (e.g. constant time eq, if which executes both branches etc.)
2022-09-29 11:02:48 +0200 <dminuoso> And ideally executed on special purpose hardware. :>
2022-09-29 11:02:53 +0200 <__monty__> Vive la cryptol!
2022-09-29 11:02:58 +0200 <dr_merijn> probie: Like Ivory ;)
2022-09-29 11:03:05 +0200 <dr_merijn> (it was ivory, I think?)
2022-09-29 11:03:25 +0200 <dr_merijn> Which is a DSL implemented in haskell for generating C code for cryptographic stuff
2022-09-29 11:03:42 +0200 <dminuoso> Modern super scalar CPUs are horrible, given that different instructions have different latencies, you have multiple execution units, stalling the pipeline can leak information about the internal pipeline stages
2022-09-29 11:03:47 +0200 <dminuoso> And the worst is: every CPU is different.
2022-09-29 11:04:24 +0200 <dminuoso> There's not a lot of research into the various side-channels of cryptographic code running on modern super scalar machines as far as I know
2022-09-29 11:04:35 +0200 <dminuoso> (Or constant power consumption!)
2022-09-29 11:05:37 +0200 <dminuoso> And its nearly impossible to do well, since much of these microarchitecture details are secret. There's no documentation about what microops exist, how they perform, which instruction is compiled into which microop...
2022-09-29 11:11:27 +0200Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df)
2022-09-29 11:11:55 +0200luffy(~chenqisu1@183.217.201.220)
2022-09-29 11:12:14 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 11:13:51 +0200luffy(~chenqisu1@183.217.201.220) (Max SendQ exceeded)
2022-09-29 11:14:12 +0200madjestic(~madjestic@213.208.229.226)
2022-09-29 11:14:13 +0200inversed(~inversed@90.209.137.56) (Ping timeout: 246 seconds)
2022-09-29 11:14:15 +0200ubert(~Thunderbi@178.165.181.139.wireless.dyn.drei.com)
2022-09-29 11:14:49 +0200luffy(~chenqisu1@183.217.201.220)
2022-09-29 11:15:31 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-09-29 11:15:59 +0200luffy(~chenqisu1@183.217.201.220) (Remote host closed the connection)
2022-09-29 11:16:32 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 11:16:48 +0200luffy(~chenqisu1@183.217.201.220)
2022-09-29 11:16:52 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds)
2022-09-29 11:17:29 +0200luffy(~chenqisu1@183.217.201.220) (Remote host closed the connection)
2022-09-29 11:17:57 +0200luffy(~chenqisu1@183.217.201.220)
2022-09-29 11:19:07 +0200waldo(~waldo@user/waldo) (Ping timeout: 246 seconds)
2022-09-29 11:19:30 +0200luffy(~chenqisu1@183.217.201.220) (Remote host closed the connection)
2022-09-29 11:20:15 +0200luffy(~chenqisu1@183.217.201.220)
2022-09-29 11:20:52 +0200waldo(~waldo@user/waldo)
2022-09-29 11:21:01 +0200luffy(~chenqisu1@183.217.201.220) (Remote host closed the connection)
2022-09-29 11:21:40 +0200luffy(~chenqisu1@183.217.201.220)
2022-09-29 11:21:48 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-09-29 11:22:29 +0200luffy(~chenqisu1@183.217.201.220) (Remote host closed the connection)
2022-09-29 11:22:33 +0200inversed(~inversed@90.209.137.56)
2022-09-29 11:22:58 +0200luffy(~chenqisu1@183.217.201.220)
2022-09-29 11:24:16 +0200mniip(mniip@libera/staff/mniip)
2022-09-29 11:27:11 +0200 <lortabac> I have -Werror in the cabal config, how do I disable it on the command line? (I always forget this)
2022-09-29 11:32:37 +0200nate3(~nate@98.45.169.16)
2022-09-29 11:33:20 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 11:35:27 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-09-29 11:36:22 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-09-29 11:37:33 +0200nate3(~nate@98.45.169.16) (Ping timeout: 250 seconds)
2022-09-29 11:38:14 +0200jakalx(~jakalx@base.jakalx.net)
2022-09-29 11:39:32 +0200{-d0t-}(~q_q@user/-d0t-/x-7915216) (Ping timeout: 265 seconds)
2022-09-29 11:46:05 +0200beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-09-29 11:51:40 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-09-29 11:52:36 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 268 seconds)
2022-09-29 11:52:42 +0200 <lortabac> it worked with -Wwarn
2022-09-29 12:00:39 +0200 <kenran> I'm having a strange problem with code that works fine in seemingly all cases on Linux, while it fails on macOS. It looks like writing into a named pipe (fifo) - it doesn't seem to happen for normal pipes - blocks indefinitely, depending on the size of data. I'll spend the next time trying to minimize the problem, as our setup is way too complicated to reason about, but maybe one of you has stumbled over something similar?
2022-09-29 12:01:13 +0200 <dr_merijn> kenran: Writing into pipes blocks when there's no reader, yes
2022-09-29 12:01:23 +0200 <kenran> So far I know that the default maximum capacity of pipes is smaller on macOS than it is on Linux, but then again, if I just send more data on Linux I never get it to fail.
2022-09-29 12:01:32 +0200 <dr_merijn> kenran: Might be difference in kernel buffer size between linux and macOS?
2022-09-29 12:02:09 +0200 <kenran> There always is a reader (that is, I am the reader and I _think_ [logs tell me] that the reader is ready and trying to read).
2022-09-29 12:02:36 +0200thyriaen(~thyriaen@2a02:8109:8340:686c:7383:e0e2:ad95:9fce)
2022-09-29 12:02:52 +0200thyriaen_(~thyriaen@2a02:8109:8340:686c:7383:e0e2:ad95:9fce)
2022-09-29 12:02:53 +0200 <dr_merijn> kenran: I would test with your code on one side and a dirty shell script or something on the other to see if anything actually goes through
2022-09-29 12:03:06 +0200 <dr_merijn> (i.e. your code writing, some quick script reading and vice versa)
2022-09-29 12:03:20 +0200 <kenran> There's more to my problem which I will try to minimize away, like we're using the serialise library and its hPutSerialise to write, while similarly reading on the other side, and I really get confused with where laziness comes in there.
2022-09-29 12:04:16 +0200mrmr9(~mrmr@user/mrmr)
2022-09-29 12:04:45 +0200 <kenran> dr_merijn: yeah good advice, thanks! I'll need quite some time to get there, as the named pipe is used for communication between two processes, and the one that's started is not easily startable without its parent giving it data in a very specific manner. I mean, it's really hard to even attach a shell script/C reader.
2022-09-29 12:04:58 +0200DavidBinder(~DavidBind@134.2.10.18)
2022-09-29 12:05:11 +0200madjestic(~madjestic@213.208.229.226) (Ping timeout: 260 seconds)
2022-09-29 12:05:40 +0200mrmr(~mrmr@user/mrmr) (Ping timeout: 268 seconds)
2022-09-29 12:05:40 +0200mrmr9mrmr
2022-09-29 12:06:30 +0200 <kenran> I've thought about trying to confirm the capacity thing first by trying to increase it and see if it still fails. Then I'd at least know that I'll always have to work around that and send the data "some other way".
2022-09-29 12:06:48 +0200 <fendor[m]> anyone opinions on sensible warnings for beginners? -Wall is from time to time too much
2022-09-29 12:07:20 +0200 <kenran> fendor[m]: got an example of what might be too much? Missing top-level type signatures or such?
2022-09-29 12:07:44 +0200 <fendor[m]> Missing top-level signatures is the one I desperately want since they have to add the signatures 😄
2022-09-29 12:08:15 +0200 <edm> (beginner question) - on the implementation of length with foldr in graham hutton's course, it's presented as: length xs = foldr (\_ n -> n+1) 0 xs
2022-09-29 12:08:31 +0200 <kenran> :D yeah that's great when teaching I suppose
2022-09-29 12:09:26 +0200 <edm> i sort of accept how it works but i'm not really sure how n is initialised nor more broadly how the lambda function can accept two arguements when it's only being presented with each element of the list each time
2022-09-29 12:09:46 +0200mrmr2(~mrmr@user/mrmr)
2022-09-29 12:10:07 +0200 <fendor[m]> I am not entirely sure whether -Wall is really too much, and I don't have an example from the top of my head what warning might be bad/misleading/too much
2022-09-29 12:11:12 +0200mrmr(~mrmr@user/mrmr) (Ping timeout: 264 seconds)
2022-09-29 12:11:12 +0200mrmr2mrmr
2022-09-29 12:11:29 +0200 <talismanick> Which library best models transactional IO operations rolled back and retried until they succeed? Presumably one of the effect libraries.
2022-09-29 12:11:37 +0200[exa](exa@user/exa/x-3587197) (Ping timeout: 260 seconds)
2022-09-29 12:12:51 +0200 <talismanick> With similarity to logic programming idioms, treating the file system as a successively more-instantiated monotoniclogic variable
2022-09-29 12:13:10 +0200 <talismanick> (well, that'd be convenient, but that's an interface detail)
2022-09-29 12:13:22 +0200 <dr_merijn> fendor[m]: the only one I personally dislike is -Wwarn-unused-do-bind, so I turn that off, the rest of Wall seems fine
2022-09-29 12:14:10 +0200 <kenran> fendor[m]: I've used -Wall plus -Werror=incomplete-patterns and -Werror=missing-fields in a project with multiple people who had never done Haskell before. I mean it's not real evidence for anything but I can't remember them ever having been confused by one of the warnings (as opposed to some of the genuine error messages :))
2022-09-29 12:14:22 +0200 <edm> forget the above, I now see
2022-09-29 12:14:25 +0200 <talismanick> e.g. say I wanted to recurse up the current directory's parents and try editing their contents until a satisfactory state is reached
2022-09-29 12:14:45 +0200 <dminuoso> talismanick: STM?
2022-09-29 12:15:14 +0200 <fendor[m]> thanks, these are great points. I wasn't sure whether I should use -Werror, since while it might be good coding practice, while learning it might forbid code that is valid
2022-09-29 12:15:17 +0200 <dminuoso> Ah hold on, I was scrolled up and didnt see anything past your first message
2022-09-29 12:15:36 +0200 <dminuoso> fendor[m]: -Wcompat should be a default too.
2022-09-29 12:16:13 +0200 <dminuoso> I recall a proposal to do that even
2022-09-29 12:16:15 +0200 <talismanick> dminuoso: STM is great, until it gets muddled with IO business :)
2022-09-29 12:16:28 +0200 <dminuoso> talismanick: well you can do unsafely perform in STM.
2022-09-29 12:16:33 +0200 <dminuoso> *unsafely perform IO
2022-09-29 12:16:39 +0200 <__monty__> kenran: Maybe you can wedge something like tee(1) in between two named pipes?
2022-09-29 12:16:49 +0200 <dminuoso> talismanick: Actually the more I think about it, it *could* be an option for you
2022-09-29 12:17:21 +0200 <dminuoso> The biggest problem is that in STM you might have transient *incorrect* transactions
2022-09-29 12:17:23 +0200 <__monty__> edm: You probably realized but it's just partial application. Building up a function that takes a single argument.
2022-09-29 12:17:56 +0200 <talismanick> "there's got to be a better way!"
2022-09-29 12:18:04 +0200 <edm> __monty__: i think in my case i thought n had to be initialised as 0 first then incremented up until it found a []
2022-09-29 12:18:14 +0200 <dminuoso> fendor[m]: and -Wcompat is not even in -Wall, though I feel it should be.
2022-09-29 12:18:15 +0200 <talismanick> Introducing: new, Kitchen Gun!
2022-09-29 12:18:29 +0200 <edm> __monty__: but of course it's more that it's 1+1+... until it's terminated with 0. i just wasn't visualising it correctly
2022-09-29 12:18:53 +0200 <talismanick> https://www.youtube.com/watch?v=6-7NDP8V-6A
2022-09-29 12:18:53 +0200 <edm> and so yes, n does indeed represent the tail of the list
2022-09-29 12:19:47 +0200ubert(~Thunderbi@178.165.181.139.wireless.dyn.drei.com) (Remote host closed the connection)
2022-09-29 12:20:31 +0200 <talismanick> (I don't really know what algebraic effects are, and at this point I'm afraid to ask)
2022-09-29 12:20:57 +0200 <kenran> __monty__: I'll have to read more about how to do that, interesting idea! Maybe that is really applicable in my case.
2022-09-29 12:21:21 +0200 <talismanick> well, they seemed somewhat similar operationally to CL's stack unwinding, the last I read a little
2022-09-29 12:21:23 +0200 <fendor[m]> -Wcompat feels like overkill a bit to me... We are using recent enough GHC versions anyway, except for the class Eq proposal (removing (/=)), I don't think we should run into any big issues for the students
2022-09-29 12:23:02 +0200akegalj(~akegalj@93-139-191-226.adsl.net.t-com.hr) (Quit: leaving)
2022-09-29 12:24:26 +0200 <dminuoso> fendor[m]: Ah fair. I consider Wcompat to be helpful in general software, since it lets you know when primitives that you are using are deprecated.
2022-09-29 12:24:53 +0200 <dminuoso> Lets you migrate to upstream changes more easily, rather than deciphering compilation errors *when* things get removed or changed.
2022-09-29 12:25:02 +0200 <kenran> dminuoso: I didn't even know about -Wcompat, I'll definitely add this at work, thanks
2022-09-29 12:25:05 +0200 <dminuoso> But probably not so useful in a student setting
2022-09-29 12:25:24 +0200waldo(~waldo@user/waldo) (Ping timeout: 268 seconds)
2022-09-29 12:26:29 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
2022-09-29 12:29:20 +0200 <DigitalKiwi> -j -threaded -Wall -Wcompat -W -Wtabs -rtsopts
2022-09-29 12:29:20 +0200 <DigitalKiwi> ---j -threaded -Werror -Wall -Wcompat -W -Wtabs -rtsopts
2022-09-29 12:30:05 +0200 <DigitalKiwi> ghc-options: -j -threaded -Wall -Wcompat -W -Wtabs -rtsopts -fno-max-valid-hole-fits -fno-max-relevant-binds -fwarn-unused-imports -fwarn-unused-binds -ddump-minimal-imports -fmax-pmcheck-models=5000000
2022-09-29 12:30:28 +0200 <dr_merijn> DigitalKiwi: unused imports and binds are default, I'm pretty sure?
2022-09-29 12:30:29 +0200 <DigitalKiwi> i don't always use -Werror but I always eventually use -Werror
2022-09-29 12:31:48 +0200 <DigitalKiwi> well i wouldn't want them to go and change the default without me knowing now would i
2022-09-29 12:34:25 +0200 <edm> __monty__: thank you for the foldr nudge, that made me go and explicitly right out the application step by step and forced me to look at the foldr implementation, which cleared up a slight confusion about how it terminates. _now_ i think i get it, though i reserve the right to be wrong
2022-09-29 12:36:55 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-09-29 12:37:50 +0200vglfr(~vglfr@145.224.100.190) (Remote host closed the connection)
2022-09-29 12:38:12 +0200vglfr(~vglfr@145.224.100.190)
2022-09-29 12:38:21 +0200vglfr(~vglfr@145.224.100.190) (Remote host closed the connection)
2022-09-29 12:39:05 +0200vglfr(~vglfr@145.224.100.190)
2022-09-29 12:39:16 +0200waldo(~waldo@user/waldo)
2022-09-29 12:39:24 +0200vglfr(~vglfr@145.224.100.190) (Remote host closed the connection)
2022-09-29 12:41:58 +0200vglfr(~vglfr@145.224.100.190)
2022-09-29 12:44:36 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 12:44:55 +0200 <__monty__> > foldr f z [a,b,c]
2022-09-29 12:44:57 +0200 <lambdabot> f a (f b (f c z))
2022-09-29 12:45:02 +0200 <__monty__> ; )
2022-09-29 12:45:19 +0200 <__monty__> > foldl f z [a,b,c] -- Just in case.
2022-09-29 12:45:20 +0200 <lambdabot> f (f (f z a) b) c
2022-09-29 12:49:03 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 250 seconds)
2022-09-29 12:49:18 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-09-29 12:52:34 +0200mniip(mniip@libera/staff/mniip) (Ping timeout: 615 seconds)
2022-09-29 12:56:22 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-09-29 12:58:15 +0200vglfr(~vglfr@145.224.100.190) (Remote host closed the connection)
2022-09-29 12:59:26 +0200lottaquestions(~nick@2607:fa49:503e:7100:79b4:8afd:9b25:f433)
2022-09-29 12:59:52 +0200vglfr(~vglfr@145.224.100.190)
2022-09-29 13:00:35 +0200madjestic(~madjestic@213.208.229.226)
2022-09-29 13:08:32 +0200xff0x(~xff0x@2405:6580:b080:900:2f8c:7144:6283:fa6)
2022-09-29 13:10:57 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-09-29 13:12:27 +0200zxx7529(~Thunderbi@user/zxx7529) (Ping timeout: 250 seconds)
2022-09-29 13:12:46 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5)
2022-09-29 13:12:58 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Client Quit)
2022-09-29 13:13:33 +0200 <edm> __monty__: oh cool, thanks
2022-09-29 13:14:07 +0200fef(~thedawn@user/thedawn)
2022-09-29 13:19:00 +0200talismanick(~talismani@2601:200:c100:c9e0::24ac) (Ping timeout: 264 seconds)
2022-09-29 13:33:36 +0200nate3(~nate@98.45.169.16)
2022-09-29 13:35:07 +0200kuribas(~user@silversquare.silversquare.eu)
2022-09-29 13:37:57 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-09-29 13:38:26 +0200nate3(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2022-09-29 13:40:58 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-09-29 13:41:39 +0200lyle(~lyle@104.246.145.85)
2022-09-29 13:47:04 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-09-29 13:48:44 +0200zxx7529(~Thunderbi@user/zxx7529) (Quit: zxx7529)
2022-09-29 13:48:48 +0200lyle(~lyle@104.246.145.85) (Quit: WeeChat 3.6)
2022-09-29 13:50:16 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 13:50:38 +0200lyle(~lyle@104.246.145.85)
2022-09-29 13:55:05 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-09-29 13:57:40 +0200luffy(~chenqisu1@183.217.201.220) (Ping timeout: 246 seconds)
2022-09-29 14:05:55 +0200Kaiepi(~Kaiepi@142.68.249.28) (Ping timeout: 248 seconds)
2022-09-29 14:06:50 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 14:12:47 +0200notzmv(~zmv@user/notzmv)
2022-09-29 14:14:31 +0200waldo(~waldo@user/waldo) (Ping timeout: 252 seconds)
2022-09-29 14:16:34 +0200xff0x(~xff0x@2405:6580:b080:900:2f8c:7144:6283:fa6) (Ping timeout: 246 seconds)
2022-09-29 14:19:55 +0200thyriaen(~thyriaen@2a02:8109:8340:686c:7383:e0e2:ad95:9fce) (Quit: Leaving)
2022-09-29 14:25:09 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-09-29 14:32:54 +0200off^(~off@173-160-76-137-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection)
2022-09-29 14:33:42 +0200Kaiepi(~Kaiepi@142.68.249.28)
2022-09-29 14:37:16 +0200infinity0_(~infinity0@185.112.146.113)
2022-09-29 14:37:21 +0200infinity0Guest5988
2022-09-29 14:37:21 +0200Guest5988(~infinity0@185.112.146.113) (Killed (tungsten.libera.chat (Nickname regained by services)))
2022-09-29 14:37:22 +0200infinity0_infinity0
2022-09-29 14:39:46 +0200jco(~jco@90-228-194-139-no542.tbcn.telia.com) (Quit: leaving)
2022-09-29 14:40:02 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-09-29 14:40:03 +0200xff0x(~xff0x@2405:6580:b080:900:2f8c:7144:6283:fa6)
2022-09-29 14:40:59 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-09-29 14:43:52 +0200madjestic(~madjestic@213.208.229.226) (Ping timeout: 246 seconds)
2022-09-29 14:45:11 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
2022-09-29 14:46:05 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-09-29 14:46:07 +0200mestre(~mestre@191.177.181.194) (Quit: Lost terminal)
2022-09-29 14:47:03 +0200 <jonathanx> is there any tool for moving stuff between modules? data-definitions, newtypes, functions etc. I'd like to automate the process of adding/removing language extensions & required imports, as well as updating all references
2022-09-29 14:47:27 +0200 <jonathanx> Right now when I move sth I need to go through all callsites and update the import statements, which makes refactoring a hassle
2022-09-29 14:48:02 +0200 <jonathanx> I'm on ghc 9.0.2 if that helps
2022-09-29 14:48:02 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-29 14:50:57 +0200zebrag(~chris@user/zebrag)
2022-09-29 14:54:51 +0200 <geekosaur> I don't think so. HLS hasn't gotten there yet (it still doesn't even adjust imports for suggested typ signatures, much less that). yi was working on that kind of thing but was abandoned
2022-09-29 14:55:39 +0200 <geekosaur> *type
2022-09-29 14:57:07 +0200[exa](exa@user/exa/x-3587197)
2022-09-29 14:57:42 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 14:58:00 +0200Kaiepi(~Kaiepi@142.68.249.28) (Ping timeout: 264 seconds)
2022-09-29 15:00:22 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 15:01:02 +0200 <DigitalKiwi> https://mostlyabsurd.com/posts/2019/06/03/minimal-imports-maximal-imports/
2022-09-29 15:01:24 +0200 <DigitalKiwi> https://www.haskellforall.com/2018/10/detailed-walkthrough-for-beginner.html
2022-09-29 15:05:03 +0200jakalx(~jakalx@base.jakalx.net)
2022-09-29 15:08:32 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2022-09-29 15:09:22 +0200coot(~coot@213.134.165.79) (Quit: coot)
2022-09-29 15:10:27 +0200dsrt^(~dsrt@173-160-76-137-atlanta.hfc.comcastbusiness.net)
2022-09-29 15:13:21 +0200yvan-sraka(~yvan-srak@2a02:a03f:699d:4700:c5fb:5d64:4081:4f77)
2022-09-29 15:16:46 +0200slac65237(~slack1256@191.125.99.77)
2022-09-29 15:18:58 +0200slack1256(~slack1256@186.11.98.123) (Ping timeout: 265 seconds)
2022-09-29 15:20:12 +0200coot(~coot@213.134.165.79)
2022-09-29 15:21:31 +0200 <DigitalKiwi> lol so i did a thing https://www.redbubble.com/shop/ap/126166515?ref=studio-promote
2022-09-29 15:23:03 +0200 <DigitalKiwi> i for one thing my tagging is hilarious https://mostlyabsurd.com/files/2022-09-29-082240_2350x713_scrot.png
2022-09-29 15:23:30 +0200o-90(~o-90@gateway/tor-sasl/o-90)
2022-09-29 15:24:19 +0200 <DigitalKiwi> https://www.redbubble.com/shop/ap/126086308 is also tagged pink lol
2022-09-29 15:24:49 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 246 seconds)
2022-09-29 15:26:10 +0200waldo(~waldo@user/waldo)
2022-09-29 15:26:25 +0200o-90(~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
2022-09-29 15:36:10 +0200 <DigitalKiwi> https://www.redbubble.com/shop/ap/126167868?ref=studio-promote ehehe
2022-09-29 15:36:35 +0200 <DigitalKiwi> where's noan when you need them lol :(
2022-09-29 15:37:09 +0200wroathe(~wroathe@user/wroathe)
2022-09-29 15:39:57 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 15:40:13 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2022-09-29 15:44:43 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-09-29 15:46:13 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 15:46:33 +0200Kaiepi(~Kaiepi@142.68.249.28)
2022-09-29 15:50:56 +0200infinity0_(~infinity0@185.112.146.113)
2022-09-29 15:51:01 +0200infinity0Guest9697
2022-09-29 15:51:01 +0200Guest9697(~infinity0@185.112.146.113) (Killed (copper.libera.chat (Nickname regained by services)))
2022-09-29 15:51:02 +0200infinity0_infinity0
2022-09-29 15:53:34 +0200yvan-sraka(~yvan-srak@2a02:a03f:699d:4700:c5fb:5d64:4081:4f77) (Ping timeout: 252 seconds)
2022-09-29 15:54:26 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-09-29 15:55:10 +0200yvan-sraka(~yvan-srak@37.171.4.168)
2022-09-29 15:57:33 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2022-09-29 15:57:56 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2022-09-29 16:05:51 +0200razetime(~quassel@117.254.35.180)
2022-09-29 16:06:49 +0200kuribas(~user@silversquare.silversquare.eu) (Ping timeout: 265 seconds)
2022-09-29 16:07:00 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 16:09:15 +0200kuribas(~user@silversquare.silversquare.eu)
2022-09-29 16:09:54 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-09-29 16:10:22 +0200yvan-sraka(~yvan-srak@37.171.4.168) (Remote host closed the connection)
2022-09-29 16:15:16 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-09-29 16:16:58 +0200thyriaen_(~thyriaen@2a02:8109:8340:686c:7383:e0e2:ad95:9fce) (Quit: Leaving)
2022-09-29 16:18:52 +0200yvan-sraka(~yvan-srak@37.171.4.168)
2022-09-29 16:24:58 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-09-29 16:25:25 +0200Sgeo(~Sgeo@user/sgeo)
2022-09-29 16:34:05 +0200 <kenran> Using `openFile path WriteMode` throws "file does not exist" for a named pipe created with System.Posix.Files.createNamedPipe path. Using ReadWriteMode works though. I don't really see where that's coming from, looking at the documentation. Any pointers?
2022-09-29 16:37:38 +0200 <geekosaur> named pipes are odd. you can't open for write unless something else has it open for read; see the system docs for named pipes
2022-09-29 16:38:20 +0200 <kenran> Ah, then it's because the "reader" opens it a little bit later. Thanks, exactly what I was looking for geekosaur!
2022-09-29 16:38:24 +0200 <geekosaur> it ends up that the first opener should use ReadWriteMode and you send complete messages over it rather than relying on close
2022-09-29 16:38:42 +0200 <geekosaur> because once closed you have to close and reopen
2022-09-29 16:39:02 +0200 <geekosaur> named pipes are *really* annoying, they're not at all what you might hope for
2022-09-29 16:39:32 +0200 <geekosaur> I'm tempted to say that in most cases where you think you want a named pipe, you really want an AF_UNIX socket
2022-09-29 16:39:48 +0200 <kenran> I've tried debugging the problem I had earlier and we've gotten it down to some code <100 lines that _sometimes_ works on macOS, sometimes doesn't work (blocks indefinitely), and always works on Linux.
2022-09-29 16:40:05 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-09-29 16:40:47 +0200 <kenran> and yeah, it's *really* annoying. it was good to refresh what little knowledge I had of lower-level things, lazy bytestring IO and such.
2022-09-29 16:40:57 +0200 <kenran> though*
2022-09-29 16:41:32 +0200waleee(~waleee@192.165.44.49)
2022-09-29 16:42:48 +0200 <kenran> geekosaur: yeah, I was tempted to try using domain sockets for this. But I think I could also break this whole problem down into bits and pieces and make do with just stdin, stdout, stderr communication with my child process (and get rid of the named pipe altogether).
2022-09-29 16:49:10 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-09-29 16:51:36 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-09-29 16:55:38 +0200kimjetwav(~user@2607:fea8:235e:b600:fded:756d:e09c:6c2d)
2022-09-29 16:55:44 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi)
2022-09-29 16:57:11 +0200yvan-sraka(~yvan-srak@37.171.4.168) (Remote host closed the connection)
2022-09-29 16:57:32 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-09-29 16:58:36 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 16:59:48 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-09-29 17:02:24 +0200waleee(~waleee@192.165.44.49) (Ping timeout: 265 seconds)
2022-09-29 17:03:25 +0200tmiller(~tmiller@199.241.26.152)
2022-09-29 17:06:44 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net)
2022-09-29 17:15:17 +0200shapr(~user@68.54.166.125) (Ping timeout: 252 seconds)
2022-09-29 17:20:01 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-09-29 17:20:54 +0200titibandit(~titibandi@xdsl-212-8-150-57.nc.de) (Remote host closed the connection)
2022-09-29 17:23:49 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-09-29 17:26:29 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-29 17:29:45 +0200Everything(~Everythin@37.115.210.35)
2022-09-29 17:30:14 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:8192:f682:3bfc:a7a0) (Quit: WeeChat 2.8)
2022-09-29 17:30:46 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-09-29 17:31:03 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 17:33:12 +0200waldo(~waldo@user/waldo) (Quit: quit)
2022-09-29 17:34:56 +0200nate3(~nate@98.45.169.16)
2022-09-29 17:38:10 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 265 seconds)
2022-09-29 17:39:49 +0200nate3(~nate@98.45.169.16) (Ping timeout: 250 seconds)
2022-09-29 17:42:02 +0200nschoe(~quassel@178.251.84.79) (Ping timeout: 265 seconds)
2022-09-29 17:43:22 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-09-29 17:50:38 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-09-29 17:58:53 +0200moonsheep(~user@user/moonsheep)
2022-09-29 17:59:31 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 268 seconds)
2022-09-29 18:03:17 +0200cyphase(~cyphase@user/cyphase)
2022-09-29 18:03:52 +0200titibandit(~titibandi@xdsl-212-8-150-57.nc.de)
2022-09-29 18:13:08 +0200rburkholder(~blurb@96.45.2.121) (Remote host closed the connection)
2022-09-29 18:15:21 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 18:17:08 +0200kuribas(~user@silversquare.silversquare.eu) (Remote host closed the connection)
2022-09-29 18:19:47 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 248 seconds)
2022-09-29 18:20:50 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-09-29 18:21:26 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-09-29 18:28:30 +0200EnchanterTimLinux
2022-09-29 18:29:11 +0200dsrt^(~dsrt@173-160-76-137-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection)
2022-09-29 18:29:53 +0200moonsheep(~user@user/moonsheep) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-09-29 18:31:21 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-09-29 18:33:57 +0200acidjnk_new(~acidjnk@p200300d6e7137a441827c7a2ee98ef4a.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-09-29 18:35:43 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
2022-09-29 18:37:47 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2022-09-29 18:38:40 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-09-29 18:47:24 +0200econo(uid147250@user/econo)
2022-09-29 19:00:00 +0200waldo(~waldo@user/waldo)
2022-09-29 19:02:07 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 19:02:07 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 19:06:16 +0200chele(~chele@user/chele) (Remote host closed the connection)
2022-09-29 19:08:41 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds)
2022-09-29 19:11:36 +0200slac65237(~slack1256@191.125.99.77) (Read error: Connection reset by peer)
2022-09-29 19:12:33 +0200slack1256(~slack1256@186.11.53.123)
2022-09-29 19:12:40 +0200Midjak(~Midjak@82.66.147.146)
2022-09-29 19:14:49 +0200razetime(~quassel@117.254.35.180) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-09-29 19:18:25 +0200fmgornick(~fmgornick@2607:ea00:107:3407:20f6:c57b:5fbd:b156)
2022-09-29 19:18:29 +0200kjak(~kjak@pool-108-31-114-135.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2022-09-29 19:18:31 +0200 <fmgornick> ?src zipWith
2022-09-29 19:18:31 +0200 <lambdabot> zipWith f (a:as) (b:bs) = f a b : zipWith f as bs
2022-09-29 19:18:31 +0200 <lambdabot> zipWith _ _ _ = []
2022-09-29 19:19:07 +0200 <ski> fmgornick : btw, you can private message lambdabot too, you know
2022-09-29 19:19:12 +0200sympt(~sympt@user/sympt)
2022-09-29 19:19:40 +0200beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 265 seconds)
2022-09-29 19:19:45 +0200fmgornick(~fmgornick@2607:ea00:107:3407:20f6:c57b:5fbd:b156) (Client Quit)
2022-09-29 19:20:19 +0200kjak(~kjak@pool-108-31-114-135.washdc.fios.verizon.net)
2022-09-29 19:21:42 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-09-29 19:22:47 +0200acidjnk_new(~acidjnk@p200300d6e7137a84f9679ba27a252492.dip0.t-ipconnect.de)
2022-09-29 19:23:14 +0200 <EvanR> quit stealing our codez!
2022-09-29 19:24:48 +0200 <ski> @keal
2022-09-29 19:24:49 +0200 <lambdabot> Keal was so happy with T, coded in basic so run on anything, and does lot
2022-09-29 19:25:32 +0200 <monochrom> the usual quip about duplicating data does not cause anyone losing the data therefore doesn't count as stealing, and the connection with linear logics and types!
2022-09-29 19:28:23 +0200 <geekosaur> could also just download the database (https://github.com/lambdabot/lambdabot/blob/master/lambdabot/State/source)
2022-09-29 19:28:33 +0200 <geekosaur> or look at the haskell libraries report
2022-09-29 19:29:34 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
2022-09-29 19:30:04 +0200 <ski> (presumably it's someone working through basics, has noticed lambdabot has a `src' command, but don't know / think of using it in PM)
2022-09-29 19:30:23 +0200 <ski> (i've seen them do the same thing, three times, now)
2022-09-29 19:30:34 +0200 <geekosaur> more than three
2022-09-29 19:30:42 +0200 <geekosaur> been doing it for several weeks
2022-09-29 19:31:08 +0200 <ski> i see
2022-09-29 19:31:34 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2022-09-29 19:32:00 +0200 <geekosaur> oh, they left already
2022-09-29 19:32:19 +0200 <ski> they did, soon after, the other times i saw, too
2022-09-29 19:32:22 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0)
2022-09-29 19:32:27 +0200 <geekosaur> yep
2022-09-29 19:32:46 +0200 <geekosaur> was hoping they'd stick around a bit since they'd been addressed
2022-09-29 19:33:03 +0200 <ski> maybe i wasn't fast enough for them to notice ..
2022-09-29 19:33:42 +0200 <monochrom> Eventually they will automate it with a script. join-msg-quit no gap. Then you will never be fast enough.
2022-09-29 19:34:34 +0200 <ski> i fear you may be assuming too much ability (or desire) to automate such things
2022-09-29 19:34:42 +0200 <probie> If that script is written in Haskell it's probably paid off
2022-09-29 19:35:17 +0200 <EvanR> monochrom, you wouldn't download source code
2022-09-29 19:35:19 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-29 19:35:44 +0200 <ski> .. but rather object code or executables/binaries ?
2022-09-29 19:35:48 +0200mikoto-chan(~mikoto-ch@2001:999:250:807f:e0f2:d3da:3e99:a813)
2022-09-29 19:36:00 +0200 <EvanR> with a suitable EULA yes
2022-09-29 19:36:05 +0200 <EvanR> get the facts
2022-09-29 19:36:15 +0200 <monochrom> I have downloaded a lot of source code, and likely will still do.
2022-09-29 19:36:46 +0200 <monochrom> I have downloaded all kinds of things.
2022-09-29 19:36:55 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) (Ping timeout: 244 seconds)
2022-09-29 19:37:16 +0200 <EvanR> maybe you have, but you wouldn't
2022-09-29 19:37:19 +0200 <ski> facts would sometimes be stated in source code, sometimes in a binary format
2022-09-29 19:37:22 +0200 <monochrom> OK why?
2022-09-29 19:37:44 +0200 <EvanR> *hangs up the phone*
2022-09-29 19:37:53 +0200 <ski> (logic programming source vs. deductive DB)
2022-09-29 19:38:08 +0200 <monochrom> Is this one of those prank phone calls?
2022-09-29 19:38:30 +0200 <monochrom> *ring ring* "hello time to pee haha" *hang up*
2022-09-29 19:39:14 +0200 <EvanR> more like an intellectual property arnold schwarzenegger sound board
2022-09-29 19:39:30 +0200 <monochrom> (I and my sisters did that after seeing it done on TV)
2022-09-29 19:39:47 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0)
2022-09-29 19:40:57 +0200skionly recalls listening to a CD with recorded prank calls (sent over radio) in school
2022-09-29 19:41:09 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 250 seconds)
2022-09-29 19:41:30 +0200 <geekosaur> my cousin had several LPs of things like that
2022-09-29 19:41:34 +0200 <ski> (iirc, one of them involved calling two pizza places, getting them to talk to each other, each thinking the other was the customer)
2022-09-29 19:41:51 +0200 <geekosaur> and radio bloopers ("excuse me while I take a leak out the window" and such)
2022-09-29 19:42:12 +0200DavidBinder(~DavidBind@134.2.10.18) (Quit: Leaving)
2022-09-29 19:42:46 +0200 <ski> (in another, they called a hot dog place, asked about mashed potatoes, heard they claimed it was home-made, asked how they transported it to the kiosk place, learned that it was made there, then asked if they lived in the kiosk ..)
2022-09-29 19:47:09 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
2022-09-29 19:50:11 +0200learner-monad(~ehanneken@cpe-174-105-47-100.columbus.res.rr.com)
2022-09-29 19:50:40 +0200learner-monad(~ehanneken@cpe-174-105-47-100.columbus.res.rr.com) (Changing host)
2022-09-29 19:50:40 +0200learner-monad(~ehanneken@user/learner-monad)
2022-09-29 19:53:06 +0200fef(~thedawn@user/thedawn) (Quit: Killer)
2022-09-29 19:54:42 +0200cfricke(~cfricke@user/cfricke)
2022-09-29 19:55:18 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-09-29 19:55:27 +0200cfricke(~cfricke@user/cfricke) (Client Quit)
2022-09-29 19:55:55 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-29 20:00:20 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-09-29 20:01:09 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-29 20:03:15 +0200mikoto-chan(~mikoto-ch@2001:999:250:807f:e0f2:d3da:3e99:a813) (Ping timeout: 250 seconds)
2022-09-29 20:12:40 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) (Remote host closed the connection)
2022-09-29 20:13:40 +0200learner-monad(~ehanneken@user/learner-monad) (Quit: Textual IRC Client: www.textualapp.com)
2022-09-29 20:14:16 +0200ft(~ft@p3e9bc57b.dip0.t-ipconnect.de)
2022-09-29 20:14:39 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0)
2022-09-29 20:15:28 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-09-29 20:19:14 +0200learner-monad(~ehanneken@user/learner-monad)
2022-09-29 20:21:37 +0200MajorBiscuit(~MajorBisc@c-001-013-022.client.tudelft.eduvpn.nl) (Ping timeout: 246 seconds)
2022-09-29 20:21:45 +0200learner-monad(~ehanneken@user/learner-monad) (Client Quit)
2022-09-29 20:23:07 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) (Remote host closed the connection)
2022-09-29 20:27:07 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-09-29 20:27:21 +0200Alex_test(~al_test@94.233.240.222) (Ping timeout: 265 seconds)
2022-09-29 20:27:47 +0200AlexZenon(~alzenon@94.233.240.222) (Ping timeout: 252 seconds)
2022-09-29 20:32:32 +0200Alex_test(~al_test@94.233.240.222)
2022-09-29 20:33:31 +0200AlexZenon(~alzenon@94.233.240.222)
2022-09-29 20:36:29 +0200AlexZenon_2(~alzenon@94.233.240.222)
2022-09-29 20:38:03 +0200AlexZenon(~alzenon@94.233.240.222) (Ping timeout: 252 seconds)
2022-09-29 20:41:22 +0200raym(~aritra@user/raym) (Quit: new kernel)
2022-09-29 20:42:07 +0200AlexZenon_2AlexZenon
2022-09-29 20:43:46 +0200Midjak(~Midjak@82.66.147.146) (Ping timeout: 265 seconds)
2022-09-29 20:45:05 +0200raym(~aritra@user/raym)
2022-09-29 20:49:37 +0200SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2)
2022-09-29 20:50:35 +0200 <SridharRatnakuma> ping
2022-09-29 20:51:12 +0200 <[exa]> pong
2022-09-29 20:51:59 +0200 <edmundnoble> ding
2022-09-29 20:52:08 +0200 <darkling> squerp
2022-09-29 20:52:26 +0200 <[exa]> is my knowledge of ICMP incomplete?
2022-09-29 20:52:33 +0200 <ski> @ping
2022-09-29 20:52:33 +0200 <lambdabot> pong
2022-09-29 20:52:38 +0200madjestic(~madjestic@88-159-247-120.fixed.kpn.net)
2022-09-29 20:53:34 +0200 <darkling> I think my packet had the Evil bit set. :)
2022-09-29 20:56:19 +0200jakalx(~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection)
2022-09-29 20:56:20 +0200jakalx(~jakalx@base.jakalx.net)
2022-09-29 20:57:48 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
2022-09-29 20:58:48 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-09-29 20:59:35 +0200 <geekosaur> you can clal it whatever you want; ICMP calls it ECHO REPLY, after all
2022-09-29 20:59:50 +0200ardell(~ardell@user/ardell)
2022-09-29 21:03:27 +0200 <sm> woo, found a stray 33G ghci
2022-09-29 21:03:49 +0200 <sm> I thought things were feeling a bit sluggish
2022-09-29 21:04:13 +0200 <ski> what was it doing ?
2022-09-29 21:05:27 +0200pavonia(~user@user/siracusa)
2022-09-29 21:05:29 +0200 <sm> I couldn't actually find the window. It might have been running hledger-ui
2022-09-29 21:06:25 +0200fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 246 seconds)
2022-09-29 21:09:47 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi)
2022-09-29 21:19:56 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 268 seconds)
2022-09-29 21:20:58 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi)
2022-09-29 21:23:27 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-09-29 21:23:27 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer)
2022-09-29 21:23:37 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0)
2022-09-29 21:23:59 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-09-29 21:25:00 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-09-29 21:25:51 +0200k8yun(~k8yun@user/k8yun)
2022-09-29 21:25:57 +0200rockymarine(~rocky@user/rockymarine)
2022-09-29 21:27:01 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
2022-09-29 21:28:00 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) (Ping timeout: 244 seconds)
2022-09-29 21:30:21 +0200rburkholder(~blurb@96.45.2.121)
2022-09-29 21:30:47 +0200Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Quit: leaving)
2022-09-29 21:34:02 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 265 seconds)
2022-09-29 21:36:28 +0200nate3(~nate@98.45.169.16)
2022-09-29 21:41:14 +0200kavvadias(~kavvadias@2001:9e8:6302:c600:cf66:4db0:f8a4:a055)
2022-09-29 21:41:17 +0200nate3(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2022-09-29 21:43:41 +0200 <kavvadias> hey everyone, im stuck with something and any help would be appreciated, how would i find the same elements of two lists and then take them out of both?
2022-09-29 21:44:31 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-09-29 21:45:36 +0200 <monochrom> The \\ operator can do it in one direction. Perhaps use it twice for two directions.
2022-09-29 21:46:02 +0200Everything(~Everythin@37.115.210.35) ()
2022-09-29 21:46:23 +0200 <monochrom> If it is not already in Prelude, you can get it from Data.List
2022-09-29 21:49:20 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 21:50:00 +0200 <kavvadias> thank you monochrom
2022-09-29 21:51:04 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2022-09-29 21:54:41 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds)
2022-09-29 21:59:59 +0200nschoe(~quassel@2a01:e0a:8e:a190:c8a4:5e1e:f73c:a515)
2022-09-29 21:59:59 +0200nschoe(~quassel@2a01:e0a:8e:a190:c8a4:5e1e:f73c:a515) (Client Quit)
2022-09-29 22:00:01 +0200madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Remote host closed the connection)
2022-09-29 22:01:54 +0200waldo(~waldo@user/waldo) (Ping timeout: 264 seconds)
2022-09-29 22:06:26 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-09-29 22:06:50 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-09-29 22:07:09 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-09-29 22:07:36 +0200mncheck(~mncheck@193.224.205.254) (Ping timeout: 264 seconds)
2022-09-29 22:08:39 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
2022-09-29 22:12:30 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-29 22:15:22 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
2022-09-29 22:16:03 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-29 22:17:11 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-09-29 22:19:37 +0200slack1256(~slack1256@186.11.53.123) (Ping timeout: 252 seconds)
2022-09-29 22:21:04 +0200shapr(~user@68.54.166.125)
2022-09-29 22:24:07 +0200 <DigitalKiwi> П> import Data.List.Unique
2022-09-29 22:24:09 +0200 <DigitalKiwi> П> list1 =[1,2,3,4,5] ; list2 =[5,6,7,8,9]
2022-09-29 22:24:11 +0200 <DigitalKiwi> П> unique $ list1++list2
2022-09-29 22:24:13 +0200 <DigitalKiwi> [1,2,3,4,6,7,8,9]
2022-09-29 22:24:38 +0200Unhammer(~Unhammer@user/unhammer) (Ping timeout: 255 seconds)
2022-09-29 22:25:17 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5)
2022-09-29 22:27:34 +0200 <DigitalKiwi> П> list1' = repeated $ list1++list3
2022-09-29 22:27:35 +0200 <DigitalKiwi> П> list2' = repeated $ list2++list3
2022-09-29 22:27:38 +0200 <DigitalKiwi> П> list1'
2022-09-29 22:27:40 +0200 <DigitalKiwi> [1,2,3,4]
2022-09-29 22:27:42 +0200 <DigitalKiwi> П> list2'
2022-09-29 22:27:44 +0200 <DigitalKiwi> [6,7,8,9]
2022-09-29 22:32:27 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-09-29 22:34:38 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2022-09-29 22:37:28 +0200ardell(~ardell@user/ardell) (Quit: Leaving)
2022-09-29 22:38:36 +0200Unhammer(~Unhammer@user/unhammer)
2022-09-29 22:40:50 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2022-09-29 22:42:52 +0200Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-09-29 22:45:25 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-09-29 22:50:33 +0200k8yun(~k8yun@user/k8yun) (Ping timeout: 268 seconds)
2022-09-29 22:53:18 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi) (Remote host closed the connection)
2022-09-29 22:54:01 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi)
2022-09-29 22:56:32 +0200talismanick(~talismani@2601:200:c100:c9e0::24ac)
2022-09-29 22:56:44 +0200k8yun(~k8yun@user/k8yun)
2022-09-29 22:57:24 +0200coot(~coot@213.134.165.79) (Quit: coot)
2022-09-29 22:58:45 +0200levitating(~irc@user/levitating)
2022-09-29 22:59:27 +0200 <levitating> Hey, I have a program which reads stdin on a loop using getChar. How can I terminate this safely when it reaches EOF?
2022-09-29 23:01:46 +0200kavvadias(~kavvadias@2001:9e8:6302:c600:cf66:4db0:f8a4:a055) (Quit: Client closed)
2022-09-29 23:03:15 +0200 <Hecate> levitating: match on EOF? or use `getLine`?
2022-09-29 23:03:33 +0200 <monochrom> getChar does not return EOF, there is nothing to match.
2022-09-29 23:03:47 +0200 <Hecate> damn
2022-09-29 23:03:51 +0200 <Hecate> then yeah I guess getLine
2022-09-29 23:04:15 +0200 <levitating> using getLine still terminates with an error
2022-09-29 23:04:24 +0200 <levitating> Unless there is a way to check for EOF that I don't know about
2022-09-29 23:04:36 +0200 <monochrom> isEOF can "predict" whether the next read will be EOF.
2022-09-29 23:04:58 +0200 <levitating> I was looking for something like that yeah
2022-09-29 23:05:05 +0200 <levitating> I'll try it out, thanks
2022-09-29 23:05:18 +0200 <monochrom> The truth is of course isEOF actually reads (and if successful, caches for the next read)
2022-09-29 23:05:26 +0200nate3(~nate@98.45.169.16)
2022-09-29 23:06:38 +0200 <DigitalKiwi> https://hackage.haskell.org/package/readline-1.0.3.0/docs/System-Console-Readline.html
2022-09-29 23:07:17 +0200Guest2990(~Guest29@2601:281:d47e:a4c0:a09a:346e:21e1:c743)
2022-09-29 23:08:19 +0200 <c_wraith> if you don't mind being really sketchy, getContents probably has the simplest interface
2022-09-29 23:09:24 +0200 <monochrom> or deeply understanding the interplay between evaluation order and getContents so your usage is not sketchy, which is what I do.
2022-09-29 23:10:10 +0200 <monochrom> (I feed getContents to an incremental parser, works simple and great for ACM ICPC style I/O)
2022-09-29 23:10:12 +0200 <c_wraith> sure, but that's not simple anymore. It's *correct*
2022-09-29 23:10:46 +0200 <monochrom> Oh! Tautologically, a program is either sketchy or correct :)
2022-09-29 23:11:13 +0200 <darkling> Damn you! I'm now trying to think of something that's both.
2022-09-29 23:11:16 +0200 <levitating> isEOF worked fine for now
2022-09-29 23:11:19 +0200 <levitating> Thanks guys
2022-09-29 23:11:45 +0200 <monochrom> Although, beyond ACM ICPC style I/O (which is very simpleton), getContents becomes hard to predict quickly.
2022-09-29 23:12:07 +0200 <DigitalKiwi> https://markkarpov.com/tutorial/megaparsec.html#forcing-consumption-of-input-with-eof
2022-09-29 23:12:42 +0200b0o(0e4a0bf4c9@2604:bf00:561:2000::1bf) (Ping timeout: 264 seconds)
2022-09-29 23:12:56 +0200 <monochrom> darkling: We can have subjective qualitative assessment of proof quality, if a proof of correctness is sketchy, you can have both sketchy and correct :)
2022-09-29 23:12:58 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-09-29 23:13:59 +0200 <monochrom> Actually I don't use getContents for that, I use interact.
2022-09-29 23:14:05 +0200 <darkling> I was thinking something like optimisation heuristics. Never going to get the optimum, but will do well enough if you get it right.
2022-09-29 23:14:06 +0200b0o(0e4a0bf4c9@2604:bf00:561:2000::1bf)
2022-09-29 23:14:35 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 23:15:35 +0200 <monochrom> Most people would call that "that's being practical, don't be an anal perfectionist" :)
2022-09-29 23:15:40 +0200ski. o O ( `isEOF' forces the current tail )
2022-09-29 23:15:46 +0200 <darkling> (Revealing an earlier life as an operational researcher)
2022-09-29 23:15:47 +0200 <ski> "ACM ICPC style I/O" ?
2022-09-29 23:16:58 +0200 <c_wraith> where the input is all some trivial format and adheres to it rigidly
2022-09-29 23:18:25 +0200 <ski> what's "ICPC" ?
2022-09-29 23:18:55 +0200 <ski> (some conference ?)
2022-09-29 23:18:55 +0200fjMSX(~hypni2p@2.92.213.55) (Ping timeout: 265 seconds)
2022-09-29 23:19:02 +0200 <DigitalKiwi> curl -sO https://raw.githubusercontent.com/NixOS/nixpkgs/master/maintainers/maintainer-list.nix && nix-instantiate maintainer-list.nix --eval --strict --json|jq '[.[]]'|jq '.[]'|jq '[.name,.email,.github]' -c|cut -f2- -d '['|cut -f1 -d ']'|sed 's|,"| <|1'|sed 's|","|>,|1'|rev|cut -f2- -d','|rev > maintainer-list-nix.txt
2022-09-29 23:19:03 +0200 <c_wraith> international collegiate programming competition
2022-09-29 23:19:11 +0200 <ski> hm, okay
2022-09-29 23:19:14 +0200 <ski> (never heard)
2022-09-29 23:19:15 +0200 <DigitalKiwi> i am pretty sure that is sketchy and correct
2022-09-29 23:19:39 +0200 <DigitalKiwi> arguably anything i do with jq fits the bill lol
2022-09-29 23:19:45 +0200 <monochrom> So it is only stdin and stdout. It usually goes like "the input has 0 or more lines, each line has 0 or more numbers separated by spaces". Sometimes there are prefixes telling you how many to expect, or sentinels telling you where it ends; other times you have to check for end of line or EOF.
2022-09-29 23:19:46 +0200darklingawards DigitalKiwi the gold medal
2022-09-29 23:19:59 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 250 seconds)
2022-09-29 23:20:03 +0200 <monochrom> And then "for each case, output a line for the answer".
2022-09-29 23:20:41 +0200 <DigitalKiwi> https://twitter.com/grhmc/status/1573093735868801025
2022-09-29 23:21:24 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 264 seconds)
2022-09-29 23:21:40 +0200 <jackdk> Why not do the wrangling in a nix expression?
2022-09-29 23:22:07 +0200 <DigitalKiwi> jq > nix
2022-09-29 23:22:33 +0200 <ski> ic
2022-09-29 23:23:43 +0200k8yun(~k8yun@user/k8yun) (Read error: Connection reset by peer)
2022-09-29 23:23:47 +0200 <monochrom> https://byorgey.wordpress.com/category/competitive-programming/ is byorgey solving a lot of ACM ICPC problems in Haskell. Look for how he does I/O, namely, interact and a simple parser library.
2022-09-29 23:24:08 +0200k8yun(~k8yun@user/k8yun)
2022-09-29 23:24:53 +0200 <monochrom> the Scanner module
2022-09-29 23:24:53 +0200 <jackdk> no
2022-09-29 23:27:24 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 264 seconds)
2022-09-29 23:28:14 +0200 <byorgey> (as an aside, ICPC has been independent of ACM since 2017, so now it is just "ICPC", not "ACM ICPC")
2022-09-29 23:29:08 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-09-29 23:29:50 +0200shapr(~user@68.54.166.125) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-09-29 23:34:04 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 244 seconds)
2022-09-29 23:35:01 +0200 <DigitalKiwi> nix shell nixpkgs#jq nixpkgs#fzf -c bash -c "nix-instantiate --eval --json -E 'builtins.attrNames (import <nixpkgs> {}).haskellPackages' | jq '.[]' -r | fzf"
2022-09-29 23:35:32 +0200 <DigitalKiwi> nix shell nixpkgs#jq nixpkgs#fzf nixpkgs#peco -c bash -c "nix-instantiate --eval --json -E 'builtins.attrNames (import <nixpkgs> {}).haskellPackages' | jq '.[]' -r|peco"
2022-09-29 23:35:47 +0200 <DigitalKiwi> can have peco as a treat
2022-09-29 23:36:11 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net)
2022-09-29 23:37:18 +0200 <darkling> I've got some spectacularly sketchy pipelines for work using sed...
2022-09-29 23:38:18 +0200 <geekosaur> I've done a number of scary things using sed
2022-09-29 23:38:20 +0200 <darkling> (Although I once saw a ray-tracer written in sed. Haven't been able to track it down, sadly.)
2022-09-29 23:39:01 +0200 <geekosaur> in fact I used to have to do them, as I was working on ancient systems which didn't have /usr mounted during boot
2022-09-29 23:39:06 +0200 <monochrom> That is truly the next level heh.
2022-09-29 23:39:20 +0200 <geekosaur> sed's got all that stuff for a reason
2022-09-29 23:40:29 +0200 <darkling> The first time I got my hands on a Linux system, back in the mid '90s, I knew very little about Unix.
2022-09-29 23:40:41 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-29 23:40:43 +0200 <darkling> I couldn't find an interactive text editor, but I did find sed.
2022-09-29 23:41:02 +0200 <darkling> So I configured an entire X11 setup using nothing but sed. All learned from the man pages.
2022-09-29 23:41:10 +0200 <geekosaur> hardcore
2022-09-29 23:41:25 +0200 <darkling> It taught me a lot that I still use. :)
2022-09-29 23:41:47 +0200 <geekosaur> https://funarg.nfshost.com/r2/code/sed/ray/ray.html ?
2022-09-29 23:42:49 +0200 <darkling> Quite possibly.
2022-09-29 23:43:23 +0200 <darkling> Looks denser than I remember, but it was 20+ years ago, so memory may not be all that reliable.
2022-09-29 23:49:46 +0200 <monochrom> The lost art of using sed for xmonad config >:)
2022-09-29 23:50:23 +0200 <monochrom> Coming this April, "my favourite Haskell IDE is sed"
2022-09-29 23:50:23 +0200 <darkling> Some arts deserve to be lost. :)
2022-09-29 23:51:13 +0200 <darkling> Everyone at work thinks I'm weird for using emacs and a shell for my development environment.
2022-09-29 23:51:53 +0200 <darkling> "Where's this function used?" "grep -r app functionName"...
2022-09-29 23:52:43 +0200 <darkling> I'm fairly sure I've failed at least one job interview for admitting that.
2022-09-29 23:52:44 +0200 <monochrom> "vscode still can't auto-convert `f (g (x + 1))` to `f $ g $ x + 1` but it can be done in 2 lines of sed"
2022-09-29 23:53:20 +0200 <smol-hors> can you write vscode plugins in sed?
2022-09-29 23:53:36 +0200 <smol-hors> everything is a plugin in vscode :c
2022-09-29 23:53:41 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
2022-09-29 23:53:57 +0200 <jackdk> darkling: while not as impressive in your efforts, I once wrote an entire nixos config using `ed`. Then I realised that the reason no other editor was working was that `$TERM` wasn't set to something the base system understood.
2022-09-29 23:54:08 +0200 <monochrom> sed script > vscode script > vim script
2022-09-29 23:54:27 +0200 <jackdk> darkling: I do a lot of `rg 'functionName ::'` too.
2022-09-29 23:55:08 +0200 <monochrom> ed is the 2nd most hardcore, yeah :)
2022-09-29 23:55:16 +0200 <darkling> Bonus points for TECO?
2022-09-29 23:56:17 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-09-29 23:56:22 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-29 23:56:46 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) (Quit: Leaving.)
2022-09-29 23:59:13 +0200 <geekosaur> btdt but at this point I've mostly forgotten it