2022/05/30

2022-05-30 00:02:08 +0200odnes(~odnes@5-203-190-124.pat.nym.cosmote.net) (Read error: Connection reset by peer)
2022-05-30 00:05:53 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds)
2022-05-30 00:06:56 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-05-30 00:07:55 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-30 00:11:01 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-05-30 00:12:43 +0200Nahra(~user@static.161.95.99.88.clients.your-server.de)
2022-05-30 00:13:44 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-05-30 00:14:29 +0200cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-05-30 00:15:09 +0200bahamas(~lucian@84.232.141.167)
2022-05-30 00:17:04 +0200nahcetan(~nate@98.45.169.16)
2022-05-30 00:19:38 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 246 seconds)
2022-05-30 00:23:41 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-30 00:26:14 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-30 00:26:56 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-30 00:28:07 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2022-05-30 00:28:12 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 260 seconds)
2022-05-30 00:34:24 +0200Topsi(~Topsi@dyndsl-095-033-020-185.ewe-ip-backbone.de)
2022-05-30 00:41:50 +0200acidjnk(~acidjnk@p200300d0c7068b50adc47863922557b5.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2022-05-30 00:45:57 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-05-30 00:48:12 +0200cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
2022-05-30 00:49:01 +0200 <Bulby[m]> hpc: please explain the scheme joke 🙂
2022-05-30 00:50:15 +0200 <hpc> javascript was originally going to be a lisp
2022-05-30 00:50:22 +0200odnes(~odnes@5-203-156-66.pat.nym.cosmote.net)
2022-05-30 00:50:33 +0200 <hpc> and then late in development the management at netscape thought it would confuse everyone and wanted it to be C-like syntax
2022-05-30 00:50:43 +0200 <Bulby[m]> i've seen it called a lisp in c's clothing
2022-05-30 00:51:15 +0200 <geekosaur> the story back in the day was they wanted to ride the coattails of java
2022-05-30 00:51:32 +0200 <hpc> the lisp family puts out good languages, and imo if it wasn't for how embarassingly verbose lambdas are in js it would be a perfectly fine dynamic language
2022-05-30 00:51:37 +0200 <hpc> certainly better than elisp at least
2022-05-30 00:51:38 +0200 <monochrom> the name of java, the syntax of c, the semantics of lisp
2022-05-30 00:51:49 +0200 <hpc> > length "(function(){})()"
2022-05-30 00:51:49 +0200 <Bulby[m]> keyword dynamic language
2022-05-30 00:51:51 +0200 <lambdabot> 16
2022-05-30 00:52:08 +0200 <monochrom> On your CV you can write "I know J/Java/Javascript". >:)
2022-05-30 00:52:21 +0200 <Bulby[m]> J ?
2022-05-30 00:52:22 +0200 <hpc> J/ava/script
2022-05-30 00:52:32 +0200 <geekosaur> successor to APL
2022-05-30 00:52:42 +0200 <Bulby[m]> oh 🙂
2022-05-30 00:52:51 +0200 <Bulby[m]> is it functional (APL is functional iirc)
2022-05-30 00:52:55 +0200 <geekosaur> https://en.wikipedia.org/wiki/J_(programming_language)
2022-05-30 00:52:58 +0200 <monochrom> This is to mock people who write "I know C/C++"
2022-05-30 00:53:05 +0200 <geekosaur> fsvo functional
2022-05-30 00:53:24 +0200hpcupdates his resume with "knows C/C++, J/Java/Javascript, and GNU/Linux"
2022-05-30 00:53:45 +0200 <energizer> what value of functional does J/APL not satisfy?
2022-05-30 00:53:46 +0200 <geekosaur> apl's all about function composition, but "functional" can be argued
2022-05-30 00:54:24 +0200 <Bulby[m]> for some value of functional? meaning like kinda functional?
2022-05-30 00:54:55 +0200 <monochrom> All I know about APL I learned from https://link.springer.com/chapter/10.1007/978-3-662-54434-1_21 :)
2022-05-30 00:55:53 +0200 <energizer> that article hits one point of 4-5 points that define APL
2022-05-30 00:55:53 +0200 <geekosaur> I should say some people argue it. I don't quite see what grounds either
2022-05-30 00:56:36 +0200 <geekosaur> but then, some people claim only Haskell is truly functional because they consider purity essential to it
2022-05-30 00:56:54 +0200 <Bulby[m]> pure functional is a haskell meme
2022-05-30 00:56:56 +0200 <energizer> eg apl is big on higher order functions, combinators
2022-05-30 00:57:06 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 00:57:13 +0200 <geekosaur> yes, as I said earlier
2022-05-30 00:57:45 +0200 <monochrom> But I don't need a paper to explain higher-order functions and combinators to me.
2022-05-30 00:57:49 +0200 <geekosaur> "functional" is one of those "what I point to" concepts :)
2022-05-30 00:58:05 +0200 <monochrom> The paper "hits" "1 point" but it's the hardest point.
2022-05-30 00:58:08 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 246 seconds)
2022-05-30 00:58:13 +0200 <energizer> i guess "functional" to some people means "like haskell"
2022-05-30 00:58:34 +0200 <geekosaur> there are others who believe only scheme is truly functional
2022-05-30 00:59:01 +0200 <energizer> as in, untyped lambda calculus?
2022-05-30 00:59:09 +0200 <Bulby[m]> pure functional is a haskell meme, all it does is stuff side effects into monads
2022-05-30 00:59:38 +0200 <geekosaur> not exactly
2022-05-30 01:00:08 +0200 <monochrom> Simple dichotomies are a human meme.
2022-05-30 01:00:24 +0200 <Bulby[m]> i can't say you're wrong
2022-05-30 01:00:44 +0200 <monochrom> All people do is classify everything into simple dichotomies and stuff nuances into /dev/null.
2022-05-30 01:00:49 +0200 <geekosaur> the trick behind I/O is that we *do* treat it purely. the haskell runtime does all the actual side effects, but monads are pure and so is IO if you look at what it's actually doing
2022-05-30 01:00:53 +0200 <Bulby[m]> lol
2022-05-30 01:01:27 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 260 seconds)
2022-05-30 01:01:31 +0200Feuermagier(~Feuermagi@user/feuermagier)
2022-05-30 01:01:43 +0200 <Bulby[m]> I guess it kind of is 🤔
2022-05-30 01:02:29 +0200 <geekosaur> all you are doing is using a monad as a framework to build up a program for the runtime out of pure pieces
2022-05-30 01:02:47 +0200 <geekosaur> the runtime does mutation, side effects, etc.
2022-05-30 01:03:08 +0200 <geekosaur> IO is the type of opcodes for a virtual machine
2022-05-30 01:03:17 +0200 <geekosaur> which is the runtime
2022-05-30 01:03:55 +0200 <geekosaur> (if you've studied free monads you'll have some idea of how that framework works)
2022-05-30 01:04:10 +0200 <energizer> like python, another pure language. it sends instructions to a runtime which does the IO
2022-05-30 01:04:18 +0200 <Bulby[m]> WHAT
2022-05-30 01:04:27 +0200 <energizer> i'm being snarky
2022-05-30 01:04:43 +0200 <energizer> but see http://conal.net/blog/posts/the-c-language-is-purely-functional
2022-05-30 01:04:43 +0200 <hpc> every language is pure if you put an interpreter under it :D
2022-05-30 01:06:17 +0200nate1(~nate@98.45.169.16)
2022-05-30 01:07:12 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980) (Quit: Konversation terminated!)
2022-05-30 01:08:34 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-05-30 01:09:25 +0200Topsi(~Topsi@dyndsl-095-033-020-185.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2022-05-30 01:09:42 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-05-30 01:09:46 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-05-30 01:11:17 +0200nate1(~nate@98.45.169.16) (Ping timeout: 244 seconds)
2022-05-30 01:11:26 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-05-30 01:11:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-05-30 01:11:49 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-05-30 01:13:52 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-30 01:19:11 +0200odnes(~odnes@5-203-156-66.pat.nym.cosmote.net) (Quit: Leaving)
2022-05-30 01:19:47 +0200nahcetan(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2022-05-30 01:28:18 +0200pavonia(~user@user/siracusa)
2022-05-30 01:30:15 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com)
2022-05-30 01:31:13 +0200 <Bulby[m]> with megaparsec, how in the world am I supposed to pretty print an error of a list of tokens
2022-05-30 01:32:59 +0200 <Bulby[m]> a solution I can think of is mashing the lexer and parser together
2022-05-30 01:34:05 +0200 <dsal> Bulby[m]: can you expand on that a bit?
2022-05-30 01:34:42 +0200 <dsal> Do you mean something beyond `errorBundlePretty`?
2022-05-30 01:35:03 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 276 seconds)
2022-05-30 01:37:36 +0200 <Bulby[m]> yes, i split my parsec into a lexer and parser
2022-05-30 01:45:40 +0200 <dsal> Oh. It sounds like you did something weird and aren't sure how to proceed. The defaults should do roughly the right thing with the normal lexemes over Char from Text or similar, but if you built a new thing and aren't using parser combinators, then it seems unlikely others will have the context required to help much.
2022-05-30 01:47:46 +0200 <Bulby[m]> 🤷
2022-05-30 01:47:54 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 01:48:01 +0200 <Bulby[m]> perhaps I should mash the lexer and parser together
2022-05-30 01:48:14 +0200 <sm> are you trying to report multiple errors at once ?
2022-05-30 01:53:09 +0200 <sm> I think the most common style with megaparsec is to have your parsers also lex, indeed. It simplifies things, like error reporting
2022-05-30 01:53:19 +0200 <Bulby[m]> ah, thanks for the insight
2022-05-30 01:53:21 +0200Nahra(~user@static.161.95.99.88.clients.your-server.de) (Remote host closed the connection)
2022-05-30 01:53:35 +0200 <Bulby[m]> i will do that for sanity's sake
2022-05-30 01:53:47 +0200Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 240 seconds)
2022-05-30 01:55:13 +0200 <sm> yes and for sanity, do it rigorously and consistently or whitespace will become a pain
2022-05-30 01:55:41 +0200Inst_(~Inst@2601:6c4:4080:3f80:90d3:88ea:e6d8:f698) (Ping timeout: 255 seconds)
2022-05-30 01:56:59 +0200 <sm> https://hackage.haskell.org/package/megaparsec-9.2.1/docs/Text-Megaparsec-Char-Lexer.html seems to have good advice
2022-05-30 01:58:14 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-30 01:58:50 +0200 <sm> and https://markkarpov.com/tutorial/megaparsec.html#lexing
2022-05-30 01:59:16 +0200 <Bulby[m]> yes, my lexer already uses those functions, so I just have to retool it
2022-05-30 02:02:26 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-30 02:03:35 +0200hueso_(~root@user/hueso) (Ping timeout: 246 seconds)
2022-05-30 02:08:22 +0200hueso(~root@user/hueso)
2022-05-30 02:18:07 +0200tremon_(~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
2022-05-30 02:18:38 +0200 <Bulby[m]> i don't like that everything needs spaces around it
2022-05-30 02:18:59 +0200Tuplanolla(~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) (Quit: Leaving.)
2022-05-30 02:19:41 +0200 <Bulby[m]> ah, it uses skipMany
2022-05-30 02:19:56 +0200 <Bulby[m]> it should explicitly state no spaces are needed
2022-05-30 02:20:34 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-05-30 02:21:03 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e9d4:5a2f:7c9:32c2) (Remote host closed the connection)
2022-05-30 02:25:38 +0200 <Bulby[m]> haha glad I retooled this - just noticed I forgot the `==` symbol
2022-05-30 02:27:21 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-05-30 02:29:24 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 258 seconds)
2022-05-30 02:35:28 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-05-30 02:35:38 +0200Feuermagier(~Feuermagi@user/feuermagier)
2022-05-30 02:35:45 +0200 <dsal> What needs to have spaces around it?
2022-05-30 02:36:06 +0200 <Bulby[m]> `space` in Text.Megaparsec.Char.Lexer
2022-05-30 02:36:13 +0200 <Bulby[m]> it doesn't tho
2022-05-30 02:36:22 +0200 <dsal> Having an option for common uses isn't the same as requiring it.
2022-05-30 02:36:39 +0200 <dsal> I parse binary protocols, fixed-width formats, and all kinds of other weird stuff.
2022-05-30 02:36:44 +0200 <Bulby[m]> it says "skipMany"
2022-05-30 02:36:51 +0200 <Bulby[m]> uses skipMany
2022-05-30 02:36:59 +0200 <Bulby[m]> I thought it used something like skipSome
2022-05-30 02:37:25 +0200 <dsal> I'm not sure what the context is of what you're saying.
2022-05-30 02:37:36 +0200 <Bulby[m]> it's fine - don't want to ramble
2022-05-30 02:37:41 +0200 <dsal> Normally, it's just `lexeme parserForThingI'mExpecting`
2022-05-30 02:37:42 +0200k`(~user@136.56.140.2)
2022-05-30 02:38:32 +0200 <k`> What's the point of the second type parameter of `Rep` (of the 'Generic' class)? Just to make default signatures impossible to write without QuantifiedConstraints?
2022-05-30 02:42:09 +0200 <jackdk> k`: https://wiki.haskell.org/GHC.Generics says "try to ignore the p parameter in all types; it's there just for future compatibility"
2022-05-30 02:42:29 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2022-05-30 02:43:21 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-05-30 02:45:07 +0200Qudit(~user@user/Qudit)
2022-05-30 02:45:17 +0200mixfix41(~sdenynine@user/mixfix41)
2022-05-30 02:45:56 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
2022-05-30 02:46:47 +0200stackdroid18(14094@user/stackdroid) (Quit: Lost terminal)
2022-05-30 02:48:12 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e9d4:5a2f:7c9:32c2)
2022-05-30 02:49:07 +0200Qudit(~user@user/Qudit) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-05-30 02:49:24 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-30 02:50:24 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
2022-05-30 02:51:29 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 255 seconds)
2022-05-30 02:56:22 +0200alp(~alp@user/alp) (Ping timeout: 260 seconds)
2022-05-30 02:58:09 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 258 seconds)
2022-05-30 02:58:54 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 276 seconds)
2022-05-30 02:59:34 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-05-30 03:01:45 +0200nehsou^(~nehsou@128-092-173-218.biz.spectrum.com) (Remote host closed the connection)
2022-05-30 03:05:04 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2022-05-30 03:09:26 +0200vicfred(~vicfred@user/vicfred)
2022-05-30 03:11:07 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-05-30 03:12:06 +0200ix(~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Remote host closed the connection)
2022-05-30 03:16:50 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds)
2022-05-30 03:17:14 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-05-30 03:20:39 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com)
2022-05-30 03:24:42 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving)
2022-05-30 03:24:50 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 240 seconds)
2022-05-30 03:27:15 +0200xff0x(~xff0x@s5.HtokyoFL1.vectant.ne.jp)
2022-05-30 03:33:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-05-30 03:36:23 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-30 03:37:29 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e9d4:5a2f:7c9:32c2) (Remote host closed the connection)
2022-05-30 03:42:39 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com)
2022-05-30 03:43:14 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds)
2022-05-30 03:45:27 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
2022-05-30 03:52:37 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-30 03:52:59 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e9d4:5a2f:7c9:32c2)
2022-05-30 03:53:08 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-30 03:55:22 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-05-30 03:55:50 +0200codaraxis(~codaraxis@user/codaraxis) (Quit: Leaving)
2022-05-30 03:55:55 +0200 <Bulby[m]> ok... i don't want to use haskeline for reading lines... is there something like it that um works crossplatform
2022-05-30 03:56:06 +0200 <Bulby[m]> e.g. you can move cursor, edit it
2022-05-30 03:56:56 +0200andrey__(~andrey@p200300dbcf08d40049142574c09c31d2.dip0.t-ipconnect.de)
2022-05-30 03:57:34 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-30 03:59:07 +0200andrey_(~andrey@p200300dbcf3e8c0056be00b84949243d.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-05-30 04:00:35 +0200 <Bulby[m]> tbh i just want something that will make polysemy happy
2022-05-30 04:02:24 +0200hochata[m]hochata
2022-05-30 04:04:00 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-30 04:06:28 +0200frost(~frost@user/frost)
2022-05-30 04:11:54 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-05-30 04:13:10 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-30 04:13:56 +0200 <dsal> the way I make polysemy happy is by leaving it alone. It doesn't get along well with others and seems to rather enjoy being off in the corner without being bothered by people trying to build things.
2022-05-30 04:15:44 +0200 <Cale> ahaha, true
2022-05-30 04:17:08 +0200 <Bulby[m]> haskeline uses MonadMask which is a pain to add to Sem
2022-05-30 04:17:22 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-30 04:18:08 +0200 <jackdk> http://lancs.ac.uk/~simmsb/writing-a-discord-library-using-polysemy/ hits the same problem, dunno if it's useful
2022-05-30 04:19:48 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2022-05-30 04:21:42 +0200 <Bulby[m]> also using haskeline as polysemy feels wrong given how polysemy works - it uses it's own monad transformer however it also has settings - altho this is how polysemy-req does it afaik
2022-05-30 04:25:10 +0200 <Bulby[m]> peeking at state it does some magic parameterizing
2022-05-30 04:32:43 +0200 <Bulby[m]> i need sleep, i'll get back at it tommorow
2022-05-30 04:34:24 +0200hochata(~eqf0matri@2001:470:69fc:105::1:331a) (Quit: Reconnecting)
2022-05-30 04:34:41 +0200hochata(~hochata@2001:470:69fc:105::1:331a)
2022-05-30 04:35:11 +0200BLACK-SABBATH(~BLACK-SAB@vps-ace062ea.vps.ovh.ca)
2022-05-30 04:39:32 +0200hochata(~hochata@2001:470:69fc:105::1:331a) (Quit: Reconnecting)
2022-05-30 04:39:49 +0200hochata(~hochata@2001:470:69fc:105::1:331a)
2022-05-30 04:41:00 +0200hochata(~hochata@2001:470:69fc:105::1:331a) (Changing host)
2022-05-30 04:41:00 +0200hochata(~hochata@user/hochata)
2022-05-30 04:41:36 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 276 seconds)
2022-05-30 05:00:45 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-30 05:05:02 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-30 05:05:14 +0200a(~linuxman@36.72.98.248)
2022-05-30 05:05:38 +0200aGuest6425
2022-05-30 05:06:02 +0200BLACK-SABBATH(~BLACK-SAB@vps-ace062ea.vps.ovh.ca) (Ping timeout: 255 seconds)
2022-05-30 05:07:18 +0200Guest6425(~linuxman@36.72.98.248) (Remote host closed the connection)
2022-05-30 05:07:36 +0200nate1(~nate@98.45.169.16)
2022-05-30 05:08:03 +0200semediajalah(~linuxman@36.72.98.248)
2022-05-30 05:09:44 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 05:15:43 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-05-30 05:16:56 +0200hueso(~root@user/hueso) (Quit: hueso)
2022-05-30 05:19:48 +0200k`(~user@136.56.140.2) (Ping timeout: 244 seconds)
2022-05-30 05:22:12 +0200semediajalah(~linuxman@36.72.98.248) (Remote host closed the connection)
2022-05-30 05:22:35 +0200semediajalah(~semediaja@180.251.225.78)
2022-05-30 05:23:07 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds)
2022-05-30 05:25:53 +0200z0k(~z0k@206.84.143.8)
2022-05-30 05:31:16 +0200hueso(~root@user/hueso)
2022-05-30 05:38:32 +0200jollygood2(www-data@2607:5300:60:8be::1) (Quit: CGI:IRC (Session timeout))
2022-05-30 05:38:53 +0200nate1(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-05-30 05:41:03 +0200nun12(~nun@119.131.229.177)
2022-05-30 05:42:29 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 255 seconds)
2022-05-30 05:42:32 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-05-30 05:50:08 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 05:59:39 +0200semediiii(~semediaja@118.96.192.67)
2022-05-30 05:59:42 +0200semediiii(~semediaja@118.96.192.67) (Remote host closed the connection)
2022-05-30 06:00:17 +0200kirikkuh(~semediaja@118.96.192.67)
2022-05-30 06:00:21 +0200kirikkuh(~semediaja@118.96.192.67) (Excess Flood)
2022-05-30 06:00:44 +0200kirikkuh(~semediaja@118.96.192.67)
2022-05-30 06:01:14 +0200semediajalah(~semediaja@180.251.225.78) (Ping timeout: 246 seconds)
2022-05-30 06:10:23 +0200mbuf(~Shakthi@171.61.206.74)
2022-05-30 06:13:16 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 258 seconds)
2022-05-30 06:13:20 +0200kirikkuh(~semediaja@118.96.192.67) (Read error: Connection reset by peer)
2022-05-30 06:16:18 +0200kopoksirakuh(~kopoksira@36.72.154.207)
2022-05-30 06:16:32 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 06:17:31 +0200nun12(~nun@119.131.229.177) (Quit: Connection closed)
2022-05-30 06:17:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 06:21:34 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 06:21:55 +0200bahamas(~lucian@84.232.141.167)
2022-05-30 06:22:39 +0200nate1(~nate@98.45.169.16)
2022-05-30 06:24:58 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-30 06:25:09 +0200kopoksirakuh(~kopoksira@36.72.154.207) (Ping timeout: 258 seconds)
2022-05-30 06:26:35 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 255 seconds)
2022-05-30 06:29:22 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-30 06:30:38 +0200nate1(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-05-30 06:31:43 +0200nate1(~nate@98.45.169.16)
2022-05-30 06:32:21 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 06:34:06 +0200tomgus1(~tomgus1@2a02:c7e:4229:d900:dea6:32ff:fe3d:d1a3) (Remote host closed the connection)
2022-05-30 06:34:22 +0200tomgus1(~tomgus1@90.218.25.145)
2022-05-30 06:36:14 +0200nate1(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-05-30 06:40:34 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 06:41:29 +0200obabo(~obabo@563BF107.catv.pool.telekom.hu)
2022-05-30 06:42:46 +0200kmein(~weechat@user/kmein) (Quit: ciao kakao)
2022-05-30 06:43:17 +0200kmein(~weechat@user/kmein)
2022-05-30 06:45:29 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 255 seconds)
2022-05-30 06:54:39 +0200kopoksirakuh(~anjing@vps-e326d58d.vps.ovh.ca)
2022-05-30 07:00:03 +0200kopoksirakuh(~anjing@vps-e326d58d.vps.ovh.ca) (Remote host closed the connection)
2022-05-30 07:00:28 +0200kopoksirakuh(~anjing@vps-e326d58d.vps.ovh.ca)
2022-05-30 07:06:20 +0200kmein(~weechat@user/kmein) (Quit: ciao kakao)
2022-05-30 07:06:53 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-05-30 07:08:24 +0200kmein(~weechat@user/kmein)
2022-05-30 07:13:39 +0200Qudit(~user@user/Qudit)
2022-05-30 07:19:10 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-30 07:22:07 +0200Midjak(~Midjak@82.66.147.146)
2022-05-30 07:22:22 +0200leib(~leib@2405:201:900a:f088:891:1469:e5c3:20bf)
2022-05-30 07:23:38 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-30 07:25:56 +0200kopoksirakuh(~anjing@vps-e326d58d.vps.ovh.ca) (Remote host closed the connection)
2022-05-30 07:26:05 +0200kopoksirakuhaja(~anjing@36.80.94.89)
2022-05-30 07:32:22 +0200dcoutts_(~duncan@host86-150-41-146.range86-150.btcentralplus.com)
2022-05-30 07:33:43 +0200seriously(~seriously@ool-18bd5811.dyn.optonline.net)
2022-05-30 07:33:51 +0200seriously(~seriously@ool-18bd5811.dyn.optonline.net) (Client Quit)
2022-05-30 07:35:07 +0200dcoutts(~duncan@host86-150-41-146.range86-150.btcentralplus.com) (Ping timeout: 256 seconds)
2022-05-30 07:36:43 +0200leib(~leib@2405:201:900a:f088:891:1469:e5c3:20bf) (Remote host closed the connection)
2022-05-30 07:37:03 +0200leib(~leib@2405:201:900a:f088:891:1469:e5c3:20bf)
2022-05-30 07:38:32 +0200kopoksirakuhaja(~anjing@36.80.94.89) (Remote host closed the connection)
2022-05-30 07:39:08 +0200kopoksirakuh(~anjing@36.80.94.89)
2022-05-30 07:39:34 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-30 07:40:20 +0200Feuermagier_(~Feuermagi@2a02:2488:4211:3400:9757:fce7:dee0:8d0e)
2022-05-30 07:42:58 +0200Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 258 seconds)
2022-05-30 07:43:48 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-30 07:44:24 +0200 <dragestil> Do people get "There are files missing in the ‘cabal-doctest-1.0.9’ package," when doing cabal [new-]build?
2022-05-30 07:45:07 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 260 seconds)
2022-05-30 07:46:04 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-30 07:50:24 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-30 07:51:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 07:51:18 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-05-30 07:51:26 +0200leib(~leib@2405:201:900a:f088:891:1469:e5c3:20bf) (Quit: Leaving)
2022-05-30 07:54:12 +0200anjingaja(~anjing@180.251.232.19)
2022-05-30 07:54:15 +0200anjingaja(~anjing@180.251.232.19) (Excess Flood)
2022-05-30 07:54:38 +0200anjingaja(~anjing@180.251.232.19)
2022-05-30 07:55:00 +0200kopoksirakuh(~anjing@36.80.94.89) (Ping timeout: 246 seconds)
2022-05-30 07:55:38 +0200michalz(~michalz@185.246.204.101)
2022-05-30 07:55:56 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 07:58:37 +0200odnes(~odnes@5-203-156-66.pat.nym.cosmote.net)
2022-05-30 08:02:25 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-30 08:06:32 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-30 08:08:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-05-30 08:09:55 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-30 08:12:46 +0200mmhat(~mmh@p200300f1c70584f2ee086bfffe095315.dip0.t-ipconnect.de)
2022-05-30 08:14:07 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com)
2022-05-30 08:16:12 +0200coot(~coot@213.134.190.95)
2022-05-30 08:19:46 +0200chomwitt(~chomwitt@2a02:587:dc10:4700:ae5d:2d37:a960:78b1)
2022-05-30 08:24:45 +0200foul_owl(~kerry@23.82.194.92) (Ping timeout: 246 seconds)
2022-05-30 08:29:15 +0200anjingaja(~anjing@180.251.232.19) (Read error: Connection reset by peer)
2022-05-30 08:34:43 +0200acidjnk(~acidjnk@p200300d0c7068b57b4ddf1e14e3049be.dip0.t-ipconnect.de)
2022-05-30 08:36:12 +0200chele(~chele@user/chele)
2022-05-30 08:39:13 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-05-30 08:40:16 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-30 08:40:18 +0200foul_owl(~kerry@23.82.194.93)
2022-05-30 08:42:14 +0200Qudit(~user@user/Qudit) (Ping timeout: 246 seconds)
2022-05-30 08:44:40 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-30 08:47:28 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-05-30 08:52:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-05-30 08:53:35 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-30 08:56:17 +0200fef(~thedawn@user/thedawn)
2022-05-30 08:58:54 +0200 <dragestil> turned out it's a problem with arch gnu/linux way of doing haskell
2022-05-30 08:59:39 +0200dextaa(~DV@user/dextaa) (Read error: Connection reset by peer)
2022-05-30 08:59:57 +0200dextaa(~DV@user/dextaa)
2022-05-30 09:01:56 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-30 09:03:27 +0200dextaa5(~DV@user/dextaa)
2022-05-30 09:03:37 +0200 <jackdk> dragestil: seems most people get their GHC from ghcup these days, not distro packages
2022-05-30 09:03:52 +0200dextaa(~DV@user/dextaa) (Read error: Connection reset by peer)
2022-05-30 09:03:52 +0200dextaa5dextaa
2022-05-30 09:04:09 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:64d0:3127:9431:c97e)
2022-05-30 09:04:26 +0200_xor(~xor@72.49.198.103) (Quit: brb)
2022-05-30 09:04:30 +0200alp(~alp@user/alp)
2022-05-30 09:04:37 +0200 <dragestil> jackdk: ghcup is pretty neat
2022-05-30 09:04:38 +0200z0k(~z0k@206.84.143.8) (Ping timeout: 246 seconds)
2022-05-30 09:07:22 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Remote host closed the connection)
2022-05-30 09:10:53 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-05-30 09:12:07 +0200cfricke(~cfricke@user/cfricke)
2022-05-30 09:17:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 09:18:29 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 255 seconds)
2022-05-30 09:22:36 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-05-30 09:26:13 +0200ffi-curious(~ffi-curio@94.147.68.197)
2022-05-30 09:28:26 +0200 <ffi-curious> Hello! I am looking into making bindings to some C functions in MacOS just for my own usage. The tricky thing is that `FSEventStreamCreate` takes a function pointer that is called whenever an event occurs.
2022-05-30 09:29:02 +0200 <ffi-curious> If I could call a `FunPtr` to `tryPutMVar` from the C code (which I know is possible) that seems like it would ideal for performance. The problem is that I do not know if that is safe for the Haskell runtime.
2022-05-30 09:29:08 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 09:29:13 +0200 <ffi-curious> Does anyone know much about this scenario?
2022-05-30 09:32:38 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 09:33:30 +0200 <ffi-curious> Alternatively, does anyone know if there's a better place to ask about this?
2022-05-30 09:36:49 +0200ehammarstrom(~ehammarst@62-20-203-39-no182.tbcn.telia.com) (Ping timeout: 258 seconds)
2022-05-30 09:37:14 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980)
2022-05-30 09:39:24 +0200ehammarstrom(~ehammarst@62-20-203-39-no182.tbcn.telia.com)
2022-05-30 09:39:31 +0200nctcf^(~nctcf@128-092-173-218.biz.spectrum.com)
2022-05-30 09:41:34 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.5)
2022-05-30 09:42:12 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 09:43:04 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-05-30 09:43:12 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 276 seconds)
2022-05-30 09:43:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 09:43:39 +0200gehmehgeh(~user@user/gehmehgeh)
2022-05-30 09:43:43 +0200ehammarstrom(~ehammarst@62-20-203-39-no182.tbcn.telia.com) (Ping timeout: 258 seconds)
2022-05-30 09:44:25 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-30 09:47:35 +0200 <tdammers> Have you read this bit: https://wiki.haskell.org/GHC/Using_the_FFI
2022-05-30 09:47:50 +0200 <tdammers> the TL;DR: it should be OK as long as you don't mark your imports as `unsafe`.
2022-05-30 09:48:27 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2022-05-30 09:50:03 +0200 <dminuoso> Possibly unpopular opinion: unsafe ffi should be made to behave as safe in GHC.
2022-05-30 09:50:16 +0200 <dminuoso> It'd be conforming to specification, and reduce quite a few bugs.
2022-05-30 09:52:24 +0200 <dminuoso> And perhaps add some -f-unsafe-as-unsafe-ffi flag that brings the old behavior back. 5 out of the 5 FFI libraries last used hung up my Haskell programs annoyingly. :(
2022-05-30 09:52:48 +0200 <ffi-curious> tdammers, I am not so familiar with Windows programming, but I think this is saying, "it is fine for there to be a thread running some C code, and it can call the `FncPtr` as long as you deallocate everything afterwards." Does that match your understanding?
2022-05-30 09:53:47 +0200 <ffi-curious> The MacOS file watching API needs you to spawn a thread specifically for the watcher. (I assume Haskell doesn't make a "run loop" at least.) So if I am understanding the Windows case right, I think it should be the same for my scenario.
2022-05-30 09:53:52 +0200 <dminuoso> ffi-curious: An FFI function can be marked `unsafe` or `safe`. If its marked `unsafe` you should (probably must) not invoke functions that can block for a long time, and you may not call back into Haskell land from C.
2022-05-30 09:54:24 +0200 <dminuoso> In other words: If you want to call back into Haskell code, you should only do this from FFI functions marked as `safe`
2022-05-30 09:54:40 +0200 <tdammers> Also: https://wiki.haskell.org/GHC/Using_the_FFI#Are_FunPtr.27s_stable.3F
2022-05-30 09:57:09 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-05-30 09:57:15 +0200 <dminuoso> tdammers: Mmm, that last note about freeing a FunPtr from inside itself is incorrect. The linked thread contains a lot of "uh I worked on it and Im not even sure"
2022-05-30 09:57:29 +0200biberu(~biberu@user/biberu)
2022-05-30 09:57:40 +0200dminuososhould probaby make a wiki account
2022-05-30 09:58:07 +0200 <tdammers> hmm, good point
2022-05-30 09:58:38 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980) (Quit: Konversation terminated!)
2022-05-30 09:58:55 +0200 <ffi-curious> Thank you for the great links! This is super helpful info! It's been a bit since I read about the specifics of `safe`. In the file watcher case, the Mac API wants you to `pthread_create` a thread specifically for the "run loop". So my ways of communicating with Haskell from there are (1) write a file descriptor so that I can use `threadWaitRead` or
2022-05-30 09:58:55 +0200 <ffi-curious> (2) use `tryPutMVar` directly. Would `safe` have any impact on (2)? I thought it was about the specific way the function was called?
2022-05-30 10:00:13 +0200 <ffi-curious> Hmm, I guess https://github.com/luite/hfsevents/blob/master/System/OSX/FSEvents.hs does use the `safe` calls.
2022-05-30 10:01:20 +0200ehammarstrom(~ehammarst@62-20-203-39-no182.tbcn.telia.com)
2022-05-30 10:01:44 +0200 <ffi-curious> My theory on going for (2) is that I can skip having the info go through a pipe (and doing another user space to kernel space to user space traversal)
2022-05-30 10:02:04 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
2022-05-30 10:02:22 +0200 <dminuoso> ffi-curious: safe has no impact on (2) and would be the preferable method.
2022-05-30 10:02:36 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 10:02:57 +0200 <dminuoso> ffi-curious: Be sure to also consider STM
2022-05-30 10:03:13 +0200 <dminuoso> (TQueue might be of interest to you as well)
2022-05-30 10:04:22 +0200Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-05-30 10:04:38 +0200 <dminuoso> In fact, the note about pthread_create API is just about internals. When you forkIO/async a separate Haskell thread, you get the same behavior.
2022-05-30 10:05:18 +0200 <dminuoso> So you have a kind of "run loop" when you write `forkIO watcher` with `watcher = forever $ do tok <- takeMVar ref; stuff`
2022-05-30 10:05:28 +0200 <ffi-curious> My scenario is just a very bespoke file watcher, so the reason for `tryPutMVar` is that I can use it as a "queue" with a length of 1. It essentially is saying "hey, some events occurred that you should look into".
2022-05-30 10:05:55 +0200 <dminuoso> Do you care about the file event itself?
2022-05-30 10:05:55 +0200 <ffi-curious> Where's the note about pthread_create?
2022-05-30 10:06:04 +0200 <dminuoso> ffi-curious: the one you made.
2022-05-30 10:06:26 +0200 <dminuoso> `[...] In the file watcher case, the Mac API wants you to `pthread_create` a thread specifically for the "run loop" [...]`
2022-05-30 10:07:01 +0200 <ffi-curious> Oh, I think I see. Are you saying that GHC will also use pthread_create and call things like tryPutMVar?
2022-05-30 10:07:23 +0200 <ffi-curious> And in that case, why would it be an issue to call tryPutMVar if the pthread was not created by GHC?
2022-05-30 10:07:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 10:07:44 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 10:07:49 +0200 <ffi-curious> (I do not care about the file events. Other code will sort that out.)
2022-05-30 10:07:52 +0200 <dminuoso> You're reading too much into the requirement of pthread_create
2022-05-30 10:08:27 +0200 <dminuoso> All this is saying: "you likely want to use a separate thread and somehow notify this on the event [rather than blocking in the callback]"
2022-05-30 10:08:42 +0200Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 246 seconds)
2022-05-30 10:09:02 +0200ehammarstrom(~ehammarst@62-20-203-39-no182.tbcn.telia.com) (Ping timeout: 246 seconds)
2022-05-30 10:09:51 +0200 <ffi-curious> From https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/FSEvents_ProgGuide/Usi…
2022-05-30 10:09:51 +0200 <ffi-curious> "Once you have created an event stream, you must schedule it on your application’s run loop."
2022-05-30 10:09:52 +0200 <ffi-curious> "If you don’t already have a run loop, you will need to devote a thread to this task."
2022-05-30 10:10:07 +0200 <dminuoso> Yes, just use forkIO with forever/infinite recursion.
2022-05-30 10:10:17 +0200 <dminuoso> That will give you your event loop
2022-05-30 10:10:23 +0200 <dminuoso> Use MVar or STM to wake it up
2022-05-30 10:10:37 +0200 <dminuoso> Heck, you could even do this from the main thread without forkIO if you wanted to
2022-05-30 10:13:28 +0200ehammarstrom(~ehammarst@62-20-203-39-no182.tbcn.telia.com)
2022-05-30 10:13:51 +0200 <ffi-curious> I am familiar with Haskell's light weight threads and the various concurrency primitives, but I think the MacOS API has stronger requirements.
2022-05-30 10:13:51 +0200 <ffi-curious> From https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFRunLoops/Con…
2022-05-30 10:13:52 +0200 <ffi-curious> "Run loops are strongly tied to the threads in your application. Every thread has exactly one run loop. No more and no less."
2022-05-30 10:13:52 +0200 <ffi-curious> I do not know the details of `forkOS`, but it does seem safer to just use `pthread_create` so that there's 100% certainty to follow the MacOS rules about runloops
2022-05-30 10:15:19 +0200 <ffi-curious> Oh, I see, I think you were describing what the Haskell side will be like. That is no problem! The part I'm worried about is the interaction between C and the Haskell runtime when Haskell function like `tryPutMVar` is called from C.
2022-05-30 10:15:22 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-05-30 10:23:01 +0200 <ffi-curious> Maybe I don't see, haha, reading the links more times!
2022-05-30 10:25:04 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-05-30 10:27:16 +0200shriekingnoise(~shrieking@201.231.16.156) (Quit: Quit)
2022-05-30 10:34:14 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-30 10:34:47 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-05-30 10:35:47 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 240 seconds)
2022-05-30 10:40:05 +0200coot(~coot@213.134.190.95)
2022-05-30 10:40:11 +0200odnes(~odnes@5-203-156-66.pat.nym.cosmote.net) (Ping timeout: 246 seconds)
2022-05-30 10:40:44 +0200nctcf^(~nctcf@128-092-173-218.biz.spectrum.com) (Remote host closed the connection)
2022-05-30 10:41:49 +0200 <ffi-curious> Started looking through the GHC source code and found a very interesting lead!
2022-05-30 10:41:50 +0200 <ffi-curious> https://gitlab.haskell.org/ghc/ghc/-/blob/master/rts/RtsAPI.c#L906-931
2022-05-30 10:43:22 +0200odnes(~odnes@5-203-156-66.pat.nym.cosmote.net)
2022-05-30 10:43:59 +0200 <ffi-curious> https://downloads.haskell.org/~ghc/8.10.7/docs/html/users_guide/ffi-chap.html#waking-up-haskell-th…
2022-05-30 10:48:40 +0200Feuermagier_(~Feuermagi@2a02:2488:4211:3400:9757:fce7:dee0:8d0e) (Quit: Leaving)
2022-05-30 10:48:53 +0200Feuermagier(~Feuermagi@user/feuermagier)
2022-05-30 10:49:23 +0200 <ffi-curious> Incredible, I believe that's the answer! Thank you to tdammers and dminuoso!
2022-05-30 10:49:40 +0200krappix(~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr)
2022-05-30 10:50:19 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-05-30 10:50:50 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-05-30 10:51:33 +0200odnes(~odnes@5-203-156-66.pat.nym.cosmote.net) (Read error: Connection reset by peer)
2022-05-30 10:51:58 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-30 10:52:54 +0200mc47(~mc47@xmonad/TheMC47)
2022-05-30 10:56:21 +0200odnes(~odnes@5-203-221-73.pat.nym.cosmote.net)
2022-05-30 10:57:41 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 246 seconds)
2022-05-30 10:59:46 +0200__monty__(~toonn@user/toonn)
2022-05-30 11:00:46 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 258 seconds)
2022-05-30 11:03:04 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 258 seconds)
2022-05-30 11:05:41 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 11:06:13 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-30 11:07:04 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-05-30 11:18:04 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 11:18:33 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:e9d4:5a2f:7c9:32c2) (Remote host closed the connection)
2022-05-30 11:20:27 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 11:21:16 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-05-30 11:21:34 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-05-30 11:23:18 +0200zaquest(~notzaques@5.130.79.72)
2022-05-30 11:24:04 +0200fef(~thedawn@user/thedawn) (Ping timeout: 240 seconds)
2022-05-30 11:27:25 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-05-30 11:32:07 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-05-30 11:32:39 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Read error: Connection reset by peer)
2022-05-30 11:36:54 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 11:36:56 +0200ffi-curious(~ffi-curio@94.147.68.197) (Quit: Client closed)
2022-05-30 11:37:41 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 11:43:00 +0200Pickchea(~private@user/pickchea)
2022-05-30 11:43:00 +0200CiaoSen(~Jura@p200300c95731a0002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-05-30 11:44:17 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 11:45:20 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 11:50:48 +0200odnes_(~odnes@5-203-221-73.pat.nym.cosmote.net)
2022-05-30 11:50:54 +0200odnes(~odnes@5-203-221-73.pat.nym.cosmote.net) (Read error: Connection reset by peer)
2022-05-30 11:54:31 +0200odnes_(~odnes@5-203-221-73.pat.nym.cosmote.net) (Client Quit)
2022-05-30 11:58:24 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-05-30 12:06:12 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 12:07:00 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 12:09:07 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 12:09:47 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 240 seconds)
2022-05-30 12:10:00 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 12:13:18 +0200krappix(~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr) (Ping timeout: 252 seconds)
2022-05-30 12:14:03 +0200targerian1999(~Mular@196.190.62.98)
2022-05-30 12:17:04 +0200gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 240 seconds)
2022-05-30 12:18:48 +0200targerian1999(~Mular@196.190.62.98) (Quit: Leaving)
2022-05-30 12:18:58 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
2022-05-30 12:19:05 +0200gehmehgeh(~user@user/gehmehgeh)
2022-05-30 12:19:30 +0200Pickchea(~private@user/pickchea) (Ping timeout: 240 seconds)
2022-05-30 12:23:26 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf) (Ping timeout: 255 seconds)
2022-05-30 12:28:32 +0200titibandit(~thibaut@xdsl-87-78-253-243.nc.de)
2022-05-30 12:36:15 +0200Trattue-(~Trattue@152.70.182.158) (Quit: bye)
2022-05-30 12:37:19 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-05-30 12:37:38 +0200nun90(~nun@113.111.33.38)
2022-05-30 12:39:12 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-30 12:39:53 +0200 <nun90> hey gay
2022-05-30 12:41:20 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-05-30 12:42:36 +0200 <nun90> When I type in stack,I have a problem
2022-05-30 12:42:41 +0200titibandit(~thibaut@xdsl-87-78-253-243.nc.de) (Quit: Leaving.)
2022-05-30 12:42:49 +0200 <nun90> Uploaded file: https://uploads.kiwiirc.com/files/14180d215db0930a2a511e5688562297/logs.txt
2022-05-30 12:42:52 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 12:43:08 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 12:43:29 +0200 <nun90> :G
2022-05-30 12:44:07 +0200xff0x(~xff0x@s5.HtokyoFL1.vectant.ne.jp) (Ping timeout: 240 seconds)
2022-05-30 12:44:07 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 12:44:20 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 12:46:33 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 12:47:41 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 12:48:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 12:49:05 +0200alp(~alp@user/alp) (Remote host closed the connection)
2022-05-30 12:49:30 +0200alp(~alp@user/alp)
2022-05-30 12:51:56 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 12:52:11 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 12:54:17 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 12:54:17 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 12:55:39 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 12:56:36 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 12:58:37 +0200Trattue(~Trattue@152.70.182.158)
2022-05-30 12:58:37 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 12:59:05 +0200krappix(~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr)
2022-05-30 12:59:20 +0200Me-me(~me-me@user/me-me) (Quit: Disconnecting on purpose.)
2022-05-30 12:59:49 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 13:00:23 +0200Me-me(~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net)
2022-05-30 13:00:28 +0200chomwitt(~chomwitt@2a02:587:dc10:4700:ae5d:2d37:a960:78b1) (Quit: Leaving)
2022-05-30 13:00:40 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 244 seconds)
2022-05-30 13:01:07 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
2022-05-30 13:01:39 +0200kspalaiologos(~kspalaiol@user/kspalaiologos)
2022-05-30 13:03:00 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Ping timeout: 246 seconds)
2022-05-30 13:03:07 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-05-30 13:04:01 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 13:05:05 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 13:06:59 +0200chomwitt(~chomwitt@2a02:587:dc10:4700:ae5d:2d37:a960:78b1)
2022-05-30 13:10:31 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 13:11:37 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 13:17:37 +0200nctcf^(~nctcf@128-092-173-218.biz.spectrum.com)
2022-05-30 13:17:41 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 13:18:58 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 13:26:28 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 13:26:36 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 13:30:27 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 13:30:27 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 13:31:02 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 13:43:42 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 276 seconds)
2022-05-30 13:43:51 +0200 <geekosaur> nun90, I'm not a stack user but my guess is you need a project to be able to use packages that aren't in stackage
2022-05-30 13:44:17 +0200 <geekosaur> the warning at the top seems to be telling you this (and how to work around it if you really do want to use the global project)
2022-05-30 13:45:21 +0200mbuf(~Shakthi@171.61.206.74) (Ping timeout: 246 seconds)
2022-05-30 13:46:09 +0200mbuf(~Shakthi@171.61.167.50)
2022-05-30 13:46:55 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-05-30 13:51:10 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 13:51:44 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 13:54:42 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-30 13:56:42 +0200mbuf(~Shakthi@171.61.167.50) (Ping timeout: 276 seconds)
2022-05-30 13:57:04 +0200mbuf(~Shakthi@122.164.6.41)
2022-05-30 14:00:38 +0200Pickchea(~private@user/pickchea)
2022-05-30 14:03:50 +0200nctcf^(~nctcf@128-092-173-218.biz.spectrum.com) (Ping timeout: 240 seconds)
2022-05-30 14:04:36 +0200__monty__(~toonn@user/toonn) (Ping timeout: 246 seconds)
2022-05-30 14:06:06 +0200__monty__(~toonn@user/toonn)
2022-05-30 14:07:12 +0200Guest72(~Guest72@240e:341:3834:600:9c2a:daca:c687:f549)
2022-05-30 14:09:30 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 14:09:39 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-30 14:10:35 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 14:12:27 +0200nun90(~nun@113.111.33.38) (Quit: Connection closed)
2022-05-30 14:15:09 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 14:15:23 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 14:17:44 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 14:18:47 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 14:23:29 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-30 14:31:10 +0200oo_miguel(~pi@77.252.47.226) (Ping timeout: 240 seconds)
2022-05-30 14:33:15 +0200oo_miguel(~pi@77.252.47.226)
2022-05-30 14:33:28 +0200jollygood2(www-data@2607:5300:60:8be::1)
2022-05-30 14:34:02 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 260 seconds)
2022-05-30 14:34:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 14:40:13 +0200nctcf^(~nctcf@128-092-173-218.biz.spectrum.com)
2022-05-30 14:41:10 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 14:41:55 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 14:42:21 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 14:43:50 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-30 14:45:59 +0200Vajb(~Vajb@2001:999:600:879a:e69c:7638:2849:8a14)
2022-05-30 14:46:29 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 14:46:30 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com)
2022-05-30 14:47:18 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 14:48:37 +0200Pickchea(~private@user/pickchea) (Ping timeout: 260 seconds)
2022-05-30 14:48:41 +0200kuribas(~user@ptr-17d51eo168763770uwd.18120a2.ip6.access.telenet.be)
2022-05-30 14:51:02 +0200Guest72(~Guest72@240e:341:3834:600:9c2a:daca:c687:f549) (Quit: Client closed)
2022-05-30 14:54:00 +0200nun8(~nun@113.111.33.38)
2022-05-30 14:54:13 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.5)
2022-05-30 14:54:51 +0200obabo(~obabo@563BF107.catv.pool.telekom.hu) (Ping timeout: 256 seconds)
2022-05-30 14:58:16 +0200__monty__(~toonn@user/toonn) (Ping timeout: 272 seconds)
2022-05-30 15:00:19 +0200kspalaiologos(~kspalaiol@user/kspalaiologos) (Quit: Leaving)
2022-05-30 15:02:14 +0200nctcf^(~nctcf@128-092-173-218.biz.spectrum.com) (Ping timeout: 252 seconds)
2022-05-30 15:03:27 +0200acidjnk(~acidjnk@p200300d0c7068b57b4ddf1e14e3049be.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-05-30 15:05:15 +0200hughjfchen(~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8)
2022-05-30 15:06:46 +0200califax(~califax@user/califx)
2022-05-30 15:07:56 +0200hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2022-05-30 15:10:22 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980)
2022-05-30 15:11:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 15:12:50 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 15:13:50 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 15:14:21 +0200cfricke(~cfricke@user/cfricke)
2022-05-30 15:14:30 +0200supersven(sid501114@id-501114.ilkley.irccloud.com) (Quit: Connection closed for inactivity)
2022-05-30 15:16:32 +0200Vajb(~Vajb@2001:999:600:879a:e69c:7638:2849:8a14) (Read error: Connection reset by peer)
2022-05-30 15:16:51 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-30 15:18:28 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 15:20:26 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-30 15:21:37 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-30 15:21:38 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds)
2022-05-30 15:21:43 +0200dcoutts__(~duncan@host86-144-78-203.range86-144.btcentralplus.com)
2022-05-30 15:22:59 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 15:23:09 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 276 seconds)
2022-05-30 15:23:12 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 15:23:27 +0200Pickchea(~private@user/pickchea)
2022-05-30 15:23:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 15:24:30 +0200dcoutts_(~duncan@host86-150-41-146.range86-150.btcentralplus.com) (Ping timeout: 258 seconds)
2022-05-30 15:24:31 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-30 15:24:57 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-30 15:25:15 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-30 15:25:30 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2022-05-30 15:26:02 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2022-05-30 15:27:33 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 15:27:52 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 15:29:00 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 276 seconds)
2022-05-30 15:29:43 +0200krappix(~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr) (Quit: Client closed)
2022-05-30 15:31:30 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 250 seconds)
2022-05-30 15:32:59 +0200cfricke(~cfricke@user/cfricke)
2022-05-30 15:36:47 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 15:37:41 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 15:40:05 +0200coot(~coot@213.134.190.95)
2022-05-30 15:40:35 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-05-30 15:40:48 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 15:40:56 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 15:45:22 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 15:45:33 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 15:46:22 +0200nun8(~nun@113.111.33.38) (Quit: Connection closed)
2022-05-30 15:46:57 +0200raym(~raym@user/raym) (Quit: kernel update, rebooting...)
2022-05-30 15:48:19 +0200raym(~raym@user/raym)
2022-05-30 15:48:27 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 240 seconds)
2022-05-30 15:48:59 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 252 seconds)
2022-05-30 15:51:06 +0200shapr(~user@pool-173-73-44-186.washdc.fios.verizon.net)
2022-05-30 15:51:06 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 15:51:15 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 15:51:37 +0200Infinite(~Infinite@49.39.125.79)
2022-05-30 15:52:17 +0200 <shapr> what are good options for cabal test to show all the things? I've been using: cabal test --test-show-details=direct --test-option=--format=progress
2022-05-30 15:52:29 +0200 <shapr> but that doesn't show me each of the hspec names, how do I see more?
2022-05-30 15:53:01 +0200 <shapr> oh, I bet I can find out on http://hspec.github.io/options.html
2022-05-30 15:55:19 +0200 <maerwald[m]> shapr: I simply don't use `cabal test`, but `cabal run`
2022-05-30 15:58:02 +0200alp(~alp@user/alp) (Ping timeout: 260 seconds)
2022-05-30 15:58:42 +0200moonsheep(~user@user/moonsheep)
2022-05-30 16:00:13 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-30 16:01:23 +0200nun27(~nun@113.111.33.38)
2022-05-30 16:01:35 +0200nun27(~nun@113.111.33.38) (Client Quit)
2022-05-30 16:03:05 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 16:03:54 +0200 <moonsheep> is there a good way to automatically derive a PersistEntity from an already existing type in persistent? (without using the quasiquoter I mean)
2022-05-30 16:04:13 +0200 <moonsheep> I found derivePersistFieldJSON, but that only creates a PersistField, not the full PersistEntity
2022-05-30 16:04:18 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-05-30 16:04:46 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-30 16:07:05 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 16:07:25 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 16:09:43 +0200titibandit(~thibaut@xdsl-87-78-253-243.nc.de)
2022-05-30 16:09:48 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-30 16:11:19 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-05-30 16:13:11 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 258 seconds)
2022-05-30 16:14:43 +0200lbseale(~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-05-30 16:15:15 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-05-30 16:16:13 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2022-05-30 16:16:23 +0200lbseale(~quassel@user/ep1ctetus)
2022-05-30 16:17:11 +0200lbseale(~quassel@user/ep1ctetus) (Client Quit)
2022-05-30 16:18:31 +0200lbseale(~quassel@user/ep1ctetus)
2022-05-30 16:19:21 +0200Pickchea(~private@user/pickchea) (Ping timeout: 246 seconds)
2022-05-30 16:25:04 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-05-30 16:25:07 +0200moonsheep(~user@user/moonsheep) (ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-05-30 16:25:47 +0200shriekingnoise(~shrieking@201.231.16.156)
2022-05-30 16:26:26 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-05-30 16:27:24 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-30 16:27:41 +0200slack1256(~slack1256@181.43.227.124)
2022-05-30 16:30:21 +0200slac98734(~slack1256@191.125.99.206)
2022-05-30 16:32:44 +0200slack1256(~slack1256@181.43.227.124) (Ping timeout: 255 seconds)
2022-05-30 16:41:03 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-30 16:44:33 +0200kaskal-kaskal
2022-05-30 16:44:38 +0200Badgerington(~Badgering@cpc121256-nmal25-2-0-cust191.19-2.cable.virginm.net)
2022-05-30 16:45:06 +0200coot(~coot@213.134.190.95)
2022-05-30 16:45:19 +0200 <Badgerington> Hello I am trying to download Haskell to work on some music in supercollider with Tidalcycles
2022-05-30 16:45:45 +0200 <geekosaur> we generally recommend ghcup
2022-05-30 16:45:52 +0200 <Badgerington> I have put this into my terminal window : curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
2022-05-30 16:46:14 +0200 <Badgerington> curl: (60) SSL certificate problem: certificate has expired
2022-05-30 16:46:14 +0200 <Badgerington> More details here: https://curl.haxx.se/docs/sslcerts.html
2022-05-30 16:47:46 +0200 <Badgerington> it also says no such file or directory
2022-05-30 16:47:55 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 16:48:08 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 16:49:43 +0200 <geekosaur> the cert on get-ghcup.haskell.org appears to be fine. is your local root certificate chain up to date? (the root cert for *.haskell.org's certificates was updated last August, and the old one has expired)
2022-05-30 16:49:47 +0200 <int-e> well, that certificate error is odd. (Can't reproduce; the certificate I see is valid until July 24th)
2022-05-30 16:50:46 +0200 <Badgerington> Is there a way for me to check if it is up to date? Sorry absolute beginner here
2022-05-30 16:51:00 +0200 <hpc> works for me on fedora 31
2022-05-30 16:51:16 +0200 <hpc> also jeez, i really need to update
2022-05-30 16:51:24 +0200 <shapr> oh hey, I've started a series of random talks, and Samuel Gelineau was the first, here's a talk about recursion schemes: https://youtu.be/2O4tYeDga8o
2022-05-30 16:51:44 +0200 <hpc> Badgerington: what os are you on?
2022-05-30 16:52:02 +0200Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-05-30 16:52:06 +0200 <Badgerington> mojave 10.14.6
2022-05-30 16:52:50 +0200 <hpc> make sure you have DST Root CA X3 in your root ca store?
2022-05-30 16:52:55 +0200 <hpc> i don't know much about how mac does certs
2022-05-30 16:53:17 +0200 <hpc> (see also openssl s_client -connect get-ghcup.haskell.org:443)
2022-05-30 16:54:12 +0200 <geekosaur> it'll be the Keychain Access app
2022-05-30 16:54:36 +0200 <geekosaur> I don't know if it has an option to update the root certificates
2022-05-30 16:54:41 +0200 <hpc> also if you follow that curl.haxx.se link, it tells you how to use firefox's ca bundle
2022-05-30 16:54:44 +0200 <hpc> which definitely has it
2022-05-30 16:56:35 +0200Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 255 seconds)
2022-05-30 16:56:56 +0200 <hpc> also if you can't get your os cert store updated, curl has --cacert
2022-05-30 16:57:54 +0200 <Badgerington> i am on the keychain access app and can see that some have expired but there is one that is active
2022-05-30 17:00:00 +0200alp(~alp@user/alp)
2022-05-30 17:00:00 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 17:00:52 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 17:03:01 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
2022-05-30 17:03:11 +0200razetime(~quassel@117.254.34.190)
2022-05-30 17:05:19 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 258 seconds)
2022-05-30 17:05:22 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-30 17:05:58 +0200Guest|59(~Guest|59@220.173.207.42)
2022-05-30 17:06:26 +0200Guest|59(~Guest|59@220.173.207.42) (Client Quit)
2022-05-30 17:07:57 +0200Badgerington(~Badgering@cpc121256-nmal25-2-0-cust191.19-2.cable.virginm.net) (Quit: Connection closed)
2022-05-30 17:08:42 +0200Sgeo(~Sgeo@user/sgeo)
2022-05-30 17:10:35 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 260 seconds)
2022-05-30 17:14:47 +0200 <geekosaur> you need specifically the key for /C=US/O=Internet Security Research Group/CN=ISRG Root X1
2022-05-30 17:15:51 +0200 <geekosaur> https://apple.stackexchange.com/questions/422332/how-do-i-update-my-root-certificates-on-an-older-…
2022-05-30 17:16:00 +0200 <geekosaur> oh, they're gone :(
2022-05-30 17:17:48 +0200 <int-e> Hah, "antique"
2022-05-30 17:18:04 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-05-30 17:19:03 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-30 17:19:24 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 17:19:32 +0200ahubers(~ahubers@2620:0:e50:1401:3446:aab5:fdae:8c7d)
2022-05-30 17:19:49 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:64d0:3127:9431:c97e) (Quit: WeeChat 2.8)
2022-05-30 17:20:00 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 17:20:11 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 17:22:37 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 17:23:15 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 17:23:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
2022-05-30 17:23:42 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 17:24:59 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 17:27:27 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf) (Ping timeout: 240 seconds)
2022-05-30 17:27:47 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
2022-05-30 17:29:10 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-05-30 17:29:10 +0200Infinite(~Infinite@49.39.125.79) (Quit: Client closed)
2022-05-30 17:29:15 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 17:29:26 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 17:30:11 +0200__monty__(~toonn@user/toonn)
2022-05-30 17:30:30 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 17:30:33 +0200nctcf^(~nctcf@128-092-173-218.biz.spectrum.com)
2022-05-30 17:31:33 +0200coot(~coot@213.134.190.95)
2022-05-30 17:31:42 +0200slac98734slack1256
2022-05-30 17:32:13 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
2022-05-30 17:32:26 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 17:37:21 +0200gehmehgeh(~user@user/gehmehgeh)
2022-05-30 17:38:02 +0200nctcf^(~nctcf@128-092-173-218.biz.spectrum.com) (Remote host closed the connection)
2022-05-30 17:40:17 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-05-30 17:41:27 +0200jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 256 seconds)
2022-05-30 17:43:48 +0200obabo(~obabo@563BF107.catv.pool.telekom.hu)
2022-05-30 17:44:25 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-05-30 17:45:26 +0200__monty__(~toonn@user/toonn)
2022-05-30 17:47:12 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 17:47:53 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 17:48:21 +0200 <Bulby[m]> does recursive State in polysemy work how I think it does (perserving state)
2022-05-30 17:53:00 +0200ahubers(~ahubers@2620:0:e50:1401:3446:aab5:fdae:8c7d) (Quit: Client closed)
2022-05-30 17:54:30 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 17:55:17 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 17:55:55 +0200econo(uid147250@user/econo)
2022-05-30 17:56:27 +0200chomwitt(~chomwitt@2a02:587:dc10:4700:ae5d:2d37:a960:78b1) (Ping timeout: 260 seconds)
2022-05-30 17:59:36 +0200chomwitt(~chomwitt@athedsl-32480.home.otenet.gr)
2022-05-30 17:59:55 +0200 <Bulby[m]> because my Haskeline thing will be looping
2022-05-30 17:59:55 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 18:00:06 +0200sekun[m](~hsekmatri@2001:470:69fc:105::d18f) (Quit: You have been kicked for being idle)
2022-05-30 18:00:08 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 18:00:10 +0200 <Bulby[m]> and it would be a real issue if it forgot history each loop
2022-05-30 18:00:20 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 18:00:20 +0200oo_miguel(~pi@77.252.47.226) (Ping timeout: 244 seconds)
2022-05-30 18:00:33 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 18:02:36 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf) (Remote host closed the connection)
2022-05-30 18:03:09 +0200titibandit(~thibaut@xdsl-87-78-253-243.nc.de) (Quit: Leaving.)
2022-05-30 18:03:43 +0200oo_miguel(~pi@77.252.47.226)
2022-05-30 18:04:09 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 18:04:59 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 18:05:51 +0200 <[exa]> Bulby[m]: how do you mean recursive State? State action invoking itself?
2022-05-30 18:06:01 +0200 <Bulby[m]> yes
2022-05-30 18:06:46 +0200 <[exa]> like, someAction = do { put 123; x <- get; doSomething; someAction } ?
2022-05-30 18:07:00 +0200 <Bulby[m]> yes - but conditionally
2022-05-30 18:07:32 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-30 18:07:33 +0200 <[exa]> in this case the State is actually not recursive, just the "line" of state actions is generated by recursive function
2022-05-30 18:07:45 +0200 <Bulby[m]> hm...
2022-05-30 18:08:02 +0200 <Bulby[m]> that's a problem - how would I create a recursive implementation
2022-05-30 18:08:22 +0200 <[exa]> you want to backup your State and pop it back if something fails?
2022-05-30 18:08:34 +0200 <Bulby[m]> https://paste.tomsmeding.com/Hd3SdCSt
2022-05-30 18:08:39 +0200 <Bulby[m]> this is REPL stuff
2022-05-30 18:09:16 +0200 <Bulby[m]> `haskelineToInputState` is just an interpreter
2022-05-30 18:09:18 +0200Infinite(~Infinite@49.39.120.173)
2022-05-30 18:09:33 +0200 <Bulby[m]> with https://hackage.haskell.org/package/haskeline-0.8.2/docs/System-Console-Haskeline-IO.html
2022-05-30 18:09:38 +0200 <Bulby[m]> these functions
2022-05-30 18:11:15 +0200oo_miguel(~pi@77.252.47.226) (Ping timeout: 258 seconds)
2022-05-30 18:11:16 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 18:11:21 +0200 <Bulby[m]> I want it to remember when I do recursive stuff
2022-05-30 18:11:55 +0200 <edwardk> shapr: hey, i know that library! =)
2022-05-30 18:12:37 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 18:12:55 +0200 <Bulby[m]> hm, I have an idea - do something like fixpoint but not really
2022-05-30 18:13:00 +0200 <[exa]> Bulby[m]: ah okay I might have understood it the other way
2022-05-30 18:13:15 +0200odnes(~odnes@5-203-175-217.pat.nym.cosmote.net)
2022-05-30 18:13:28 +0200 <Bulby[m]> REPL has to remember it's older inputs
2022-05-30 18:14:10 +0200 <Bulby[m]> maybe I could add a new effect that handles it?
2022-05-30 18:14:57 +0200 <Bulby[m]> e.g. `Continue :: m a -> Haskeline m a` ?
2022-05-30 18:14:57 +0200 <[exa]> aah I get it now
2022-05-30 18:15:11 +0200 <[exa]> your interpreter discards its output state, right?
2022-05-30 18:15:39 +0200 <edwardk> is this yet another person being bitten by the fact that Haskeline hides the implementation of InputT?
2022-05-30 18:15:43 +0200edwardktunes in
2022-05-30 18:15:46 +0200 <[exa]> (your interpreter = haskelineToInputState)
2022-05-30 18:15:50 +0200 <Bulby[m]> closeInput does that, yes?
2022-05-30 18:16:03 +0200 <Bulby[m]> edwardk: i'm using the IO
2022-05-30 18:16:24 +0200 <Bulby[m]> [exa]: all it does is `H.queryInput (daRelatedFunction)`
2022-05-30 18:16:31 +0200 <edwardk> the IO?
2022-05-30 18:16:40 +0200 <Bulby[m]> oops, this is irc, sorry for any matrix mess
2022-05-30 18:17:00 +0200 <Bulby[m]> System.Console.Haskeline.IO
2022-05-30 18:18:29 +0200 <Bulby[m]> it's stateful, w/e that means
2022-05-30 18:18:36 +0200 <[exa]> whew, the InputState is internally just a reference to some MVars and a thread ID
2022-05-30 18:18:40 +0200Pickchea(~private@user/pickchea)
2022-05-30 18:18:52 +0200 <Bulby[m]> meaning?
2022-05-30 18:19:40 +0200CiaoSen(~Jura@p200300c95731a0002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-05-30 18:20:10 +0200 <[exa]> so technically it doesn't even change, so it should remember its older inputs automagically
2022-05-30 18:20:28 +0200 <Bulby[m]> really? i'll have to test that
2022-05-30 18:21:17 +0200 <[exa]> https://hackage.haskell.org/package/haskeline-0.8.2/docs/src/System.Console.Haskeline.IO.html#Inpu…
2022-05-30 18:21:31 +0200 <[exa]> OTOH honestly no idea how it works together with polysemy
2022-05-30 18:22:27 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 240 seconds)
2022-05-30 18:22:27 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 18:23:01 +0200 <Bulby[m]> haha this is my first effect
2022-05-30 18:23:50 +0200mbuf(~Shakthi@122.164.6.41) (Quit: Leaving)
2022-05-30 18:23:54 +0200[exa]sees the implementation of InputT
2022-05-30 18:24:10 +0200 <[exa]> this amount of nested ReaderT can't be unseen
2022-05-30 18:24:22 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 18:25:09 +0200causal(~user@50.35.83.177)
2022-05-30 18:27:34 +0200odnes(~odnes@5-203-175-217.pat.nym.cosmote.net) (Read error: Connection reset by peer)
2022-05-30 18:27:35 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 18:27:36 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-05-30 18:27:52 +0200odnes(~odnes@5-203-248-1.pat.nym.cosmote.net)
2022-05-30 18:27:57 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 18:28:54 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
2022-05-30 18:31:59 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-30 18:31:59 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 18:32:57 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 18:33:23 +0200oo_miguel(~pi@77.252.47.226)
2022-05-30 18:34:07 +0200son0p(~ff@181.136.122.143) (Remote host closed the connection)
2022-05-30 18:36:01 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-30 18:36:01 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 18:36:04 +0200ec(~ec@gateway/tor-sasl/ec)
2022-05-30 18:36:11 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 18:38:40 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 18:39:32 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 18:40:23 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 258 seconds)
2022-05-30 18:41:50 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 18:43:00 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 18:46:07 +0200cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-05-30 18:48:26 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 18:51:17 +0200alp(~alp@user/alp) (Ping timeout: 260 seconds)
2022-05-30 18:51:25 +0200king_gs(~Thunderbi@187.201.176.129)
2022-05-30 18:52:00 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 18:52:00 +0200king_gs(~Thunderbi@187.201.176.129) (Client Quit)
2022-05-30 18:52:13 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 18:56:44 +0200oo_miguel(~pi@77.252.47.226) (Ping timeout: 255 seconds)
2022-05-30 18:58:38 +0200 <Bulby[m]> \o/ it remembers
2022-05-30 18:58:40 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 18:58:54 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 18:58:54 +0200Tuplanolla(~Tuplanoll@91-159-68-39.elisa-laajakaista.fi)
2022-05-30 19:01:14 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 19:01:30 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 19:01:35 +0200nate1(~nate@98.45.169.16)
2022-05-30 19:01:38 +0200Guest|62(~Guest|62@c-71-205-105-44.hsd1.co.comcast.net)
2022-05-30 19:01:40 +0200 <Bulby[m]> and it works (at least what I use)
2022-05-30 19:02:28 +0200chele(~chele@user/chele) (Quit: Leaving)
2022-05-30 19:02:54 +0200Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-05-30 19:03:50 +0200oo_miguel(~pi@77.252.47.226)
2022-05-30 19:04:14 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 19:04:22 +0200sympt7(~sympt@user/sympt)
2022-05-30 19:04:24 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 19:04:33 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 246 seconds)
2022-05-30 19:05:41 +0200sympt(~sympt@user/sympt) (Ping timeout: 258 seconds)
2022-05-30 19:05:42 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 19:05:49 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-05-30 19:06:08 +0200sympt7sympt
2022-05-30 19:06:24 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 19:08:22 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 19:08:26 +0200oo_miguel(~pi@77.252.47.226) (Ping timeout: 255 seconds)
2022-05-30 19:08:30 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 19:10:10 +0200oo_miguel(~pi@77.252.47.226)
2022-05-30 19:12:08 +0200ix(~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe)
2022-05-30 19:12:50 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 240 seconds)
2022-05-30 19:13:25 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-30 19:14:08 +0200 <[exa]> Bulby[m]: o great
2022-05-30 19:16:27 +0200Pickchea(~private@user/pickchea) (Ping timeout: 246 seconds)
2022-05-30 19:18:26 +0200razetime(~quassel@117.254.34.190) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-05-30 19:26:26 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 19:26:42 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 19:26:50 +0200matijja`(~matijja@193.77.181.201) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-30 19:27:11 +0200matijja(~matijja@193.77.181.201)
2022-05-30 19:31:07 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 19:32:06 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 19:33:39 +0200 <[exa]> Selective question -- I was reading the "Staged selective parser combinators" (willis, wu&pickering from icfp 2020) -- I understood that restricting the parsers to Selectives basically limits the grammars that can be parsed to context-free (with ambiguous <|>) or PEGs (with greedy <|> and no `try`), as opposed to general context-sensitive ones parsed with monads in usual parsecs. Is there some kind of
2022-05-30 19:33:45 +0200 <[exa]> formal proof that shows why this holds? I'd naively expect that one could simulate the context even with selectives, but probably with a significant definition overhead. Is it the overhead size that makes it infeasible?
2022-05-30 19:34:48 +0200emad(~emad@102.43.155.242)
2022-05-30 19:35:45 +0200 <dminuoso> [exa]: Where is it claimed that this limitation is imposed?
2022-05-30 19:39:40 +0200 <[exa]> it is very implicit, that's why I'm seeking somthing formal. For example section 2 paragraph "Selectives" says: Full context-sensitivity is enabled by monads
2022-05-30 19:39:50 +0200 <[exa]> q: what's the intermediate state there
2022-05-30 19:40:55 +0200off^(~off@128-092-173-218.biz.spectrum.com)
2022-05-30 19:41:02 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 19:41:24 +0200 <lyxia> I wouldn't read that part too rigorously
2022-05-30 19:41:56 +0200 <lyxia> as you say you can stretch things a lot with the choice of functor
2022-05-30 19:42:18 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 19:42:58 +0200 <brettgilio> I vaguely remember somebody telling me that mainline haskell has support for dependent types now. What is the story here? Looking for info, not finding much.
2022-05-30 19:43:05 +0200odnes_(~odnes@5-203-248-1.pat.nym.cosmote.net)
2022-05-30 19:43:06 +0200 <[exa]> yeah, that's realistically why I'm asking. Is there a formal property of grammars that you lose by going from Monad to Selective?
2022-05-30 19:43:47 +0200odnes(~odnes@5-203-248-1.pat.nym.cosmote.net) (Read error: Connection reset by peer)
2022-05-30 19:45:31 +0200califax(~califax@user/califx)
2022-05-30 19:45:31 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 19:45:52 +0200 <[exa]> brettgilio: that's tricky, you can do a lot of useful dependent-type-ish stuff. AFAIK this summarizes the state pretty well https://gitlab.haskell.org/ghc/ghc/-/wikis/dependent-haskell
2022-05-30 19:45:55 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 19:46:18 +0200Kaiepi(~Kaiepi@156.34.47.253) (Remote host closed the connection)
2022-05-30 19:46:42 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-30 19:47:05 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-05-30 19:48:13 +0200califax(~califax@user/califx)
2022-05-30 19:48:27 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 240 seconds)
2022-05-30 19:49:13 +0200smarton(~smarton@gnu/webmaster/smarton)
2022-05-30 19:51:18 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-05-30 19:51:27 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 240 seconds)
2022-05-30 19:51:34 +0200califax(~califax@user/califx)
2022-05-30 19:57:14 +0200odnes_(~odnes@5-203-248-1.pat.nym.cosmote.net) (Quit: Leaving)
2022-05-30 19:57:37 +0200pavonia(~user@user/siracusa)
2022-05-30 20:03:47 +0200nate1(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-05-30 20:05:15 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 276 seconds)
2022-05-30 20:06:17 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-05-30 20:06:56 +0200mmhat(~mmh@p200300f1c70584f2ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-05-30 20:09:43 +0200 <brettgilio> [exa] it is ongoing work right?
2022-05-30 20:09:52 +0200 <brettgilio> Thinking of https://www.cis.upenn.edu/~sweirich/publications.html
2022-05-30 20:12:39 +0200 <lyxia> yes it is still ongoing work
2022-05-30 20:13:09 +0200off^(~off@128-092-173-218.biz.spectrum.com) (Ping timeout: 258 seconds)
2022-05-30 20:13:17 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 20:13:26 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 20:17:00 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 20:19:30 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2022-05-30 20:21:42 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 260 seconds)
2022-05-30 20:22:41 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 20:22:51 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 20:24:50 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-30 20:24:50 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 20:25:12 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-30 20:25:25 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 20:25:59 +0200mmhat(~mmh@p200300f1c715c614ee086bfffe095315.dip0.t-ipconnect.de)
2022-05-30 20:26:59 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-05-30 20:27:31 +0200cheater(~Username@user/cheater) (Quit: (BitchX) Ping-pong timeout)
2022-05-30 20:28:23 +0200cheater(~Username@user/cheater)
2022-05-30 20:30:47 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-05-30 20:31:14 +0200Infinite(~Infinite@49.39.120.173) (Ping timeout: 252 seconds)
2022-05-30 20:32:24 +0200jollygood2(www-data@2607:5300:60:8be::1) (Quit: CGI:IRC (Session timeout))
2022-05-30 20:32:35 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 256 seconds)
2022-05-30 20:32:42 +0200Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 258 seconds)
2022-05-30 20:33:43 +0200smarton(~smarton@gnu/webmaster/smarton) (Ping timeout: 256 seconds)
2022-05-30 20:35:13 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 20:35:30 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2022-05-30 20:38:01 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-30 20:42:12 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 20:42:23 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 20:43:50 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-05-30 20:43:53 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-05-30 20:45:00 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf) (Remote host closed the connection)
2022-05-30 20:50:30 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Ping timeout: 240 seconds)
2022-05-30 20:50:52 +0200Guest|62(~Guest|62@c-71-205-105-44.hsd1.co.comcast.net) (Quit: Connection closed)
2022-05-30 20:51:43 +0200adium(adium@user/adium) (Quit: Stable ZNC by #bnc4you)
2022-05-30 20:52:53 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-05-30 20:52:58 +0200oxide(~lambda@user/oxide)
2022-05-30 20:53:30 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
2022-05-30 20:56:36 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 276 seconds)
2022-05-30 20:58:05 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf) (Ping timeout: 260 seconds)
2022-05-30 21:04:43 +0200adium(adium@user/adium)
2022-05-30 21:06:50 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-30 21:12:07 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 21:12:19 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 21:13:09 +0200chddr(~Thunderbi@91.226.34.169)
2022-05-30 21:13:43 +0200boxscape(~boxscape@user/boxscape)
2022-05-30 21:13:54 +0200 <Bulby[m]> can state recursively remember as well in polysemy
2022-05-30 21:14:57 +0200stackdroid18(14094@user/stackdroid)
2022-05-30 21:16:00 +0200 <chddr> Hi guys, I'm a little confused with what data type to use as a replacement for [a]. I want something with usual imperative array complexity. There's array library, but also vector, and there are boxed/unboxed and mutable/immutable ones, is there a good resource to read about the topic?
2022-05-30 21:18:31 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-05-30 21:18:38 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit)
2022-05-30 21:19:22 +0200 <slack1256> chddr: Most of the modules on the `vector` package explain usage and difference to the other representation. For example https://hackage.haskell.org/package/vector-0.12.3.1/docs/Data-Vector-Mutable.html gives a good idea how to use it.
2022-05-30 21:19:47 +0200 <chddr> So vector would be a good default to use?
2022-05-30 21:20:10 +0200 <slack1256> Yeah, I would start with `Data.Vector` from the `vector package.
2022-05-30 21:20:20 +0200 <slack1256> Only if you know what you are doing, then you can see the other modules.
2022-05-30 21:20:33 +0200 <chddr> Thanks!
2022-05-30 21:23:41 +0200obabo(~obabo@563BF107.catv.pool.telekom.hu) (Quit: WeeChat 3.5)
2022-05-30 21:25:15 +0200Entertainment(~entertain@104.246.145.85)
2022-05-30 21:26:47 +0200slack1256(~slack1256@191.125.99.206) (Remote host closed the connection)
2022-05-30 21:28:58 +0200slack1256(~slack1256@191.125.99.206)
2022-05-30 21:29:34 +0200cfricke(~cfricke@user/cfricke)
2022-05-30 21:30:25 +0200Entertainment(~entertain@104.246.145.85) ()
2022-05-30 21:30:39 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 21:30:48 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 21:32:53 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 21:33:06 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 21:34:18 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-30 21:35:39 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
2022-05-30 21:35:49 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-05-30 21:35:52 +0200coot(~coot@213.134.190.95)
2022-05-30 21:37:32 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 260 seconds)
2022-05-30 21:37:48 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 21:37:59 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 21:40:20 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-05-30 21:41:41 +0200phma(phma@2001:5b0:211b:8168:966b:7bf1:a9ed:d6d9) (Read error: Connection reset by peer)
2022-05-30 21:41:49 +0200titibandit(~thibaut@xdsl-87-78-253-243.nc.de)
2022-05-30 21:42:08 +0200acidjnk(~acidjnk@p200300d0c7068b57b4ddf1e14e3049be.dip0.t-ipconnect.de)
2022-05-30 21:42:22 +0200phma(~phma@2001:5b0:211f:4518:bf0d:fbb9:9134:fb7a)
2022-05-30 21:43:41 +0200 <[exa]> Bulby[m]: in this case it was the IO that "remembered" they contents of MVars and other stuff. I'd say for State it will be the same unless you explicitly break it somehow
2022-05-30 21:44:35 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 21:45:17 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 21:47:13 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-30 21:50:45 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-30 21:50:46 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 21:50:57 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-30 21:51:36 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 21:54:43 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-05-30 21:54:43 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-05-30 21:54:43 +0200wroathe(~wroathe@user/wroathe)
2022-05-30 21:59:56 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 21:59:56 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 22:00:40 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 22:01:21 +0200kuribas(~user@ptr-17d51eo168763770uwd.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2022-05-30 22:02:57 +0200 <Bulby[m]> how would I add a recurse effect to my Haskeline thing
2022-05-30 22:03:20 +0200jgeerds_(~jgeerds@55d45f48.access.ecotel.net)
2022-05-30 22:03:21 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Read error: Connection reset by peer)
2022-05-30 22:06:07 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
2022-05-30 22:08:22 +0200emad(~emad@102.43.155.242) (Quit: Leaving)
2022-05-30 22:08:40 +0200emad(~emad@102.43.155.242)
2022-05-30 22:09:09 +0200emad(~emad@102.43.155.242) (Remote host closed the connection)
2022-05-30 22:10:24 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-05-30 22:12:13 +0200 <Bulby[m]> https://hackage.haskell.org/package/polysemy-readline 😠
2022-05-30 22:14:28 +0200 <Bulby[m]> at least my code basically looks the same 🙂
2022-05-30 22:14:34 +0200 <Cale> Any particular reason you're going with Polysemy?
2022-05-30 22:14:43 +0200 <Bulby[m]> no 🙂
2022-05-30 22:15:02 +0200 <Bulby[m]> i go with it because we like to have fun here
2022-05-30 22:18:09 +0200 <Bulby[m]> https://hackage.haskell.org/package/polysemy-readline-0.2.0.0/docs/src/Polysemy.Readline.html#inte…
2022-05-30 22:18:10 +0200slack1256(~slack1256@191.125.99.206) (Read error: Connection reset by peer)
2022-05-30 22:18:13 +0200 <Bulby[m]> basically what my interpreter looks like
2022-05-30 22:18:21 +0200chomwitt(~chomwitt@athedsl-32480.home.otenet.gr) (Quit: Leaving)
2022-05-30 22:18:27 +0200 <Bulby[m]> except it uses the IO stuff not InputT
2022-05-30 22:18:39 +0200slack1256(~slack1256@181.43.227.124)
2022-05-30 22:18:42 +0200chomwitt(~chomwitt@2a02:587:dc11:7d00:f083:eec9:d0b0:a50f)
2022-05-30 22:19:02 +0200 <Cale> If you're having fun with it, then by all means, go ahead. :) I remember seeing that it had some strange issues with semantics early on that I'm not sure if they got sorted out or not, and personally I tend to just define my monads in a straightforward way with transformers, and then define application-specific classes rather than using the MTL ones, and that's always worked fairly well. There are cases where if
2022-05-30 22:19:02 +0200 <Cale> transformers pile up, and certain compiler optimisations don't fire, you can have issues, but it's rare, and possible to sidestep in a bunch of ways.
2022-05-30 22:20:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 22:20:38 +0200 <Bulby[m]> kinda angry I didn't see that library but I'm happy my code looks basically the same
2022-05-30 22:22:05 +0200 <Bulby[m]> not sure how I feel about the remembering wizardry tho
2022-05-30 22:24:08 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 272 seconds)
2022-05-30 22:25:57 +0200 <monochrom> I don't know polysemy, but I know how "State s a = s -> (a, s)" "remembers". (It doesn't have to. It just has to take a parameter and return the same thing or a new thing.)
2022-05-30 22:25:58 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 22:26:00 +0200Kaiepi(~Kaiepi@156.34.47.253) (Remote host closed the connection)
2022-05-30 22:26:14 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 22:26:23 +0200 <c_wraith> I mean... functions in general remember by closing over values
2022-05-30 22:26:34 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-30 22:27:54 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-30 22:29:31 +0200 <monochrom> I was very relieved and in awe when I learned that mutable state can be mathematically modelled by state transition functions.
2022-05-30 22:29:43 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-30 22:30:50 +0200 <monochrom> To be sure you could ask thorny efficiency issues such as "but it says that to update one element of a huge array you speak of cloning the whole array". But the mathematcial model is only obliged to predict answers, not costs.
2022-05-30 22:32:10 +0200 <monochrom> The real semantically thorny issue though is sharable heap-allocated things. Then that's still an open question. People are working on it using separation logics.
2022-05-30 22:33:38 +0200martin02(~silas@141.84.69.76) (Ping timeout: 272 seconds)
2022-05-30 22:34:36 +0200 <monochrom> The relief and awe is "oh so imperative programming is pointfree functional programming!" >:)
2022-05-30 22:34:50 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-05-30 22:35:15 +0200 <tomsmeding> with completely different syntax :p
2022-05-30 22:35:23 +0200 <monochrom> Yeah!
2022-05-30 22:35:50 +0200 <tomsmeding> which makes all the difference for the programmer, but maybe less so for the theoretical computer scientist ;)
2022-05-30 22:35:59 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 22:37:56 +0200 <monochrom> To some extent Backus gets to say "I told you so". He advocated "even if you want state, think and write in terms of state transition functions and composing them".
2022-05-30 22:38:29 +0200 <monochrom> I think he almost invented the State monad.
2022-05-30 22:38:55 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-30 22:38:56 +0200 <monochrom> (In his "can programming be liberated from the von Neumann model" talk and paper.)
2022-05-30 22:39:55 +0200 <monochrom> His explanation got really close to either (x,s)->(y, s) or s->(y,s)
2022-05-30 22:40:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 22:41:16 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 22:43:11 +0200 <monochrom> I am a theoretical person. I keep underestimating the ergonomics of syntax and how much it affects other people, yeah.
2022-05-30 22:43:55 +0200zebrag(~chris@user/zebrag)
2022-05-30 22:44:12 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.5)
2022-05-30 22:44:43 +0200 <tomsmeding> I am a partially theoretical person (in cases like this), but I am acutely aware of how syntax matters when programming
2022-05-30 22:45:39 +0200martin02(~silas@141.84.69.76)
2022-05-30 22:45:39 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 22:45:56 +0200 <tomsmeding> I like writing and reading `data Tree a = Leaf | Node (Tree a) a (Tree a)` a lot more than `type 'a tree = | Leaf | Node oif 'a tree * 'a * 'a tree;;`
2022-05-30 22:46:05 +0200 <tomsmeding> oops, s/oif/of/
2022-05-30 22:46:26 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 22:46:31 +0200 <tomsmeding> also C++ template syntax
2022-05-30 22:47:16 +0200 <tomsmeding> also: I like writing an inherently imperative algorithm in C++ much more than writing it in ST
2022-05-30 22:47:42 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
2022-05-30 22:47:56 +0200 <tomsmeding> those people saying that "haskell is the best imperative programming language" be damned, writing an imperative, mutating algorithm in ST is just plain verbose and annoying :p
2022-05-30 22:48:15 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-30 22:48:30 +0200 <monochrom> I had a classmate (in the aforementioned course using C++ and LLVM API) who said "C++ syntax is toxic". I think maybe that's an exaggeration, but I see the point. (I personally have little qualm, but only because I learned a simpler version of C++ a long time ago, got used to it and bit the bullet.)
2022-05-30 22:49:56 +0200 <tomsmeding> there's a lot in C++ syntax that's not nice, but for writing an imperative, mutating algorithm you don't need template metaprogramming, class inheritance, constexpr, the *. syntax, or any of the other stuff that I'm forgetting
2022-05-30 22:50:03 +0200 <monochrom> Yeah I tried using ST to write the standard random shuffling algorithm. It's a bit too verbose and COBOLy.
2022-05-30 22:50:36 +0200 <tomsmeding> the thing is that you start wanting to reach for neat monadic combinators to reduce the verbosity, but that _severly_ impacts readability
2022-05-30 22:51:16 +0200henninb(~henninb@97-116-138-116.mpls.qwest.net)
2022-05-30 22:54:48 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-05-30 22:54:51 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-05-30 22:54:52 +0200mmhat(~mmh@p200300f1c715c614ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.5)
2022-05-30 22:55:01 +0200 <monochrom> There are some proponents of a syntax so that inside special brackets (e.g., applicative brackets but I need monadic here) {| writeArray a i (readArray a i + 1) |} is desugared to "fmap (+ 1) (readArray a i) >>= writeArray a i", and at least it restores the syntactic convenience of "a[i] = a[i] + 1".
2022-05-30 22:55:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 22:56:04 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 258 seconds)
2022-05-30 22:57:24 +0200 <boxscape> I like Idris' !-notation to take care of that verbosity. Writing a GHC plugin to have it in Haskell atm
2022-05-30 22:57:32 +0200 <tomsmeding> that certainly improves things; the fmap-desugaring that you gave (though I know that you didn't write it as being good haskell code, just as being the desugaring) is precisely such an example of overuse of monadic combinators in this setting I think
2022-05-30 22:57:47 +0200 <tomsmeding> boxscape: example?
2022-05-30 22:58:04 +0200 <boxscape> tomsmeding: main = putStrLn !getLine
2022-05-30 22:58:07 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-05-30 22:58:25 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 22:58:50 +0200 <tomsmeding> boxscape: where `f !a ... !z` ~> `a >>= \a' -> ... z >>= \z' -> f a' ... z'`?
2022-05-30 22:59:05 +0200 <boxscape> pretty much yes
2022-05-30 22:59:21 +0200 <boxscape> actually what I'm spending most time on with the plugin is to have it support more than the idris, so that you can get intuitive behavior inside case and if and such
2022-05-30 22:59:28 +0200 <boxscape> s/idris/idris version
2022-05-30 23:00:04 +0200 <monochrom> That is going to be pretty tedious engineering.
2022-05-30 23:00:15 +0200 <monochrom> I mean, thanks for all the hard work! :)
2022-05-30 23:00:16 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-05-30 23:00:29 +0200 <boxscape> I have a concrete solution in mind but yeah there's quite a lot of AST wrangling
2022-05-30 23:01:08 +0200 <tomsmeding> yes that's pretty cool; I'm not sure whether I'd use it much in practice because I'm kind of hesitant to use ghc plugins in general, but this really sounds super nice
2022-05-30 23:01:27 +0200 <boxscape> yeah I also tend to use plugins very little if I'm being honest
2022-05-30 23:01:50 +0200 <monochrom> There is a chance if a specific ghc plugin becomes very popular, it gets absorbed into ghc out-of-the-box.
2022-05-30 23:02:21 +0200 <monochrom> I mean, even {-# language Arrow #-} started out as a preprocessor haha.
2022-05-30 23:02:47 +0200 <monochrom> Surely this plugin is actually more popular than arrows.
2022-05-30 23:02:57 +0200 <boxscape> yeah it seems like a sensible pathway for extensions to take
2022-05-30 23:03:55 +0200cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Read error: Connection reset by peer)
2022-05-30 23:05:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-30 23:05:35 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2022-05-30 23:06:46 +0200titibandit(~thibaut@xdsl-87-78-253-243.nc.de) (Remote host closed the connection)
2022-05-30 23:11:05 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-30 23:11:07 +0200zincy(~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 240 seconds)
2022-05-30 23:11:54 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2022-05-30 23:12:04 +0200 <henninb> greetings, I am looking at the function withNthWorkspace and am currently passing greedyView. If I want to make an additional call to spawn within the call how would I do that?
2022-05-30 23:12:17 +0200 <tomsmeding> #xmonad ?
2022-05-30 23:18:17 +0200 <henninb> I want to do it within the anonymous function `+ zipM "M-" "Move to workspace" wsKeys [0..] (withNthWorkspace (\i -> W.greedyView i))`
2022-05-30 23:19:12 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-30 23:19:58 +0200 <tomsmeding> henninb: try the #xmonad channel :)
2022-05-30 23:20:23 +0200 <henninb> thank you littlebobeep.
2022-05-30 23:20:28 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-30 23:24:29 +0200slack1256(~slack1256@181.43.227.124) (Ping timeout: 255 seconds)
2022-05-30 23:27:03 +0200cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2022-05-30 23:30:11 +0200Pickchea(~private@user/pickchea)
2022-05-30 23:30:16 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-05-30 23:30:46 +0200cheater(~Username@user/cheater)
2022-05-30 23:31:04 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-30 23:36:05 +0200smarton(~smarton@gnu/webmaster/smarton)
2022-05-30 23:39:10 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com)
2022-05-30 23:39:34 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980) (Quit: Konversation terminated!)
2022-05-30 23:48:20 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-05-30 23:55:12 +0200smarton(~smarton@gnu/webmaster/smarton) (Ping timeout: 260 seconds)
2022-05-30 23:55:43 +0200michalz(~michalz@185.246.204.101) (Remote host closed the connection)
2022-05-30 23:56:00 +0200chddr(~Thunderbi@91.226.34.169) (Ping timeout: 276 seconds)
2022-05-30 23:57:36 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-05-30 23:57:46 +0200bgs(~bgs@212.85.160.171) (Remote host closed the connection)
2022-05-30 23:59:39 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)