Logs on 2024-04-08 (liberachat/#haskell)
| 00:01:57 | → | forell joins (~forell@user/forell) |
| 00:03:15 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:06:26 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 00:10:55 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 00:14:20 | <janus> | back when there were multiple haskell implementations, did 'network' work with multiple of them? |
| 00:15:03 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 00:15:19 | <janus> | i suppose i don't really understand how 'network' interacts with the green threading of GHC |
| 00:16:21 | <janus> | i would guess that the GHC RTS would keep track of which green threads are trying to read/write from a file descriptor |
| 00:16:46 | <janus> | then the network package could use that functionality and be written in a blocking manner, but wouldn't actually the whole application |
| 00:19:16 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 00:19:35 | × | xff0x quits (~xff0x@2405:6580:b080:900:bb82:210b:4257:7a0f) (Ping timeout: 268 seconds) |
| 00:24:53 | <janus> | but if that's how it worked back when there were multiple haskell implementations, and they didn't have green threading, does that mean that the other impls didn't have concurrency at all? |
| 00:25:10 | <janus> | s/wouldn't actually the whole/wouldn't actually _block_ the whole/ |
| 00:30:08 | <geekosaur> | ghc offers threadWaitRead and threadWaitWrite for the low level scheduling; I have no idea whether hugs or nhc98 had similar functionality |
| 00:33:01 | <janus> | oh , i see the network package does use those functions |
| 00:35:37 | × | euphores quits (~SASL_euph@user/euphores) (Ping timeout: 272 seconds) |
| 00:35:51 | <geekosaur> | I've been under the impression that only ghc ever offered threads of any variety, but I have no direct experience; nhc98 was already pretty much dead when I started using Haskell, and I did very little with Hugs |
| 00:36:55 | <geekosaur> | (and N:M threading came much later than green threads in GHC) |
| 00:37:51 | <geekosaur> | pretty sure no other Haskell implementation other than possibly UHC had those |
| 00:38:52 | <janus> | what did GHC have because N:M threading? |
| 00:38:55 | <janus> | *before |
| 00:39:19 | <geekosaur> | green threads, without OS threads |
| 00:40:04 | <Maxdamantus> | ie, 1:M or N:1 threading, not sure which. |
| 00:40:05 | <c_wraith> | is GND in GHC2021? that surprises me... |
| 00:40:26 | <c_wraith> | It is! |
| 00:40:32 | <c_wraith> | I sure didn't expect that. |
| 00:40:38 | <janus> | why is that surprising? |
| 00:40:53 | <c_wraith> | The number of times it has created holes in the type system in the past. |
| 00:41:01 | <c_wraith> | Yeah, we think they're all fixed now.. |
| 00:41:07 | <c_wraith> | But.. are we sure? |
| 00:41:44 | <geekosaur> | it's impl threads:OS threads, so green threads are N:1 and 1:M makes no sense unless M == 1 |
| 00:42:06 | <c_wraith> | what? you've never wanted 20 OS threads for a single application thread? :P |
| 00:42:31 | <janus> | hehe but then look at GHC2024 ;) it has DataKinds, wouldn't that be ever more in flux than GND? |
| 00:42:36 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 260 seconds) |
| 00:42:44 | <geekosaur> | (well, strictly speaking if you use forkOS you get 2 OS threads per Haskell thread because one is used for FFI) |
| 00:42:54 | <c_wraith> | Yeah, DataKinds is a bit surprising because it's not... done. |
| 00:43:23 | <janus> | i wonder if we will ever get enough data to actually conclude that libraries that stayed on GHC2021 had less churn than the ones on GHC2024 |
| 00:44:40 | <jackdk> | I thought the basic idea of DataKinds was pretty solid, but all the extra stuff around importing/exporting/binding/passing types was still evolving. Am I wrong? |
| 00:45:38 | <janus> | so if GHC had 1:M, and you did forkIO, the RTS would run select(2) on all your fd's and then schedule the right HEC? i suppose there was no epoll back then |
| 00:45:59 | → | dsmith_ joins (~dsmith@user/dsmith) |
| 00:46:04 | <geekosaur> | yeh |
| 00:46:06 | <c_wraith> | jackdk: that's basically right. edge cases keep changing around as dependent haskell work progresses. |
| 00:46:18 | <geekosaur> | (and what "back then"? you still get that with the non-threaded runtime) |
| 00:47:09 | × | dsmith_ quits (~dsmith@user/dsmith) (Remote host closed the connection) |
| 00:47:11 | <janus> | yeah ok.. so N:M and threaded runtime are two ways of saying the same thing, right? |
| 00:47:33 | <geekosaur> | I think you still get it with -threaded and +RTS -N1 |
| 00:47:56 | <geekosaur> | except the program can use setNumCapabilities to override your -N |
| 00:48:07 | <janus> | ah makes sense |
| 00:48:21 | <janus> | i have made some libuv bindings for MicroHs |
| 00:48:41 | <janus> | and Lennart says he will eventually implement Concurrent Haskell (not sure what that means) |
| 00:48:53 | <janus> | i suppose it will be compatible to a certain degree |
| 00:48:55 | × | dsmith quits (~dsmith@user/dsmith) (Ping timeout: 260 seconds) |
| 00:49:03 | <geekosaur> | it means MicroHs doesn't have forkIO yet |
| 00:49:25 | <janus> | yeah it doesn't. i am thinking of writing a user-level scheduler for continuations like i did for Idris2 |
| 00:49:41 | <janus> | but it feels silly cause it will be superfluous when he implements forkIO |
| 00:50:32 | <janus> | am i right to be annoyed that all the protocol implementations are tied to network and IO |
| 00:50:52 | <janus> | now that there are delimited continuations, does it mean there is now a fast way to schedule continuations in user space? |
| 00:51:39 | <janus> | so we could actually have an pure-continuation http library that would be fast even though if it was executed with a user-space scheduler? |
| 00:51:52 | <geekosaur> | network is just FFI bindings to OS network functions |
| 00:52:28 | <janus> | yeah but it has threadWaitRead. with my libuv bindings, i am not sure i can provide that API |
| 00:52:30 | <geekosaur> | you need those anyway unless you're planning to implement user-space TCP/IP (BTDT avoid) |
| 00:52:56 | <janus> | if i use libuv, surely i am not implementing user-space TCP/IP? |
| 00:53:23 | <janus> | let me just show you what i have: https://github.com/ysangkok/MicroHs/blob/libuv/tests/Foreign.hs |
| 00:53:29 | <geekosaur> | threadWaitRead is part of concurrent Haskell, if you are making an alternative to that then presumably you have some alternative or you will find all I/O to be difficult |
| 00:54:37 | <geekosaur> | so it looks like libuv exports its own interface to the system network API |
| 00:55:35 | <janus> | what i did in Idris is that i just stick all the continuations in a map. then when they need data, they yield and the scheduler loops. at each loop iteration, it calls the equivalent of select(2) |
| 00:56:13 | <geekosaur> | so now you need to either use libuv-provided mechanisms to interact with threads, or give up on threads entirely |
| 00:57:04 | <janus> | yeah.. it's probably best if i just wait for Lennart |
| 00:57:11 | <janus> | he works fast anyway, I think |
| 00:57:39 | <geekosaur> | even then you'll need libuv to provide you with a file descriptor to block/select/epoll/whatever on |
| 00:58:00 | <geekosaur> | otherwise it can't be made thread compatible |
| 00:58:13 | <geekosaur> | regardless of your thread implementation |
| 00:58:35 | <janus> | hmm, but maybe it doesn't need to be thread compatible... it would be ok if it could just be 'network' package compatible |
| 00:58:59 | <janus> | but i don't have a good understanding of how tied to GHC the network API is... i fear that it might be too tied |
| 00:59:12 | <geekosaur> | it didn't look to me like that was in the offing |
| 01:00:02 | <geekosaur> | this is not a question of "how tied to GHC the network API is", the only ties are threadWaitRead and threadWaitWrite and those are part of concurrent Haskell so you would need to provide those anyway so the thread impl knows what to select(2) on |
| 01:00:20 | <geekosaur> | network is tied to the OS network libraries, and libuv abstracts those away |
| 01:01:03 | <janus> | well maybe libuv is a mistake on my part, if it means code won't be compatible... |
| 01:01:38 | <janus> | but that's good news |
| 01:01:53 | <janus> | cause it sounds like the interface of Concurrent Haskell is fairly minimal |
| 01:02:20 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 01:03:48 | <geekosaur> | I just looked at the libuv documentation. it's worse thn I thought: it's a replacement event loop, so you would need to rewrite the GHC RTS to be based on libuv instead of its own event loop |
| 01:04:31 | <geekosaur> | or ask Lennart to implement concurrent MicroHs's event loop via libuv |
| 01:05:00 | <janus> | my goal is to make existing code compatible with MicroHs |
| 01:05:10 | <janus> | if libuv is not the best way to achieve that, i shouldn't use it |
| 01:05:26 | <janus> | the advantage of libuv is that it works across platforms |
| 01:05:29 | <geekosaur> | no, it's not, libuv is at a different level |
| 01:05:44 | <geekosaur> | libuv replaces the RTS, not Haskell code |
| 01:06:16 | <janus> | but if the RTS can use libuv internally and still provide the same user-level API, then it's all right |
| 01:06:32 | <janus> | when you said "or ask Lennart ... " , that's what i understood what a possibility |
| 01:06:43 | <geekosaur> | yes, that was what I was angling toward |
| 01:07:18 | <janus> | right. i am perfectly aware that the libuv code that i write in userspace really has to go, if MicroHs supports Concurrent Haskell |
| 01:07:37 | <janus> | i just do it in user space because it was what i thought was easiest to get this echo server running |
| 01:07:50 | <janus> | and it is very similar to what i did in Idris |
| 01:08:07 | <janus> | but when i did it, i didn't know that Lennart was planning to even add Concurrent Haskell |
| 01:08:46 | <janus> | so now the situation is changed and i probably shouldn't go down this route of user level scheduling |
| 01:09:39 | <janus> | I _do_ still think it's weird that Haskell is a 'pure' language and still we don't have prevalent effect systems that make it possible to write a HTTP server that can be treated as a continuation |
| 01:17:12 | <monochrom> | But we did. Haskell 1.2 and before had a CPS I/O system rather than a monad. |
| 01:17:56 | <janus> | but Haskell didn't even have monads yet, right? |
| 01:18:04 | <monochrom> | Right. :) |
| 01:18:40 | <Axman6> | It's so nice to hop on IRC and see conversations happening in my timezone. It's always so quiet when .au is awake :'( |
| 01:18:42 | <janus> | so how many years did it take for mtl/transformers to appear as the predominant effects system? i suppose it was already too late, because I don't know of MonadNetwork |
| 01:19:02 | <geekosaur> | btw, you would need to replace network. you could provide the same Haskell API but it would use libuv instead of OS network APIs directly |
| 01:19:32 | <monochrom> | type MonadNetwork = IO |
| 01:19:54 | <janus> | but you can't interpret IO... it's not abstracted, it's concrete |
| 01:20:05 | <janus> | isn't that why io-sim exists? |
| 01:21:24 | <monochrom> | I don't understand that. I thought I could interpret concrete data but not abstract objects. |
| 01:21:30 | <janus> | Axman6: yeah i never understood why it seemed like #haskell was mostly on european timezones... cause it seems like there is at least the same amount of Haskell going on in the US |
| 01:22:01 | <geekosaur> | mtl was already in ghc 5's libraries, but it included transformers functionality built in. transformers came later, when they evaluated type families vs. monad transformers+fundeps for mtl2-to-be |
| 01:22:17 | <janus> | monochrom: what i mean is that MonadNetwork would be a type class, so you can write an interpreter and 'mock' networking |
| 01:22:48 | <janus> | monochrom: IO isn't a type class, you can't take 'IO a' and run it in a pure context? |
| 01:22:51 | <geekosaur> | (you can see that in monads-fd vs. monads-tf on hackage) |
| 01:23:06 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 268 seconds) |
| 01:23:09 | <janus> | for me, MonadNetwork is abstract, since it is an interface, not an implmentation |
| 01:23:42 | → | euleritian joins (~euleritia@dynamic-176-006-188-089.176.6.pool.telefonica.de) |
| 01:24:38 | <geekosaur> | I think the question there is whether anyone wants to deal with the potential performance of lots of indirect calls for networking operations |
| 01:24:54 | <janus> | right, that makes sense, that makes a lot of sense |
| 01:25:29 | <janus> | but that then begs the question: with delimited continuations, could we now write those 'pure' / 'continuation' webservers and execute them just as fast as had they been in IO? |
| 01:25:42 | <monochrom> | There is just probably too little interest in doing mock testing on network code. |
| 01:25:48 | <geekosaur> | I don't know if you can arrange for the compiler to optimize the indirect method calls away in enough cases |
| 01:26:24 | <geekosaur> | and in any case I think network mocking can be done with linux interfaces without having to wire it into your language's network libs? |
| 01:26:41 | <geekosaur> | (and freebsd, dunno about windows or os x) |
| 01:27:16 | × | euleritian quits (~euleritia@dynamic-176-006-188-089.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 01:27:30 | <monochrom> | Yeah that. I test my students' network code in dockers. :) |
| 01:27:33 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 01:28:11 | <janus> | and i took your Cont article, extended it to be double-barrelled and wrote working Idris servers with it ;) |
| 01:29:24 | <janus> | it might be that you can mock it all through the OS, but that just seems so cumbersome to me... |
| 01:29:43 | <janus> | anyway, this is kind of orthogonal to the question of how much existing code could run on MicroHs |
| 01:30:43 | <janus> | it's good to hear that you could rewrite network and have it be compatble... would be really interesting to try that, but i suppose it doesn't make sense to even try before Concurrent Haskell arrives in MicroHs |
| 01:33:00 | × | infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 260 seconds) |
| 01:33:34 | → | infinity0 joins (~infinity0@pwned.gg) |
| 01:41:06 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds) |
| 01:43:47 | <janus> | commit where 'net' was extracted (from ghc, maybe?): https://github.com/haskell/network/commit/efb0e791b67492213021c2081001cec5590e4f7c |
| 01:44:51 | <janus> | doesn't seem like it supported concurrency back then |
| 01:45:49 | <janus> | ah sorry, yes it did. it's in Socket.hsc |
| 01:46:13 | <geekosaur> | https://downloads.haskell.org/~ghc/5.00/docs/set/sec-net.html |
| 01:50:19 | <geekosaur> | looks like it was in 4.x as well |
| 01:54:19 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 01:56:08 | × | otto_s quits (~user@p4ff27276.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
| 01:57:59 | → | otto_s joins (~user@p5de2f26b.dip0.t-ipconnect.de) |
| 01:59:59 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 264 seconds) |
| 02:01:34 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
| 02:12:31 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 02:14:00 | → | sroso joins (~sroso@user/SrOso) |
| 02:14:57 | → | mei joins (~mei@user/mei) |
| 02:15:34 | × | janus quits (~janus@anubis.0x90.dk) (Changing host) |
| 02:15:34 | → | janus joins (~janus@user/janus) |
| 02:18:07 | → | ddellacosta joins (~ddellacos@ool-44c73d29.dyn.optonline.net) |
| 02:20:12 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 02:23:42 | → | tri joins (~tri@ool-43564db8.dyn.optonline.net) |
| 02:26:17 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
| 02:35:52 | × | dbaoty quits (~dbaoty@tptn-04-0838.dsl.iowatelecom.net) (Quit: Leaving.) |
| 02:43:10 | × | tri quits (~tri@ool-43564db8.dyn.optonline.net) (Remote host closed the connection) |
| 02:51:04 | → | tri joins (~tri@ool-43564db8.dyn.optonline.net) |
| 02:54:14 | × | td_ quits (~td@i53870921.versanet.de) (Ping timeout: 252 seconds) |
| 02:55:58 | → | td_ joins (~td@i53870933.versanet.de) |
| 02:56:55 | <jackdk> | monochrom: I have recently discovered that even the Python world wants IO-free network libraries: https://sans-io.readthedocs.io/ |
| 03:00:00 | × | Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Quit: I seem to have stopped.) |
| 03:01:12 | → | Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) |
| 03:15:17 | × | systemfault quits (sid267009@about/typescript/member/systemfault) (Ping timeout: 240 seconds) |
| 03:18:24 | → | systemfault joins (sid267009@about/typescript/member/systemfault) |
| 03:19:05 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 03:21:31 | → | mei joins (~mei@user/mei) |
| 03:29:56 | × | tri quits (~tri@ool-43564db8.dyn.optonline.net) (Remote host closed the connection) |
| 03:31:33 | × | JimL quits (~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 03:31:53 | <sm> | janus: are you implementing libs for MicroHs ? |
| 03:34:25 | → | JimL joins (~quassel@89.162.16.26) |
| 03:34:54 | <sm> | it's interesting about european timezones, I think I've noticed that too. Possibly there are more OSS/academic haskellers there, who have time/permission to chat, unlike most corporate devs |
| 03:36:30 | <sm> | also I guess there can be regional preferences/predominance of IRC / matrix / discord / ... |
| 03:36:58 | <sm> | and these are more siloed than in the past |
| 03:37:20 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 03:42:19 | <janus> | sm: i've only written these libuv bindings, that's it |
| 03:42:37 | <janus> | sm: don't think cabal supports microhs yet, so depending on what you mean by lib, it might not be possible |
| 03:43:14 | <sm> | it sounded like you were porting/cloning network for microhs |
| 03:43:51 | <sm> | that's what I meant. I think microhs is exciting. |
| 03:44:32 | <janus> | i'd do it but i don't think it makes sense since network seems to assume that green threads are available |
| 03:44:44 | <sm> | aha |
| 03:44:55 | <janus> | but as you can see, Lennart is planning on adding those |
| 03:45:13 | <sm> | aHA |
| 03:45:53 | <janus> | but you can see from my PoC that you can do networking just fine without green threads |
| 03:46:11 | <sm> | awesome |
| 03:46:28 | <janus> | you just have to schedule everything yourself so and then it isn't compatible with any existing code... so probably not worth the effort |
| 03:47:00 | <sm> | experiments++ |
| 03:49:53 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds) |
| 03:51:48 | × | werneta quits (~werneta@071-083-160-242.res.spectrum.com) (Quit: leaving) |
| 03:51:53 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 03:53:43 | × | aforemny_ quits (~aforemny@i59F516C7.versanet.de) (Ping timeout: 260 seconds) |
| 03:54:12 | → | aforemny joins (~aforemny@i59F516E6.versanet.de) |
| 03:55:35 | × | nurupo quits (~nurupo.ga@user/nurupo) (Quit: nurupo.ga) |
| 03:55:56 | × | xigua quits (~xigua@user/xigua) (Read error: Connection reset by peer) |
| 03:56:10 | → | xigua joins (~xigua@user/xigua) |
| 04:00:24 | × | actioninja quits (~actioninj@user/actioninja) (Quit: see ya mane) |
| 04:00:52 | → | actioninja joins (~actioninj@user/actioninja) |
| 04:04:23 | → | nickiminjaj joins (~nickiminj@188.146.120.15) |
| 04:04:23 | × | nickiminjaj quits (~nickiminj@188.146.120.15) (Changing host) |
| 04:04:23 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 04:05:54 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 268 seconds) |
| 04:05:58 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds) |
| 04:07:33 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 04:08:23 | × | todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 04:08:43 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Client Quit) |
| 04:27:41 | → | michalz joins (~michalz@185.246.207.205) |
| 04:33:06 | × | hgolden quits (~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com) (Remote host closed the connection) |
| 04:34:48 | → | hgolden joins (~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com) |
| 04:38:02 | × | dsrt^ quits (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection) |
| 04:43:04 | → | nickiminjaj joins (~nickiminj@188.146.120.15) |
| 04:43:04 | × | nickiminjaj quits (~nickiminj@188.146.120.15) (Changing host) |
| 04:43:04 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 04:45:39 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Client Quit) |
| 04:50:53 | → | igemnace joins (~ian@user/igemnace) |
| 04:53:29 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 04:58:27 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 05:04:46 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 05:05:08 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 05:05:28 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 05:08:55 | → | zetef joins (~quassel@5.2.182.99) |
| 05:10:36 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 05:10:47 | → | sadie_ joins (~sadie@c-76-155-235-153.hsd1.co.comcast.net) |
| 05:11:39 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 05:17:15 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:20:01 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 05:20:30 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 05:30:45 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 05:31:20 | → | euleritian joins (~euleritia@dynamic-176-006-186-113.176.6.pool.telefonica.de) |
| 05:34:59 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 05:44:00 | × | _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Remote host closed the connection) |
| 05:44:48 | → | _d0t joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 05:46:10 | × | Axman6 quits (~Axman6@user/axman6) (Remote host closed the connection) |
| 05:46:25 | → | Axman6 joins (~Axman6@user/axman6) |
| 05:49:23 | → | nickiminjaj joins (~nickiminj@188.146.120.15) |
| 05:49:23 | × | nickiminjaj quits (~nickiminj@188.146.120.15) (Changing host) |
| 05:49:23 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 05:54:35 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Ping timeout: 260 seconds) |
| 05:57:27 | → | tititest joins (~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de) |
| 05:59:56 | × | zetef quits (~quassel@5.2.182.99) (Ping timeout: 260 seconds) |
| 06:00:02 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:01:54 | → | yeitrafferin joins (~user@2a04:4540:720b:ad00:4e6c:5428:51b2:1598) |
| 06:02:03 | → | euphores joins (~SASL_euph@user/euphores) |
| 06:04:05 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 240 seconds) |
| 06:04:34 | × | cross quits (~cross@spitfire.i.gajendra.net) (Ping timeout: 246 seconds) |
| 06:06:12 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 06:08:13 | → | zetef joins (~quassel@5.2.182.99) |
| 06:21:54 | → | cross joins (~cross@spitfire.i.gajendra.net) |
| 06:28:46 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds) |
| 06:30:35 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 06:34:15 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 260 seconds) |
| 06:35:40 | → | acidjnk_new joins (~acidjnk@p200300d6e714dc9124c21742e07a126c.dip0.t-ipconnect.de) |
| 06:39:46 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 06:42:45 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:43:48 | → | nurupo joins (~nurupo.ga@user/nurupo) |
| 06:44:31 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 06:53:06 | → | danza joins (~francesco@an-19-178-190.service.infuturo.it) |
| 06:59:59 | × | zetef quits (~quassel@5.2.182.99) (Ping timeout: 264 seconds) |
| 07:01:47 | × | euleritian quits (~euleritia@dynamic-176-006-186-113.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:02:06 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:09:49 | → | zetef joins (~quassel@5.2.182.99) |
| 07:10:11 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:13:08 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:23:02 | × | igemnace quits (~ian@user/igemnace) (Read error: Connection reset by peer) |
| 07:25:02 | → | gmg joins (~user@user/gehmehgeh) |
| 07:31:51 | × | zetef quits (~quassel@5.2.182.99) (Remote host closed the connection) |
| 07:34:20 | → | zetef joins (~quassel@5.2.182.99) |
| 07:38:16 | → | migas97 joins (~migas@static.140.65.63.178.clients.your-server.de) |
| 07:39:24 | → | mesaoptimizer joins (~mesaoptim@user/PapuaHardyNet) |
| 07:40:09 | → | igemnace joins (~ian@user/igemnace) |
| 07:42:22 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 07:44:30 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 07:48:32 | → | Square joins (~Square4@user/square) |
| 07:54:33 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 07:55:39 | × | zetef quits (~quassel@5.2.182.99) (Ping timeout: 255 seconds) |
| 07:55:47 | × | danza quits (~francesco@an-19-178-190.service.infuturo.it) (Ping timeout: 272 seconds) |
| 07:57:28 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 07:57:58 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 07:58:37 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:59:42 | × | sadie_ quits (~sadie@c-76-155-235-153.hsd1.co.comcast.net) (Remote host closed the connection) |
| 08:05:55 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 08:07:57 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:28:59 | → | dhil joins (~dhil@2001:8e0:2014:3100:3d77:3c3c:fa90:61a5) |
| 08:33:07 | → | zetef joins (~quassel@5.2.182.99) |
| 08:33:11 | → | chele joins (~chele@user/chele) |
| 08:35:47 | → | danse-nr3 joins (~danse-nr3@an-19-178-190.service.infuturo.it) |
| 08:35:53 | × | danse-nr3 quits (~danse-nr3@an-19-178-190.service.infuturo.it) (Remote host closed the connection) |
| 08:36:17 | → | danse-nr3 joins (~danse-nr3@an-19-178-190.service.infuturo.it) |
| 08:49:22 | × | ft quits (~ft@p4fc2a20e.dip0.t-ipconnect.de) (Quit: leaving) |
| 08:52:33 | → | akegalj joins (~akegalj@141-136-147-171.dsl.iskon.hr) |
| 08:57:50 | × | philopsos quits (~caecilius@user/philopsos) (Quit: Lost terminal) |
| 08:59:04 | × | tzh quits (~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz) |
| 09:05:24 | × | tititest quits (~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de) (Quit: Leaving.) |
| 09:05:27 | → | stratl joins (~user@p5b0f3575.dip0.t-ipconnect.de) |
| 09:15:45 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds) |
| 09:16:33 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 09:17:33 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 09:18:41 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:21:26 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds) |
| 09:23:12 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 09:26:11 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 09:26:42 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 09:30:11 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 09:31:22 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 09:31:44 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 09:33:12 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds) |
| 09:35:33 | × | zetef quits (~quassel@5.2.182.99) (Ping timeout: 255 seconds) |
| 09:46:33 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 09:46:53 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 09:50:14 | × | hammond quits (~abner@user/hammond2) (Read error: Connection reset by peer) |
| 09:54:56 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 268 seconds) |
| 09:56:48 | × | dhil quits (~dhil@2001:8e0:2014:3100:3d77:3c3c:fa90:61a5) (Quit: Leaving) |
| 10:09:05 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 10:09:36 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 10:12:04 | → | zetef joins (~quassel@5.2.182.99) |
| 10:18:05 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 10:18:37 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 10:18:56 | → | hammond joins (proscan@gateway02.insomnia247.nl) |
| 10:23:38 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds) |
| 10:24:34 | → | xff0x joins (~xff0x@2405:6580:b080:900:d77c:415b:b254:7fcb) |
| 10:30:50 | → | tititest joins (~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de) |
| 10:34:48 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 10:35:29 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
| 10:36:09 | Lord_of_Life_ | is now known as Lord_of_Life |
| 10:37:19 | → | xdminsy joins (~xdminsy@117.147.70.203) |
| 10:37:19 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 10:47:49 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 10:49:22 | × | stratl quits (~user@p5b0f3575.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
| 10:56:56 | × | danse-nr3 quits (~danse-nr3@an-19-178-190.service.infuturo.it) (Read error: Connection reset by peer) |
| 10:57:34 | → | danse-nr3 joins (~danse-nr3@151.47.219.151) |
| 11:04:07 | → | [exa] joins (~exa@user/exa/x-3587197) |
| 11:08:29 | × | danse-nr3 quits (~danse-nr3@151.47.219.151) (Ping timeout: 256 seconds) |
| 11:25:20 | × | sanpo quits (~sanpo@user/sanpo) (Quit: Client closed) |
| 11:32:58 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 11:34:01 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 11:39:19 | → | cfricke joins (~cfricke@user/cfricke) |
| 11:44:04 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 11:45:04 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 11:46:14 | → | danse-nr3 joins (~danse-nr3@ba-19-139-35.service.infuturo.it) |
| 11:46:37 | × | danse-nr3 quits (~danse-nr3@ba-19-139-35.service.infuturo.it) (Remote host closed the connection) |
| 11:47:02 | → | danse-nr3 joins (~danse-nr3@ba-19-139-35.service.infuturo.it) |
| 11:48:21 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 11:49:30 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 12:03:25 | × | sroso quits (~sroso@user/SrOso) (Quit: Leaving :)) |
| 12:06:36 | × | ddellacosta quits (~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 12:06:46 | → | dbaoty joins (~dbaoty@tptn-04-0838.dsl.iowatelecom.net) |
| 12:21:09 | × | xdminsy quits (~xdminsy@117.147.70.203) (Ping timeout: 272 seconds) |
| 12:22:20 | → | xdminsy joins (~xdminsy@117.147.70.203) |
| 12:26:53 | → | cimento joins (n8n@user/n8n) |
| 12:27:16 | → | stratl joins (~user@p5b0f3d8b.dip0.t-ipconnect.de) |
| 12:27:29 | × | cimento quits (n8n@user/n8n) (Client Quit) |
| 12:27:35 | × | Eoco quits (~ian@128.101.131.218) (Ping timeout: 264 seconds) |
| 12:29:13 | → | Eoco joins (~ian@128.101.131.218) |
| 12:33:27 | × | Athas quits (athas@sigkill.dk) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:34:20 | → | sanpo joins (~sanpo@user/sanpo) |
| 12:36:32 | × | Eoco quits (~ian@128.101.131.218) (Remote host closed the connection) |
| 12:42:34 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:42:54 | → | Eoco joins (~ian@128.101.131.218) |
| 12:46:01 | × | TonyStone quits (~TonyStone@user/TonyStone) (Remote host closed the connection) |
| 12:50:16 | → | TonyStone joins (~TonyStone@user/TonyStone) |
| 12:52:40 | × | danse-nr3 quits (~danse-nr3@ba-19-139-35.service.infuturo.it) (Ping timeout: 256 seconds) |
| 12:56:22 | → | Athas joins (athas@2a01:7c8:aaac:1cf:af1c:2933:77d:8603) |
| 12:56:24 | <kuribas> | Why does Spock-core have an upper limit? mtl (>=2.1 && <2.3) |
| 12:56:43 | <kuribas> | It is causing my cabal build to fail inside the haskell:9 docker. |
| 12:58:03 | <kuribas> | presumably because the mtl version is too high. |
| 13:02:11 | → | danse-nr3 joins (~danse-nr3@ba-19-139-35.service.infuturo.it) |
| 13:05:32 | <kuribas> | Oh, I can take an earlier haskell docker. |
| 13:06:45 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 13:07:09 | <yushyin> | kuribas: https://github.com/agrafix/Spock/pull/185 that's why |
| 13:07:26 | <yushyin> | ( https://github.com/agrafix/Spock/pull/185#issuecomment-1806856069 ) |
| 13:13:50 | → | divya joins (~user@202.170.201.67) |
| 13:14:24 | × | stratl quits (~user@p5b0f3d8b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 13:16:32 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 13:21:00 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 256 seconds) |
| 13:27:53 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 13:28:39 | <janus> | kuribas: probably better to just use spock from git |
| 13:29:02 | <janus> | kuribas: you _can_ override the mtl version though, you don't have to use the one shipped with ghc |
| 13:29:21 | <janus> | kuribas: downgrading the whole docker image would be my third option ;) |
| 13:29:31 | → | nickiminjaj joins (~nickiminj@188.146.120.15) |
| 13:29:31 | × | nickiminjaj quits (~nickiminj@188.146.120.15) (Changing host) |
| 13:29:31 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 13:30:22 | <janus> | it's amazing how many years this fixing of mtl reexports is taking.. started in 2021 if i am not wrong: https://github.com/haskell/mtl/issues/101 |
| 13:32:07 | <danse-nr3> | long-running processes are not unusual in the community as far as i understand |
| 13:32:44 | <danse-nr3> | had to reset my hyped-tech mindset when i moved to haskell ... |
| 13:32:56 | → | n8n joins (n8n@user/n8n) |
| 13:33:50 | <yushyin> | spock also doesn't seem to be the most active project |
| 13:34:04 | <kuribas> | janus: I just end up using a lower ghc version. |
| 13:34:23 | <kuribas> | haskell:9.4.8-buster instead of haskell:9 |
| 13:34:40 | <danse-nr3> | it is not... all plain web microframeworks got to the background after servant i guess |
| 13:36:58 | <probie> | They didn't go the background, so much as being left as finished products, but the Haskell ecosystem has too much churn to allow that |
| 13:37:30 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:37:38 | <danse-nr3> | huh ... i believe "finished" software is a myth |
| 13:38:01 | <danse-nr3> | (also a contradiction in terms) |
| 13:38:13 | <janus> | what about interfaces, can they be finished? ;) |
| 13:38:39 | <danse-nr3> | sure that's the reason for never versioning them |
| 13:39:14 | <janus> | what do you mean? interfaces are versioned, that's why the first two components of a PVP function number are different |
| 13:39:27 | <janus> | major bump => interface changed |
| 13:39:41 | <janus> | or more like iff |
| 13:39:51 | <danse-nr3> | nevermind ... not the best monday and it triggered my irony |
| 13:43:03 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 13:43:27 | → | euleritian joins (~euleritia@dynamic-176-006-178-051.176.6.pool.telefonica.de) |
| 13:44:41 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 13:45:05 | → | todi joins (~todi@p57803331.dip0.t-ipconnect.de) |
| 13:46:12 | → | ystael joins (~ystael@user/ystael) |
| 13:52:10 | × | Square quits (~Square4@user/square) (Ping timeout: 246 seconds) |
| 13:55:34 | × | divya quits (~user@202.170.201.67) (Ping timeout: 256 seconds) |
| 14:00:44 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:04:00 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 14:04:41 | <probie> | danse-nr3: What new features does `cat` need? |
| 14:05:36 | <danse-nr3> | look, i don't feel like arguing about this. If you want to believe in the idea of finished software, you are free to do so |
| 14:09:23 | → | haskell_ joins (~haskell@75-164-217-161.ptld.qwest.net) |
| 14:09:45 | × | haskell_ quits (~haskell@75-164-217-161.ptld.qwest.net) (Remote host closed the connection) |
| 14:10:23 | <probie> | This feels like being relegated to the "on par with sovereign citizens" pile, and whilst I'll accept it because I don't want to waste your energy, I'm not exactly happy about it |
| 14:10:37 | ← | probie parts (cc0b34050a@user/probie) () |
| 14:11:46 | <danse-nr3> | wow... |
| 14:19:11 | × | myme quits (~myme@2a01:799:d5c:5f00:6072:e797:6705:d556) (Ping timeout: 268 seconds) |
| 14:19:35 | → | Square2 joins (~Square@user/square) |
| 14:19:43 | → | myme joins (~myme@2a01:799:d5c:5f00:1e69:7aff:feab:e7ae) |
| 14:31:11 | × | euleritian quits (~euleritia@dynamic-176-006-178-051.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 14:32:35 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 14:41:05 | <haskellbridge> | <mauke> There is this special biologist word we use for 'stable'. It is 'dead'. -- Jack Cohen |
| 14:42:12 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:42:41 | × | yeitrafferin quits (~user@2a04:4540:720b:ad00:4e6c:5428:51b2:1598) (Quit: Leaving) |
| 14:44:21 | <danse-nr3> | (: |
| 14:48:29 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:48:35 | <danse-nr3> | seems more fair to me to use dehydration as a metaphor. Sure, not all software survives the process |
| 14:50:23 | → | nickiminjaj joins (~nickiminj@188.146.120.15) |
| 14:50:23 | × | nickiminjaj quits (~nickiminj@188.146.120.15) (Changing host) |
| 14:50:23 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 14:51:47 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
| 14:58:35 | × | hueso quits (~root@user/hueso) (Read error: Connection reset by peer) |
| 14:58:36 | × | xdminsy quits (~xdminsy@117.147.70.203) (Read error: Connection reset by peer) |
| 14:58:51 | → | hueso joins (~root@user/hueso) |
| 15:05:56 | × | zetef quits (~quassel@5.2.182.99) (Ping timeout: 260 seconds) |
| 15:09:00 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 255 seconds) |
| 15:10:54 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:17:11 | → | hippoid joins (~hippoid@user/hippoid) |
| 15:18:30 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:18:39 | × | Batzy quits (~quassel@user/batzy) (Read error: Connection reset by peer) |
| 15:20:28 | × | igemnace quits (~ian@user/igemnace) (Read error: Connection reset by peer) |
| 15:21:08 | → | __monty__ joins (~toonn@user/toonn) |
| 15:21:42 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 15:21:46 | → | Batzy joins (~quassel@user/batzy) |
| 15:23:25 | × | Square2 quits (~Square@user/square) (Ping timeout: 255 seconds) |
| 15:24:08 | → | mei joins (~mei@user/mei) |
| 15:24:19 | → | zetef joins (~quassel@5.2.182.99) |
| 15:27:00 | → | sadie-sorceress joins (~sadie-sor@c-76-155-235-153.hsd1.co.comcast.net) |
| 15:27:13 | → | Square joins (~Square4@user/square) |
| 15:28:11 | → | alexherbo2 joins (~alexherbo@2a02-8440-3141-1d70-d510-781c-6cfb-b61d.rev.sfr.net) |
| 15:29:59 | × | tititest quits (~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de) (Quit: Leaving.) |
| 15:30:41 | <janus> | so what's the software analogue to the water bear? |
| 15:31:51 | → | yeitrafferin joins (~user@2a04:4540:720b:ad00:4e6c:5428:51b2:1598) |
| 15:31:52 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
| 15:37:24 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 15:37:34 | → | igemnace joins (~ian@user/igemnace) |
| 15:41:01 | <danse-nr3> | also plant seeds survive dehidration for a long while. There are too many variables though, and they are not simply part of the software itself. Haskell does great at maintainability for instance, but the population of potential new maintainers does not have a great outlook |
| 15:41:18 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds) |
| 15:41:40 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Client Quit) |
| 15:44:04 | → | ubert joins (~Thunderbi@p200300ecdf3957b4cb1ee850dd579499.dip0.t-ipconnect.de) |
| 15:46:01 | <c_wraith> | last night I added a library that hadn't been updated since 2015 to a project and.. it worked great. |
| 15:46:21 | × | danse-nr3 quits (~danse-nr3@ba-19-139-35.service.infuturo.it) (Ping timeout: 272 seconds) |
| 15:46:49 | → | rvalue joins (~rvalue@user/rvalue) |
| 15:47:11 | → | danse-nr3 joins (~danse-nr3@an-19-169-111.service.infuturo.it) |
| 15:48:21 | × | sanpo quits (~sanpo@user/sanpo) (Quit: Client closed) |
| 15:49:43 | <danse-nr3> | luckily this is logged. Yes, in my experience haskell is quite resistent. It also depends by how fast a domain demands obsolescence. Also, i was talking free software. In a company, maintainability is great and finding new maintainers is also easy |
| 15:50:29 | <dminuoso> | danse-nr3: If interfaces can be finished, how can their implementations not be finished? |
| 15:50:49 | <dminuoso> | If an implementation behaves according to specification, bug-free, how can it be not finished? |
| 15:50:52 | <danse-nr3> | huh i think you missed something... |
| 15:51:48 | → | tititest joins (~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de) |
| 15:53:23 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
| 15:53:48 | → | euleritian joins (~euleritia@dynamic-176-006-178-051.176.6.pool.telefonica.de) |
| 16:00:02 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 16:04:56 | × | micro quits (~micro@user/micro) (Ping timeout: 268 seconds) |
| 16:05:40 | → | micro joins (~micro@user/micro) |
| 16:06:35 | × | danse-nr3 quits (~danse-nr3@an-19-169-111.service.infuturo.it) (Ping timeout: 264 seconds) |
| 16:07:45 | → | tzh joins (~tzh@c-73-164-206-160.hsd1.or.comcast.net) |
| 16:07:55 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:16:53 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
| 16:18:02 | × | sadie-sorceress quits (~sadie-sor@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Client closed) |
| 16:18:04 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 16:19:53 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 16:20:41 | × | euleritian quits (~euleritia@dynamic-176-006-178-051.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:20:59 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:25:44 | <sm> | dehydration, heh I like your 3-body reference |
| 16:25:54 | × | hueso quits (~root@user/hueso) (Ping timeout: 268 seconds) |
| 16:27:01 | → | zzidun93 joins (~zzidun@user/zzidun) |
| 16:27:09 | <sm> | chaotic era approaching! DEHYDRATE |
| 16:27:42 | <geekosaur> | I think someone already mentioned water bears 😛 |
| 16:28:02 | × | zzidun93 quits (~zzidun@user/zzidun) (Client Quit) |
| 16:28:47 | <sm> | g'day geekosaur |
| 16:28:57 | geekosaur | waves |
| 16:33:29 | <sm> | c_wraith: \o/ always good to see things resisting rot |
| 16:34:13 | → | hueso joins (~root@user/hueso) |
| 16:35:16 | → | Inst joins (~Inst@user/Inst) |
| 16:35:21 | <Inst> | does Category do anything? |
| 16:35:38 | <Inst> | erm, does anyone actually use Control.Category? |
| 16:38:34 | → | tcard_ joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 16:38:54 | → | sam113102 joins (~sam@24.157.253.231) |
| 16:39:28 | × | tititest quits (~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de) (Ping timeout: 255 seconds) |
| 16:39:34 | → | Etabeta11 joins (~Etabeta1@176.207.241.56) |
| 16:39:34 | → | cayley52 joins (~cayley5@user/phileasfogg) |
| 16:39:41 | → | fr33domlover1 joins (~fr33domlo@towards.vision) |
| 16:39:42 | → | hc_ joins (~hc@mail.hce.li) |
| 16:39:45 | → | henrytill_ joins (e0180937c3@2a03:6000:1812:100::e8c) |
| 16:39:57 | → | brettgilio_ joins (a35ba67324@2a03:6000:1812:100::260) |
| 16:39:57 | → | shreyasminocha_ joins (51fdc93eda@user/shreyasminocha) |
| 16:39:57 | → | jakzale_ joins (6291399afa@user/jakzale) |
| 16:39:58 | → | benjaminl_ joins (~benjaminl@2601:1c0:8480:d580:223:24ff:fe66:4370) |
| 16:40:03 | → | sefidel_ joins (~sefidel@user/sefidel) |
| 16:40:17 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 16:40:17 | → | chessai_ joins (sid225296@id-225296.lymington.irccloud.com) |
| 16:40:17 | → | terrorjack0 joins (~terrorjac@2a01:4f8:c17:87f8::) |
| 16:40:19 | → | integral_ joins (sid296274@user/integral) |
| 16:40:23 | → | Yumemi_ joins (~Yumemi@chamoin.net) |
| 16:40:25 | → | dispater- joins (~dispater@mail.brprice.uk) |
| 16:40:28 | → | conjunctive_ joins (sid433686@id-433686.helmsley.irccloud.com) |
| 16:40:29 | → | michalz_ joins (~michalz@185.246.207.193) |
| 16:40:34 | → | CrunchyFlakes_ joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 16:40:35 | → | benkard joins (~mulk@p5b2dc97e.dip0.t-ipconnect.de) |
| 16:40:36 | → | dmj`_ joins (sid72307@id-72307.hampstead.irccloud.com) |
| 16:40:39 | → | TheCoffeMaker_ joins (~TheCoffeM@200.114.213.75) |
| 16:40:51 | → | B-J joins (~BenziJuni@232-148-209-31.dynamic.hringdu.is) |
| 16:40:55 | → | orcus- joins (~orcus@mail.brprice.uk) |
| 16:40:57 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:40:59 | <Inst> | in base, Kleisli, contravariant functors, function arrow |
| 16:41:23 | → | Ellenor joins (ellenor@invictus.wa.us.umbrellix.net) |
| 16:41:59 | → | Batzy_ joins (~quassel@user/batzy) |
| 16:42:08 | → | zfnmxt_ joins (~zfnmxt@107.189.30.63) |
| 16:42:09 | → | mzg_ joins (mzg@abusers.hu) |
| 16:42:22 | → | haveo_ joins (~weechat@pacamara.iuwt.fr) |
| 16:42:22 | × | destituion quits (~destituio@2a02:2121:107:22da:bbaf:a6d8:6599:5221) (Ping timeout: 268 seconds) |
| 16:42:22 | × | brettgilio quits (a35ba67324@2a03:6000:1812:100::260) (Ping timeout: 268 seconds) |
| 16:42:22 | × | Yumemi quits (~Yumemi@chamoin.net) (Ping timeout: 268 seconds) |
| 16:42:22 | × | henrytill quits (e0180937c3@2a03:6000:1812:100::e8c) (Ping timeout: 268 seconds) |
| 16:42:22 | × | mulk quits (~mulk@p5b2dc97e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 16:42:22 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
| 16:42:22 | × | orcus quits (~orcus@mail.brprice.uk) (Ping timeout: 268 seconds) |
| 16:42:22 | × | dispater quits (~dispater@mail.brprice.uk) (Ping timeout: 268 seconds) |
| 16:42:22 | × | zfnmxt quits (~zfnmxt@user/zfnmxt) (Ping timeout: 268 seconds) |
| 16:42:22 | × | shreyasminocha quits (51fdc93eda@user/shreyasminocha) (Ping timeout: 268 seconds) |
| 16:42:22 | × | pointlessslippe1 quits (~pointless@212.82.82.3) (Ping timeout: 268 seconds) |
| 16:42:22 | × | dmj` quits (sid72307@id-72307.hampstead.irccloud.com) (Ping timeout: 268 seconds) |
| 16:42:23 | × | integral quits (sid296274@user/integral) (Ping timeout: 268 seconds) |
| 16:42:23 | × | terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Ping timeout: 268 seconds) |
| 16:42:23 | × | tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Ping timeout: 268 seconds) |
| 16:42:23 | × | benjaminl quits (~benjaminl@user/benjaminl) (Ping timeout: 268 seconds) |
| 16:42:23 | × | haveo quits (~weechat@pacamara.iuwt.fr) (Ping timeout: 268 seconds) |
| 16:42:23 | × | xsarnik quits (xsarnik@lounge.fi.muni.cz) (Ping timeout: 268 seconds) |
| 16:42:23 | × | jakzale quits (6291399afa@user/jakzale) (Ping timeout: 268 seconds) |
| 16:42:23 | × | abrar quits (~abrar@pool-72-78-199-167.phlapa.fios.verizon.net) (Ping timeout: 268 seconds) |
| 16:42:23 | × | Reinhilde quits (ellenor@2604:180:f2::bc) (Ping timeout: 268 seconds) |
| 16:42:23 | × | Benzi-Junior quits (~BenziJuni@232-148-209-31.dynamic.hringdu.is) (Read error: Connection reset by peer) |
| 16:42:23 | × | Batzy quits (~quassel@user/batzy) (Ping timeout: 268 seconds) |
| 16:42:23 | × | TonyStone quits (~TonyStone@user/TonyStone) (Ping timeout: 268 seconds) |
| 16:42:23 | × | michalz quits (~michalz@185.246.207.205) (Ping timeout: 268 seconds) |
| 16:42:23 | × | sefidel quits (~sefidel@user/sefidel) (Ping timeout: 268 seconds) |
| 16:42:23 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds) |
| 16:42:23 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 268 seconds) |
| 16:42:23 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 268 seconds) |
| 16:42:23 | × | hc quits (~hc@mail.hce.li) (Ping timeout: 268 seconds) |
| 16:42:23 | × | mqlnv quits (~tripod@47.154.25.27) (Ping timeout: 268 seconds) |
| 16:42:23 | × | Etabeta1 quits (~Etabeta1@user/meow/Etabeta1) (Ping timeout: 268 seconds) |
| 16:42:23 | × | Vajb quits (~Vajb@n6jbiwem1nfkemdydn4-1.v6.elisa-mobile.fi) (Ping timeout: 268 seconds) |
| 16:42:23 | × | chessai quits (sid225296@id-225296.lymington.irccloud.com) (Ping timeout: 268 seconds) |
| 16:42:23 | × | koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (Ping timeout: 268 seconds) |
| 16:42:23 | × | mzg quits (mzg@abusers.hu) (Ping timeout: 268 seconds) |
| 16:42:23 | × | fr33domlover quits (~fr33domlo@towards.vision) (Ping timeout: 268 seconds) |
| 16:42:23 | × | conjunctive quits (sid433686@id-433686.helmsley.irccloud.com) (Ping timeout: 268 seconds) |
| 16:42:24 | × | cayley5 quits (~cayley5@user/phileasfogg) (Ping timeout: 268 seconds) |
| 16:42:24 | × | sam113101 quits (~sam@24.157.253.231) (Ping timeout: 268 seconds) |
| 16:42:24 | dmj`_ | is now known as dmj` |
| 16:42:24 | → | tomboy65 joins (~tomboy64@user/tomboy64) |
| 16:42:24 | → | TonyStone31 joins (~TonyStone@user/TonyStone) |
| 16:42:24 | benkard | is now known as mulk |
| 16:42:24 | fr33domlover1 | is now known as fr33domlover |
| 16:42:24 | integral_ | is now known as integral |
| 16:42:24 | chessai_ | is now known as chessai |
| 16:42:27 | terrorjack0 | is now known as terrorjack |
| 16:42:27 | sefidel_ | is now known as sefidel |
| 16:42:27 | Etabeta11 | is now known as Etabeta1 |
| 16:42:27 | cayley52 | is now known as cayley5 |
| 16:42:27 | conjunctive_ | is now known as conjunctive |
| 16:42:28 | jakzale_ | is now known as jakzale |
| 16:42:28 | sam113102 | is now known as sam113101 |
| 16:42:35 | henrytill_ | is now known as henrytill |
| 16:42:41 | → | pointlessslippe- joins (~pointless@212.82.82.3) |
| 16:42:44 | brettgilio_ | is now known as brettgilio |
| 16:42:52 | shreyasminocha_ | is now known as shreyasminocha |
| 16:42:57 | → | abrar joins (~abrar@pool-72-78-199-167.phlapa.fios.verizon.net) |
| 16:43:02 | → | tititest joins (~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de) |
| 16:43:06 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 16:43:11 | → | mqlnv joins (~tripod@47.154.25.27) |
| 16:43:14 | → | koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com) |
| 16:46:29 | → | cyphase joins (~cyphase@user/cyphase) |
| 16:47:00 | zfnmxt_ | is now known as zfnmxt |
| 16:48:12 | → | xsarnik joins (xsarnik@lounge.fi.muni.cz) |
| 16:50:56 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:51:31 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 16:52:41 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.1.2) |
| 16:56:48 | → | nickiminjaj joins (~nickiminj@user-5-173-222-105.play-internet.pl) |
| 16:56:49 | × | nickiminjaj quits (~nickiminj@user-5-173-222-105.play-internet.pl) (Changing host) |
| 16:56:49 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 17:00:40 | → | gaff joins (~gaff@49.207.229.138) |
| 17:03:35 | <gaff> | For `newtype StateP s a = StateP { runStateP :: s -> (a, s) }` we have `fmap f (StateP g) = StateP $ \s -> let (a, s') = g s in (f a, s') ` How would you now reduce `fmap h (StateP $ \s -> let (a, s') = g s in (f a, s') )`? |
| 17:06:37 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 17:06:39 | → | nickiminjaj_ joins (~nickiminj@188.146.120.15) |
| 17:06:39 | × | nickiminjaj_ quits (~nickiminj@188.146.120.15) (Changing host) |
| 17:06:39 | → | nickiminjaj_ joins (~nickiminj@user/laxhh) |
| 17:06:50 | → | euleritian joins (~euleritia@dynamic-176-006-178-051.176.6.pool.telefonica.de) |
| 17:07:11 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:07:49 | <gaff> | Appreciate any help. |
| 17:08:16 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Ping timeout: 255 seconds) |
| 17:08:32 | × | n8n quits (n8n@user/n8n) (Quit: WeeChat 4.2.1) |
| 17:09:06 | × | zetef quits (~quassel@5.2.182.99) (Remote host closed the connection) |
| 17:09:35 | × | yeitrafferin quits (~user@2a04:4540:720b:ad00:4e6c:5428:51b2:1598) (Quit: Leaving) |
| 17:11:30 | × | nickiminjaj_ quits (~nickiminj@user/laxhh) (Client Quit) |
| 17:13:12 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 17:13:44 | <ncf> | is that fmap (h . f) (StateP g) ? |
| 17:14:35 | <ncf> | the equation tells you how to reduce it, but you might need to alpha-rename a few things to make sense of it |
| 17:14:54 | <gaff> | ncf: yes, indeed. I am just try to verify the equivalence. |
| 17:15:26 | <ski> | fmap h (StateP \s -> let (a,s') = g s in (f a,s')) |
| 17:15:31 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Client Quit) |
| 17:15:32 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection) |
| 17:15:41 | <ski> | = fmap h (StateP \s -> let (b,s'') = g s in (f b,s'')) |
| 17:15:49 | <gaff> | i am tying to check if fmap (h . f) = fmap h . fmap f for this functor. |
| 17:16:03 | <mauke> | isn't that free? |
| 17:16:04 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 17:16:18 | <ski> | = StateP \s -> let (b,s'') = (\s -> let (a,s') = g s in (f a,s')) s in (h b, s'') |
| 17:16:34 | <ski> | = StateP \s -> let (b,s'') = let (a,s') = g s in (f a,s') in (h b,s'') |
| 17:16:52 | <ski> | = StateP \s -> let (a,s') = g s; (b,s'') = (f a,s') in (h b,s'') |
| 17:17:06 | <ski> | = StateP \s -> let (a,s') = g s; b = f a; s'' = s' in (h b,s'') |
| 17:17:21 | <ski> | = StateP \s -> let (a,s') = g s in (h (f a),s') |
| 17:17:31 | <ski> | = StateP \s -> let (a,s') = g s in ((h . f) a,s') |
| 17:17:42 | <ski> | = fmap (h . f) (StateP g) |
| 17:17:51 | <mauke> | nice |
| 17:18:02 | <c_wraith> | mauke: you're right. it's free as long as you have fmap id x === x |
| 17:18:05 | <gaff> | ski: thank you, that indeed is a nice proof. |
| 17:18:30 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 17:19:30 | × | igemnace quits (~ian@user/igemnace) (Quit: WeeChat 4.2.1) |
| 17:21:46 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Client Quit) |
| 17:23:36 | → | mud joins (~mud@user/kadoban) |
| 17:26:19 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 17:29:59 | → | nickiminjaj joins (~nickiminj@188.146.120.15) |
| 17:29:59 | × | nickiminjaj quits (~nickiminj@188.146.120.15) (Changing host) |
| 17:29:59 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 17:33:32 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Client Quit) |
| 17:33:58 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 17:37:22 | × | gaff quits (~gaff@49.207.229.138) () |
| 17:39:19 | × | byte quits (~byte@149.28.222.189) (Ping timeout: 268 seconds) |
| 17:39:38 | → | byte joins (~byte@149.28.222.189) |
| 17:40:44 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 17:41:18 | → | mei joins (~mei@user/mei) |
| 18:02:31 | × | puke quits (~puke@user/puke) (Quit: puke) |
| 18:05:29 | → | puke joins (~puke@user/puke) |
| 18:05:51 | × | puke quits (~puke@user/puke) (Max SendQ exceeded) |
| 18:07:07 | → | puke joins (~puke@user/puke) |
| 18:19:28 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 18:23:48 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 18:26:18 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 18:28:08 | → | docrdoac^ joins (~cd@c-98-242-74-66.hsd1.ga.comcast.net) |
| 18:40:35 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:42:37 | × | vnogueira_ quits (~vnogueira@user/vnogueira) (Remote host closed the connection) |
| 18:43:48 | → | vnogueira joins (~vnogueira@user/vnogueira) |
| 18:48:07 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:55:19 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection) |
| 18:55:54 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 19:02:21 | <Inst> | did you know that Javascript effectively has where clauses? |
| 19:02:57 | <Inst> | arguing with Julians as to why they need a where macro, and am now reading on their metaprogramming ability to stuff it in |
| 19:03:21 | <Inst> | but JS has where clauses by setting up a where comment, then defining a bunch of functions to hoist |
| 19:03:28 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:04:05 | <Inst> | JS also has true immutable data, courtesy the "variables are 0-arity functions" of Paul Hudak |
| 19:04:36 | × | todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in) |
| 19:04:38 | <Inst> | the keyword isn't const, it's function ;) |
| 19:04:55 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:05:24 | <Inst> | actually, it doesn't, ugh |
| 19:07:59 | <dolio> | What's the where clause in JS? |
| 19:11:24 | → | y04nn joins (~username@2a03:1b20:8:f011::e10d) |
| 19:11:50 | <Inst> | hoisted functions |
| 19:12:01 | <Inst> | just comment where to pretend it's Haskell |
| 19:12:04 | <Inst> | then hoist away! |
| 19:12:23 | <Inst> | julia doesn't get this, and tbh idg why lispers act confused when you tell them about where clauses |
| 19:21:57 | <sm> | what's the big deal about where clauses Inst ? |
| 19:22:24 | <sm> | asking for a friend! |
| 19:22:46 | <Inst> | allows more declarative presentation of code, i.e, separate specification from implementation |
| 19:23:45 | <sm> | how are they significantly different from what you can do in other languages, eg multiple top level var/function definitions, or local definitions within functions ? |
| 19:23:58 | <Inst> | I mean the priority matters |
| 19:24:12 | <Inst> | I've been trying to get the line override method in Julia, it seems as though they don't have one |
| 19:24:22 | <Inst> | the only way around it is to use operators at the end of the line |
| 19:24:37 | <Inst> | vs start of the line in Haskell, and the Julian method is not only ugly, it makes it easier to not see the operator correctly |
| 19:24:42 | <sm> | I don't understand what's so special about where |
| 19:25:10 | <c_wraith> | This all sounds like the equivalent between let and lambda. |
| 19:25:36 | <Inst> | in Excel or Lisp? |
| 19:25:52 | <c_wraith> | (if you ignore HM explicitly treating them differently in terms of type generalization) |
| 19:26:53 | <Inst> | i fell in love with haskell not because it was functional, but because it was declarative and code was comprehensible, whereas it felt to me like imperative code was gobbledygook, but that was more reflective of my maturity level at the time |
| 19:27:12 | × | qqq quits (~qqq@92.43.167.61) (Ping timeout: 268 seconds) |
| 19:27:58 | <c_wraith> | I don't treat Haskell as a declarative language. I depend on operational semantics allowing me to ensure performance properties. This does sort of tie me to GHC, but I can live with that. |
| 19:28:11 | <Inst> | but i mean it matters that you read the specification first, not the implementation, and it's nice to be able to write a specification of your function / procedure before you go and implement it, it encourages top-down design |
| 19:28:46 | → | qqq joins (~qqq@92.43.167.73) |
| 19:28:59 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 19:29:03 | <c_wraith> | that's... types. |
| 19:29:58 | <c_wraith> | I do like Haskell's type system. It allows you to say a lot in a way that's both precise and concise. |
| 19:30:08 | <c_wraith> | And even checked by the compiler! |
| 19:30:30 | × | euleritian quits (~euleritia@dynamic-176-006-178-051.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 19:30:47 | → | euleritian joins (~euleritia@77.22.252.56) |
| 19:30:50 | <Inst> | i'm curious, a serious complaint about Haskell's types is that they're not easily extensible, which is a plus for correctness, but a minus for extensibility |
| 19:31:04 | <Inst> | (regarding types vs where, they both serve the same goal, no?) |
| 19:31:13 | <Inst> | how do you deal with that? |
| 19:31:42 | → | AlexNoo_ joins (~AlexNoo@178.34.160.182) |
| 19:32:00 | <c_wraith> | functions. |
| 19:32:10 | × | Square quits (~Square4@user/square) (Ping timeout: 256 seconds) |
| 19:32:22 | <c_wraith> | I mean, that's a bit glib, and a reference to that one meme... but it's also true. |
| 19:32:30 | → | Square2 joins (~Square@user/square) |
| 19:32:45 | <c_wraith> | I pass around functions for doing things. You want to change the behavior, use a different function. |
| 19:33:54 | <c_wraith> | It only works if you can foresee extension points, but that's the same as everything else. |
| 19:34:47 | <Inst> | custom HOF? or record of functions? |
| 19:35:13 | × | AlexZenon quits (~alzenon@94.233.240.255) (Ping timeout: 268 seconds) |
| 19:35:27 | × | AlexNoo quits (~AlexNoo@94.233.240.255) (Ping timeout: 260 seconds) |
| 19:35:29 | <c_wraith> | I've been working with commonmark for doing markdown -> html conversions recently. I wanted to add syntax highlighting to its code block conversions, and it was annoyingly awkward because commonmark uses a class. |
| 19:36:00 | <c_wraith> | I had to define a new data type wrapping the existing one that *almost* did what I want, and add trivial wrappers for all of the generation stuff except code blocks. |
| 19:36:08 | → | nickiminjaj joins (~nickiminj@188.146.120.15) |
| 19:36:08 | × | nickiminjaj quits (~nickiminj@188.146.120.15) (Changing host) |
| 19:36:08 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 19:36:22 | <c_wraith> | If it was just a record of functions, it would have been a trivial change. |
| 19:36:51 | <c_wraith> | Instead there was a big pile of hoops to jump through because someone thought that just because classes exist, they should be used. |
| 19:37:35 | → | nickiminjaj_ joins (~nickiminj@user-5-173-222-109.play-internet.pl) |
| 19:37:35 | × | nickiminjaj_ quits (~nickiminj@user-5-173-222-109.play-internet.pl) (Changing host) |
| 19:37:35 | → | nickiminjaj_ joins (~nickiminj@user/laxhh) |
| 19:37:37 | <sm> | a too-rigid implementation |
| 19:37:40 | AlexNoo_ | is now known as AlexNoo |
| 19:37:47 | × | qqq quits (~qqq@92.43.167.73) (Ping timeout: 264 seconds) |
| 19:38:42 | → | qqq joins (~qqq@92.43.167.61) |
| 19:39:05 | <dolio> | I'm not sure there are any declarative languages, really. |
| 19:39:25 | <dolio> | At least, not for operational stuff. |
| 19:39:27 | <c_wraith> | SQL when you aren't give the ability to make hints for the query planner? |
| 19:39:54 | <dolio> | No, SQL is a lie in that respect. |
| 19:40:39 | <dolio> | In practice you need to worry about the query plans, and changing your 'declarative' query in various ways probably will affect the query plan. |
| 19:41:00 | → | AlexZenon joins (~alzenon@178.34.160.182) |
| 19:41:01 | <c_wraith> | sure, but those changes are voodoo. :) |
| 19:41:11 | <dolio> | Yeah, that makes it bad. :) |
| 19:41:31 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Ping timeout: 260 seconds) |
| 19:41:39 | <c_wraith> | in general, I do think declarative <-> operational is an axis. And for anything where you care about performance, you need to be towards the operational end. |
| 19:42:14 | <dolio> | Layout of a GUI or something can probably be declarative. |
| 19:43:08 | <c_wraith> | hopefully the layout is something that can be run relatively rarely :) |
| 19:43:56 | <geekosaur> | window resizes, mostly |
| 19:45:06 | <geekosaur> | that said, I think declarative UI libs read the declarative layout and convert it to an operational layout based on the specific UI they're written for |
| 19:55:07 | → | philopsos joins (~caecilius@user/philopsos) |
| 20:00:54 | → | masterbuilder joins (~quassel@user/masterbuilder) |
| 20:02:08 | <Inst> | also tbh c_wraith: part of the point of where clauses is that traditionally, where clauses are type-inferred ;) |
| 20:06:52 | × | TheCoffeMaker_ quits (~TheCoffeM@200.114.213.75) (Read error: Connection reset by peer) |
| 20:07:02 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 20:09:36 | → | ft joins (~ft@p4fc2a20e.dip0.t-ipconnect.de) |
| 20:14:27 | → | Square joins (~Square4@user/square) |
| 20:17:07 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 20:17:27 | × | Square2 quits (~Square@user/square) (Ping timeout: 260 seconds) |
| 20:17:50 | → | euphores joins (~SASL_euph@user/euphores) |
| 20:17:56 | × | euphores quits (~SASL_euph@user/euphores) (Client Quit) |
| 20:18:17 | <c_wraith> | if you mean let-generalization, that's an intentional choice in the Hindley-Milner algorithm, not a fundamental truth. |
| 20:26:13 | × | Inst quits (~Inst@user/Inst) (Read error: Connection reset by peer) |
| 20:26:22 | → | Inst joins (~Inst@user/Inst) |
| 20:28:40 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:30:54 | → | euphores joins (~SASL_euph@user/euphores) |
| 20:36:52 | × | alexherbo2 quits (~alexherbo@2a02-8440-3141-1d70-d510-781c-6cfb-b61d.rev.sfr.net) (Remote host closed the connection) |
| 20:38:50 | × | tititest quits (~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de) (Quit: Leaving.) |
| 20:43:44 | × | akegalj quits (~akegalj@141-136-147-171.dsl.iskon.hr) (Quit: leaving) |
| 20:46:33 | × | euphores quits (~SASL_euph@user/euphores) (Ping timeout: 272 seconds) |
| 20:52:55 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 20:58:22 | → | julie_pilgrim joins (~julie_pil@user/julie-pilgrim/x-1240752) |
| 21:01:22 | × | Eoco quits (~ian@128.101.131.218) (Ping timeout: 255 seconds) |
| 21:06:14 | → | Eoco joins (~ian@128.101.131.218) |
| 21:10:55 | × | robbert-vdh quits (~robbert@robbertvanderhelm.nl) (Quit: WeeChat 3.4) |
| 21:12:55 | <Inst> | c_wraith: i mean, traditionally, people drop off the type signatures in where clauses :) |
| 21:13:52 | × | qqq quits (~qqq@92.43.167.61) (Remote host closed the connection) |
| 21:14:18 | × | Eoco quits (~ian@128.101.131.218) (Remote host closed the connection) |
| 21:14:47 | ski | often includes them, for non-trivial local functions |
| 21:15:13 | × | benjaminl_ quits (~benjaminl@2601:1c0:8480:d580:223:24ff:fe66:4370) (Remote host closed the connection) |
| 21:15:29 | → | benjaminl joins (~benjaminl@user/benjaminl) |
| 21:16:00 | → | Eoco joins (~ian@128.101.131.218) |
| 21:16:08 | <geekosaur> | I got over that (omitting type signatures in `let`/`where`) because it made debugging unexpected type mismatches painful |
| 21:18:44 | <c_wraith> | a lot of times types in nested definitions aren't expressible without ScopedTypeVariables |
| 21:20:14 | <c_wraith> | that cured me of trying to put unnecessary types on local definitions. |
| 21:20:47 | <geekosaur> | tbh I've rarely run into that |
| 21:22:09 | → | Nixkernal joins (~Nixkernal@240.17.194.178.dynamic.wline.res.cust.swisscom.ch) |
| 21:23:16 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:23:45 | × | Eoco quits (~ian@128.101.131.218) (Remote host closed the connection) |
| 21:24:26 | → | Eoco joins (~ian@128.101.131.218) |
| 21:28:21 | × | julie_pilgrim quits (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection) |
| 21:31:15 | × | michalz_ quits (~michalz@185.246.207.193) (Quit: ZNC 1.8.2 - https://znc.in) |
| 21:31:15 | × | nickiminjaj_ quits (~nickiminj@user/laxhh) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:31:25 | → | stratl joins (~user@p200300f91701bc00227df96d735a3a19.dip0.t-ipconnect.de) |
| 21:32:57 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 21:33:08 | → | finsternis joins (~X@23.226.237.192) |
| 21:33:33 | × | Eoco quits (~ian@128.101.131.218) (Remote host closed the connection) |
| 21:34:09 | → | Eoco joins (~ian@128.101.131.218) |
| 21:35:41 | × | stratl quits (~user@p200300f91701bc00227df96d735a3a19.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 21:35:53 | → | julie_pilgrim joins (~julie_pil@user/julie-pilgrim/x-1240752) |
| 21:37:53 | → | quintasan joins (~quassel@quintasan.pl) |
| 21:38:44 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:39:35 | → | sadie_ joins (~sadie@c-76-155-235-153.hsd1.co.comcast.net) |
| 21:43:27 | × | Eoco quits (~ian@128.101.131.218) (Remote host closed the connection) |
| 21:44:48 | → | nickiminjaj joins (~nickiminj@188.146.120.15) |
| 21:44:49 | × | nickiminjaj quits (~nickiminj@188.146.120.15) (Changing host) |
| 21:44:49 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 21:44:52 | haskellbridge | <sm> uses type sigs for anything non trivial |
| 21:49:52 | → | Eoco joins (~ian@128.101.131.218) |
| 21:56:52 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:59:51 | × | Eoco quits (~ian@128.101.131.218) (Remote host closed the connection) |
| 22:01:16 | <ski> | (was that a `/me' ?) |
| 22:01:53 | → | nickiminjaj joins (~nickiminj@188.146.120.15) |
| 22:01:53 | × | nickiminjaj quits (~nickiminj@188.146.120.15) (Changing host) |
| 22:01:53 | → | nickiminjaj joins (~nickiminj@user/laxhh) |
| 22:04:25 | <sm> | it was, ski |
| 22:05:50 | × | gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds) |
| 22:06:47 | → | gmg joins (~user@user/gehmehgeh) |
| 22:08:03 | → | Eoco joins (~ian@128.101.131.218) |
| 22:08:27 | × | nickiminjaj quits (~nickiminj@user/laxhh) (Quit: Textual IRC Client: www.textualapp.com) |
| 22:08:29 | × | gmg quits (~user@user/gehmehgeh) (Client Quit) |
| 22:10:56 | × | Pixi quits (~Pixi@user/pixi) (Ping timeout: 268 seconds) |
| 22:14:52 | × | Eoco quits (~ian@128.101.131.218) (Remote host closed the connection) |
| 22:17:48 | → | Eoco joins (~ian@128.101.131.218) |
| 22:24:28 | × | Eoco quits (~ian@128.101.131.218) (Remote host closed the connection) |
| 22:30:30 | → | Pixi joins (~Pixi@user/pixi) |
| 22:33:22 | × | julie_pilgrim quits (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection) |
| 22:35:13 | → | Eoco joins (~ian@128.101.131.218) |
| 22:36:21 | <Inst> | yeah i stuff them in there too, especially once type errors pop up |
| 22:39:57 | <Inst> | wait, are free monads still horribly unperformant? |
| 22:40:15 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 260 seconds) |
| 22:40:25 | <Inst> | like, every time you semicolon, you add another layer of free monads? |
| 22:44:23 | × | Eoco quits (~ian@128.101.131.218) (Remote host closed the connection) |
| 22:44:40 | → | Eoco joins (~ian@128.101.131.218) |
| 22:48:41 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 22:48:46 | × | califax quits (~califax@user/califx) (Ping timeout: 260 seconds) |
| 22:48:46 | → | califax_ joins (~califax@user/califx) |
| 22:50:02 | califax_ | is now known as califax |
| 22:53:23 | × | sp1ff quits (~user@c-24-21-45-157.hsd1.wa.comcast.net) (Read error: Connection reset by peer) |
| 22:53:37 | → | sp1ff joins (~user@c-24-21-45-157.hsd1.wa.comcast.net) |
| 22:54:56 | → | helle joins (~helle@user/meow/Helle) |
| 22:55:21 | → | noumenon joins (~noumenon@113.51-175-156.customer.lyse.net) |
| 23:00:54 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 260 seconds) |
| 23:02:09 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 23:03:46 | × | Square quits (~Square4@user/square) (Ping timeout: 246 seconds) |
| 23:05:29 | × | philopsos quits (~caecilius@user/philopsos) (Quit: Lost terminal) |
| 23:08:11 | → | rekahsoft joins (~rekahsoft@bras-base-orllon1103w-grc-13-184-148-6-204.dsl.bell.ca) |
| 23:08:41 | × | docrdoac^ quits (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection) |
| 23:11:14 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:13:41 | × | sus quits (1b7af6299f@user/zeromomentum) (Ping timeout: 240 seconds) |
| 23:14:05 | × | lane quits (809450f172@2a03:6000:1812:100::1300) (Ping timeout: 240 seconds) |
| 23:14:37 | × | wryish quits (~wryish@2605:4c40:119:efa3:0:727d:19eb:1) (Quit: %blank%) |
| 23:14:54 | → | wryish joins (~wryish@2605:4c40:119:efa3:0:727d:19eb:1) |
| 23:15:18 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 23:16:29 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 23:16:36 | → | lane joins (809450f172@2a03:6000:1812:100::1300) |
| 23:16:37 | → | sus joins (1b7af6299f@user/zeromomentum) |
| 23:18:29 | × | JoelMcCracken quits (5ea8252fbb@2a03:6000:1812:100::10e3) (Ping timeout: 240 seconds) |
| 23:18:55 | → | mei joins (~mei@user/mei) |
| 23:18:59 | → | JoelMcCracken joins (5ea8252fbb@2a03:6000:1812:100::10e3) |
| 23:20:09 | × | hgolden quits (~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com) (Remote host closed the connection) |
| 23:20:30 | → | hgolden joins (~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com) |
| 23:20:31 | <Inst> | wait |
| 23:20:46 | <Inst> | if you rebuild free monads on a binary tree structure, don't you just end up with... hell, you don't even need binary trees |
| 23:20:50 | <Inst> | you literally end up with a lisp |
| 23:20:51 | <Inst> | hahahahaa |
| 23:23:12 | <Inst> | nah, you don't even need that, can just define an AST via data declaration |
| 23:24:08 | × | migas97 quits (~migas@static.140.65.63.178.clients.your-server.de) (Quit: The Lounge - https://thelounge.github.io) |
| 23:24:28 | → | migas97 joins (~migas@static.140.65.63.178.clients.your-server.de) |
| 23:25:41 | × | barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (Ping timeout: 240 seconds) |
| 23:25:58 | <geekosaur> | yes? |
| 23:26:10 | × | acidjnk_new quits (~acidjnk@p200300d6e714dc9124c21742e07a126c.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 23:26:12 | × | sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 260 seconds) |
| 23:26:52 | → | barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk) |
| 23:37:59 | × | kimiamania quits (~671c7418@user/kimiamania) (Quit: Ping timeout (120 seconds)) |
| 23:38:23 | → | kimiamania joins (~671c7418@user/kimiamania) |
| 23:38:59 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 23:39:16 | → | img joins (~img@user/img) |
| 23:47:11 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 23:47:28 | <Inst> | sorry ;_; |
| 23:47:55 | <Inst> | just had occasion to share this link, and was going over it |
| 23:47:56 | <Inst> | https://fumieval.hatenablog.com/entry/20121111/1352624678 |
| 23:48:49 | <Inst> | i guess i'm at the stage where i finally learned to love monads |
| 23:49:50 | <Inst> | i'm thinking about LogicT / ListT right now, and I'm wondering if people use the nondeterminism to manage concurrency |
| 23:50:56 | <geekosaur> | it's not that kind of nondeterminism. it's not so much "randomness" as "all possible solutions, unbiased" |
| 23:51:10 | <Inst> | i hated the term nondeterminism |
| 23:51:15 | <Inst> | choice, i guess |
| 23:51:46 | × | shoggouth quits (uid607148@user/shoggouth) (Quit: Connection closed for inactivity) |
| 23:51:48 | <Inst> | but LogicT / List monad is very impressive because StateT / ReaderT / WriterT really only give you back capabilities you had in imperative programming, although WriterT is interesting |
| 23:52:02 | <geekosaur> | (but, being a computer, there si in fact internal order, you just don't have access to that order in your code) |
| 23:52:26 | <Inst> | LogicT / List monad is closer to logic programming--it's offering something totally different |
| 23:52:34 | <geekosaur> | yes |
| 23:53:01 | <Inst> | and even working with only [], you can still use sequenceA to spin up a bunch of threads with forkIO or some safer concurrency abstractions |
| 23:53:20 | <Inst> | mapConcurrently springs to mind |
| 23:54:38 | <geekosaur> | have you looked at Control.Parallel.Strategies? |
| 23:54:39 | × | arahael quits (~arahael@119-18-1-21.771201.syd.nbn.aussiebb.net) (Ping timeout: 272 seconds) |
| 23:55:04 | × | ftweedal quits (~ftweedal@159.196.12.92) (Ping timeout: 255 seconds) |
| 23:55:11 | <Inst> | But that also explains the weird model SPJ et al did in Verse |
| 23:55:28 | <Inst> | it's basically just a ListT / LogicT eDSL |
| 23:55:55 | <Inst> | you mean usingIO? |
| 23:56:48 | → | ftweedal joins (~ftweedal@159.196.12.92) |
| 23:57:21 | <geekosaur> | actually I meant the non-IO ones |
| 23:57:30 | <geekosaur> | parallelism without forkIO |
| 23:58:12 | → | pavonia joins (~user@user/siracusa) |
| 23:58:53 | <Inst> | I can use the spark parallelism with difficulty |
| 23:59:10 | <Inst> | but I was more thinking about concurrency controlled in LogicT |
| 23:59:17 | <Inst> | because that is still absolutely mind-blowing |
| 23:59:44 | <geekosaur> | tbh I've thought more about concurrency via Cont than via LogicT |
All times are in UTC on 2024-04-08.