2023/10/25

2023-10-25 00:01:23 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Ping timeout: 255 seconds)
2023-10-25 00:02:12 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-25 00:06:04 +0200Guest74(~Guest75@5-157-196-109.itvmedia.pl) (Quit: Client closed)
2023-10-25 00:06:06 +0200sansk(~sansk@072-238-128-073.res.spectrum.com)
2023-10-25 00:07:56 +0200emmanuelux_(~emmanuelu@user/emmanuelux)
2023-10-25 00:08:03 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2023-10-25 00:08:24 +0200ubert(~Thunderbi@91.141.40.172.wireless.dyn.drei.com) (Ping timeout: 255 seconds)
2023-10-25 00:09:38 +0200 <sansk> Has anyone here written an interpreter for a programming language in haskell? I am doing that and I'm not quite sure if I am structuring it right
2023-10-25 00:11:24 +0200 <monochrom> Does Agda count?
2023-10-25 00:12:47 +0200 <davean> monochrom: no they said programming language
2023-10-25 00:13:10 +0200 <monochrom> haha ok
2023-10-25 00:15:57 +0200Sgeo(~Sgeo@user/sgeo)
2023-10-25 00:16:54 +0200 <sansk> I just wanted to take a look at how you structure everything, right now I have everything in the language in one data type, but I feel like it should be split up
2023-10-25 00:19:12 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2023-10-25 00:21:02 +0200 <monochrom> Then I guess my course notes count. But it's a very small toy language, so I never needed to split. https://www.cs.utoronto.ca/~trebla/CSCC24-2023-Summer/09-semantics-1.html
2023-10-25 00:23:03 +0200 <sansk> Thank you!
2023-10-25 00:24:03 +0200 <sansk> This seems similar to my interpreter, I guess it's kind of like Lisp where everything is an expression
2023-10-25 00:27:43 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-10-25 00:29:23 +0200 <monochrom> Expression languages use the full expressivity of monads. Statement languages don't. :)
2023-10-25 00:29:55 +0200 <monochrom> IOW I make expression languages because the alternative is too boring.
2023-10-25 00:30:27 +0200 <monochrom> But! On assignments I give them statement languages if it's more natural.
2023-10-25 00:32:21 +0200 <sansk> 👍 thanks for the help, i guess one data type will be fine (the language is not too big)
2023-10-25 00:38:36 +0200sansk(~sansk@072-238-128-073.res.spectrum.com) (WeeChat 4.0.4)
2023-10-25 00:55:16 +0200ft(~ft@p4fc2a529.dip0.t-ipconnect.de)
2023-10-25 00:57:30 +0200CO2(~CO2@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.1.0)
2023-10-25 00:58:40 +0200santiagopim(~user@90.167.66.131) (Ping timeout: 252 seconds)
2023-10-25 01:02:34 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 272 seconds)
2023-10-25 01:05:57 +0200dcoutts_(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection)
2023-10-25 01:06:12 +0200Katarushisu1(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: Ping timeout (120 seconds))
2023-10-25 01:07:24 +0200arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net)
2023-10-25 01:08:07 +0200jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 264 seconds)
2023-10-25 01:08:27 +0200dcoutts_(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-10-25 01:08:48 +0200Katarushisu1(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
2023-10-25 01:10:04 +0200sansk(~sansk@072-238-128-073.res.spectrum.com)
2023-10-25 01:10:14 +0200sansk(~sansk@072-238-128-073.res.spectrum.com) ()
2023-10-25 01:11:43 +0200jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-10-25 01:13:01 +0200Lycurgus(~georg@user/Lycurgus)
2023-10-25 01:23:39 +0200 <EvanR> what is the link between expression language and monads
2023-10-25 01:23:53 +0200 <EvanR> what is return what is join
2023-10-25 01:27:33 +0200aztex(~aztex@78-71-213-100-no2000.tbcn.telia.com)
2023-10-25 01:28:06 +0200 <aztex> Hello is it possible to share an MVar between a Haskell and C heap?
2023-10-25 01:28:46 +0200 <aztex> I think its possible to share plain values quite easily by `malloc`ing on the C heap
2023-10-25 01:28:59 +0200 <EvanR> you could put hooks to call from C which access the MVar and marshall it into a form usable in C
2023-10-25 01:29:17 +0200 <c_wraith> You can't assume it won't move
2023-10-25 01:29:23 +0200 <c_wraith> .. I think.
2023-10-25 01:29:47 +0200 <EvanR> malloced heap space won't move
2023-10-25 01:29:54 +0200 <monochrom> Most of the time, Applicative suffices. E.g. "foo + bar" can have semantics liftA2 (+) (eval foo) (eval bar).
2023-10-25 01:29:58 +0200 <c_wraith> I don't think you can malloc an MVar
2023-10-25 01:29:59 +0200 <davean> I mean yo ucan ... oh god who would stable pointer MVar?
2023-10-25 01:30:01 +0200 <EvanR> you can use Storable to access it from haskell, and access it normally from C
2023-10-25 01:30:16 +0200 <aztex> now malloced ones wont move
2023-10-25 01:30:19 +0200 <EvanR> yeah no, not MVar
2023-10-25 01:31:02 +0200vglfr(~vglfr@88.155.140.136)
2023-10-25 01:31:05 +0200 <c_wraith> If you want the integration with Haskell threads that MVar implies, you need to integrate with Haskell stuff. And that means StablePtr and really slow access.
2023-10-25 01:31:20 +0200 <monochrom> But if-then-else and short-circuiting operators begin to need at least Selective.
2023-10-25 01:31:22 +0200 <c_wraith> If you just want a block of mutable memory, use Storable and allocate it on the C heap
2023-10-25 01:31:35 +0200 <aztex> The scenario I have is a bit strange; I am FFI interfacing with a C server kind of program that responds to requests intermittently. I want the Haskell part of the program to wake up only when the C server answers some requests
2023-10-25 01:31:41 +0200 <geekosaur> aren't we all kinda missing the elephant in the room, namely that you can't access MVar *semantics* from C
2023-10-25 01:31:45 +0200 <monochrom> Usually the semantic model is nice enough to support all of Monad, so why not. :)
2023-10-25 01:32:07 +0200 <c_wraith> geekosaur: well, I wasn't ignoring that StablePtr isn't usable from C!
2023-10-25 01:32:14 +0200 <aztex> This is kind of hard; I have a naive model where I busy wait on the Haskell side; busy waiting on a value malloced on the C heap
2023-10-25 01:32:16 +0200 <EvanR> unless you call into a haskell operation that accesses the MVar for you
2023-10-25 01:32:21 +0200 <aztex> But I want to avoid the busy wait
2023-10-25 01:32:32 +0200 <EvanR> but anyway they explained the XY problem so solve that instead
2023-10-25 01:32:37 +0200 <monochrom> Actually I think by the time the language has function application, the semantic model needs all of >>=.
2023-10-25 01:32:39 +0200 <c_wraith> Yeah, this sounds like a case of just call a pretty normal FFI function that writes to the MVar from Haskell
2023-10-25 01:33:12 +0200 <geekosaur> or just invokes a Haskell callback and avoid the whole mess?
2023-10-25 01:33:42 +0200 <aztex> geekosaur could you elaborate a bit on what you mean by the Haskell callback?
2023-10-25 01:33:55 +0200 <c_wraith> aztex: look into "foreign export"
2023-10-25 01:34:00 +0200 <aztex> I guess that the Haskell part of the programs becomes exported
2023-10-25 01:34:19 +0200 <monochrom> C can call Haskell.
2023-10-25 01:34:27 +0200 <geekosaur> yes, you can arrange for Haskell functions to be callable from C with "foreign export"
2023-10-25 01:34:28 +0200 <aztex> aware of that
2023-10-25 01:34:37 +0200 <monochrom> Turn the table around. Work backwards.
2023-10-25 01:34:57 +0200 <EvanR> don't call us, we'll call you
2023-10-25 01:34:57 +0200 <geekosaur> so instead of busyewaiting on the C heap you have C call into Haskell with the value you'd be putting into the heap
2023-10-25 01:35:17 +0200 <monochrom> (A few years ago I finally accepted that debugging is best done by working backwards. Dijkstra told me so decades ago. Didn't listen. :) )
2023-10-25 01:35:34 +0200 <EvanR> what does function application have to do with >>=
2023-10-25 01:35:41 +0200 <aztex> was hoping didn't have to do the export stuff
2023-10-25 01:35:51 +0200 <aztex> but probably thats the simplest way out
2023-10-25 01:36:26 +0200 <EvanR> alternatively you can put the C routine that does whatever waiting into a thing that haskell can call, then haskell blocks waiting for that FFI call to return
2023-10-25 01:36:37 +0200 <aztex> (reason being the C server part of the code is fixed and the Haskell functions change a lot from program to program)
2023-10-25 01:36:48 +0200 <EvanR> but it sounds like the other way might be more straight forward if the core loop is in C
2023-10-25 01:38:22 +0200 <aztex> thanks for the help
2023-10-25 01:41:05 +0200aztex(~aztex@78-71-213-100-no2000.tbcn.telia.com) (Quit: Client closed)
2023-10-25 01:42:16 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-10-25 01:44:18 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-10-25 01:44:37 +0200Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-10-25 01:44:50 +0200 <davean> Why are we talking about anything here other than the IO Manager?
2023-10-25 01:45:16 +0200 <davean> You just make a selectable
2023-10-25 01:47:44 +0200arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) (Ping timeout: 246 seconds)
2023-10-25 01:47:53 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2023-10-25 01:49:38 +0200hpc(~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 260 seconds)
2023-10-25 01:57:45 +0200Square(~Square@user/square)
2023-10-25 01:58:30 +0200 <EvanR> is that a thing
2023-10-25 01:59:07 +0200 <monochrom> I wonder if "IO Manager" and "selectable" are responses to two different threads.
2023-10-25 02:00:07 +0200 <monochrom> in which case "selectable" would be what I called "Selective".
2023-10-25 02:00:43 +0200Square3(~Square4@user/square) (Ping timeout: 260 seconds)
2023-10-25 02:01:38 +0200sansk(~sansk@072-238-128-073.res.spectrum.com)
2023-10-25 02:06:17 +0200 <davean> EvanR: Absolutely
2023-10-25 02:06:32 +0200 <EvanR> how do you make a custom selectable
2023-10-25 02:06:36 +0200 <davean> monochrom: Oh I meant POSIX "select" callable
2023-10-25 02:06:47 +0200 <davean> EvanR: pipe/socket or any filehandle
2023-10-25 02:07:04 +0200 <davean> This is how the RTS even talks to its self
2023-10-25 02:07:11 +0200 <EvanR> so make a custom pipe, socket, filehandle, like hack the kernel?
2023-10-25 02:07:22 +0200 <davean> No? There is no hacking here?
2023-10-25 02:07:28 +0200 <davean> This is basic POSIX
2023-10-25 02:07:36 +0200 <EvanR> make a custom fd... and do what with it
2023-10-25 02:08:00 +0200 <Inst> there, finally figured it out
2023-10-25 02:08:06 +0200 <geekosaur> give it to the IO manager. C writes to it, the IO manager wakes up the associated thread
2023-10-25 02:08:29 +0200 <EvanR> what is the true name of this IO manager so I may access it
2023-10-25 02:08:33 +0200 <geekosaur> look at `threadWaitRead`
2023-10-25 02:08:51 +0200 <monochrom> It is just called "the IO manager" :)
2023-10-25 02:09:10 +0200 <EvanR> > \fd -> (the IO manager) fd
2023-10-25 02:09:11 +0200 <lambdabot> error:
2023-10-25 02:09:11 +0200 <lambdabot> Variable not in scope: the :: t0 -> t1 -> t -> t2error: Data constructor...
2023-10-25 02:09:15 +0200 <Inst> after backporting the Haskell into Python, the answer, it seems, for this problem, is just use a lambda that injects values into a list
2023-10-25 02:09:22 +0200 <monochrom> But you can find it in https://github.com/takenobu-hs/haskell-ghc-illustrated
2023-10-25 02:09:27 +0200 <Inst> then use applicative functions to apply it to the random generator
2023-10-25 02:09:31 +0200 <Inst> so the lambda is essentially pure
2023-10-25 02:10:02 +0200 <geekosaur> https://downloads.haskell.org/ghc/9.2.5/docs/html/libraries/base-4.16.4.0/GHC-Event.html is the lowest level implementation, but threadWaitRead and threadWaitWrite are the lowest levels you would find in a normal Haskell program
2023-10-25 02:10:10 +0200 <monochrom> But yeah the high-level thing to do is threadWaitRead.
2023-10-25 02:10:39 +0200 <EvanR> GHC.Conc.IO.threadWaitRead
2023-10-25 02:10:41 +0200 <jackdk> EvanR: https://hackage.haskell.org/package/gdp-0.0.3.0/docs/Data-The.html#v:the
2023-10-25 02:11:28 +0200 <EvanR> hahaha
2023-10-25 02:17:47 +0200sansk(~sansk@072-238-128-073.res.spectrum.com) (Quit: WeeChat 4.0.4)
2023-10-25 02:18:05 +0200Square(~Square@user/square) (Ping timeout: 240 seconds)
2023-10-25 02:18:05 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:484c:e1ac:4235:81cd) (Ping timeout: 240 seconds)
2023-10-25 02:19:53 +0200 <jackdk> Ghosts of departed proofs is such a cool paper
2023-10-25 02:22:32 +0200Umeaboy(~Umeaboy@94-255-145-133.cust.bredband2.com)
2023-10-25 02:24:27 +0200 <Umeaboy> Hi! This might sound very stupid, but row/line 146 in this spec file clearly says to place the resulting files in /opt/, but when I reach to the end of the build it fails to create the package due to finding installed but unpackaged files which is NOT in /opt/
2023-10-25 02:24:42 +0200 <Umeaboy> Am I stupid or is this spec file wrongly written?
2023-10-25 02:24:52 +0200 <Umeaboy> https://build.opensuse.org/package/view_file/openSUSE:Factory/ghc-bootstrap/ghc-bootstrap.spec?exp…
2023-10-25 02:25:26 +0200 <Umeaboy> I have compared to other spec files and they say the same under the %files part which is /opt/
2023-10-25 02:25:43 +0200 <Umeaboy> I could use some help correcting this.
2023-10-25 02:26:14 +0200emmanuelux_(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2023-10-25 02:27:17 +0200 <geekosaur> shouldn't that be asked of SuSE package developers, rather than Haskellers?
2023-10-25 02:27:50 +0200 <geekosaur> I mean, I'm probably the only one here who knows about SuSE's version of spec files, and that knowledge is 15 years out of date
2023-10-25 02:28:21 +0200 <Umeaboy> geekosaur: I just asked in #opensuse as well.
2023-10-25 02:28:24 +0200 <Umeaboy> :)
2023-10-25 02:28:33 +0200 <Umeaboy> So already a step ahead of you there.
2023-10-25 02:29:15 +0200 <Inst> EvanR: the solution you were expecting was a lambda to list, then applicative methods to imbue state, right? I got it fixed that way
2023-10-25 02:30:05 +0200 <Inst> no IsString, no pures everywhere, just lambda that generates a list being fmapped and <*>-ed into State StdGen
2023-10-25 02:35:00 +0200qqq(~qqq@92.43.167.61) (Read error: Connection reset by peer)
2023-10-25 02:35:38 +0200 <monochrom> jackdk: That is interesting. Thanks.
2023-10-25 02:35:43 +0200qqq(~qqq@92.43.167.61)
2023-10-25 02:38:06 +0200 <jackdk> monochrom: I wish ocharles had written more about GDP-for-authz, because https://blog.ocharles.org.uk/blog/posts/2019-08-09-who-authorized-these-ghosts.html was really promising
2023-10-25 02:42:26 +0200sansk(~sansk@072-238-128-073.res.spectrum.com)
2023-10-25 02:42:56 +0200sansk(~sansk@072-238-128-073.res.spectrum.com) (Quit: WeeChat 4.0.4)
2023-10-25 02:48:46 +0200sansk(~sansk@user/sansk)
2023-10-25 03:00:10 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2023-10-25 03:01:27 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-10-25 03:05:48 +0200otto_s(~user@p4ff279af.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-10-25 03:07:49 +0200otto_s(~user@p5b044b0d.dip0.t-ipconnect.de)
2023-10-25 03:17:26 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:484c:e1ac:4235:81cd)
2023-10-25 03:17:54 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-25 03:22:59 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-25 03:26:39 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:484c:e1ac:4235:81cd) (Ping timeout: 240 seconds)
2023-10-25 03:29:38 +0200o-90(~o-90@gateway/tor-sasl/o-90)
2023-10-25 03:32:04 +0200sansk(~sansk@user/sansk) (WeeChat 4.0.4)
2023-10-25 03:44:07 +0200leah2(~leah@vuxu.org) (Ping timeout: 264 seconds)
2023-10-25 03:50:50 +0200o-90(~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
2023-10-25 03:59:07 +0200xff0x(~xff0x@ai101218.d.east.v6connect.net) (Ping timeout: 255 seconds)
2023-10-25 04:03:05 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
2023-10-25 04:09:13 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-10-25 04:09:13 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-10-25 04:09:13 +0200finn_elijaFinnElija
2023-10-25 04:14:24 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2023-10-25 04:15:55 +0200danza_(~francesco@151.37.134.36)
2023-10-25 04:18:16 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
2023-10-25 04:19:42 +0200danse-nr3(~francesco@151.37.134.36)
2023-10-25 04:19:49 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:484c:e1ac:4235:81cd)
2023-10-25 04:22:19 +0200danse-nr3(~francesco@151.37.134.36) (Remote host closed the connection)
2023-10-25 04:22:42 +0200danse-nr3(~francesco@151.37.134.36)
2023-10-25 04:23:06 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-10-25 04:30:19 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds)
2023-10-25 04:30:56 +0200 <lockywolf> Can someone point me toward vendored builds with Cabal?
2023-10-25 04:31:03 +0200 <lockywolf> without network
2023-10-25 04:35:03 +0200 <sclv> you can use project files to point to local repos
2023-10-25 04:35:29 +0200 <sclv> either source repos or local file system repos that collect tarballs
2023-10-25 04:36:05 +0200 <sclv> cf https://cabal.readthedocs.io/en/3.6/installing-packages.html#local-no-index-repositories
2023-10-25 04:42:00 +0200danza_(~francesco@151.37.134.36) (Ping timeout: 258 seconds)
2023-10-25 04:44:05 +0200Inst(~Inst@120.244.192.250) (Read error: Connection reset by peer)
2023-10-25 04:44:36 +0200td_(~td@i53870938.versanet.de) (Ping timeout: 240 seconds)
2023-10-25 04:44:42 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-10-25 04:46:50 +0200td_(~td@i5387090F.versanet.de)
2023-10-25 04:54:20 +0200Inst(~Inst@120.244.192.250)
2023-10-25 04:55:39 +0200[_](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-10-25 04:58:56 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-10-25 04:58:59 +0200sunflower(~sunflower@2603-9001-620a-2e31-cc67-ccf1-c1a1-4821.inf6.spectrum.com)
2023-10-25 04:59:19 +0200sunflower(~sunflower@2603-9001-620a-2e31-cc67-ccf1-c1a1-4821.inf6.spectrum.com) ()
2023-10-25 04:59:30 +0200sm(~sm@plaintextaccounting/sm)
2023-10-25 05:00:03 +0200sm(~sm@plaintextaccounting/sm) (Client Quit)
2023-10-25 05:00:07 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-10-25 05:00:58 +0200vglfr(~vglfr@88.155.140.136) (Read error: Connection reset by peer)
2023-10-25 05:12:29 +0200aforemny_(~aforemny@2001:9e8:6ce8:9900:f5fb:12e8:3754:e64f)
2023-10-25 05:13:49 +0200aforemny(~aforemny@2001:9e8:6cc2:e900:a0d4:78f3:5fb4:bb3c) (Ping timeout: 258 seconds)
2023-10-25 05:14:41 +0200billchenchina(~billchenc@113.57.152.160)
2023-10-25 05:16:27 +0200billchenchina-(~billchenc@2a0c:b641:7a2:230::10)
2023-10-25 05:19:14 +0200billchenchina(~billchenc@113.57.152.160) (Ping timeout: 245 seconds)
2023-10-25 05:24:04 +0200dnb^(~cd@76.145.193.217) (Remote host closed the connection)
2023-10-25 05:28:18 +0200 <lockywolf> sclv: but how do I find out which tarballs I need do download?
2023-10-25 05:28:51 +0200 <sclv> while you’re online you can inspect the cabal.plan
2023-10-25 05:29:24 +0200 <sclv> also note that once you have a working env, you can go offline and it still works as long as you don’t add new deps
2023-10-25 05:32:51 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-10-25 05:39:12 +0200Jackneill_(~Jackneill@20014C4E1E03DB0044BF7609ADF864E0.dsl.pool.telekom.hu)
2023-10-25 05:41:56 +0200Jackneill(~Jackneill@20014C4E1E0E6F00C66CC838C6CE2C28.dsl.pool.telekom.hu) (Ping timeout: 255 seconds)
2023-10-25 05:44:22 +0200leah2(~leah@vuxu.org)
2023-10-25 05:44:35 +0200m5zs7k(aquares@web10.mydevil.net) (Quit: m5zs7k)
2023-10-25 05:46:48 +0200danse-nr3(~francesco@151.37.134.36) (Read error: Connection reset by peer)
2023-10-25 05:47:00 +0200m5zs7k(aquares@web10.mydevil.net)
2023-10-25 05:47:12 +0200danse-nr3(~francesco@151.37.177.170)
2023-10-25 05:51:20 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 256 seconds)
2023-10-25 05:58:15 +0200Umeaboy(~Umeaboy@94-255-145-133.cust.bredband2.com) (Quit: Leaving)
2023-10-25 06:00:53 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-10-25 06:01:35 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-10-25 06:02:29 +0200narutoman(~narutoman@189.172.116.173)
2023-10-25 06:03:02 +0200 <narutoman> Naruto Has Ninja Sex with Nuevo Leon Governor Samuel Garcia Naruto Uzumaki visits Monterrey and meets Governor Samuel Garcia and starts a romantic escapade with him. https://tinyurl.com/Narutosass
2023-10-25 06:04:19 +0200narutoman(~narutoman@189.172.116.173) (K-Lined)
2023-10-25 06:06:14 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-10-25 06:08:39 +0200phma_(~phma@host-67-44-208-107.hnremote.net)
2023-10-25 06:10:18 +0200phma(phma@2001:5b0:210f:1b08:8de9:836f:9645:4508) (Read error: Connection reset by peer)
2023-10-25 06:11:24 +0200phma_(~phma@host-67-44-208-107.hnremote.net) (Read error: Connection reset by peer)
2023-10-25 06:11:50 +0200phma_(phma@2001:5b0:211c:95b8:542a:48a6:f6ef:c911)
2023-10-25 06:17:54 +0200jbalint_(~jbalint@071-090-119-177.res.spectrum.com) (Read error: Connection reset by peer)
2023-10-25 06:20:11 +0200jbalint(~jbalint@071-090-119-177.res.spectrum.com)
2023-10-25 06:31:05 +0200phma_phma
2023-10-25 06:33:56 +0200danse-nr3(~francesco@151.37.177.170) (Ping timeout: 258 seconds)
2023-10-25 06:45:54 +0200 <haskellbridge> <I​nst> Matrix mods, cleanup?
2023-10-25 06:46:07 +0200 <haskellbridge> <I​nst> I guess someone is using my script
2023-10-25 06:46:26 +0200 <haskellbridge> <I​nst> with different initial parameters
2023-10-25 06:55:33 +0200danse-nr3(~francesco@151.37.177.170)
2023-10-25 07:12:04 +0200michalz(~michalz@185.246.207.215)
2023-10-25 07:15:15 +0200g(g@libera/staff/glguy) (Remote host closed the connection)
2023-10-25 07:15:18 +0200g(g@libera/staff/glguy)
2023-10-25 07:17:44 +0200random-jellyfish(~tiber@2a02:2f04:11e:c600:3081:413f:53c6:da60)
2023-10-25 07:17:44 +0200random-jellyfish(~tiber@2a02:2f04:11e:c600:3081:413f:53c6:da60) (Changing host)
2023-10-25 07:17:44 +0200random-jellyfish(~tiber@user/random-jellyfish)
2023-10-25 07:19:25 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-25 07:21:25 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-10-25 07:23:43 +0200rgw(~R@2605:a601:a0df:5600:15e8:6c08:c6f6:7379) (Read error: Connection reset by peer)
2023-10-25 07:23:51 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2023-10-25 07:29:19 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-10-25 07:33:24 +0200dsrt^(~cd@76.145.193.217) (Ping timeout: 245 seconds)
2023-10-25 07:36:32 +0200dsrt^(~cd@76.145.193.217)
2023-10-25 07:39:40 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-10-25 07:55:27 +0200 <dminuoso> lockywolf: davean did some work working with cabal-install in an offline fashion as well.
2023-10-25 07:55:39 +0200 <dminuoso> It would be really nice if `cabal-install` had some `vendor-deps` command.
2023-10-25 08:02:13 +0200 <danse-nr3> by "vendor" you mean "offline", or does it entail anything more?
2023-10-25 08:04:52 +0200 <danse-nr3> i will interpret it as "local"
2023-10-25 08:13:56 +0200chele(~chele@user/chele)
2023-10-25 08:18:12 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 258 seconds)
2023-10-25 08:27:44 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-10-25 08:43:14 +0200 <danse-nr3> .oO( maybe in haskell the practice of having a private managing a fork of the dependencies for you is so common that haskellers like "vendor" more )
2023-10-25 08:44:59 +0200ubert(~Thunderbi@91.141.40.172.wireless.dyn.drei.com)
2023-10-25 08:45:07 +0200CO2(CO2@gateway/vpn/protonvpn/co2)
2023-10-25 08:46:38 +0200 <lockywolf> dminuoso: so far this is my best attempt: https://paste.debian.net/1296115/
2023-10-25 08:47:05 +0200monochrom(trebla@216.138.220.146) (Ping timeout: 240 seconds)
2023-10-25 08:49:32 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-10-25 08:54:22 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2023-10-25 08:57:34 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-25 08:58:00 +0200notzmv(~zmv@user/notzmv)
2023-10-25 09:05:36 +0200monochrom(trebla@216.138.220.146)
2023-10-25 09:07:16 +0200lottaquestions(~nick@2607:fa49:503d:b200:641c:fc5a:8196:c097) (Remote host closed the connection)
2023-10-25 09:07:41 +0200lottaquestions(~nick@2607:fa49:503d:b200:1016:8a55:beca:b71d)
2023-10-25 09:10:58 +0200Inst(~Inst@120.244.192.250) (Ping timeout: 255 seconds)
2023-10-25 09:18:54 +0200phma(phma@2001:5b0:211c:95b8:542a:48a6:f6ef:c911) (Read error: Connection reset by peer)
2023-10-25 09:19:53 +0200phma(~phma@2001:5b0:211f:8338:4e4a:1088:5969:f228)
2023-10-25 09:21:34 +0200sm(~sm@plaintextaccounting/sm)
2023-10-25 09:26:32 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:1f7:634d:7013:a344)
2023-10-25 09:35:35 +0200danse-nr3(~francesco@151.37.177.170) (Remote host closed the connection)
2023-10-25 09:35:58 +0200danse-nr3(~francesco@151.37.177.170)
2023-10-25 09:38:23 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-25 09:39:22 +0200billchenchina-(~billchenc@2a0c:b641:7a2:230::10) (Ping timeout: 272 seconds)
2023-10-25 09:43:33 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:484c:e1ac:4235:81cd) (Remote host closed the connection)
2023-10-25 09:47:00 +0200danse-nr3_(~francesco@151.35.191.48)
2023-10-25 09:47:27 +0200danse-nr3(~francesco@151.37.177.170) (Read error: Connection reset by peer)
2023-10-25 09:52:26 +0200fendor(~fendor@2a02:8388:1640:be00:aab:1226:f274:5021)
2023-10-25 09:54:53 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-10-25 10:05:01 +0200mmhat(~mmh@p200300f1c7190756ee086bfffe095315.dip0.t-ipconnect.de)
2023-10-25 10:05:22 +0200mmhat(~mmh@p200300f1c7190756ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
2023-10-25 10:09:45 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2023-10-25 10:16:51 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:7058:6d5c:2ab:360f)
2023-10-25 10:20:45 +0200vglfr(~vglfr@88.155.140.136)
2023-10-25 10:23:07 +0200tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2023-10-25 10:26:12 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2023-10-25 10:28:04 +0200 <lockywolf> Is there some straightforward way to trim the giant 01-index.tar file and its pals to the packages already downloaded?
2023-10-25 10:33:33 +0200 <dminuoso> lockywolf: Like I said, dig into what davean built.
2023-10-25 10:34:05 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-10-25 10:34:40 +0200 <dminuoso> Dont have my old IRC logs anymore, so I cant figure out the project name
2023-10-25 10:34:57 +0200rosco(~rosco@yp-150-69.tm.net.my)
2023-10-25 10:35:06 +0200dhruvasagar1(~dhruvasag@37.19.205.196) (Ping timeout: 260 seconds)
2023-10-25 10:38:48 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-25 10:40:10 +0200danse-nr3_(~francesco@151.35.191.48) (Ping timeout: 272 seconds)
2023-10-25 10:40:35 +0200dhruvasagar(~dhruvasag@37.19.205.196)
2023-10-25 10:42:36 +0200vglfr(~vglfr@88.155.140.136) (Remote host closed the connection)
2023-10-25 10:43:11 +0200vglfr(~vglfr@88.155.140.136)
2023-10-25 10:43:35 +0200migas4(~migas@astra4961.startdedicated.net) (Quit: Ping timeout (120 seconds))
2023-10-25 10:44:31 +0200gehmehgeh(~user@user/gehmehgeh)
2023-10-25 10:44:47 +0200migas4(~migas@astra4961.startdedicated.net)
2023-10-25 10:45:16 +0200 <mauke> uh oh. I think I just discovered string gaps in Perl
2023-10-25 10:46:03 +0200vglfr(~vglfr@88.155.140.136) (Remote host closed the connection)
2023-10-25 10:46:16 +0200__monty__(~toonn@user/toonn)
2023-10-25 10:46:39 +0200vglfr(~vglfr@88.155.140.136)
2023-10-25 10:49:47 +0200fendor(~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) (Remote host closed the connection)
2023-10-25 10:50:06 +0200fendor(~fendor@2a02:8388:1640:be00:dc89:8d8:5d44:854b)
2023-10-25 10:51:02 +0200danse-nr3(~francesco@151.35.191.48)
2023-10-25 10:53:20 +0200migas4(~migas@astra4961.startdedicated.net) (Quit: Ping timeout (120 seconds))
2023-10-25 10:53:42 +0200 <mauke> https://paste.tomsmeding.com/trEpgZqb - gaps.pl.lhs
2023-10-25 10:54:24 +0200Square3(~Square4@user/square)
2023-10-25 10:55:38 +0200vglfr(~vglfr@88.155.140.136) (Remote host closed the connection)
2023-10-25 10:57:07 +0200migas4(~migas@astra4961.startdedicated.net)
2023-10-25 10:57:48 +0200vglfr(~vglfr@88.155.140.136)
2023-10-25 11:00:35 +0200rosco(~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal)
2023-10-25 11:04:38 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-25 11:04:58 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2023-10-25 11:07:11 +0200ubert(~Thunderbi@91.141.40.172.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2023-10-25 11:10:20 +0200Pickchea(~private@user/pickchea)
2023-10-25 11:11:36 +0200ubert(~Thunderbi@91.141.40.172.wireless.dyn.drei.com)
2023-10-25 11:20:57 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-25 11:25:48 +0200ubert1(~Thunderbi@178.165.198.50.wireless.dyn.drei.com)
2023-10-25 11:26:02 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds)
2023-10-25 11:27:19 +0200ubert(~Thunderbi@91.141.40.172.wireless.dyn.drei.com) (Ping timeout: 255 seconds)
2023-10-25 11:27:19 +0200ubert1ubert
2023-10-25 11:27:21 +0200vglfr(~vglfr@88.155.140.136) (Read error: Connection reset by peer)
2023-10-25 11:27:36 +0200incertia(~incertia@209.122.71.127) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-25 11:27:42 +0200vglfr(~vglfr@185-177-124-194.hosted-by-worldstream.net)
2023-10-25 11:28:27 +0200incertia(~incertia@209.122.71.127)
2023-10-25 11:29:21 +0200dhruvasagar(~dhruvasag@37.19.205.196) (Ping timeout: 260 seconds)
2023-10-25 11:29:36 +0200acidjnk(~acidjnk@p200300d6e72b930390f6e959e0858704.dip0.t-ipconnect.de)
2023-10-25 11:31:48 +0200dhruvasagar(~dhruvasag@37.19.205.196)
2023-10-25 11:37:01 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-25 11:47:13 +0200 <lockywolf> seemingly, cracked it
2023-10-25 11:48:16 +0200vglfr(~vglfr@185-177-124-194.hosted-by-worldstream.net) (Ping timeout: 258 seconds)
2023-10-25 11:48:39 +0200hippoid(~hippoid@c-98-213-162-40.hsd1.il.comcast.net) (Ping timeout: 240 seconds)
2023-10-25 11:50:46 +0200hippoid(~hippoid@c-98-213-162-40.hsd1.il.comcast.net)
2023-10-25 11:54:39 +0200vglfr(~vglfr@88.155.140.136)
2023-10-25 11:55:43 +0200random-jellyfish(~tiber@user/random-jellyfish) (Ping timeout: 260 seconds)
2023-10-25 11:58:58 +0200random-jellyfish(~tiber@2a02:2f04:11e:c600:3081:413f:53c6:da60)
2023-10-25 11:58:58 +0200random-jellyfish(~tiber@2a02:2f04:11e:c600:3081:413f:53c6:da60) (Changing host)
2023-10-25 11:58:58 +0200random-jellyfish(~tiber@user/random-jellyfish)
2023-10-25 12:08:02 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds)
2023-10-25 12:11:19 +0200arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net)
2023-10-25 12:12:38 +0200elkcl(~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 272 seconds)
2023-10-25 12:16:57 +0200ft(~ft@p4fc2a529.dip0.t-ipconnect.de) (Quit: leaving)
2023-10-25 12:18:34 +0200elkcl(~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru)
2023-10-25 12:30:01 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-10-25 12:46:36 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2023-10-25 12:47:03 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Ping timeout: 240 seconds)
2023-10-25 12:49:16 +0200puke(~puke@user/puke) (Quit: puke)
2023-10-25 12:53:27 +0200puke(~puke@user/puke)
2023-10-25 13:03:01 +0200kwii(~kwii@193.19.203.71)
2023-10-25 13:03:47 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:7058:6d5c:2ab:360f) (Ping timeout: 258 seconds)
2023-10-25 13:06:12 +0200snowsauce(~snowsauce@pa9-84-91-207-96.netvisao.pt)
2023-10-25 13:06:38 +0200chomwitt(~chomwitt@2a02:587:7a01:8f00:1ac0:4dff:fedb:a3f1)
2023-10-25 13:08:43 +0200sansk(~sansk@user/sansk)
2023-10-25 13:10:39 +0200xff0x(~xff0x@2405:6580:b080:900:b408:5b9a:5100:323d)
2023-10-25 13:12:33 +0200hpc(~juzz@ip98-169-35-163.dc.dc.cox.net)
2023-10-25 13:13:20 +0200CiaoSen(~Jura@2a05:5800:2bd:d400:664b:f0ff:fe37:9ef)
2023-10-25 13:15:18 +0200kwii(~kwii@193.19.203.71) ()
2023-10-25 13:17:52 +0200Guest|60(~Guest|60@91.187.138.52)
2023-10-25 13:17:58 +0200 <Guest|60> hi
2023-10-25 13:18:10 +0200 <Guest|60> is there anyonoe
2023-10-25 13:18:18 +0200 <Guest|60> i cant installiram mrtvi huskel
2023-10-25 13:18:28 +0200Guest|60(~Guest|60@91.187.138.52) (Client Quit)
2023-10-25 13:28:04 +0200sm(~sm@plaintextaccounting/sm)
2023-10-25 13:31:47 +0200accord(uid568320@id-568320.hampstead.irccloud.com)
2023-10-25 13:36:37 +0200danse-nr3(~francesco@151.35.191.48) (Ping timeout: 255 seconds)
2023-10-25 13:37:41 +0200Pickchea(~private@user/pickchea) (Ping timeout: 255 seconds)
2023-10-25 13:40:18 +0200sansk(~sansk@user/sansk) ()
2023-10-25 13:40:31 +0200xff0x(~xff0x@2405:6580:b080:900:b408:5b9a:5100:323d) (Ping timeout: 264 seconds)
2023-10-25 13:41:59 +0200xff0x(~xff0x@ai101218.d.east.v6connect.net)
2023-10-25 13:58:19 +0200rosco(~rosco@yp-150-69.tm.net.my)
2023-10-25 14:04:14 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 255 seconds)
2023-10-25 14:05:31 +0200naruto69(~naruto69@189.172.34.154)
2023-10-25 14:09:19 +0200dhruvasagar(~dhruvasag@37.19.205.196) (Ping timeout: 264 seconds)
2023-10-25 14:12:09 +0200vglfr(~vglfr@88.155.140.136) (Read error: Connection reset by peer)
2023-10-25 14:24:54 +0200kwii(~kwii@193.19.203.71)
2023-10-25 14:25:09 +0200 <naruto69> Read about it! Naruto Has Ninja Sex with Nuevo Leon Governor Samuel Garcia ------ Naruto grinned and formed the seals for a new jutsu he had been working on. "It's called the Ketsuryugan," he explained, "It's like a rasengan, but instead of spinning chakra, it's a concentrated blast of pleasure that stimulates the rectum and prostate." Samuel Garcia's eyebrows shot up in surprise, but he was clearly intrigued. "Sounds interesting. Can you show me
2023-10-25 14:25:10 +0200 <naruto69> how it works?" https://justpaste.it/Naruto_Makes_Love_Samuel_Garcia
2023-10-25 14:25:16 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2023-10-25 14:25:24 +0200kwii(~kwii@193.19.203.71) ()
2023-10-25 14:27:02 +0200 <mauke> @where ops
2023-10-25 14:27:02 +0200 <lambdabot> byorgey Cale conal copumpkin dcoutts dibblego dolio edwardk geekosaur glguy jmcarthur johnw mniip monochrom quicksilver shachaf shapr ski
2023-10-25 14:28:47 +0200danse-nr3(~francesco@151.35.150.119)
2023-10-25 14:31:57 +0200ChanServ+o dibblego
2023-10-25 14:32:19 +0200dibblego+b *!*@189.172.34.154
2023-10-25 14:32:26 +0200naruto69dibblego (naruto69)
2023-10-25 14:32:40 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-25 14:38:07 +0200hpc(~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 264 seconds)
2023-10-25 14:42:47 +0200billchenchina-(~billchenc@2a0c:b641:7a2:230::10)
2023-10-25 14:45:27 +0200billchenchina-(~billchenc@2a0c:b641:7a2:230::10) (Remote host closed the connection)
2023-10-25 14:45:42 +0200billchenchina-(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
2023-10-25 14:46:41 +0200stuu22(~stuuu@2a01:c22:8cfe:e300:a9aa:ead8:c4c6:1a2f)
2023-10-25 14:50:10 +0200 <stuu22> hi, i have the ominous error ld.lld undefined symbol when trying to compile with cabal on windows (i know, but it has to..). i tried ghc 9.6.2, 9.4.7 and 9.8.1. it works on mac and linux tho. anybody knows about this? the web does not give too much info about this
2023-10-25 14:52:26 +0200 <stuu22> happens as soon as i try to use aeson in the code. on mac it helped to update to ghc 9.6.2. looks like a linking clang error, but i am not really firm with C/gcc and/or whatever.
2023-10-25 14:53:17 +0200Inst(~Inst@120.244.192.250)
2023-10-25 14:53:39 +0200fendor_(~fendor@2a02:8388:1640:be00:dc89:8d8:5d44:854b)
2023-10-25 14:54:13 +0200fendor(~fendor@2a02:8388:1640:be00:dc89:8d8:5d44:854b) (Ping timeout: 260 seconds)
2023-10-25 14:56:39 +0200dhruvasagar(~dhruvasag@37.19.205.196)
2023-10-25 14:59:06 +0200 <danse-nr3> stuu22, i am using WSL on windows. It sucks but i would not change it for "no linux at all"
2023-10-25 14:59:38 +0200 <danse-nr3> i think the linker is missing? So some dependency that is not tracked by haskell. Did you install with ghcup?
2023-10-25 15:00:36 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-10-25 15:00:50 +0200 <[exa]> stuu22: which symbol is undefined? (maybe pastebin the whole log)
2023-10-25 15:00:59 +0200 <mauke> if you're getting an "undefined symbol" error from the linker, then the linker is not missing
2023-10-25 15:01:02 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:7058:6d5c:2ab:360f)
2023-10-25 15:03:16 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 256 seconds)
2023-10-25 15:03:27 +0200 <danse-nr3> true sorry
2023-10-25 15:03:45 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2023-10-25 15:05:41 +0200 <danse-nr3> start of the sprint = skimming through stuff faster! :P
2023-10-25 15:08:37 +0200waleee(~waleee@2001:9b0:21c:e600:f2f3:f744:435d:137c)
2023-10-25 15:10:26 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-25 15:10:58 +0200 <stuu22> yes, i installed with ghcup. i like the WSL idea (which i use most of the time on my personal machine), but this one has to run native.
2023-10-25 15:11:01 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:7058:6d5c:2ab:360f) (Ping timeout: 260 seconds)
2023-10-25 15:11:02 +0200sm(~sm@plaintextaccounting/sm)
2023-10-25 15:11:15 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2023-10-25 15:11:19 +0200 <stuu22> here is the full log: https://privatebin.net/?1d95cc51613ef84e#Fj4Rpie9nKfZuLkxAk9bQChSZZftiiz9uj4jEM9Fiyor
2023-10-25 15:11:57 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2023-10-25 15:13:44 +0200waleee(~waleee@2001:9b0:21c:e600:f2f3:f744:435d:137c) (Ping timeout: 258 seconds)
2023-10-25 15:18:39 +0200 <lockywolf> Is there a way to request an improvement to hackage?
2023-10-25 15:19:27 +0200 <lockywolf> I want to have a link like https://hackage.haskell.org/package/semigroupoids-6.0.0.1/revision/semigroupoids-6.0.0.1-1.cabal
2023-10-25 15:20:17 +0200 <lockywolf> instead of https://hackage.haskell.org/package/semigroupoids-6.0.0.1/revision/1.cabal
2023-10-25 15:22:27 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-25 15:25:48 +0200stuu22(~stuuu@2a01:c22:8cfe:e300:a9aa:ead8:c4c6:1a2f) (Ping timeout: 240 seconds)
2023-10-25 15:26:15 +0200stuu22(~stuuu@2a01:c22:8cfe:e300:1d0c:2eb2:7792:5e47)
2023-10-25 15:27:17 +0200vglfr(~vglfr@88.155.140.136)
2023-10-25 15:27:29 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-25 15:28:12 +0200koz(~koz@121.99.240.58) (Ping timeout: 248 seconds)
2023-10-25 15:30:05 +0200danse-nr3(~francesco@151.35.150.119) (Remote host closed the connection)
2023-10-25 15:30:29 +0200danse-nr3(~francesco@151.35.150.119)
2023-10-25 15:30:45 +0200koz(~koz@121.99.240.58)
2023-10-25 15:32:12 +0200arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) (Ping timeout: 240 seconds)
2023-10-25 15:32:51 +0200ChanServ+o litharge
2023-10-25 15:32:52 +0200litharge-bo *!*@189.172.34.154 litharge
2023-10-25 15:35:18 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-10-25 15:35:57 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-25 15:40:42 +0200vglfr(~vglfr@88.155.140.136) (Read error: Connection reset by peer)
2023-10-25 15:43:30 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2023-10-25 15:45:33 +0200koz(~koz@121.99.240.58) (Ping timeout: 258 seconds)
2023-10-25 15:46:34 +0200accord(uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-25 15:49:31 +0200stuu22(~stuuu@2a01:c22:8cfe:e300:1d0c:2eb2:7792:5e47) (Ping timeout: 264 seconds)
2023-10-25 15:50:25 +0200koz(~koz@121.99.240.58)
2023-10-25 15:50:32 +0200mcfrdy(~mcfrdy@user/mcfrdy) (Quit: quit)
2023-10-25 15:50:52 +0200mcfrdy(~mcfrdy@user/mcfrdy)
2023-10-25 15:51:55 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
2023-10-25 15:53:33 +0200qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2023-10-25 15:53:53 +0200qqq(~qqq@92.43.167.61)
2023-10-25 15:57:43 +0200Square3(~Square4@user/square) (Remote host closed the connection)
2023-10-25 15:57:44 +0200 <Unicorn_Princess> how is cabal repl --repl-options supposed to be used? --ghc-options '-ghci-script "/path/to/script.ghci"' works, but the same with repl-options instead of ghc-options doesn't (no error, just doesn't load the script)
2023-10-25 15:58:13 +0200ddb(ddb@tilde.club)
2023-10-25 15:58:23 +0200Square3(~Square4@user/square)
2023-10-25 15:59:18 +0200 <Unicorn_Princess> i could be doing path quoting wrong - i'm pretty bad at it
2023-10-25 16:00:14 +0200CO2(CO2@gateway/vpn/protonvpn/co2) (Quit: WeeChat 4.1.0)
2023-10-25 16:05:43 +0200lambdap2371(~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: Ping timeout (120 seconds))
2023-10-25 16:06:04 +0200lambdap2371(~lambdap@static.167.190.119.168.clients.your-server.de)
2023-10-25 16:12:58 +0200califax(~califax@user/califx) (Ping timeout: 256 seconds)
2023-10-25 16:13:38 +0200califax(~califax@user/califx)
2023-10-25 16:16:35 +0200sm(~sm@plaintextaccounting/sm)
2023-10-25 16:21:34 +0200 <danse-nr3> not familiar with those sorry
2023-10-25 16:24:23 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-10-25 16:24:53 +0200 <Inst> in record syntax, I can't apply a function to specify the source, right?
2023-10-25 16:25:21 +0200CO2(CO2@gateway/vpn/protonvpn/co2)
2023-10-25 16:27:45 +0200 <Unicorn_Princess> i don't understand - elaborate
2023-10-25 16:27:56 +0200nyc(~nyc@user/nyc) (Ping timeout: 248 seconds)
2023-10-25 16:28:43 +0200 <lortabac> Inst: what is the source?
2023-10-25 16:29:13 +0200 <Inst> say, data Foo = MkFoo {hello :: Int, goodbye :: Int}
2023-10-25 16:29:24 +0200 <Inst> u :: Foo
2023-10-25 16:29:38 +0200 <Inst> synonynm = hello
2023-10-25 16:29:50 +0200 <geekosaur> lockywolf, probably file an issue against hackage-server, it's on cabal and on github
2023-10-25 16:29:56 +0200 <Inst> synonym = hello
2023-10-25 16:30:02 +0200 <geekosaur> Inst, no
2023-10-25 16:30:04 +0200 <Inst> u {hello = 3}
2023-10-25 16:30:06 +0200 <Inst> derp
2023-10-25 16:30:07 +0200 <Inst> erm
2023-10-25 16:30:13 +0200 <Inst> u {synonym = 3}
2023-10-25 16:31:06 +0200 <geekosaur> field selectors can't be used that way. # syntax or RecordDotSyntax can, by defining the appropriate constraint
2023-10-25 16:31:17 +0200sm_(~sm@plaintextaccounting/sm)
2023-10-25 16:31:38 +0200 <Inst> # syntax? ?:(
2023-10-25 16:31:50 +0200sm(~sm@plaintextaccounting/sm) (Ping timeout: 246 seconds)
2023-10-25 16:31:51 +0200 <geekosaur> foo #"xxx" or foo #xxx
2023-10-25 16:32:02 +0200 <Inst> wait, when was this added?
2023-10-25 16:32:26 +0200nyc(~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com)
2023-10-25 16:32:44 +0200 <dminuoso> Inst: Do you mean you want to dynamically resolve the record accessor?
2023-10-25 16:32:50 +0200 <Inst> yeah
2023-10-25 16:33:04 +0200 <geekosaur> it's been around a while but I don';t recall when it was added
2023-10-25 16:33:05 +0200 <dminuoso> TemplateHaskell, or `lens/optics` are your friends then.
2023-10-25 16:33:23 +0200 <dminuoso> fsvo "friends"
2023-10-25 16:33:52 +0200 <Inst> "makeLenses" ugh
2023-10-25 16:34:18 +0200 <dminuoso> Inst: You can also just write out a tag based writer `writeProperty :: FooTag -> Foo -> Int -> Foo` with `data FooTag = TagHello | TagGoodbye`
2023-10-25 16:34:27 +0200 <dminuoso> Well, you can also write out the lenses manually if you like
2023-10-25 16:34:48 +0200vglfr(~vglfr@88.155.140.136)
2023-10-25 16:35:09 +0200 <dminuoso> `lens/optics` is the far more elaborate and generalized approach to aboves `writeProperty`
2023-10-25 16:36:56 +0200 <Inst> i guess i'll miss this silliness
2023-10-25 16:37:09 +0200 <Inst> remember why ; was put into C syntax?
2023-10-25 16:37:39 +0200 <geekosaur> https://downloads.haskell.org/ghc/9.8.1/docs/users_guide/exts/hasfield.html#virtual-record-fields
2023-10-25 16:38:14 +0200 <dminuoso> Inst: B had it, ALGOL had it, PL/I had it.
2023-10-25 16:38:14 +0200 <geekosaur> seems to be the only place where # syntaxc is mentioned any more, they're trying really hard to push OverloadedRecordDot instead
2023-10-25 16:38:24 +0200 <dminuoso> So the semicolon predates C.
2023-10-25 16:38:49 +0200 <Inst> iirc the point was to avoid copy errors during network transmission in, what, I forget what came even before 14.4kbps modems?
2023-10-25 16:39:11 +0200 <geekosaur> 110 baud modems with BAUDOT, if you go back far enough
2023-10-25 16:39:30 +0200 <dminuoso> Im going out on a limb to say that ALGOL 60 is probably the earliest widely adopted language that used the semicolon as statement separation.
2023-10-25 16:39:31 +0200 <geekosaur> but the avoiding copy errors was done with parity bits, not extra syntax
2023-10-25 16:39:59 +0200 <geekosaur> sorry, there were 75 baud modems early on too
2023-10-25 16:40:08 +0200 <dminuoso> Ah, or whatever ALGOL came before that.
2023-10-25 16:40:37 +0200 <geekosaur> there wasn't an earlier one?
2023-10-25 16:40:57 +0200 <geekosaur> it's distinguished from ALGOL 68
2023-10-25 16:41:16 +0200 <dminuoso> There was ALGOL 58 as well.
2023-10-25 16:41:25 +0200 <geekosaur> oh
2023-10-25 16:42:30 +0200 <dminuoso> Found one earlier than that.
2023-10-25 16:42:30 +0200vglfr(~vglfr@88.155.140.136) (Read error: Connection reset by peer)
2023-10-25 16:42:32 +0200 <dminuoso> https://en.wikipedia.org/wiki/FLOW-MATIC
2023-10-25 16:42:54 +0200 <dminuoso> Though Im fairly certain whatever language this was burrowed from was forgotten in time.
2023-10-25 16:43:06 +0200 <Unicorn_Princess> like tears
2023-10-25 16:43:09 +0200 <Unicorn_Princess> in
2023-10-25 16:43:11 +0200 <Unicorn_Princess> rain
2023-10-25 16:43:14 +0200 <Inst> i mean the code reduplication to an extent is relaxing :(
2023-10-25 16:50:46 +0200vglfr(~vglfr@88.155.140.136)
2023-10-25 16:57:42 +0200aljazmc(~aljazmc@user/aljazmc) (Quit: Leaving)
2023-10-25 17:08:33 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:1f7:634d:7013:a344) (Quit: WeeChat 2.8)
2023-10-25 17:10:22 +0200Lycurgus(~georg@user/Lycurgus)
2023-10-25 17:14:41 +0200 <EvanR> "repeat your code" not the kind of unpythonic style I was thinking of xD
2023-10-25 17:16:12 +0200 <Inst> i'm just happy it works, i'm annoyed that even with a lot of time, i'm only dumping 200 lines of trivial (and probably badly written) code per day
2023-10-25 17:19:13 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:7058:6d5c:2ab:360f)
2023-10-25 17:19:47 +0200Inst_(~Inst@120.244.192.250)
2023-10-25 17:20:07 +0200danse-nr3(~francesco@151.35.150.119) (Ping timeout: 255 seconds)
2023-10-25 17:20:14 +0200ski(~ski@88.131.7.247)
2023-10-25 17:21:50 +0200dhruvasagar1(~dhruvasag@49.207.194.211)
2023-10-25 17:22:18 +0200 <EvanR> lens gets all the attention now, but at one point there was this https://github.com/haskellcats/semantic-editor-combinators
2023-10-25 17:22:20 +0200Inst(~Inst@120.244.192.250) (Ping timeout: 248 seconds)
2023-10-25 17:22:21 +0200dhruvasagar1(~dhruvasag@49.207.194.211) (Client Quit)
2023-10-25 17:22:33 +0200 <EvanR> that was for Inst
2023-10-25 17:22:39 +0200 <EvanR> R.I.P.
2023-10-25 17:22:45 +0200 <yushyin> :D
2023-10-25 17:23:08 +0200 <geekosaur> fclabels predated them all, I think?
2023-10-25 17:23:36 +0200 <geekosaur> although they quickly migrated to van Laarhoven after lens came out
2023-10-25 17:23:56 +0200dhruvasagar(~dhruvasag@37.19.205.196) (Ping timeout: 248 seconds)
2023-10-25 17:25:30 +0200sabino(~sabino@user/sabino)
2023-10-25 17:26:52 +0200acidjnk(~acidjnk@p200300d6e72b930390f6e959e0858704.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2023-10-25 17:28:19 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2023-10-25 17:28:23 +0200 <Inst_> is it possible to test games?
2023-10-25 17:28:30 +0200 <exarkun> of course
2023-10-25 17:28:31 +0200 <Inst_> i mean, of course it is, but it's significantly more difficult
2023-10-25 17:28:39 +0200 <Inst_> to test games, since there's so many valid and obtainable states, no?
2023-10-25 17:28:40 +0200 <exarkun> more difficult than what
2023-10-25 17:28:51 +0200 <Inst_> other applications
2023-10-25 17:28:58 +0200 <Inst_> i'm testing a tower of hanoi i built
2023-10-25 17:29:15 +0200 <exarkun> what's hard about testing that
2023-10-25 17:29:28 +0200 <Inst_> I'm trying to test the exit screen when I set N = 9 as default.
2023-10-25 17:29:33 +0200acidjnk(~acidjnk@p200300d6e72b93039c291881441b2222.dip0.t-ipconnect.de)
2023-10-25 17:30:18 +0200Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-10-25 17:30:19 +0200 <haskellbridge> <s​m> sometimes you need to build in testability features. Eg a mode where it logs each screen to a readable log file, which you can compare with past runs
2023-10-25 17:31:01 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:7058:6d5c:2ab:360f) (Remote host closed the connection)
2023-10-25 17:31:04 +0200 <haskellbridge> <s​m> there's also tools like `expect` for automating interactive terminal I/O (usually not worth the trouble I feel)
2023-10-25 17:31:05 +0200 <Inst_> I'm more asking about the state of the art in formally verifying games
2023-10-25 17:31:10 +0200 <EvanR> many games have a debug tool, debug room, cheats, and if you defined a "save" properly you can easily restore the circumstances you're trying to test
2023-10-25 17:31:18 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-10-25 17:31:21 +0200 <Inst_> because when you're looking at a complex state machine like this, ummm
2023-10-25 17:31:24 +0200 <exarkun> "games" as a category are barely more specified than "programs", or maybe not any more specified
2023-10-25 17:31:30 +0200 <exarkun> so the question is as hard as "how do you test programs"
2023-10-25 17:31:35 +0200 <EvanR> and of course the more pieces of your game that are purely functional, the easier is it to test that
2023-10-25 17:31:50 +0200haskellbridge<s​m> ponders formally verify the exit screen...
2023-10-25 17:31:53 +0200 <EvanR> putting it all in IO will exclude that
2023-10-25 17:33:09 +0200 <haskellbridge> <s​m> quickcheck & co might help
2023-10-25 17:33:32 +0200 <EvanR> if your game involves floating point maths and physical models, you might need to use more brain to "verify" whatever it's supposed to do. But many games don't attempt it, leading to glitches
2023-10-25 17:34:19 +0200 <Inst_> that's an interesting point, i.e, i probably should make this hanoi more purely functional, use a smaller loop and pass execution purely, instead of closure abuse
2023-10-25 17:34:34 +0200 <EvanR> yes simple games can usually be functionalized
2023-10-25 17:34:39 +0200 <Inst_> i'm not sure if you'd call this bad advice, but I told someone who, for some bizarre reason, liked Haskell's laziness but not its purity
2023-10-25 17:34:48 +0200 <Inst_> just to abuse closures
2023-10-25 17:35:04 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Quit: WeeChat 4.0.2)
2023-10-25 17:35:15 +0200 <Inst_> everything in IO, only FP is in where clauses
2023-10-25 17:36:05 +0200 <EvanR> that person is free to insert unsafePerformIOs everywhere and see how they like it
2023-10-25 17:36:18 +0200danse-nr3(~francesco@151.35.150.119)
2023-10-25 17:36:24 +0200 <Inst_> i think they're trolling because it's such a bizarre response
2023-10-25 17:37:21 +0200stuu22(~stuuu@2a01:c22:8cfe:e300:1d0c:2eb2:7792:5e47)
2023-10-25 17:38:03 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-10-25 17:38:05 +0200 <Inst_> i think in the future, for reasonably complex games, it'd be better to feature a more complex record type
2023-10-25 17:38:44 +0200 <Inst_> IO layer only gets data, outputs data, then passes state enclosing data to a pure function instead
2023-10-25 17:38:49 +0200 <Inst_> this is just way too tightly coupled
2023-10-25 17:38:54 +0200 <Inst_> i mean, the way i'm doing it now
2023-10-25 17:39:58 +0200 <EvanR> :t interact
2023-10-25 17:39:59 +0200 <lambdabot> (String -> String) -> IO ()
2023-10-25 17:40:08 +0200 <EvanR> ok that one doesn't allow state.
2023-10-25 17:40:42 +0200 <EvanR> (String -> s -> (String, s)) -> String -> s -> IO ()
2023-10-25 17:40:55 +0200 <EvanR> now zork can be purely functional
2023-10-25 17:41:11 +0200 <EvanR> that's the only IO action
2023-10-25 17:41:21 +0200stuu22ash3en
2023-10-25 17:42:12 +0200 <Inst_> brb, smoke, but would be interested in the record signature
2023-10-25 17:44:43 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds)
2023-10-25 17:46:26 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-10-25 17:46:46 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net)
2023-10-25 17:47:42 +0200danse-nr3_(~francesco@151.35.202.181)
2023-10-25 17:49:32 +0200danse-nr3(~francesco@151.35.150.119) (Read error: Connection reset by peer)
2023-10-25 17:49:41 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds)
2023-10-25 17:51:04 +0200 <EvanR> play :: Display -> Color -> Int -> s -> (s -> Picture) -> (Event -> s -> s) -> (Float -> s -> s) -> IO () -- now you have a purely graphical game (with no sound), this is from the gloss package
2023-10-25 17:51:16 +0200 <EvanR> purely functional graphical game
2023-10-25 17:51:22 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2023-10-25 17:52:03 +0200ubert(~Thunderbi@178.165.198.50.wireless.dyn.drei.com) (Ping timeout: 258 seconds)
2023-10-25 17:55:22 +0200tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2023-10-25 17:55:56 +0200 <ski> EvanR : is that supposed to be something `unfoldr'y ?
2023-10-25 17:56:12 +0200 <ski> (your penultimate signature)
2023-10-25 17:57:45 +0200 <ski> let loop state0 input = ..(loop state remainingInput).. in interact (loop initState) -- this does state, btw
2023-10-25 18:01:12 +0200 <ski> also, you could refactor `play' into
2023-10-25 18:01:17 +0200Inst_(~Inst@120.244.192.250) (Ping timeout: 255 seconds)
2023-10-25 18:01:19 +0200 <ski> play :: Display -> Color -> Int -> Stuff -> IO ()
2023-10-25 18:01:20 +0200 <EvanR> penultimate f msg state0 = do { putStrLn msg; input <- getLine; (response, state1) <- f input state0; penultimate f response state1 }
2023-10-25 18:01:21 +0200 <ski> data Stuff = MkStuff Picture (Event -> Foo) (Float -> Foo)
2023-10-25 18:01:40 +0200 <ski> (er, s/Foo/Stuff/)
2023-10-25 18:01:48 +0200Buliarous(~gypsydang@46.232.210.139) (Ping timeout: 248 seconds)
2023-10-25 18:02:35 +0200CiaoSen(~Jura@2a05:5800:2bd:d400:664b:f0ff:fe37:9ef) (Ping timeout: 240 seconds)
2023-10-25 18:03:39 +0200 <EvanR> @src interact
2023-10-25 18:03:40 +0200 <lambdabot> interact f = do s <- getContents; putStr (f s)
2023-10-25 18:05:46 +0200 <EvanR> I see, lazy list I/O
2023-10-25 18:07:27 +0200 <ski> penultimate f msg = interact . loop where loop state0 instream = msg ++ '\n' : case break ('\n' ==) instream of (input,rest) -> let (response,state1) = f input state0 in loop response state1
2023-10-25 18:08:03 +0200 <ski> (changing `f' back to non-`IO', as in your original signature)
2023-10-25 18:09:42 +0200 <Unicorn_Princess> (correct me if i'm wrong) library source code goes in myproject/src/, executable source goes in app/MyExe.hs, non-code data files a project needs goes in data/ - but where do random development convenience/install scripts go? dev/? scripts/? tools/?
2023-10-25 18:10:16 +0200 <Unicorn_Princess> (i know it's all subjective, asking for how it's usually done. guidelines)
2023-10-25 18:10:46 +0200aljazmc(~aljazmc@user/aljazmc)
2023-10-25 18:10:48 +0200 <ski> EvanR : anyway, i just wanted to offer a riposte to "ok that one doesn't allow state."
2023-10-25 18:11:13 +0200 <EvanR> yeah I got that. Now I'm internalizing the consequences for the style you suggested xD
2023-10-25 18:11:13 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 258 seconds)
2023-10-25 18:11:31 +0200skismiles
2023-10-25 18:13:10 +0200 <ski> (should i expand on my refactoring of `play', or is it obvious how i arrived at it ?)
2023-10-25 18:14:01 +0200 <EvanR> if you implement play with just lambda calculus I'll be impressed
2023-10-25 18:14:28 +0200 <ski> well, `IO's in the type, presumably it's going to use some `IO' primitives
2023-10-25 18:14:30 +0200 <int-e> . o O ( main :: [Reply] -> [Request] )
2023-10-25 18:15:03 +0200skioffers a dialogue as final answer
2023-10-25 18:15:54 +0200 <EvanR> [Reply] -> [Request] makes my brain explode
2023-10-25 18:16:06 +0200 <yin> is there a cabal command to add a package as a dependency automatically with version constraints?
2023-10-25 18:16:13 +0200 <ski> it's related to TyingTheKnot
2023-10-25 18:16:46 +0200 <int-e> EvanR: I mean it's really the same idea as `interact` except there you have Reply = Request = Char so it's easier to miss the flow when glancing at the type.
2023-10-25 18:16:48 +0200danse-nr3_(~francesco@151.35.202.181) (Remote host closed the connection)
2023-10-25 18:17:09 +0200shapr(~user@2600:1700:c640:3100:70ed:821a:ab80:9f0d) (Remote host closed the connection)
2023-10-25 18:17:10 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-10-25 18:17:11 +0200danse-nr3_(~francesco@151.35.202.181)
2023-10-25 18:17:15 +0200 <Unicorn_Princess> yin, don't know, but cabal can automatically give you the version bounds: https://cabal.readthedocs.io/en/3.4/cabal-package.html#generating-dependency-version-bounds
2023-10-25 18:17:22 +0200shapr(~user@2600:1700:c640:3100:5fc7:fa6:a4a8:54f1)
2023-10-25 18:17:26 +0200 <ski> @wiki Tying the Knot
2023-10-25 18:17:26 +0200 <lambdabot> https://wiki.haskell.org/Tying_the_Knot
2023-10-25 18:17:30 +0200 <EvanR> interact seems to have a more causal behavior
2023-10-25 18:18:10 +0200 <ski> EvanR : `type Dialogue = [Reply] -> [Request]' is how Haskell originally did I/O
2023-10-25 18:18:16 +0200 <EvanR> yeah
2023-10-25 18:18:33 +0200 <EvanR> 1 reply per request
2023-10-25 18:18:44 +0200Inst_(~Inst@120.244.192.250)
2023-10-25 18:18:45 +0200 <ski> that tends to make things simpler, yea
2023-10-25 18:19:23 +0200 <yin> Unicorn_Princess: ty. it seems like a very small step from this to having it update the cabal file automatically
2023-10-25 18:20:07 +0200 <ski> the original design for pre-Mercury (Ptah), used a similar idea : `main([Response|Reponses],[Request|Requests]) :- ...', where you'd instantiate `Request' to the action you wanted to perform, and the run-time system would then perform the I/O and instantiation `Response' back with the result
2023-10-25 18:20:32 +0200 <monochrom> I don't know what "auto add dependency" means. How does it know that I want random-fu?
2023-10-25 18:20:34 +0200 <ski> Zoltan Somogyi has some paper which talks about this .. i forgot which exact one
2023-10-25 18:20:56 +0200 <yin> monochrom: cabal add random-fu
2023-10-25 18:21:12 +0200 <yin> would be a command
2023-10-25 18:21:37 +0200 <monochrom> OK I think people on the haskell discourse are still talking about that.
2023-10-25 18:21:55 +0200 <EvanR> is that a command that basically edits your cabal file
2023-10-25 18:22:03 +0200 <monochrom> I think I have never wanted it.
2023-10-25 18:22:10 +0200 <yin> EvanR: yes
2023-10-25 18:22:14 +0200 <EvanR> these kind of commands creep me out
2023-10-25 18:22:25 +0200 <EvanR> I would run the command then check the file to make sure it worked
2023-10-25 18:22:33 +0200qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2023-10-25 18:22:52 +0200 <EvanR> or see what it did
2023-10-25 18:22:57 +0200 <EvanR> so I'm in the file already
2023-10-25 18:23:14 +0200 <monochrom> At the time I am want to add random-fu, I am not at a shell prompt, I am already at an editor. It is actually more trivial to go change the *.cabal file directly.
2023-10-25 18:24:08 +0200 <monochrom> Switching context to a terminal just to use a "convenience" command is actually a path of higher resistance.
2023-10-25 18:24:40 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2023-10-25 18:25:01 +0200 <monochrom> Indeed already the newest version of "cabal init" adds things I need to delete.
2023-10-25 18:25:04 +0200 <Inst_> EvanR: or you could go all the way to ponies, which is intended to provide a GUI for editing cabal files :)
2023-10-25 18:25:14 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2023-10-25 18:26:14 +0200 <EvanR> Inst_, did you get any inspiration from these canned IO functions which takes non-IO "callbacks"
2023-10-25 18:26:23 +0200 <EvanR> like interact or play
2023-10-25 18:26:32 +0200 <Inst_> wait, play is in Gloss or System.IO?
2023-10-25 18:26:44 +0200 <EvanR> gloss, it's more involved because graphics and timing
2023-10-25 18:27:04 +0200 <Inst_> https://hoogle.haskell.org/?hoogle=play
2023-10-25 18:27:17 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-10-25 18:27:21 +0200 <Inst_> see, that's more my complaint about Haskell libs being confusing :(
2023-10-25 18:27:39 +0200 <monochrom> Would "cabal add random-fu" have a million options and knobs that let me customize how it's indented? >:)
2023-10-25 18:27:40 +0200 <EvanR> um gloss is the first result on hoogle for what it's worth
2023-10-25 18:27:46 +0200 <Inst_> interact I get, your (String -> s -> (String, s)) -> (String -> s -> IO () ) I get
2023-10-25 18:27:48 +0200 <EvanR> what are you confused about
2023-10-25 18:28:10 +0200 <Inst_> the type of play, ummm, how am I supposed to use it? :(
2023-10-25 18:28:13 +0200 <EvanR> what I typed was stripped of its documentation https://hackage.haskell.org/package/gloss-1.13.2.2/docs/Graphics-Gloss.html#v:play
2023-10-25 18:28:16 +0200 <Inst_> I mean I can look it up, it just takes time to get
2023-10-25 18:28:18 +0200 <int-e> I don't know, aren't all libraries confusing, regardless of the language?
2023-10-25 18:28:26 +0200 <EvanR> you can also click the link that hoogle gives you
2023-10-25 18:28:42 +0200 <Inst_> yeah i know
2023-10-25 18:28:53 +0200 <int-e> There's also https://hackage.haskell.org/package/gloss-1.13.2.2/docs/doc-index-P.html
2023-10-25 18:28:57 +0200 <monochrom> Um, libraries that I wrote are not confusing. :)
2023-10-25 18:29:01 +0200 <Inst_> If I can successfully work on Cabal (and have a good shot at doing the exact parser)
2023-10-25 18:29:11 +0200 <Inst_> I'd probably be qualified to work Haddock
2023-10-25 18:29:14 +0200 <EvanR> libraries I recommend are not confusing, tautology? xD
2023-10-25 18:29:19 +0200 <Inst_> then I'd try to figure out how to improve Haddock
2023-10-25 18:29:27 +0200 <int-e> monochrom: Even those that you wrote 10 years ago?
2023-10-25 18:29:41 +0200 <sclv> a good use case for add-like functionality would be an IDE that knew to add containers if I imported Data.Map for example
2023-10-25 18:30:24 +0200 <Inst_> groan, I can't even get ponies to the maturity level where it gives GUI hud for all of the cabal commands
2023-10-25 18:30:42 +0200 <int-e> monochrom: (Assuming you've stopped using them of course. I'm trying to make a point about familiarity here.)
2023-10-25 18:30:56 +0200 <Inst_> wait, that's IDE...
2023-10-25 18:31:37 +0200 <monochrom> I think since 10-15 years ago I developed the habit of writing good docs.
2023-10-25 18:32:32 +0200 <ski> monochrom : heh, was about to say that libraries that oneself has written are (sometimes) not confusing ;)
2023-10-25 18:32:47 +0200 <Rembane> monochrom: How do you write good docs?
2023-10-25 18:32:57 +0200 <Rembane> monochrom: Or, how does one write good docs? <- in case of math
2023-10-25 18:33:18 +0200 <monochrom> I had developed good teaching experience, so I write like I'm teaching it.
2023-10-25 18:34:23 +0200 <monochrom> And in the special case of teaching my future forgetful self, I kind of already know what I will easily figure out and what I will find non-obvious.
2023-10-25 18:34:44 +0200shapr(~user@2600:1700:c640:3100:5fc7:fa6:a4a8:54f1) (Read error: Connection reset by peer)
2023-10-25 18:35:13 +0200 <Rembane> monochrom: That sounds like a very good way to write docs
2023-10-25 18:35:33 +0200 <Rembane> monochrom: The catch is that teaching experience is required to copy your doc writing style.
2023-10-25 18:36:13 +0200 <Rembane> I was hoping for shortcuts. :)
2023-10-25 18:37:03 +0200 <monochrom> For example, in my own study notes on measure theory. let u be the unit Dirac delta measure, i.e., u(x)(A) = 1 if x in A, 0 o/w. There is a cute theorem "for a measurable predicate P, P holds almost everywhere iff P holds at x"
2023-10-25 18:37:35 +0200 <monochrom> Now, I know that I am proud of an insider joke I made about "but it has measure zero so it doesn't matter".
2023-10-25 18:37:41 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Quit: oo_miguel)
2023-10-25 18:37:53 +0200 <monochrom> So in my notes, my proof just says that. :)
2023-10-25 18:37:59 +0200 <Rembane> Good stuff! :D
2023-10-25 18:38:28 +0200 <EvanR> "NB: you are proud of an insider joke you made about 'but it has measure zero so it doesn't matter'"
2023-10-25 18:38:39 +0200 <monochrom> Here is the insider joke.
2023-10-25 18:39:08 +0200 <monochrom> My real analysis prof announced "midterm test: next Wednesday 12am".
2023-10-25 18:39:32 +0200 <int-e> midnight euphoria
2023-10-25 18:39:38 +0200 <monochrom> So we were all like "don't you mean 12pm? noon?". He said oh yeah.
2023-10-25 18:40:00 +0200 <monochrom> Then he explained why. In his opinion, noon should be called 12am, midnight should be called 12pm.
2023-10-25 18:40:27 +0200 <int-e> . o O ( 12m )
2023-10-25 18:40:34 +0200skialways confuses those
2023-10-25 18:40:38 +0200 <int-e> since it's nether before nor after
2023-10-25 18:41:00 +0200 <int-e> But then I'm not sure what to use for midnight :-P
2023-10-25 18:41:07 +0200 <monochrom> Now, this being in the context of a measure theory course, (and I also thought about it previously), one must not pass up the pun opportunity to say, "but it ({noon, midnight}) is a set of measure zero, so it doesn't matter". :)
2023-10-25 18:41:18 +0200 <monochrom> The whole class ROFL.
2023-10-25 18:41:41 +0200skigrinns
2023-10-25 18:41:49 +0200chele(~chele@user/chele) (Remote host closed the connection)
2023-10-25 18:42:10 +0200 <int-e> y'all should switch to a 24 hour clock
2023-10-25 18:42:32 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-25 18:43:07 +0200 <Inst_> is there a possible pun between Hanuman and Haskell?
2023-10-25 18:43:36 +0200 <Inst_> An acquaintance agreed to start a github org for me to dump stuff like porting The Big Book of Small Python Projects to Haskell
2023-10-25 18:44:37 +0200rgw(~R@2605:a601:a0df:5600:e03b:6bd1:41db:b9ff)
2023-10-25 18:46:44 +0200danse-nr3_(~francesco@151.35.202.181) (Ping timeout: 245 seconds)
2023-10-25 18:48:36 +0200random-jellyfish(~tiber@user/random-jellyfish) (Ping timeout: 260 seconds)
2023-10-25 18:50:47 +0200dcoutts_(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 246 seconds)
2023-10-25 18:53:37 +0200kwii30(~kwii@193.19.203.71)
2023-10-25 18:54:59 +0200kwii30(~kwii@193.19.203.71) (Client Quit)
2023-10-25 18:56:17 +0200danse-nr3_(~francesco@151.35.202.181)
2023-10-25 18:56:21 +0200 <dminuoso> "Scheduled delivery 11:00-12:00pm"
2023-10-25 18:56:38 +0200 <dminuoso> Resolve into a timerange of UTC timepoints. How's that for a riddle?
2023-10-25 18:57:16 +0200danse-nr3(~francesco@151.79.204.38)
2023-10-25 18:59:24 +0200 <EvanR> use swatch internet time dotbeats
2023-10-25 18:59:39 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-25 19:01:26 +0200danse-nr3_(~francesco@151.35.202.181) (Ping timeout: 258 seconds)
2023-10-25 19:03:24 +0200Square3(~Square4@user/square) (Ping timeout: 245 seconds)
2023-10-25 19:05:54 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2023-10-25 19:14:55 +0200tv(~tv@user/tv) (Read error: Connection reset by peer)
2023-10-25 19:15:29 +0200random-jellyfish(~tiber@2a02:2f04:11e:c600:3081:413f:53c6:da60)
2023-10-25 19:15:29 +0200random-jellyfish(~tiber@2a02:2f04:11e:c600:3081:413f:53c6:da60) (Changing host)
2023-10-25 19:15:29 +0200random-jellyfish(~tiber@user/random-jellyfish)
2023-10-25 19:16:56 +0200ridcully(~ridcully@p57b5294c.dip0.t-ipconnect.de) (Quit: WeeChat 4.0.5)
2023-10-25 19:17:14 +0200ridcully(~ridcully@p57b5294c.dip0.t-ipconnect.de)
2023-10-25 19:23:58 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-25 19:28:35 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2023-10-25 19:29:23 +0200akyv13(~akyv13@2409:4060:39a:b61c:9c09:9c6f:b032:9005)
2023-10-25 19:31:08 +0200rosco(~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal)
2023-10-25 19:31:42 +0200 <yin> why am i getting ` Module ‘Network.WebSockets’ does not export ‘Connection’. `?
2023-10-25 19:31:55 +0200 <yin> when it clearly does?
2023-10-25 19:31:58 +0200tv(~tv@user/tv)
2023-10-25 19:32:29 +0200ash3en(~stuuu@2a01:c22:8cfe:e300:1d0c:2eb2:7792:5e47) (Ping timeout: 258 seconds)
2023-10-25 19:35:51 +0200random-jellyfish(~tiber@user/random-jellyfish) (Ping timeout: 260 seconds)
2023-10-25 19:36:17 +0200 <int-e> how did you import it?
2023-10-25 19:37:43 +0200 <yin> import Network.WebSockets
2023-10-25 19:38:00 +0200 <yin> import Network.WebSockets ( Connection ) -- this gives an error
2023-10-25 19:38:57 +0200 <EvanR> it actually doesn't export the constructors
2023-10-25 19:39:07 +0200 <int-e> It used to though.
2023-10-25 19:39:35 +0200 <EvanR> did it?
2023-10-25 19:39:49 +0200 <EvanR> import Network.WebSockets.Connection
2023-10-25 19:39:56 +0200 <int-e> 0.9.x did, I have not checked between 0.9 and 0.12.
2023-10-25 19:40:26 +0200 <EvanR> in 0.9.0.0 it didn't (from Network.WebSockets)
2023-10-25 19:40:56 +0200 <int-e> Oh.
2023-10-25 19:41:09 +0200 <int-e> You're right, I was looking at Network.WebSockets.Connection
2023-10-25 19:41:47 +0200 <int-e> (Which still exports the constructor. But that's not the issue here.)
2023-10-25 19:42:27 +0200 <int-e> Or maybe it is? That import shouldn't give an error... I imagine it's somewhere else in the code?
2023-10-25 19:43:08 +0200 <yin> something's funky
2023-10-25 19:43:23 +0200 <yin> Could not find module ‘Network.WebSockets.Connection’.
2023-10-25 19:43:59 +0200 <int-e> Okay, maybe you have to check which package you're getting Network.WebSockets from
2023-10-25 19:44:17 +0200 <yin> and i can't seem to get the correct version which should be 0.12
2023-10-25 19:45:06 +0200 <yin> how do i check that?
2023-10-25 19:45:22 +0200 <int-e> It looks like ancient versions didn't have a Connection type.
2023-10-25 19:45:34 +0200sm_(~sm@plaintextaccounting/sm) (Quit: sm_)
2023-10-25 19:46:37 +0200 <int-e> But I mean ancient... it was added in websockets-0.8.0.0 as far as I can see, which is from 2013
2023-10-25 19:46:38 +0200dcoutts_(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-10-25 19:47:00 +0200 <int-e> On October 22nd, so pretty much exactly 10 years old.
2023-10-25 19:48:51 +0200 <int-e> "how do I check that"... uh. I tend to check install plans (cabal install --dry-run). You could also add `--constraint 'websockets >= 0.12'` and see whether that fails and if so, how.
2023-10-25 19:52:21 +0200 <yin> this is my .freeze https://paste.jrvieira.com/1698256307711
2023-10-25 19:54:18 +0200 <int-e> Well that lists websockets as 0.3.0.0, which is indeed way too old.
2023-10-25 19:54:30 +0200 <int-e> don't ask me why though
2023-10-25 19:54:31 +0200 <yin> https://paste.jrvieira.com/1698256455577
2023-10-25 19:54:57 +0200 <yin> oh wait
2023-10-25 19:55:00 +0200 <int-e> rename the .freeze file and try again?
2023-10-25 19:55:04 +0200 <yin> yeah
2023-10-25 19:55:12 +0200 <int-e> (or remove it... since whatever is in there will never work anyway)
2023-10-25 19:56:24 +0200 <yin> https://paste.jrvieira.com/1698256568625
2023-10-25 19:56:30 +0200 <yin> something to do with text i think
2023-10-25 19:57:39 +0200 <yin> nope
2023-10-25 19:57:46 +0200 <int-e> But ultimately it's base, so your ghc is too new. You can *try* `--allow-newer=base`
2023-10-25 19:58:56 +0200 <yin> ah
2023-10-25 19:59:28 +0200 <yin> ty
2023-10-25 19:59:52 +0200 <yin> i guess i should keep with ghcup's recommended versions
2023-10-25 20:01:56 +0200akyv13(~akyv13@2409:4060:39a:b61c:9c09:9c6f:b032:9005) (Ping timeout: 272 seconds)
2023-10-25 20:03:17 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-10-25 20:06:18 +0200danse-nr3(~francesco@151.79.204.38) (Ping timeout: 260 seconds)
2023-10-25 20:06:26 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 256 seconds)
2023-10-25 20:07:51 +0200ubert(~Thunderbi@178.165.198.50.wireless.dyn.drei.com)
2023-10-25 20:12:33 +0200 <yin> well that was a good half hour list
2023-10-25 20:12:35 +0200 <yin> *lost
2023-10-25 20:14:47 +0200simendsjo(~user@84.211.91.241)
2023-10-25 20:27:55 +0200dcoutts_(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 264 seconds)
2023-10-25 20:32:24 +0200pavonia(~user@user/siracusa)
2023-10-25 20:33:15 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-10-25 20:36:16 +0200 <Inst_> what is wrong with forever?
2023-10-25 20:36:27 +0200 <Inst_> if I use it to infinite loop, but have button presses accessed by a different thread
2023-10-25 20:36:35 +0200 <Inst_> erm, forkIO
2023-10-25 20:36:39 +0200 <int-e> ?!
2023-10-25 20:36:39 +0200 <lambdabot> Maybe you meant: v @ ? .
2023-10-25 20:36:41 +0200 <Inst_> the exception calling doesn't kick in
2023-10-25 20:36:50 +0200 <Inst_> okay, my program goes
2023-10-25 20:37:02 +0200 <Inst_> thread <- forkIO . forever $ putStrLn "Hello"
2023-10-25 20:37:06 +0200 <Inst_> getChar
2023-10-25 20:37:10 +0200 <Inst_> killThread thread
2023-10-25 20:37:32 +0200 <Inst_> only way I get the expected behavior is to run on prog -threaded +RTS -N
2023-10-25 20:37:34 +0200 <EvanR> if an exception is not caught in a non-main thread, it just kills the thread
2023-10-25 20:37:56 +0200 <EvanR> unless you set something up to connect threads together, which async does
2023-10-25 20:38:49 +0200 <Inst_> iirc forkIO is considered smelly
2023-10-25 20:38:53 +0200 <EvanR> ...
2023-10-25 20:39:32 +0200 <geekosaur> you need -threaded or for the thread to allocate (or maybe -fno-omit-yields) for that to work with the non-threaded runtime
2023-10-25 20:39:33 +0200 <EvanR> any supporting arguments for that
2023-10-25 20:40:07 +0200 <mauke> I'd be surprised if putStrLn doesn't allocate
2023-10-25 20:40:30 +0200 <EvanR> putStrLn also interacts with the IO manager, so should cooperate
2023-10-25 20:40:36 +0200 <Inst_> i can get it working with ghci -threaded +RTS -N
2023-10-25 20:40:51 +0200 <mauke> do you need that +RTS option?
2023-10-25 20:41:20 +0200 <geekosaur> ghci is always -threaded
2023-10-25 20:41:32 +0200 <Inst_> hmmm, it's a stdin behavior i think
2023-10-25 20:41:58 +0200 <mauke> ... actually, what is the expected behavior and what do you see instead?
2023-10-25 20:42:17 +0200 <Inst_> if i set hSetBuffering stdin NoBuffering the detect will work
2023-10-25 20:42:56 +0200 <Inst_> no threaded necessary
2023-10-25 20:43:21 +0200 <EvanR> what are you even trying.
2023-10-25 20:43:28 +0200 <John_Ivan_> What does the "m" constructor in the monad >>= stand for? I know it's "Monad" but what exactly is it? "m a -> (a -> m b) -> m b"
2023-10-25 20:43:33 +0200 <EvanR> e.g. if you press backspace, you won't see a char with buffering
2023-10-25 20:43:38 +0200 <geekosaur> EvanR, see https://downloads.haskell.org/ghc/9.2.5/docs/html/libraries/base-4.16.4.0/Control-Concurrent.html#… at "safe point"
2023-10-25 20:43:47 +0200 <John_Ivan_> farshot guess, is it "IO" ?
2023-10-25 20:44:03 +0200 <geekosaur> (`killThread` is `\tid -> throwTo tid ThreadKilled`)
2023-10-25 20:44:15 +0200 <Inst_> I'm trying to pimp this program right now
2023-10-25 20:44:17 +0200 <Inst_> https://inventwithpython.com/bigbookpython/project15.html
2023-10-25 20:44:21 +0200 <geekosaur> John_Ivan_, it's any monad
2023-10-25 20:44:30 +0200 <geekosaur> every monad has its own definition of (>>=)
2023-10-25 20:44:42 +0200 <geekosaur> @src Maybe (>>=)
2023-10-25 20:44:42 +0200 <lambdabot> (Just x) >>= k = k x
2023-10-25 20:44:42 +0200 <lambdabot> Nothing >>= _ = Nothing
2023-10-25 20:44:49 +0200 <Inst_> i'm trying to implement exit on any keyrpress behavior, whereas the py original requires ctrl c
2023-10-25 20:44:50 +0200 <geekosaur> @src IO (>>=)
2023-10-25 20:44:51 +0200 <lambdabot> m >>= k = bindIO m k
2023-10-25 20:44:55 +0200 <John_Ivan_> geekosaur, any monad being... any instance of class Monad?
2023-10-25 20:44:59 +0200 <geekosaur> yes
2023-10-25 20:45:02 +0200 <John_Ivan_> gotcha.
2023-10-25 20:45:04 +0200 <John_Ivan_> thanks
2023-10-25 20:45:30 +0200santiagopim(~user@90.167.66.131)
2023-10-25 20:45:42 +0200 <Inst_> the behaviors I'm trying to add is probably via ansi-terminal, i.e, build a buffer to display, then display the buffer between calls
2023-10-25 20:46:10 +0200 <geekosaur> inst_, if you want any keys to be passed back before a newline you must use hSetBuffering
2023-10-25 20:47:13 +0200santiagopim(~user@90.167.66.131) (Remote host closed the connection)
2023-10-25 20:48:02 +0200 <Inst_> yeah I switched to hSetBuffering stdin NoBuffering
2023-10-25 20:48:37 +0200 <EvanR> and then you still might not see anything if you press half of a unicode character? xD
2023-10-25 20:48:38 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-10-25 20:49:08 +0200ski(~ski@88.131.7.247) (Ping timeout: 255 seconds)
2023-10-25 20:49:10 +0200 <EvanR> ok that's probably getting too far into the weeds
2023-10-25 20:52:17 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-25 20:55:51 +0200 <Inst_> how would you press half of a unicode character? ?:(
2023-10-25 20:55:55 +0200 <Inst_> oh
2023-10-25 20:56:23 +0200 <Inst_> I think, maybe Japanese keyboards migth have this mode
2023-10-25 20:56:33 +0200 <Inst_> wherein they input Japanese directly via mode switch
2023-10-25 20:56:56 +0200 <Inst_> Chinese is IDE-based, iirc, there might be direct wubi inputs
2023-10-25 20:57:02 +0200Pickchea(~private@user/pickchea)
2023-10-25 20:57:08 +0200 <Inst_> not sure about Arabic keyboards
2023-10-25 20:58:08 +0200 <Inst_> arabic and hebrew keyboards exist, I'd think Indian keyboards would be more circumspect and just abuse the fact that English is a national language
2023-10-25 20:58:31 +0200danza_(~francesco@151.35.202.181)
2023-10-25 20:59:26 +0200 <EvanR> ISCII
2023-10-25 20:59:52 +0200 <Inst_> devanagari keyboards exist, nad I assume for the wide variety of scripts
2023-10-25 21:00:02 +0200 <Inst_> end of the day, Haskell's direct console story is mediocre
2023-10-25 21:00:36 +0200 <EvanR> yeah haskell should come with powershell built-in
2023-10-25 21:00:45 +0200 <Inst_> well, it's okay, but the default show insstance sucks
2023-10-25 21:01:38 +0200 <Inst_> putStrLn "世界,你好!“
2023-10-25 21:01:52 +0200 <Inst_> works, direct string literal ends up being gibberish (unicode points)
2023-10-25 21:02:28 +0200 <Inst_> print also returns unicode points
2023-10-25 21:02:39 +0200johnw(~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
2023-10-25 21:02:43 +0200 <EvanR> no this is gibberish: £
2023-10-25 21:03:21 +0200 <c_wraith> print calls show. show encodes strings as very conservative ascii literals
2023-10-25 21:03:25 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2023-10-25 21:04:01 +0200 <c_wraith> importantly, as Haskell source literals.
2023-10-25 21:04:47 +0200 <Inst_> damnit, I'm guessing there's a long story as to why Vitaly Bragilevsky's unicode show doesn't work :(
2023-10-25 21:05:21 +0200 <EvanR> show is basically for debugging and not pretty printing
2023-10-25 21:05:29 +0200 <Unicorn_Princess> is it ok/appropriate to put my local noindex repository into ~/.cabal/packages/myrepo?
2023-10-25 21:05:49 +0200 <Inst_> now this is interesting!
2023-10-25 21:06:03 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:7473:6047:87f6:c0b2)
2023-10-25 21:06:34 +0200 <Inst_> if I build a data constructor in unicode, then derive show, it'll show respecting unicode
2023-10-25 21:06:44 +0200 <Inst_> string literal, fuggedabutit
2023-10-25 21:08:32 +0200 <int-e> > length "!"
2023-10-25 21:08:33 +0200 <lambdabot> 1
2023-10-25 21:12:47 +0200billchenchina-(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection)
2023-10-25 21:13:01 +0200Square(~Square@user/square)
2023-10-25 21:13:03 +0200 <Inst_> is there an arbitrary symbol that is counted as uppercase for Haskell's purposes?
2023-10-25 21:13:10 +0200 <EvanR> A
2023-10-25 21:13:16 +0200 <EvanR> oh, symbol
2023-10-25 21:19:51 +0200 <EvanR> > find (\c -> isSymbol c && isUpper c) ['\0'..]
2023-10-25 21:19:53 +0200 <lambdabot> Nothing
2023-10-25 21:20:28 +0200 <Unicorn_Princess> but is '\0' really the first one?
2023-10-25 21:20:38 +0200 <EvanR> > toEnum 0 :: Char
2023-10-25 21:20:40 +0200 <lambdabot> '\NUL'
2023-10-25 21:20:58 +0200 <Unicorn_Princess> is there a more principled way to get every char?
2023-10-25 21:21:14 +0200danza_(~francesco@151.35.202.181) (Remote host closed the connection)
2023-10-25 21:21:31 +0200 <[exa]> kinda wondering how to get more principled than ['\0'..]
2023-10-25 21:21:33 +0200 <EvanR> > [minBound .. maxBound] :: String
2023-10-25 21:21:35 +0200 <lambdabot> "\NUL\SOH\STX\ETX\EOT\ENQ\ACK\a\b\t\n\v\f\r\SO\SI\DLE\DC1\DC2\DC3\DC4\NAK\SY...
2023-10-25 21:21:36 +0200danza_(~francesco@151.35.202.181)
2023-10-25 21:21:59 +0200 <Unicorn_Princess> beautiful
2023-10-25 21:22:04 +0200dcoutts_(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-10-25 21:22:35 +0200 <EvanR> relying on the principles of the per who defines the Enum instance
2023-10-25 21:22:38 +0200 <EvanR> person
2023-10-25 21:22:57 +0200ash3en(~stuuu@2a01:c22:8cfe:e300:1d0c:2eb2:7792:5e47)
2023-10-25 21:23:00 +0200 <EvanR> and Bounded
2023-10-25 21:23:45 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-25 21:23:49 +0200 <ash3en> me again.. sorry, but any chance someone dealt with ld.lld errors on windows? full log here: https://privatebin.net/?1d95cc51613ef84e#Fj4Rpie9nKfZuLkxAk9bQChSZZftiiz9uj4jEM9Fiyor
2023-10-25 21:23:58 +0200 <EvanR> is there a way principled or not to get every Float
2023-10-25 21:24:59 +0200 <Inst_> > minBound :: Char
2023-10-25 21:25:01 +0200 <lambdabot> '\NUL'
2023-10-25 21:25:31 +0200 <Unicorn_Princess> bitwise hackery? afaik every bit pattern is a valid float (valid includes Nan).. but i'm not 100%
2023-10-25 21:26:37 +0200 <EvanR> > map unsafeCoerce ([minBound .. maxBound] :: [Word32]) :: [Float]
2023-10-25 21:26:39 +0200 <lambdabot> error:
2023-10-25 21:26:39 +0200 <lambdabot> Variable not in scope: unsafeCoerce :: Word32 -> Float
2023-10-25 21:26:49 +0200 <EvanR> % map unsafeCoerce ([minBound .. maxBound] :: [Word32]) :: [Float]
2023-10-25 21:26:49 +0200 <yahb2> <interactive>:25:46: error: ; Not in scope: type constructor or class ‘Word32’ ; Perhaps you meant ‘Word’ (imported from Prelude)
2023-10-25 21:27:09 +0200 <Unicorn_Princess> I think default haskell float is 64 bits?
2023-10-25 21:27:16 +0200 <EvanR> Double is
2023-10-25 21:27:20 +0200 <Unicorn_Princess> ah
2023-10-25 21:27:24 +0200danza_(~francesco@151.35.202.181) (Ping timeout: 240 seconds)
2023-10-25 21:27:30 +0200 <Unicorn_Princess> must be thinking of python
2023-10-25 21:28:34 +0200 <int-e> % import Data.Word
2023-10-25 21:28:34 +0200 <yahb2> <no output>
2023-10-25 21:28:54 +0200 <EvanR> % map unsafeCoerce ([minBound .. maxBound] :: [Word32]) :: [Float]
2023-10-25 21:28:55 +0200 <yahb2> <interactive>:29:5: error: ; Variable not in scope: unsafeCoerce :: Word32 -> Float
2023-10-25 21:29:11 +0200 <int-e> % import Unsafe.Coerce
2023-10-25 21:29:11 +0200 <yahb2> <no output>
2023-10-25 21:29:13 +0200 <EvanR> it's not meant to be done
2023-10-25 21:32:42 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-10-25 21:33:41 +0200 <EvanR> ash3en, cabal file?
2023-10-25 21:39:02 +0200 <ash3en> https://privatebin.net/?a0805c6c7cb6313d#8DuPDNrQ6RrWjt4B8B2SpAB9ryTL53Nv5GH831GTEskk :) here
2023-10-25 21:39:19 +0200dcoutts_(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 264 seconds)
2023-10-25 21:42:13 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-10-25 21:44:20 +0200shapr(~user@2600:1700:c640:3100:5fc7:fa6:a4a8:54f1)
2023-10-25 21:52:36 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.5)
2023-10-25 21:54:40 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 256 seconds)
2023-10-25 21:56:04 +0200johnw(~johnw@69.62.242.138)
2023-10-25 21:56:53 +0200sansk_(~sansk@072-238-128-073.res.spectrum.com)
2023-10-25 21:58:23 +0200whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-25 21:58:35 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-25 21:59:10 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2023-10-25 22:00:29 +0200ubert(~Thunderbi@178.165.198.50.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
2023-10-25 22:02:13 +0200vglfr(~vglfr@88.155.140.136) (Read error: Connection reset by peer)
2023-10-25 22:10:09 +0200sansk(~sansk@user/sansk)
2023-10-25 22:12:42 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-25 22:15:06 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 260 seconds)
2023-10-25 22:15:11 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-10-25 22:16:05 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
2023-10-25 22:16:35 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-25 22:22:14 +0200phma_(phma@2001:5b0:211b:d548:ffd5:bf9a:b80f:c063)
2023-10-25 22:22:57 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-10-25 22:23:01 +0200phma(~phma@2001:5b0:211f:8338:4e4a:1088:5969:f228) (Read error: Connection reset by peer)
2023-10-25 22:31:25 +0200sabino(~sabino@user/sabino) (Quit: Lambda _ -> x)
2023-10-25 22:33:08 +0200ash3en(~stuuu@2a01:c22:8cfe:e300:1d0c:2eb2:7792:5e47) (Quit: Leaving)
2023-10-25 22:38:26 +0200sabino(~sabino@user/sabino)
2023-10-25 22:44:53 +0200simendsjo(~user@84.211.91.241) (Ping timeout: 255 seconds)
2023-10-25 22:47:17 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-25 22:48:24 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-25 22:48:51 +0200dcoutts_(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-10-25 22:49:29 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-10-25 22:50:46 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 256 seconds)
2023-10-25 22:51:20 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-10-25 22:53:44 +0200sympt(~sympt@user/sympt) (Quit: Ping timeout (120 seconds))
2023-10-25 22:54:23 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-25 22:54:37 +0200sympt(~sympt@user/sympt)
2023-10-25 22:55:38 +0200fendor_(~fendor@2a02:8388:1640:be00:dc89:8d8:5d44:854b) (Remote host closed the connection)
2023-10-25 22:57:10 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-10-25 23:00:45 +0200johnw(~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
2023-10-25 23:23:50 +0200johnw(~johnw@69.62.242.138)
2023-10-25 23:24:22 +0200phma_phma
2023-10-25 23:24:31 +0200jjhoo(~jahakala@user/jjhoo) (Ping timeout: 252 seconds)
2023-10-25 23:24:42 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2023-10-25 23:25:28 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-25 23:26:43 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds)
2023-10-25 23:27:33 +0200hpc(~juzz@ip98-169-35-163.dc.dc.cox.net)
2023-10-25 23:28:44 +0200michalz(~michalz@185.246.207.215) (Remote host closed the connection)
2023-10-25 23:30:28 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-25 23:31:08 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-10-25 23:35:58 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-25 23:36:16 +0200yoyofreeman(~yoyofreem@176.97.76.178) (Read error: Connection reset by peer)
2023-10-25 23:36:23 +0200jjhoo(~jahakala@user/jjhoo)
2023-10-25 23:36:58 +0200yoyofreeman(~yoyofreem@176.97.76.178)
2023-10-25 23:41:12 +0200Lycurgus(~georg@user/Lycurgus)
2023-10-25 23:46:31 +0200 <Inst_> question: is this outdated?
2023-10-25 23:46:33 +0200 <Inst_> https://chrisdone.com/posts/whats-wrong-with-implicitparams/
2023-10-25 23:48:38 +0200 <c_wraith> Nah, that's all correct.
2023-10-25 23:48:47 +0200 <c_wraith> Also, they just don't solve the problems that I'd like them to
2023-10-25 23:51:51 +0200 <Inst_> okay, reproduced it
2023-10-25 23:52:23 +0200 <Inst_> not my problem short-term, was thinking about -XBraceArguments which desugars to implicit params and gives defaulting ability
2023-10-25 23:52:53 +0200 <Inst_> as well as varargs
2023-10-25 23:53:19 +0200 <Inst_> varargs are just great when you're designing an API, since you can hide everything behind a single function
2023-10-25 23:53:45 +0200 <geekosaur> we like types though, and varargs plays havoc with typing
2023-10-25 23:55:34 +0200 <Inst_> could not reproduce behavior described in ChrisDone's post
2023-10-25 23:55:40 +0200 <Inst_> on GHCI, could with a cabal script
2023-10-25 23:57:13 +0200 <Inst_> geekosaur: well, tbh, mid-term, it's a question of what a potential haddock overhaul might look like
2023-10-25 23:57:57 +0200 <geekosaur> ghci's scoping rules differ enough that things might well not reproduce
2023-10-25 23:59:25 +0200 <Inst_> and maybe it's just a lib design issue, i.e, people seem much less oriented on writing, say, a "how to write a lib api" vs a "how to use type families" tutorial
2023-10-25 23:59:59 +0200 <Inst_> btw, lucid can supersede https://hackage.haskell.org/package/html-parse this except for speed, right?