| 2022-08-07 00:00:32 +0000 | <erisco> | but today I don't think their role is as noticed |
| 2022-08-07 00:00:59 +0000 | <erisco> | you might as well teach AWS in place of Unix |
| 2022-08-07 00:01:24 +0000 | <qrpnxz> | aws runs on linux, so still relevant |
| 2022-08-07 00:01:39 +0000 | dcoutts__ | (~duncan@host86-150-18-57.range86-150.btcentralplus.com) |
| 2022-08-07 00:01:43 +0000 | <qrpnxz> | just because you don't own the machine doesn't mean the os disapeared |
| 2022-08-07 00:02:04 +0000 | <geekosaur> | and you can't run aws on your desktop |
| 2022-08-07 00:02:21 +0000 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 2022-08-07 00:02:35 +0000 | <geekosaur> | or your laptop |
| 2022-08-07 00:02:42 +0000 | <qrpnxz> | indeed lol |
| 2022-08-07 00:02:46 +0000 | <erisco> | AWS is full of serverless, uh, services... which is what I am more so referring to |
| 2022-08-07 00:03:43 +0000 | <geekosaur> | and you can just ignore all the rest? |
| 2022-08-07 00:03:48 +0000 | <erisco> | yes |
| 2022-08-07 00:03:52 +0000 | <geekosaur> | no |
| 2022-08-07 00:04:09 +0000 | <monochrom> | See, this is why when I say "ideology" it's a derogatory term. |
| 2022-08-07 00:04:12 +0000 | <erisco> | well, you can, you don't need to know anything about unix or any OS to use aws |
| 2022-08-07 00:04:22 +0000 | dcoutts_ | (~duncan@host86-153-247-178.range86-153.btcentralplus.com) (Ping timeout: 268 seconds) |
| 2022-08-07 00:04:26 +0000 | <monochrom> | Ideology blinds you of reality or even plain reason. |
| 2022-08-07 00:04:29 +0000 | <geekosaur> | you still can't run aws on your lapto[ |
| 2022-08-07 00:05:39 +0000 | <erisco> | my point is that there are other specialised environments in which you can build and execute programs, and you could be just as focused on one of those and not unix |
| 2022-08-07 00:06:00 +0000 | <qrpnxz> | erisco: but most of your coding still happen on your computer because aws is expensive and not set up as a programming IDE. The ideal in fact is if your desktop is running what aws is running as closely as possible, which would mean running linux lol |
| 2022-08-07 00:06:08 +0000 | <geekosaur> | show me the laptop running aws and I might concede your point. until then it's irrelevant |
| 2022-08-07 00:06:30 +0000 | <geekosaur> | mostly because of what qrpnxz just said |
| 2022-08-07 00:06:31 +0000 | <erisco> | I don't really understand what my laptop has to do with it |
| 2022-08-07 00:06:41 +0000 | <erisco> | I don't need to know unix to know how to use my laptop, even if it is running unix |
| 2022-08-07 00:06:50 +0000 | <monochrom> | Pretty sure Amazon wants to keep their AWS implementation a secret and not let your computer run it. :) |
| 2022-08-07 00:07:37 +0000 | <erisco> | I think I can get by without knowing about PCBs or scheduling or CPU rings |
| 2022-08-07 00:07:38 +0000 | <qrpnxz> | programming for a computer you don't have is like programming without a compiler, and then paying 5$ to build it. Terrible. |
| 2022-08-07 00:07:44 +0000 | <geekosaur> | they also want to be able to hiure people who can develop and maintain it, which means they must know unix |
| 2022-08-07 00:07:51 +0000 | <monochrom> | You don't need a CS degree to use your laptop. By your logic, universities can cancel all their CS programs now. |
| 2022-08-07 00:08:03 +0000 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.6) |
| 2022-08-07 00:09:07 +0000 | <monochrom> | I dare you to generalize from "we should top teaching C" to "we should stop teaching CS altogether". At least I would respect the epicness of that argument. :) |
| 2022-08-07 00:10:15 +0000 | <erisco> | I don't see C as necessary in a CS program, even if it is the lingua franca of OS programmers, because I don't see OSes as necessary in a CS program |
| 2022-08-07 00:10:24 +0000 | <qrpnxz> | lmao mono |
| 2022-08-07 00:12:23 +0000 | <qrpnxz> | C is like the antidote to learning Python. If all you know is python you are totally screwed up. Should be illegal to know python and not know C. (Better yet no python at all, but this is a compromise 🙂) |
| 2022-08-07 00:13:27 +0000 | <monochrom> | Oh hey we have a prof at my school who successfully did that. |
| 2022-08-07 00:13:52 +0000 | <erisco> | I think it should be illegal to only know Java |
| 2022-08-07 00:14:00 +0000 | <qrpnxz> | monochrom: did what |
| 2022-08-07 00:14:23 +0000 | <erisco> | put that in your AbstractObservableVisitorFactory and smoke it |
| 2022-08-07 00:14:36 +0000 | <monochrom> | So, previously, our CS101 and CS102 both used Python. The prof managed to convince us to change to: CS102 should use C. |
| 2022-08-07 00:14:50 +0000 | <qrpnxz> | epic |
| 2022-08-07 00:15:20 +0000 | <erisco> | I think after I graduated our intro courses were changed to Python too actually oO |
| 2022-08-07 00:15:34 +0000 | <erisco> | C is already on the ropes |
| 2022-08-07 00:15:37 +0000 | <monochrom> | I am in favour. (Not to say I actually had a vote; I didn't, still don't.) I have seen how Python convinced students that, for example, copying a string is O(1)-time. |
| 2022-08-07 00:16:16 +0000 | <monochrom> | I told the prof "Ideally I would prefer Pascal but I can take a compromise too" :) |
| 2022-08-07 00:16:21 +0000 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) |
| 2022-08-07 00:16:27 +0000 | <qrpnxz> | lol |
| 2022-08-07 00:16:49 +0000 | <monochrom> | united front for Profs Against Python, right? >:) |
| 2022-08-07 00:16:50 +0000 | <erisco> | a string is the fundamental unit of measure for any dynamic programmer, so O(1) follows naturally |
| 2022-08-07 00:17:01 +0000 | <qrpnxz> | hahaha |
| 2022-08-07 00:17:24 +0000 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds) |
| 2022-08-07 00:18:43 +0000 | Jeanne-Kamikaze | (~Jeanne-Ka@142.147.89.248) (Quit: Leaving) |
| 2022-08-07 00:19:09 +0000 | <monochrom> | But yeah "C as antidote to Python" is what the prof (and me and some others) thought, though we didn't think of wording it like that. |
| 2022-08-07 00:20:08 +0000 | <monochrom> | But were you aware that python is also a snake species, so "antidote" can be a pun there? :) |
| 2022-08-07 00:21:19 +0000 | <erisco> | monochrom, actually, now that I think of it, our OS course was also taught in Java, lmao... |
| 2022-08-07 00:21:44 +0000 | <erisco> | no joke, you had the option of either doing it in C, or doing it make-believe in Java |
| 2022-08-07 00:24:22 +0000 | <erisco> | I think because some programs had the OS course but not the entry C courses... for whatever reason |
| 2022-08-07 00:27:11 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 2022-08-07 00:31:16 +0000 | wroathe | (~wroathe@user/wroathe) (Quit: Lost terminal) |
| 2022-08-07 00:32:50 +0000 | <qrpnxz> | monochrom: oh yeah! |
| 2022-08-07 00:33:43 +0000 | <monochrom> | Nice. Took me a while to see that. :) |
| 2022-08-07 00:34:59 +0000 | <erisco> | what is Python other than a timid attempt at making Ruby? |
| 2022-08-07 00:35:28 +0000 | <erisco> | which I have not heard a word of for many years now... is it still a thing? I still have to suffer active record in every ORM I have to use |
| 2022-08-07 00:35:50 +0000 | <monochrom> | Did Ruby predate Python? |
| 2022-08-07 00:35:54 +0000 | <geekosaur> | no |
| 2022-08-07 00:36:36 +0000 | <geekosaur> | python 1.0 and perl 3.0 (first public releases of each) came out at the same time |
| 2022-08-07 00:36:38 +0000 | <monochrom> | But I don't think of either Python or Ruby as timid. |
| 2022-08-07 00:36:42 +0000 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds) |
| 2022-08-07 00:37:07 +0000 | gurkenglas | (~gurkengla@p548ac3ba.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2022-08-07 00:37:28 +0000 | <geekosaur> | ruby started out as a perl knock-off with some smalltalk features |
| 2022-08-07 00:37:48 +0000 | <monochrom> | Both are heavily opinionated, I can only imagine their creators to be egomaniacs. |
| 2022-08-07 00:37:50 +0000 | <geekosaur> | but by ruby 2.0 most of the perl-isms were deprecated |
| 2022-08-07 00:37:53 +0000 | <erisco> | my understanding is Python strived to be an OOP, but fell short by having a few non-object values, a weakness that Ruby fixed |
| 2022-08-07 00:38:35 +0000 | <erisco> | Python did not have the bravery to make numbers assignable |
| 2022-08-07 00:39:00 +0000 | <monochrom> | Well it has the bravery to say no to FP. |
| 2022-08-07 00:39:23 +0000 | geekosaur | is still highly annoyed that in a language that wants so badly to be OO, strings are appended with + |
| 2022-08-07 00:39:27 +0000 | <erisco> | what are decorators other than a timid attempt at function composition, a staple FP feature |
| 2022-08-07 00:40:00 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 00:41:24 +0000 | <monochrom> | OK, in the following sense C does not have the bravery to say no to FP. It has ?: . C compilers do not refuse TCO. |
| 2022-08-07 00:42:10 +0000 | <monochrom> | GvR had the bravery to say no to the former for a long time, and still say no to TCO. In both cases explicitly stating "this is not FP". |
| 2022-08-07 00:42:29 +0000 | <monochrom> | And still have the bravery to keep lambda castrated. |
| 2022-08-07 00:43:34 +0000 | <erisco> | this reminds me of how surprised I was to see inline function syntax added to Java |
| 2022-08-07 00:44:12 +0000 | <erisco> | they just couldn't keep lying about the superiority of inline classes any longer |
| 2022-08-07 00:44:12 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 2022-08-07 00:49:53 +0000 | <qrpnxz> | i mean, anon classes are pretty nice, and in fact the lambda syntax is just a super neat sugar the exact same feature. Fits like a glove. |
| 2022-08-07 00:55:58 +0000 | <erisco> | I haven't been paying attention to Haskell closely for a couple years... anything big? |
| 2022-08-07 00:58:51 +0000 | <qrpnxz> | hard to say. Checkout the changelog of your favourite libs? |
| 2022-08-07 00:59:32 +0000 | <erisco> | I guess my question is almost synonymous with looking at Kmett's new packages |
| 2022-08-07 00:59:49 +0000 | <qrpnxz> | hahaha |
| 2022-08-07 01:00:06 +0000 | <qrpnxz> | lens change a lot, it's at 5.0.0 recently i think? |
| 2022-08-07 01:01:18 +0000 | <erisco> | they didn't really grip me until I studied the profunctor approach... and then I used them mainly to unwrap and wrap newtypes and not much else oO |
| 2022-08-07 01:05:24 +0000 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!) |
| 2022-08-07 01:05:54 +0000 | <geekosaur> | text and aeson both had major revs. ghc9 got linear types |
| 2022-08-07 01:07:10 +0000 | <qrpnxz> | oh yeah, text 2 is here pretty recently |
| 2022-08-07 01:07:13 +0000 | <qrpnxz> | now with utf8 finally |
| 2022-08-07 01:07:15 +0000 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
| 2022-08-07 01:07:50 +0000 | Colere | (~colere@about/linux/staff/sauvin) (Ping timeout: 240 seconds) |
| 2022-08-07 01:08:07 +0000 | <geekosaur> | ghc 9.2 got LANGUAGE GHC2021 with a bunch of extensions turned on by default |
| 2022-08-07 01:08:32 +0000 | <qrpnxz> | was gonna bring that up and got distracted. https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html |
| 2022-08-07 01:08:40 +0000 | <qrpnxz> | still had the link in my buffer lol |
| 2022-08-07 01:09:49 +0000 | Furor | (~colere@about/linux/staff/sauvin) |
| 2022-08-07 01:10:59 +0000 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 2022-08-07 01:10:59 +0000 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 2022-08-07 01:10:59 +0000 | wroathe | (~wroathe@user/wroathe) |
| 2022-08-07 01:11:02 +0000 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 2022-08-07 01:11:03 +0000 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 2022-08-07 01:12:18 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 01:17:10 +0000 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 2022-08-07 01:19:12 +0000 | Sciencentistguy9 | (~sciencent@hacksoc/ordinary-member) |
| 2022-08-07 01:20:56 +0000 | codaraxis__ | (~codaraxis@user/codaraxis) |
| 2022-08-07 01:20:59 +0000 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (Ping timeout: 268 seconds) |
| 2022-08-07 01:20:59 +0000 | Sciencentistguy9 | Sciencentistguy |
| 2022-08-07 01:23:46 +0000 | <erisco> | linear types might be fun |
| 2022-08-07 01:24:35 +0000 | codaraxis___ | (~codaraxis@user/codaraxis) (Ping timeout: 252 seconds) |
| 2022-08-07 01:32:53 +0000 | mvk | (~mvk@2607:fea8:5ce3:8500::d5f2) |
| 2022-08-07 01:34:07 +0000 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 252 seconds) |
| 2022-08-07 01:35:20 +0000 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 2022-08-07 01:35:22 +0000 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Remote host closed the connection) |
| 2022-08-07 01:36:46 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 01:37:53 +0000 | neceve | (~quassel@2.26.93.14) |
| 2022-08-07 01:39:20 +0000 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 2022-08-07 01:47:19 +0000 | neceve | (~quassel@2.26.93.14) (Ping timeout: 252 seconds) |
| 2022-08-07 01:49:09 +0000 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 252 seconds) |
| 2022-08-07 01:52:33 +0000 | Furor | Colere |
| 2022-08-07 01:57:36 +0000 | <albet70> | what SKI calculus is used for? |
| 2022-08-07 02:01:15 +0000 | <qrpnxz> | stack have any prebuilt way to display pretty graphs from benchmarks? Kind of a PITA to move this data to librecalc |
| 2022-08-07 02:01:47 +0000 | <qrpnxz> | i should just write a short program, i'm a programmer after all |
| 2022-08-07 02:03:30 +0000 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 2022-08-07 02:10:15 +0000 | <Cale> | albet70: It's not so much useful as it is an interesting thing to think about -- that 2 or 3 combinators are sufficient to encode computation. The types of S and K in a typed lambda calculus can be taken as axioms for intuitionistic logic (though usually most would prefer a presentation based on structural rules these days) |
| 2022-08-07 02:10:53 +0000 | <Cale> | albet70: also, they're closely related to Applicative: pure and (<*>) for the instance Applicative ((->) e) are exactly K and S |
| 2022-08-07 02:12:06 +0000 | frost | (~frost@user/frost) |
| 2022-08-07 02:12:18 +0000 | <Cale> | If you need something which is Turing complete and extremely simple, it can sometimes fit the bill, though there are a lot of those. |
| 2022-08-07 02:13:21 +0000 | mob | (~kvirc@62-11-5-95.dialup.tiscali.it) (Ping timeout: 252 seconds) |
| 2022-08-07 02:18:06 +0000 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
| 2022-08-07 02:18:06 +0000 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 2022-08-07 02:18:06 +0000 | finn_elija | FinnElija |
| 2022-08-07 02:19:55 +0000 | <albet70> | class SKI repr where app :: repr (a -> b) -> repr a -> repr b; s :: repr ((a -> b -> c) -> (a -> b) -> a -> c); k :: repr (a -> b -> a); i :: repr (a -> a); this s's type signature is like (<*>) @((->)_) :: (_ -> a -> b) -> (_ -> a) -> _ -> b |
| 2022-08-07 02:20:28 +0000 | <qrpnxz> | it makes sense because lambda calc is turing complete, and all S and K do is give you "computation with an implied environment". So if you make every single function argument as an implied argument in a reader monad, then bam, you have the same program but just using (<*>) and pure to deal with the environment that would otherwise be done with lambda abstractions |
| 2022-08-07 02:24:43 +0000 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
| 2022-08-07 02:27:15 +0000 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!) |
| 2022-08-07 02:28:51 +0000 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
| 2022-08-07 02:35:26 +0000 | td_ | (~td@94.134.91.51) (Ping timeout: 240 seconds) |
| 2022-08-07 02:36:49 +0000 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds) |
| 2022-08-07 02:37:33 +0000 | td_ | (~td@94.134.91.67) |
| 2022-08-07 02:40:20 +0000 | zxx7529 | (~Thunderbi@user/zxx7529) |
| 2022-08-07 02:42:48 +0000 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
| 2022-08-07 02:42:53 +0000 | <edwardk> | erisco: re new packages: mostly spent some time puttering with stronger linear-logic in haskell, with supporting various unlifted data types with a somewhat modified prelude, recently trying to get something like egg ported over and failing several times to make it nice, and i still every once in a while keep dusting off the new distributive changes and trying to make a go at rewriting the whole package hierarchy |
| 2022-08-07 02:43:29 +0000 | <edwardk> | currently making a go at doing some of the typechecker like code i like to write in rust, we'll see how long that lasts. |
| 2022-08-07 02:43:51 +0000 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
| 2022-08-07 02:44:26 +0000 | mzan | (~quassel@mail.asterisell.com) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 2022-08-07 02:45:40 +0000 | mzan | (~quassel@mail.asterisell.com) |
| 2022-08-07 02:46:21 +0000 | <erisco> | what is the typechecker code about? |
| 2022-08-07 02:52:10 +0000 | frost | (~frost@user/frost) (Quit: Client closed) |
| 2022-08-07 03:12:43 +0000 | frost | (~frost@user/frost) |
| 2022-08-07 03:15:04 +0000 | notzmv | (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
| 2022-08-07 03:15:19 +0000 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds) |
| 2022-08-07 03:20:00 +0000 | zxx7529 | (~Thunderbi@user/zxx7529) (Ping timeout: 268 seconds) |
| 2022-08-07 03:21:02 +0000 | wroathe | (~wroathe@user/wroathe) (Quit: Lost terminal) |
| 2022-08-07 03:22:06 +0000 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 2022-08-07 03:22:06 +0000 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 2022-08-07 03:22:06 +0000 | wroathe | (~wroathe@user/wroathe) |
| 2022-08-07 03:23:05 +0000 | vglfr | (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
| 2022-08-07 03:23:57 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 03:31:16 +0000 | <erisco> | albet70, SKI doesn't use variables, which makes certain analyses and constructions much easier... variable scope, hygiene, etc, is complicated |
| 2022-08-07 03:35:17 +0000 | <erisco> | first you remove loops, then mutability, then variables... a hat trick to impress friends |
| 2022-08-07 03:41:35 +0000 | xff0x | (~xff0x@2405:6580:b080:900:5628:7137:a023:aad6) (Ping timeout: 255 seconds) |
| 2022-08-07 03:42:38 +0000 | xff0x | (~xff0x@2405:6580:b080:900:d33e:2826:e840:9afc) |
| 2022-08-07 03:43:26 +0000 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 2022-08-07 03:49:56 +0000 | <albet70> | S is ap, K is const, I is id, right? |
| 2022-08-07 03:49:57 +0000 | <monochrom> | "First they remove your loops. Then they remove your mutability. Then they remove your variables. Then you win." :) |
| 2022-08-07 03:53:36 +0000 | <edwardk> | erisco: i spend a lot of time writing little toy typecheckers and the like, but this one is really about trying to see if i can put a better skin on enso.org's language |
| 2022-08-07 03:54:32 +0000 | <edwardk> | which requires some pretty nasty typechecking tricks to pull off, because you have a language with things like positional and named arguments, but also currying, basically there are like 4 places in the design of the type system that need something like row types |
| 2022-08-07 03:54:43 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 2022-08-07 03:54:44 +0000 | <edwardk> | and one of them requires those row types to be able to be instantiated with polytypes |
| 2022-08-07 03:55:11 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) |
| 2022-08-07 03:56:30 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 2022-08-07 03:56:53 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) |
| 2022-08-07 03:58:40 +0000 | <edwardk> | albet70: yes, i like to think of them in terms of the reader monad as well. S is like 'f <*> x' an application that takes an extra environment and plumbs it both ways. K ignores it (pure = const). I uses it (ask = id) |
| 2022-08-07 03:59:11 +0000 | <edwardk> | albet70: i wanted to say things with explicitly reader-like analogues, because then its clearer, mixing (<*>) with const and id makes it pretty hard to see the reader connections |
| 2022-08-07 03:59:34 +0000 | <edwardk> | otoh, pure and ask are pretty obscure if you just want to think of it in combinator terms =) |
| 2022-08-07 04:00:20 +0000 | <edwardk> | ok, simd bitvector for rust done, now i can actually get the succinct stuff i need done, and then i can finally get my catamorphisms out of the way |
| 2022-08-07 04:02:50 +0000 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 2022-08-07 04:04:39 +0000 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2022-08-07 04:05:34 +0000 | gmg | (~user@user/gehmehgeh) |
| 2022-08-07 04:16:19 +0000 | justsomeguy | (~justsomeg@user/justsomeguy) |
| 2022-08-07 04:22:25 +0000 | rembo10 | (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 2022-08-07 04:23:25 +0000 | rembo10 | (~rembo10@main.remulis.com) |
| 2022-08-07 04:24:27 +0000 | nilradical | (~nilradica@user/naso) () |
| 2022-08-07 04:26:18 +0000 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 2022-08-07 04:26:23 +0000 | vglfr | (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
| 2022-08-07 04:27:04 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 04:27:50 +0000 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds) |
| 2022-08-07 04:28:50 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 2022-08-07 04:30:05 +0000 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Read error: Connection reset by peer) |
| 2022-08-07 04:30:21 +0000 | <albet70> | are there some types instance of applicative but not functor? |
| 2022-08-07 04:31:54 +0000 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
| 2022-08-07 04:33:25 +0000 | vglfr | (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
| 2022-08-07 04:33:40 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 04:37:05 +0000 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds) |
| 2022-08-07 04:40:02 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
| 2022-08-07 04:42:06 +0000 | <dolio> | No. |
| 2022-08-07 04:42:39 +0000 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 2022-08-07 04:42:39 +0000 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
| 2022-08-07 04:42:39 +0000 | finn_elija | FinnElija |
| 2022-08-07 04:43:32 +0000 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 2022-08-07 04:44:04 +0000 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
| 2022-08-07 04:51:17 +0000 | foul_owl | (~kerry@23.82.194.107) (Ping timeout: 245 seconds) |
| 2022-08-07 04:57:00 +0000 | <qrpnxz> | albet70: https://hackage.haskell.org/package/base-4.16.3.0/docs/Control-Applicative.html#v:liftA |
| 2022-08-07 04:57:38 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 05:01:45 +0000 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds) |
| 2022-08-07 05:02:09 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 2022-08-07 05:06:09 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 05:06:30 +0000 | <albet70> | and instance of functor but not applicative? |
| 2022-08-07 05:11:54 +0000 | mbuf | (~Shakthi@122.165.55.71) |
| 2022-08-07 05:18:08 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 05:18:26 +0000 | <absentia> | albet70: every functor gets an applicative "for free" |
| 2022-08-07 05:18:28 +0000 | <absentia> | https://hackage.haskell.org/package/free-5.1.9/docs/Control-Applicative-Free.html |
| 2022-08-07 05:19:34 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds) |
| 2022-08-07 05:23:33 +0000 | notzmv | (~zmv@user/notzmv) |
| 2022-08-07 05:24:42 +0000 | <jackdk> | albet70: `Data.Map.Map k` is `Functor` and `Apply` (from `semigroupoids`) but not `Applicative` (no valid `pure`) |
| 2022-08-07 05:26:07 +0000 | myme1 | (~myme@2a01:799:d5a:cd00:f235:66bd:b223:d95e) (Ping timeout: 272 seconds) |
| 2022-08-07 05:26:59 +0000 | myme1 | (~myme@2a01:799:d5a:cd00:e0d6:bd5d:e9e6:2667) |
| 2022-08-07 05:27:02 +0000 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
| 2022-08-07 05:28:28 +0000 | zxx7529 | (~Thunderbi@user/zxx7529) |
| 2022-08-07 05:28:28 +0000 | Vajb | (~Vajb@85-76-11-145-nat.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 2022-08-07 05:28:40 +0000 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
| 2022-08-07 05:31:01 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
| 2022-08-07 05:42:55 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 268 seconds) |
| 2022-08-07 05:43:49 +0000 | zxx7529 | (~Thunderbi@user/zxx7529) (Ping timeout: 252 seconds) |
| 2022-08-07 05:51:04 +0000 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 2022-08-07 05:52:55 +0000 | acidjnk | (~acidjnk@p200300d6e7058660dd6adf7799b0bbfd.dip0.t-ipconnect.de) |
| 2022-08-07 05:54:12 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 05:59:36 +0000 | Vajb | (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) |
| 2022-08-07 06:03:06 +0000 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) |
| 2022-08-07 06:03:08 +0000 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 2022-08-07 06:05:57 +0000 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Remote host closed the connection) |
| 2022-08-07 06:07:44 +0000 | zxx7529 | (~Thunderbi@user/zxx7529) |
| 2022-08-07 06:09:43 +0000 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) |
| 2022-08-07 06:10:05 +0000 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Remote host closed the connection) |
| 2022-08-07 06:10:47 +0000 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) |
| 2022-08-07 06:13:22 +0000 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 2022-08-07 06:15:04 +0000 | titibandit | (~titibandi@xdsl-212-8-147-38.nc.de) |
| 2022-08-07 06:28:38 +0000 | noteness | (~noteness@user/noteness) (Ping timeout: 268 seconds) |
| 2022-08-07 06:37:32 +0000 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds) |
| 2022-08-07 06:42:08 +0000 | Sujjek | (~Sujjek@90.95.10.128) |
| 2022-08-07 06:42:45 +0000 | <Sujjek> | Hi, how can I overcome the problem with cabal init "cabal: The name hopfield is already in use by another package on Hackage."? |
| 2022-08-07 06:43:02 +0000 | acidjnk | (~acidjnk@p200300d6e7058660dd6adf7799b0bbfd.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 2022-08-07 06:43:22 +0000 | <absentia> | Sujjek: are you trying to install hopfield |
| 2022-08-07 06:43:27 +0000 | <absentia> | as a dependency of your project |
| 2022-08-07 06:43:32 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 06:43:39 +0000 | <sclv> | Sujjek: use another name lol |
| 2022-08-07 06:44:21 +0000 | <Sujjek> | No |
| 2022-08-07 06:44:38 +0000 | <Sujjek> | It appears my cabal is outdated |
| 2022-08-07 06:44:54 +0000 | <absentia> | https://hackage.haskell.org/package/hopfield |
| 2022-08-07 06:45:24 +0000 | <Sujjek> | No my project is called hopfield |
| 2022-08-07 06:46:00 +0000 | <absentia> | Sujjek: that's what the error is saying |
| 2022-08-07 06:46:03 +0000 | <absentia> | it's already in use |
| 2022-08-07 06:46:08 +0000 | <absentia> | by the package linked |
| 2022-08-07 06:48:00 +0000 | <Sujjek> | I know |
| 2022-08-07 06:48:19 +0000 | <dsal> | Your query is confusing. Is https://hackage.haskell.org/package/hopfield your package? |
| 2022-08-07 06:48:41 +0000 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 2022-08-07 06:51:24 +0000 | <Sujjek> | No. `mkdir hopfield; cd hopfield; cabal init` >>> "cabal: The name hopfield is already in use by another package on Hackage." |
| 2022-08-07 06:51:43 +0000 | noteness | (~noteness@user/noteness) |
| 2022-08-07 06:52:02 +0000 | <Sujjek> | I just rm -rf ~/.cabal so it doesn't know the hackage packages and that let me create it |
| 2022-08-07 06:52:20 +0000 | <dsal> | Oh. I've not used cabal directly. That seems like it should be advisory. You wouldn't be able to publish something called `hopfield` but you should be able to make a project called that that you don't intend to publish. |
| 2022-08-07 06:54:17 +0000 | <absentia> | Sujjek: what cabal version |
| 2022-08-07 06:54:30 +0000 | <absentia> | oh guess you figured it out |
| 2022-08-07 06:55:47 +0000 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
| 2022-08-07 06:56:42 +0000 | <Sujjek> | It's fixed in master https://github.com/haskell/cabal/issues/7909 |
| 2022-08-07 07:07:01 +0000 | Sujjek | (~Sujjek@90.95.10.128) (Remote host closed the connection) |
| 2022-08-07 07:07:12 +0000 | titibandit | (~titibandi@xdsl-212-8-147-38.nc.de) (Quit: Leaving.) |
| 2022-08-07 07:14:59 +0000 | gurkenglas | (~gurkengla@p548ac3ba.dip0.t-ipconnect.de) |
| 2022-08-07 07:17:53 +0000 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Ping timeout: 268 seconds) |
| 2022-08-07 07:22:52 +0000 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
| 2022-08-07 07:23:49 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 07:23:55 +0000 | coot | (~coot@213.134.176.158) |
| 2022-08-07 07:25:45 +0000 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
| 2022-08-07 07:26:05 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 07:38:07 +0000 | Tuplanolla | (~Tuplanoll@91-159-69-231.elisa-laajakaista.fi) |
| 2022-08-07 07:38:23 +0000 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
| 2022-08-07 07:44:55 +0000 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
| 2022-08-07 07:45:06 +0000 | acidjnk | (~acidjnk@p200300d6e7058660e0ca873366cee89c.dip0.t-ipconnect.de) |
| 2022-08-07 07:52:07 +0000 | foul_owl | (~kerry@23.82.194.108) |
| 2022-08-07 07:53:11 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 08:01:20 +0000 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 2022-08-07 08:02:25 +0000 | Kaipei | Kaiepi |
| 2022-08-07 08:03:26 +0000 | jargon | (~jargon@184.101.188.251) (Remote host closed the connection) |
| 2022-08-07 08:06:33 +0000 | mc47 | (~mc47@xmonad/TheMC47) |
| 2022-08-07 08:09:56 +0000 | JimL | (~quassel@89-162-2-132.fiber.signal.no) (Read error: Connection reset by peer) |
| 2022-08-07 08:10:07 +0000 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 2022-08-07 08:15:43 +0000 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
| 2022-08-07 08:21:20 +0000 | vglfr | (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
| 2022-08-07 08:21:30 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 08:24:59 +0000 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 2022-08-07 08:27:13 +0000 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
| 2022-08-07 08:27:32 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 2022-08-07 08:38:39 +0000 | Midjak | (~Midjak@82.66.147.146) |
| 2022-08-07 08:42:33 +0000 | Midjak | (~Midjak@82.66.147.146) (Read error: Connection reset by peer) |
| 2022-08-07 08:43:29 +0000 | zxx7529 | (~Thunderbi@user/zxx7529) (Ping timeout: 252 seconds) |
| 2022-08-07 08:45:46 +0000 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2022-08-07 08:46:10 +0000 | Sgeo | (~Sgeo@user/sgeo) |
| 2022-08-07 08:46:50 +0000 | JimL | (~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 268 seconds) |
| 2022-08-07 08:48:17 +0000 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
| 2022-08-07 08:48:59 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 08:52:04 +0000 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 2022-08-07 08:55:26 +0000 | acidjnk | (~acidjnk@p200300d6e7058660e0ca873366cee89c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 2022-08-07 09:00:22 +0000 | maroloccio | (~marolocci@62.98.94.196) |
| 2022-08-07 09:07:37 +0000 | elkcl_ | (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
| 2022-08-07 09:08:47 +0000 | elkcl | (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 245 seconds) |
| 2022-08-07 09:08:48 +0000 | elkcl_ | elkcl |
| 2022-08-07 09:11:08 +0000 | jgeerds | (~jgeerds@55d46bad.access.ecotel.net) |
| 2022-08-07 09:11:57 +0000 | kenran | (~kenran@200116b82b39570069e9463f1b15ab5c.dip.versatel-1u1.de) |
| 2022-08-07 09:13:26 +0000 | kenran | (~kenran@200116b82b39570069e9463f1b15ab5c.dip.versatel-1u1.de) (Client Quit) |
| 2022-08-07 09:14:39 +0000 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2022-08-07 09:14:39 +0000 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer) |
| 2022-08-07 09:14:39 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Read error: Connection reset by peer) |
| 2022-08-07 09:14:39 +0000 | noteness | (~noteness@user/noteness) (Write error: Connection reset by peer) |
| 2022-08-07 09:15:19 +0000 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
| 2022-08-07 09:15:28 +0000 | noteness | (~noteness@user/noteness) |
| 2022-08-07 09:15:34 +0000 | gmg | (~user@user/gehmehgeh) |
| 2022-08-07 09:15:43 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
| 2022-08-07 09:25:21 +0000 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 2022-08-07 09:26:59 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 2022-08-07 09:33:50 +0000 | <pavonia> | Is there already a strict function to apply a function n times on a given value? |
| 2022-08-07 09:37:27 +0000 | <merijn> | pavonia: iterate' ? |
| 2022-08-07 09:38:47 +0000 | <pavonia> | Oh, didn't see there's a strict version of it |
| 2022-08-07 09:45:25 +0000 | azimut | (~azimut@gateway/tor-sasl/azimut) |
| 2022-08-07 09:46:02 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 268 seconds) |
| 2022-08-07 09:47:53 +0000 | yaroot | (~yaroot@p3374048-ipngn8502souka.saitama.ocn.ne.jp) (Ping timeout: 268 seconds) |
| 2022-08-07 09:49:52 +0000 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
| 2022-08-07 09:50:28 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 09:52:00 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 2022-08-07 09:52:37 +0000 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 2022-08-07 09:56:08 +0000 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) |
| 2022-08-07 09:57:11 +0000 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 2022-08-07 09:57:39 +0000 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
| 2022-08-07 09:57:52 +0000 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2022-08-07 09:58:40 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 09:58:43 +0000 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
| 2022-08-07 09:59:02 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 10:03:13 +0000 | yaroot | (~yaroot@2400:4052:ac0:d900:680e:dbff:fe1e:4953) |
| 2022-08-07 10:04:39 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 10:04:57 +0000 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) |
| 2022-08-07 10:06:47 +0000 | mbuf | (~Shakthi@122.165.55.71) (Quit: Leaving) |
| 2022-08-07 10:09:56 +0000 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 2022-08-07 10:11:41 +0000 | neceve | (~quassel@2.26.93.14) |
| 2022-08-07 10:12:24 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) |
| 2022-08-07 10:18:33 +0000 | coot | (~coot@213.134.176.158) (Read error: Connection reset by peer) |
| 2022-08-07 10:18:42 +0000 | coot | (~coot@213.134.176.158) |
| 2022-08-07 10:19:07 +0000 | instantaphex | (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 2022-08-07 10:23:35 +0000 | instantaphex | (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds) |
| 2022-08-07 10:26:31 +0000 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
| 2022-08-07 10:27:56 +0000 | yaroot | (~yaroot@2400:4052:ac0:d900:680e:dbff:fe1e:4953) (Ping timeout: 255 seconds) |
| 2022-08-07 10:29:38 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 10:34:21 +0000 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) |
| 2022-08-07 10:36:18 +0000 | yaroot | (~yaroot@2400:4052:ac0:d900:680e:dbff:fe1e:4953) |
| 2022-08-07 10:38:59 +0000 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 2022-08-07 10:42:07 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
| 2022-08-07 10:44:04 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 10:53:18 +0000 | coot | (~coot@213.134.176.158) (Quit: coot) |
| 2022-08-07 10:53:30 +0000 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) (Read error: Connection reset by peer) |
| 2022-08-07 10:54:11 +0000 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) |
| 2022-08-07 10:54:24 +0000 | acidjnk | (~acidjnk@p200300d6e7058660e81ade68fca2dfc2.dip0.t-ipconnect.de) |
| 2022-08-07 10:54:46 +0000 | coot_ | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 2022-08-07 10:57:35 +0000 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
| 2022-08-07 11:03:33 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
| 2022-08-07 11:04:04 +0000 | JimL | (~quassel@89-162-2-132.fiber.signal.no) (Quit: No Ping reply in 180 seconds.) |
| 2022-08-07 11:06:41 +0000 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
| 2022-08-07 11:07:57 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 2022-08-07 11:09:13 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 11:09:32 +0000 | coot_ | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot_) |
| 2022-08-07 11:13:24 +0000 | ubert | (~Thunderbi@77.119.210.41.wireless.dyn.drei.com) |
| 2022-08-07 11:20:37 +0000 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
| 2022-08-07 11:21:27 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 11:21:42 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
| 2022-08-07 11:24:09 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 11:25:34 +0000 | Pickchea | (~private@user/pickchea) |
| 2022-08-07 11:26:17 +0000 | nilradical | (~nilradica@user/naso) (Ping timeout: 245 seconds) |
| 2022-08-07 11:28:14 +0000 | acidjnk | (~acidjnk@p200300d6e7058660e81ade68fca2dfc2.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 2022-08-07 11:30:18 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 11:30:50 +0000 | zxx7529 | (~Thunderbi@user/zxx7529) |
| 2022-08-07 11:34:00 +0000 | Cerins1 | (~Cerins@m90-128-49-116.cust.tele2.lv) |
| 2022-08-07 11:35:11 +0000 | Cerins1 | (~Cerins@m90-128-49-116.cust.tele2.lv) (Client Quit) |
| 2022-08-07 11:36:11 +0000 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) (Ping timeout: 252 seconds) |
| 2022-08-07 11:38:04 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2022-08-07 11:39:29 +0000 | Pickchea | (~private@user/pickchea) (Ping timeout: 252 seconds) |
| 2022-08-07 11:43:46 +0000 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
| 2022-08-07 11:45:40 +0000 | jgeerds | (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds) |
| 2022-08-07 11:46:05 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 11:49:12 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
| 2022-08-07 11:54:20 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 11:54:49 +0000 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 2022-08-07 11:59:51 +0000 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 2022-08-07 12:01:17 +0000 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) |
| 2022-08-07 12:06:33 +0000 | joo-_ | (~joo-_@fsf/member/joo--) (Quit: leaving) |
| 2022-08-07 12:07:50 +0000 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 2022-08-07 12:08:50 +0000 | azimut | (~azimut@gateway/tor-sasl/azimut) |
| 2022-08-07 12:23:11 +0000 | rawles | (~x@user/rawles) |
| 2022-08-07 12:23:33 +0000 | vglfr | (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
| 2022-08-07 12:25:30 +0000 | joo-_ | (~joo-_@87-49-45-115-mobile.dk.customer.tdc.net) |
| 2022-08-07 12:25:30 +0000 | joo-_ | (~joo-_@87-49-45-115-mobile.dk.customer.tdc.net) (Changing host) |
| 2022-08-07 12:25:30 +0000 | joo-_ | (~joo-_@fsf/member/joo--) |
| 2022-08-07 12:27:25 +0000 | <rawles> | Can someone name this function for me? I have a list of values whose type I've defined as a record. The second field is a timestamp, and the same data can appear several times in this list. I want to take my sorted list and retain only the first element appearing for each timestamp. Any ideas for an elegant way to do this? |
| 2022-08-07 12:27:38 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 2022-08-07 12:28:10 +0000 | <rawles> | I could group them by timestamp, and take the head of each list, but maybe there's a nicer way. |
| 2022-08-07 12:28:50 +0000 | remedan | (~remedan@octo.cafe) (Read error: Connection reset by peer) |
| 2022-08-07 12:31:08 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 2022-08-07 12:31:12 +0000 | <Cale> | That already sounds like a one-liner... |
| 2022-08-07 12:31:22 +0000 | acidjnk | (~acidjnk@p200300d6e705866035693c7955124d42.dip0.t-ipconnect.de) |
| 2022-08-07 12:32:19 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 12:32:34 +0000 | remedan | (~remedan@octo.cafe) |
| 2022-08-07 12:32:50 +0000 | <Cale> | map head . groupBy ((==) `on` fooTimestamp) |
| 2022-08-07 12:33:42 +0000 | <Cale> | or you could write a lambda there and it's not much longer |
| 2022-08-07 12:33:43 +0000 | <rawles> | Fantastic. Thanks Cale. I'll give that a go in a bit. |
| 2022-08-07 12:34:49 +0000 | <Cale> | head is guaranteed not to fail here because groupBy only ever produces nonempty groups, but if you're worried about how the code might evolve, using (\(x:_) -> x) is also an option (which will produce a more helpful error message at runtime if anyone ever gives it an empty list) |
| 2022-08-07 12:35:32 +0000 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) |
| 2022-08-07 12:35:49 +0000 | <rawles> | Programming in Haskell at this stage is as much an self-education as it is creating code, so that sounds like a good habit. Thanks. |
| 2022-08-07 12:35:56 +0000 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) (Remote host closed the connection) |
| 2022-08-07 12:36:48 +0000 | <absentia> | https://hackage.haskell.org/package/protolude-0.3.2/docs/Protolude-List.html |
| 2022-08-07 12:37:10 +0000 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) |
| 2022-08-07 12:37:19 +0000 | <rawles> | oh nice! |
| 2022-08-07 12:39:26 +0000 | jmd_ | (~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds) |
| 2022-08-07 12:40:33 +0000 | Midjak | (~Midjak@82.66.147.146) |
| 2022-08-07 12:41:17 +0000 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) (Ping timeout: 245 seconds) |
| 2022-08-07 12:58:13 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 12:59:37 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
| 2022-08-07 13:00:11 +0000 | coot_ | (~coot@213.134.176.158) |
| 2022-08-07 13:00:21 +0000 | <Cale> | That's just basically a subset of what's in Data.List |
| 2022-08-07 13:00:56 +0000 | <absentia> | with safer `head` |
| 2022-08-07 13:01:16 +0000 | <Cale> | oh, I see |
| 2022-08-07 13:01:32 +0000 | coot_ | (~coot@213.134.176.158) (Read error: Connection reset by peer) |
| 2022-08-07 13:01:42 +0000 | <Cale> | Though, that often won't help any, because you'll just end up wanting to pattern match on the Just which you know is coming. |
| 2022-08-07 13:01:44 +0000 | coot_ | (~coot@213.134.176.158) |
| 2022-08-07 13:01:59 +0000 | <Cale> | (Like in this case) |
| 2022-08-07 13:02:25 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 13:02:38 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 2022-08-07 13:04:17 +0000 | <Cale> | But yeah, 'head' and 'tail' are kind of a silly thing to have around in general, since they're both beginner traps most of the time, but also very easy to implement when you need them, and implementing them inline means the compiler has the opportunity to generate a better error message if you end up being (or becoming) incorrect about the list always being nonempty. |
| 2022-08-07 13:04:29 +0000 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
| 2022-08-07 13:05:41 +0000 | remedan | (~remedan@octo.cafe) (Quit: Bye!) |
| 2022-08-07 13:07:25 +0000 | <Cale> | haha, safeFromJust :: Maybe a -> Maybe a; safeFromJust = id |
| 2022-08-07 13:07:50 +0000 | acidjnk | (~acidjnk@p200300d6e705866035693c7955124d42.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 2022-08-07 13:09:10 +0000 | <hpc> | or if you want to optimize it, safeFromJust = unsafeCoerce |
| 2022-08-07 13:15:21 +0000 | remedan | (~remedan@octo.cafe) |
| 2022-08-07 13:16:50 +0000 | <rawles> | Imagine I want to write a library that constructs a bitmap graphic in a canvas of 256x256 pixels. In my library, functions flip pixels, draw lines, and so on. But I don't want to carry around tens of thousands of values on the stack each time I change something. What should I be looking into to solve this - should I be learning about mutable data structures, or something else? |
| 2022-08-07 13:16:57 +0000 | <rawles> | (I have a lot of questions) |
| 2022-08-07 13:17:28 +0000 | <geekosaur> | take a look at JuicyPixels, nmuch of that might already be done for you |
| 2022-08-07 13:18:08 +0000 | <rawles> | geekosaur: Thank you |
| 2022-08-07 13:18:50 +0000 | <geekosaur> | also all values in Haskell are on the heap 🙂 |
| 2022-08-07 13:19:08 +0000 | <geekosaur> | there is a pattern match stack, and a C stack for FFI calls |
| 2022-08-07 13:19:32 +0000 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
| 2022-08-07 13:19:48 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 13:20:12 +0000 | <rawles> | Oh I see, that makes sense. |
| 2022-08-07 13:20:45 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 13:20:51 +0000 | <geekosaur> | (the pattern match stack is how things get evaluated, since a 100% lazy language would never do anything. so patterns cause forcing of lazy values) |
| 2022-08-07 13:22:33 +0000 | remedan | (~remedan@octo.cafe) (Read error: Connection reset by peer) |
| 2022-08-07 13:25:26 +0000 | nilradical | (~nilradica@user/naso) (Ping timeout: 240 seconds) |
| 2022-08-07 13:26:42 +0000 | remedan | (~remedan@octo.cafe) |
| 2022-08-07 13:26:51 +0000 | remedan | (~remedan@octo.cafe) (Read error: Connection reset by peer) |
| 2022-08-07 13:27:57 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 244 seconds) |
| 2022-08-07 13:28:16 +0000 | kilolympus | (~kilolympu@90.206.106.191) |
| 2022-08-07 13:30:41 +0000 | mxs | (~mxs@user/mxs) (Ping timeout: 255 seconds) |
| 2022-08-07 13:31:01 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 13:31:05 +0000 | remedan | (~remedan@octo.cafe) |
| 2022-08-07 13:34:37 +0000 | zxx7529 | (~Thunderbi@user/zxx7529) (Ping timeout: 245 seconds) |
| 2022-08-07 13:35:21 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
| 2022-08-07 13:35:48 +0000 | remedan | (~remedan@octo.cafe) (Remote host closed the connection) |
| 2022-08-07 13:35:56 +0000 | maroloccio | (~marolocci@62.98.94.196) (Quit: WeeChat 3.0) |
| 2022-08-07 13:36:36 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 13:36:47 +0000 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) (Quit: Leaving) |
| 2022-08-07 13:37:20 +0000 | <yin> | is Stack still relevant? |
| 2022-08-07 13:38:01 +0000 | <yin> | or has cabal caught up and made it obsolete? |
| 2022-08-07 13:38:29 +0000 | <geekosaur> | there are still a few things stack does better, notably documentation |
| 2022-08-07 13:38:53 +0000 | <geekosaur> | also some people prefer the resolver-based setup to cabal's more floating arrangement |
| 2022-08-07 13:39:12 +0000 | <hpc> | ghcup solves what i expect most people use the resolver for |
| 2022-08-07 13:39:15 +0000 | <geekosaur> | (although you can now simulate a resolver with a cabal.freeze file, but it's only a simulation) |
| 2022-08-07 13:39:33 +0000 | <hpc> | (installing ghc/cabal in the first place, rather than trying to precisely control package versions) |
| 2022-08-07 13:40:46 +0000 | <hpc> | can't you also download a cabal.freeze file that corresponds to a resolver? |
| 2022-08-07 13:41:55 +0000 | <geekosaur> | yes |
| 2022-08-07 13:42:18 +0000 | <geekosaur> | the upcoming 3.8 release even includes a way to have cabal download it for you |
| 2022-08-07 13:43:55 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 268 seconds) |
| 2022-08-07 13:44:36 +0000 | <geekosaur> | in any case, stack still has something like 50% of the "market",m such as it is, and up to 80% in industry; it's not going away any time soon |
| 2022-08-07 13:45:31 +0000 | <geekosaur> | I think most people in here prefer cabal, though, so it'll be easier to get help for it |
| 2022-08-07 13:48:17 +0000 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 2022-08-07 13:48:18 +0000 | <hpc> | at the very least, cabal is more "fundamental", so even if you're using stack you have to understand cabal anyway |
| 2022-08-07 13:48:38 +0000 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
| 2022-08-07 13:49:08 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2022-08-07 13:50:04 +0000 | BanUtama | (~blake.rai@user/BanUtama) |
| 2022-08-07 13:51:57 +0000 | zebrag | (~chris@user/zebrag) |
| 2022-08-07 13:51:59 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 13:53:26 +0000 | [Leary] | (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) (Ping timeout: 240 seconds) |
| 2022-08-07 13:54:10 +0000 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
| 2022-08-07 13:56:11 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 13:58:54 +0000 | <yin> | yeah i stopped using stack because i didn't really see the benefits |
| 2022-08-07 13:59:15 +0000 | <yin> | since cabal became sane |
| 2022-08-07 14:02:51 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
| 2022-08-07 14:04:17 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 2022-08-07 14:04:54 +0000 | doelie | (~tom@c-73-17-195-134.hsd1.me.comcast.net) |
| 2022-08-07 14:05:02 +0000 | gurkenglas | (~gurkengla@p548ac3ba.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 2022-08-07 14:06:41 +0000 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 2022-08-07 14:06:55 +0000 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
| 2022-08-07 14:07:07 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 14:07:09 +0000 | <doelie> | hi. what's a good place to start reading about dependent types in Haskell? i got a bit confused from just googling. there seems to be a lot of fragmented, outdated information online about how to emulate it and (unfinshed?) attempts to integrate it in ghc |
| 2022-08-07 14:08:11 +0000 | <geekosaur> | the singletons library is how to emulate it. work to integrate it is still ongoing, various pieces have been appearing but it's fragmented and incomplete as yet |
| 2022-08-07 14:08:39 +0000 | zxx7529 | (~Thunderbi@user/zxx7529) |
| 2022-08-07 14:08:43 +0000 | <hippoid> | i'm used to seeing the terms covariant and contravariant in terms of oop, but those terms are used in haskell as well in regards to bifuntors and profunctors. What's the meaning of covariant and contravariant in haskell, where there are no subclasses and superclasses? |
| 2022-08-07 14:09:07 +0000 | <doelie> | geekosaur: thanks |
| 2022-08-07 14:09:22 +0000 | <geekosaur> | https://www.cis.upenn.edu/~sweirich/papers/eisenberg-thesis.pdf is the plan, only partially implemented |
| 2022-08-07 14:09:51 +0000 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 2022-08-07 14:10:45 +0000 | geranim0 | (~geranim0@modemcable062.79-202-24.mc.videotron.ca) |
| 2022-08-07 14:10:49 +0000 | bob | (~geranim0@modemcable062.79-202-24.mc.videotron.ca) |
| 2022-08-07 14:12:44 +0000 | <hpc> | hippoid: they mean sort of the same thing, funny enough |
| 2022-08-07 14:12:49 +0000 | <kaol> | If you squint a bit substituting a type variable with a concrete type is somewhat like subclassing. |
| 2022-08-07 14:13:02 +0000 | <hpc> | in OOP, they have to do with parameterized types, if you have say Foo<T> you can think about the variance of T |
| 2022-08-07 14:13:11 +0000 | remedan | (~remedan@octo.cafe) |
| 2022-08-07 14:13:13 +0000 | <hpc> | in haskell, when you have (a -> b) you can think about the variance of a |
| 2022-08-07 14:13:51 +0000 | <hpc> | there's a page on this somewhere... |
| 2022-08-07 14:15:08 +0000 | <hippoid> | for (a->b), is there an implicit forall a, forall b? |
| 2022-08-07 14:15:19 +0000 | <hpc> | yeah |
| 2022-08-07 14:15:29 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 244 seconds) |
| 2022-08-07 14:16:08 +0000 | <hippoid> | hmm, then a and b can vary universally, so where is the constraint on what concrete type either of them can be? |
| 2022-08-07 14:16:09 +0000 | <hpc> | https://hackage.haskell.org/package/base-4.16.3.0/docs/Data-Functor-Contravariant.html is a bit of a clue |
| 2022-08-07 14:16:17 +0000 | <hpc> | (Functor being covariant) |
| 2022-08-07 14:16:36 +0000 | <hpc> | there's also an implicit (a :: Type) and (b :: Type) |
| 2022-08-07 14:16:51 +0000 | <hpc> | same as when i write Foo<T>, there's quantifiers there that OOP languages have no syntax for |
| 2022-08-07 14:17:41 +0000 | <hpc> | or it sort of does, but it gets weird with subtyping and doesn't look like a simple forall |
| 2022-08-07 14:17:56 +0000 | <hpc> | Foo<T extends SomethingElse>, and such |
| 2022-08-07 14:18:19 +0000 | <hippoid> | huh, i dont get it |
| 2022-08-07 14:19:01 +0000 | <hippoid> | i should start with -- what does covariant mean? |
| 2022-08-07 14:19:08 +0000 | <hpc> | https://www.fpcomplete.com/blog/2016/11/covariance-contravariance/ isn't the page i am thinking of, but it seems to explain everything |
| 2022-08-07 14:19:19 +0000 | <hpc> | except for that MonadIO part at the bottom, that seems like a weird tangent |
| 2022-08-07 14:19:23 +0000 | <hippoid> | hpc: thanks, ill check that out! |
| 2022-08-07 14:25:51 +0000 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
| 2022-08-07 14:26:02 +0000 | <hpc> | the bridge betwen oop variance and fp variance might be, imagine you have some function "B convert(A inputvalue)" |
| 2022-08-07 14:26:20 +0000 | <hpc> | if you can use convert to write Foo<B> convertFoo(Foo<A> inputvalue), it's covariant |
| 2022-08-07 14:26:35 +0000 | <hpc> | if you can use convert to write Foo<A> convertFoo(Foo<B> inputvalue), it's contravariant |
| 2022-08-07 14:27:33 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 14:30:13 +0000 | <hpc> | convert might be a whole bunch of code, or it might just be a type cast |
| 2022-08-07 14:31:51 +0000 | <hpc> | then you can imagine that they way OOP co/contravariance is taught just uses implicit type casts |
| 2022-08-07 14:33:02 +0000 | joo-_ | (~joo-_@fsf/member/joo--) (Ping timeout: 240 seconds) |
| 2022-08-07 14:33:17 +0000 | nilradical | (~nilradica@user/naso) (Ping timeout: 252 seconds) |
| 2022-08-07 14:34:54 +0000 | joo-_ | (~joo-_@80-62-116-136-mobile.dk.customer.tdc.net) |
| 2022-08-07 14:34:54 +0000 | joo-_ | (~joo-_@80-62-116-136-mobile.dk.customer.tdc.net) (Changing host) |
| 2022-08-07 14:34:54 +0000 | joo-_ | (~joo-_@fsf/member/joo--) |
| 2022-08-07 14:36:13 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
| 2022-08-07 14:38:01 +0000 | zxx7529 | (~Thunderbi@user/zxx7529) (Quit: zxx7529) |
| 2022-08-07 14:38:23 +0000 | zxx7529 | (~Thunderbi@user/zxx7529) |
| 2022-08-07 14:43:35 +0000 | zxx7529 | (~Thunderbi@user/zxx7529) (Quit: zxx7529) |
| 2022-08-07 14:46:40 +0000 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: The Lounge - https://thelounge.chat) |
| 2022-08-07 14:47:31 +0000 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
| 2022-08-07 14:53:16 +0000 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: The Lounge - https://thelounge.chat) |
| 2022-08-07 14:53:32 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 14:53:34 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2022-08-07 14:54:28 +0000 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
| 2022-08-07 14:56:04 +0000 | frost | (~frost@user/frost) (Ping timeout: 252 seconds) |
| 2022-08-07 14:57:13 +0000 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 2022-08-07 15:01:29 +0000 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
| 2022-08-07 15:01:46 +0000 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 2022-08-07 15:04:14 +0000 | Vajb | (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer) |
| 2022-08-07 15:04:50 +0000 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
| 2022-08-07 15:05:45 +0000 | dcoutts__ | (~duncan@host86-150-18-57.range86-150.btcentralplus.com) (Remote host closed the connection) |
| 2022-08-07 15:06:07 +0000 | dcoutts__ | (~duncan@host86-150-18-57.range86-150.btcentralplus.com) |
| 2022-08-07 15:06:38 +0000 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
| 2022-08-07 15:07:27 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 15:09:08 +0000 | dcoutts_ | (~duncan@host86-150-18-2.range86-150.btcentralplus.com) |
| 2022-08-07 15:10:38 +0000 | BanUtama | (~blake.rai@user/BanUtama) (Ping timeout: 240 seconds) |
| 2022-08-07 15:11:47 +0000 | dcoutts__ | (~duncan@host86-150-18-57.range86-150.btcentralplus.com) (Ping timeout: 252 seconds) |
| 2022-08-07 15:11:50 +0000 | nilradical | (~nilradica@user/naso) (Ping timeout: 240 seconds) |
| 2022-08-07 15:13:28 +0000 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) |
| 2022-08-07 15:15:17 +0000 | dcoutts | (~duncan@host86-171-59-73.range86-171.btcentralplus.com) |
| 2022-08-07 15:17:09 +0000 | dcoutts__ | (~duncan@host213-122-143-21.range213-122.btcentralplus.com) |
| 2022-08-07 15:17:29 +0000 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: The Lounge - https://thelounge.chat) |
| 2022-08-07 15:17:50 +0000 | dcoutts_ | (~duncan@host86-150-18-2.range86-150.btcentralplus.com) (Ping timeout: 240 seconds) |
| 2022-08-07 15:18:01 +0000 | TonyStone | (~TonyStone@2603-7080-8607-c36a-05bb-8b0e-3f23-c965.res6.spectrum.com) (Ping timeout: 244 seconds) |
| 2022-08-07 15:18:39 +0000 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
| 2022-08-07 15:20:07 +0000 | dcoutts | (~duncan@host86-171-59-73.range86-171.btcentralplus.com) (Ping timeout: 268 seconds) |
| 2022-08-07 15:21:15 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 2022-08-07 15:25:02 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 2022-08-07 15:29:43 +0000 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 2022-08-07 15:30:39 +0000 | TonyStone | (~TonyStone@2603-7080-8607-c36a-2cf3-e44c-3193-429d.res6.spectrum.com) |
| 2022-08-07 15:32:44 +0000 | BanUtama | (~blake.rai@user/BanUtama) |
| 2022-08-07 15:33:49 +0000 | dcoutts | (~duncan@host86-144-78-222.range86-144.btcentralplus.com) |
| 2022-08-07 15:35:22 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 15:35:41 +0000 | dcoutts__ | (~duncan@host213-122-143-21.range213-122.btcentralplus.com) (Ping timeout: 268 seconds) |
| 2022-08-07 15:37:03 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 15:37:09 +0000 | dcoutts_ | (~duncan@host86-144-78-222.range86-144.btcentralplus.com) |
| 2022-08-07 15:39:42 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 2022-08-07 15:39:42 +0000 | dcoutts | (~duncan@host86-144-78-222.range86-144.btcentralplus.com) (Ping timeout: 244 seconds) |
| 2022-08-07 15:42:04 +0000 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
| 2022-08-07 15:42:15 +0000 | [Leary] | (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) |
| 2022-08-07 15:42:21 +0000 | nilradical | (~nilradica@user/naso) |
| 2022-08-07 15:42:38 +0000 | nilradical | (~nilradica@user/naso) (Client Quit) |
| 2022-08-07 15:42:50 +0000 | causal | (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) |
| 2022-08-07 15:43:35 +0000 | titibandit | (~titibandi@xdsl-212-8-147-38.nc.de) |
| 2022-08-07 15:43:36 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 15:49:26 +0000 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
| 2022-08-07 15:50:24 +0000 | dcoutts | (~duncan@host86-149-51-51.range86-149.btcentralplus.com) |
| 2022-08-07 15:50:29 +0000 | emad | (~emad@102.40.214.221) |
| 2022-08-07 15:51:35 +0000 | dcoutts_ | (~duncan@host86-144-78-222.range86-144.btcentralplus.com) (Ping timeout: 244 seconds) |
| 2022-08-07 15:52:22 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 15:53:18 +0000 | cheater | (~Username@user/cheater) |
| 2022-08-07 16:00:10 +0000 | mimi1vx[m] | (~osukupmat@2001:470:69fc:105::2:418d) (Quit: You have been kicked for being idle) |
| 2022-08-07 16:00:48 +0000 | acidjnk | (~acidjnk@p200300d6e705866035693c7955124d42.dip0.t-ipconnect.de) |
| 2022-08-07 16:02:53 +0000 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) (Quit: Leaving) |
| 2022-08-07 16:11:27 +0000 | noteness | (~noteness@user/noteness) (Remote host closed the connection) |
| 2022-08-07 16:12:16 +0000 | noteness | (~noteness@user/noteness) |
| 2022-08-07 16:13:59 +0000 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 2022-08-07 16:14:09 +0000 | coco | (~coco@212-51-146-199.fiber7.init7.net) |
| 2022-08-07 16:15:11 +0000 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 2022-08-07 16:15:11 +0000 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 2022-08-07 16:15:11 +0000 | wroathe | (~wroathe@user/wroathe) |
| 2022-08-07 16:15:29 +0000 | alp_ | (~alp@user/alp) |
| 2022-08-07 16:19:08 +0000 | eldritch_cookie | (~eldritch@2804:7f4:8280:8d2f:870a:e15e:a75:13c7) |
| 2022-08-07 16:21:32 +0000 | lbseale | (~quassel@user/ep1ctetus) |
| 2022-08-07 16:27:12 +0000 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 2022-08-07 16:27:42 +0000 | Guest26 | (~Guest26@node-b8g.pool-180-180.dynamic.totinternet.net) |
| 2022-08-07 16:28:37 +0000 | Guest26 | sdev |
| 2022-08-07 16:33:23 +0000 | sdev | (~Guest26@node-b8g.pool-180-180.dynamic.totinternet.net) (Quit: Client closed) |
| 2022-08-07 16:37:57 +0000 | BanUtama | (~blake.rai@user/BanUtama) (Ping timeout: 252 seconds) |
| 2022-08-07 16:41:03 +0000 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
| 2022-08-07 16:41:52 +0000 | <albet70> | return is const in Reader? |
| 2022-08-07 16:44:29 +0000 | <c_wraith> | technically... no. It has a newtype wrapper thrown in somewhere along the line in Reader. |
| 2022-08-07 16:45:01 +0000 | <c_wraith> | But if you ignore that, like... |
| 2022-08-07 16:45:05 +0000 | <c_wraith> | @unmtl Reader r a |
| 2022-08-07 16:45:05 +0000 | <lambdabot> | r -> a |
| 2022-08-07 16:45:10 +0000 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
| 2022-08-07 16:45:15 +0000 | <albet70> | ignore the type constructor |
| 2022-08-07 16:45:24 +0000 | <c_wraith> | what else could it do? |
| 2022-08-07 16:45:45 +0000 | <c_wraith> | like, there's only one useful implementation of a -> (r -> a) |
| 2022-08-07 16:47:13 +0000 | lbseale | (~quassel@user/ep1ctetus) (Ping timeout: 268 seconds) |
| 2022-08-07 16:50:37 +0000 | <albet70> | return_func = \x -> \_ -> x; return_cont = \a -> \k -> k a |
| 2022-08-07 16:50:55 +0000 | <johnw> | yes, it's const, modulo type wrappers |
| 2022-08-07 16:51:28 +0000 | BanUtama | (~blake.rai@user/BanUtama) |
| 2022-08-07 16:51:29 +0000 | <albet70> | S is ap, K is const, I is id, is that something? |
| 2022-08-07 16:54:56 +0000 | jmdaemon | (~jmdaemon@user/jmdaemon) |
| 2022-08-07 16:58:59 +0000 | lbseale | (~quassel@user/ep1ctetus) |
| 2022-08-07 16:59:39 +0000 | mxs | (~mxs@user/mxs) |
| 2022-08-07 17:00:01 +0000 | Tuplanolla | (~Tuplanoll@91-159-69-231.elisa-laajakaista.fi) (Ping timeout: 268 seconds) |
| 2022-08-07 17:02:00 +0000 | <albet70> | @djinn (((a->b) -> r) -> r) -> ((a->r)->r) -> (b->r) -> r |
| 2022-08-07 17:02:00 +0000 | <lambdabot> | f a b c = b (\ d -> a (\ e -> c (e d))) |
| 2022-08-07 17:02:07 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 2022-08-07 17:03:01 +0000 | econo | (uid147250@user/econo) |
| 2022-08-07 17:03:37 +0000 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection) |
| 2022-08-07 17:04:50 +0000 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) |
| 2022-08-07 17:06:34 +0000 | cheater | (~Username@user/cheater) (Quit: (BitchX) Chester Cheeta uses BitchX. Ayeuhayueuhayueuh!) |
| 2022-08-07 17:10:01 +0000 | justsomeguy | (~justsomeg@user/justsomeguy) |
| 2022-08-07 17:10:10 +0000 | <albet70> | which case would use this function? too weird |
| 2022-08-07 17:10:49 +0000 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 2022-08-07 17:11:16 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 17:11:37 +0000 | emad | (~emad@102.40.214.221) (Quit: Leaving) |
| 2022-08-07 17:13:51 +0000 | Tuplanolla | (~Tuplanoll@91-159-68-188.elisa-laajakaista.fi) |
| 2022-08-07 17:15:12 +0000 | <monochrom> | None. You can stop now. |
| 2022-08-07 17:18:53 +0000 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 2022-08-07 17:26:31 +0000 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) |
| 2022-08-07 17:27:47 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 2022-08-07 17:29:44 +0000 | jakalx | (~jakalx@base.jakalx.net) |
| 2022-08-07 17:30:21 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 17:31:08 +0000 | AlexNoo_ | (~AlexNoo@178.34.151.166) |
| 2022-08-07 17:32:46 +0000 | <johnw> | albet70: isn't that just liftA2 ($) in Cont r? |
| 2022-08-07 17:33:41 +0000 | <tomsmeding> | it's the _type_ of that, in any case |
| 2022-08-07 17:33:45 +0000 | <monochrom> | A shorter name is <*> :) |
| 2022-08-07 17:33:47 +0000 | AlexZenon | (~alzenon@94.233.241.233) (Ping timeout: 245 seconds) |
| 2022-08-07 17:33:53 +0000 | <johnw> | ah, yes :) |
| 2022-08-07 17:34:03 +0000 | Alex_test | (~al_test@94.233.241.233) (Ping timeout: 252 seconds) |
| 2022-08-07 17:34:04 +0000 | <APic> | ☺ |
| 2022-08-07 17:34:16 +0000 | Techcable | (~Techcable@user/Techcable) (Remote host closed the connection) |
| 2022-08-07 17:34:17 +0000 | <johnw> | I love the _accuracy_ in this channel :) |
| 2022-08-07 17:34:33 +0000 | <tomsmeding> | that djinn output is incorrect as an implementation for Cont though |
| 2022-08-07 17:34:41 +0000 | <tomsmeding> | because it evaluates the argument before the function :p |
| 2022-08-07 17:34:42 +0000 | AlexNoo | (~AlexNoo@94.233.241.233) (Ping timeout: 268 seconds) |
| 2022-08-07 17:34:51 +0000 | <monochrom> | I am still ambivalent whether I should teach <*> or liftA2 though, when I teach Applicative. |
| 2022-08-07 17:37:07 +0000 | Techcable | (~Techcable@user/Techcable) |
| 2022-08-07 17:37:30 +0000 | vglfr | (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
| 2022-08-07 17:37:45 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 17:38:13 +0000 | cheater | (~Username@user/cheater) |
| 2022-08-07 17:39:22 +0000 | Alex_test | (~al_test@178.34.151.166) |
| 2022-08-07 17:39:39 +0000 | AlexZenon | (~alzenon@178.34.151.166) |
| 2022-08-07 17:40:29 +0000 | Guest8787 | (~Guest87@105.157.240.67) |
| 2022-08-07 17:40:52 +0000 | Guest8787 | (~Guest87@105.157.240.67) (Client Quit) |
| 2022-08-07 17:42:10 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 244 seconds) |
| 2022-08-07 17:42:24 +0000 | <[exa]> | monochrom: imo <*> in combination with <$> looks way more intuitive, and everyone is kinda able to chew themselves through the types to liftA2 after the intuition is in. |
| 2022-08-07 17:43:02 +0000 | acidjnk | (~acidjnk@p200300d6e705866035693c7955124d42.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 2022-08-07 17:44:43 +0000 | AlexNoo_ | AlexNoo |
| 2022-08-07 17:44:53 +0000 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 255 seconds) |
| 2022-08-07 17:44:54 +0000 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 2022-08-07 17:45:01 +0000 | Vajb | (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) |
| 2022-08-07 17:48:26 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 17:49:18 +0000 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 2022-08-07 17:52:35 +0000 | justsomeguy | (~justsomeg@user/justsomeguy) |
| 2022-08-07 17:53:50 +0000 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 2022-08-07 17:55:52 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 2022-08-07 17:55:59 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 17:59:50 +0000 | BanUtama | (~blake.rai@user/BanUtama) (Ping timeout: 268 seconds) |
| 2022-08-07 18:00:18 +0000 | BanUtama | (~blake.rai@user/BanUtama) |
| 2022-08-07 18:07:57 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds) |
| 2022-08-07 18:08:57 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 2022-08-07 18:09:04 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
| 2022-08-07 18:09:44 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 18:13:27 +0000 | noteness | (~noteness@user/noteness) (Remote host closed the connection) |
| 2022-08-07 18:14:18 +0000 | noteness | (~noteness@user/noteness) |
| 2022-08-07 18:17:34 +0000 | <johnw> | monochrom: didatictally, I think the story from fmap -> liftA2 has some clarity, whereas <*> is better if speaking of practicalities |
| 2022-08-07 18:17:57 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 2022-08-07 18:24:41 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 18:37:32 +0000 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 2022-08-07 18:38:23 +0000 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 2022-08-07 18:38:23 +0000 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 2022-08-07 18:38:23 +0000 | wroathe | (~wroathe@user/wroathe) |
| 2022-08-07 18:38:47 +0000 | codaraxis__ | (~codaraxis@user/codaraxis) (Ping timeout: 245 seconds) |
| 2022-08-07 18:40:12 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 2022-08-07 18:42:18 +0000 | alp_ | (~alp@user/alp) (Ping timeout: 240 seconds) |
| 2022-08-07 18:48:05 +0000 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
| 2022-08-07 18:48:48 +0000 | azimut | (~azimut@gateway/tor-sasl/azimut) |
| 2022-08-07 18:54:50 +0000 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 2022-08-07 18:56:24 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 18:57:12 +0000 | alp_ | (~alp@user/alp) |
| 2022-08-07 18:57:50 +0000 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Read error: Connection reset by peer) |
| 2022-08-07 18:58:06 +0000 | Milan | (~Milan@46.245.124.208) |
| 2022-08-07 18:58:20 +0000 | Milan | (~Milan@46.245.124.208) (Client Quit) |
| 2022-08-07 19:00:56 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 2022-08-07 19:00:58 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
| 2022-08-07 19:02:56 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) |
| 2022-08-07 19:03:31 +0000 | coot_ | (~coot@213.134.176.158) (Ping timeout: 252 seconds) |
| 2022-08-07 19:07:45 +0000 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds) |
| 2022-08-07 19:07:55 +0000 | kilolympus | (~kilolympu@90.206.106.191) (Ping timeout: 252 seconds) |
| 2022-08-07 19:09:31 +0000 | BanUtama | (~blake.rai@user/BanUtama) (Ping timeout: 268 seconds) |
| 2022-08-07 19:11:27 +0000 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 2022-08-07 19:12:36 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 268 seconds) |
| 2022-08-07 19:12:37 +0000 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5) |
| 2022-08-07 19:13:06 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 19:13:07 +0000 | stiell | (~stiell@gateway/tor-sasl/stiell) |
| 2022-08-07 19:14:53 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 19:16:27 +0000 | notzmv | (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
| 2022-08-07 19:17:11 +0000 | BanUtama | (~blake.rai@user/BanUtama) |
| 2022-08-07 19:19:29 +0000 | Sgeo | (~Sgeo@user/sgeo) |
| 2022-08-07 19:21:26 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 240 seconds) |
| 2022-08-07 19:21:30 +0000 | acidjnk | (~acidjnk@p200300d6e70586601410f2009aecb0a6.dip0.t-ipconnect.de) |
| 2022-08-07 19:24:17 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 19:25:59 +0000 | kenran | (~kenran@200116b82b395700fac15ccb28c8605f.dip.versatel-1u1.de) |
| 2022-08-07 19:26:15 +0000 | kenran | (~kenran@200116b82b395700fac15ccb28c8605f.dip.versatel-1u1.de) (Client Quit) |
| 2022-08-07 19:28:04 +0000 | azimut | (~azimut@gateway/tor-sasl/azimut) |
| 2022-08-07 19:28:19 +0000 | jimmy | (~rethinkpa@static-198-54-130-104.cust.tzulo.com) |
| 2022-08-07 19:28:38 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 240 seconds) |
| 2022-08-07 19:31:10 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 2022-08-07 19:31:54 +0000 | <davean> | johnw: I ... yah, I think I'd agree with you. I never actually use liftA2, but its a good way to explain things. |
| 2022-08-07 19:34:31 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 19:38:51 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 2022-08-07 19:40:07 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) |
| 2022-08-07 19:48:59 +0000 | lbseale | (~quassel@user/ep1ctetus) (Ping timeout: 268 seconds) |
| 2022-08-07 19:50:36 +0000 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
| 2022-08-07 19:50:56 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 19:55:23 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 2022-08-07 19:56:57 +0000 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 2022-08-07 19:58:31 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
| 2022-08-07 20:00:35 +0000 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) |
| 2022-08-07 20:00:54 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 20:07:32 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2022-08-07 20:08:28 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 20:11:11 +0000 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 2022-08-07 20:11:43 +0000 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 2022-08-07 20:12:12 +0000 | coot_ | (~coot@213.134.176.158) |
| 2022-08-07 20:17:57 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
| 2022-08-07 20:19:25 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 20:22:04 +0000 | jgeerds | (~jgeerds@55d46bad.access.ecotel.net) |
| 2022-08-07 20:23:35 +0000 | <monochrom> | Currently I teach liftA2, then use liftA2($) to show that it is enough to induce liftAn, then introduce the name <*>. |
| 2022-08-07 20:25:25 +0000 | titibandit | (~titibandi@xdsl-212-8-147-38.nc.de) (Remote host closed the connection) |
| 2022-08-07 20:25:52 +0000 | BanUtama | (~blake.rai@user/BanUtama) (Ping timeout: 245 seconds) |
| 2022-08-07 20:27:41 +0000 | <darkling> | "lift" makes me nervous, probably because every time I've met it so far, it's been used without explanation, and apparently the assumption that I know what it means; I don't. |
| 2022-08-07 20:27:47 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 2022-08-07 20:28:08 +0000 | <geekosaur> | "lift" means too many things and none of them are explained 🙂 |
| 2022-08-07 20:28:23 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) |
| 2022-08-07 20:28:23 +0000 | <c_wraith> | yeah, you can't assume there's any pattern to things named lift. |
| 2022-08-07 20:28:29 +0000 | <c_wraith> | Each one is its own thing |
| 2022-08-07 20:28:45 +0000 | <darkling> | Well, that's a good meta-explanation, at least. :) |
| 2022-08-07 20:29:06 +0000 | noteness | (~noteness@user/noteness) (Remote host closed the connection) |
| 2022-08-07 20:29:07 +0000 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 2022-08-07 20:29:10 +0000 | <monochrom> | I have long learned that names are meaningless. Context and actual usages give the semantics. |
| 2022-08-07 20:29:33 +0000 | <monochrom> | Programmers are the worst offenders in two senses. |
| 2022-08-07 20:29:35 +0000 | noteness | (~noteness@user/noteness) |
| 2022-08-07 20:29:36 +0000 | <c_wraith> | also, types are documentation that *rarely* lies in Haskell |
| 2022-08-07 20:29:50 +0000 | <c_wraith> | get fluent in reading types :) |
| 2022-08-07 20:29:51 +0000 | <monochrom> | For example, consider this name one of them coined: "test pollution". |
| 2022-08-07 20:29:57 +0000 | <int-e> | It's simple: lift is a next-level operation. |
| 2022-08-07 20:30:14 +0000 | <Rembane> | Do you even <*>? |
| 2022-08-07 20:30:23 +0000 | <monochrom> | IMO more people should learn Chess. |
| 2022-08-07 20:30:25 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 2022-08-07 20:30:37 +0000 | <c_wraith> | great, now I'm going to read <*> as a guy flexing his lats forever |
| 2022-08-07 20:30:40 +0000 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
| 2022-08-07 20:30:47 +0000 | <monochrom> | Then you will understand that the names "queen", "bishop", "rook", "knight", "pawn" all mean nothing. |
| 2022-08-07 20:30:51 +0000 | <int-e> | `ap` forever |
| 2022-08-07 20:31:06 +0000 | <darkling> | Yeah, the CS environment is absolutely dreadful for pinching otherwise well-defined terms and redefining them to mean something subly (or totally) different. |
| 2022-08-07 20:31:32 +0000 | <monochrom> | The name "king" marginally mean a tiny little bit of something, insofar as it means the one piece you can't sacrifice. |
| 2022-08-07 20:31:33 +0000 | <Rembane> | c_wraith: You're welcome! :D |
| 2022-08-07 20:31:50 +0000 | <darkling> | My last job title was "ontologist". Just don't tell the philosophers. |
| 2022-08-07 20:32:02 +0000 | <monochrom> | And if that is not enough, consider the "cannon" piece in Chinese Chess. |
| 2022-08-07 20:32:19 +0000 | <c_wraith> | Everyone knows knights are famous for their leaping abilitiesa |
| 2022-08-07 20:32:46 +0000 | <monochrom> | It's a cute little marvel. It can move like a rook, but not capture like a rook. To capture, you must have exactly one obstacle in the line of sight. |
| 2022-08-07 20:33:05 +0000 | <darkling> | Yeah, the cannon's great. |
| 2022-08-07 20:33:12 +0000 | <monochrom> | Oh and everyone knows stone towers are famous for their mobility? |
| 2022-08-07 20:33:29 +0000 | <c_wraith> | yes. but only in cardinal directions |
| 2022-08-07 20:33:35 +0000 | Rembane | knows this |
| 2022-08-07 20:33:37 +0000 | <monochrom> | And queens are famous for walking faster than kings? |
| 2022-08-07 20:33:48 +0000 | <Rembane> | And being absolutely fierce |
| 2022-08-07 20:34:02 +0000 | <absentia> | the "bishop" visited my local church the other day |
| 2022-08-07 20:34:05 +0000 | <absentia> | he was a fuckin impostor |
| 2022-08-07 20:34:07 +0000 | <int-e> | c_wraith: ...what do you make of bishops avoiding cardinal directions... |
| 2022-08-07 20:34:08 +0000 | <absentia> | never once moved diagonally |
| 2022-08-07 20:34:16 +0000 | <monochrom> | And pawns are famous for becoming additional royal consorts when hitting the enemy baseline? |
| 2022-08-07 20:34:23 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 2022-08-07 20:34:29 +0000 | <absentia> | http://bash.org/?261501 |
| 2022-08-07 20:34:30 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 20:34:33 +0000 | <c_wraith> | int-e: I only know it to be true. I cannot comprehend their ways. |
| 2022-08-07 20:34:45 +0000 | <int-e> | There's more I'd like to add but first I have something to check, mate. |
| 2022-08-07 20:34:51 +0000 | michalz | (~michalz@185.246.204.87) |
| 2022-08-07 20:35:13 +0000 | <int-e> | c_wraith: They stay true to their colors at least |
| 2022-08-07 20:35:14 +0000 | <darkling> | It becomes easier if you generalise to fairy chess, and then look at the traditional set as a selected subset. :) |
| 2022-08-07 20:35:47 +0000 | <darkling> | Alternatively, this: https://en.wikipedia.org/wiki/Gess |
| 2022-08-07 20:35:58 +0000 | <darkling> | (I've got the original paper for that one. :) ) |
| 2022-08-07 20:36:34 +0000 | <monochrom> | After Chess and Chinese Chess and a few more kinds of games, you learn that "lift" has as much meaning as names in Chess. |
| 2022-08-07 20:37:01 +0000 | <monochrom> | You just go "yeah whatever, just tell me the actual rules of engagement". |
| 2022-08-07 20:37:53 +0000 | BanUtama | (~blake.rai@user/BanUtama) |
| 2022-08-07 20:38:24 +0000 | <monochrom> | "is this Chess but Transformers?" butterfly man meme |
| 2022-08-07 20:38:49 +0000 | jimmy | (~rethinkpa@static-198-54-130-104.cust.tzulo.com) (Quit: Leaving) |
| 2022-08-07 20:39:52 +0000 | <int-e> | it's funny how fork lifts have nothing to do with dininig etiquette. |
| 2022-08-07 20:40:14 +0000 | <c_wraith> | fork lifts lift the concept of forks to palletes |
| 2022-08-07 20:40:34 +0000 | <darkling> | Isn't that what dining forks do? |
| 2022-08-07 20:40:40 +0000 | <c_wraith> | spelling is hared |
| 2022-08-07 20:40:45 +0000 | <c_wraith> | (case in point...) |
| 2022-08-07 20:40:46 +0000 | <darkling> | Lift the food to the palette. :) |
| 2022-08-07 20:41:20 +0000 | <c_wraith> | I was close. It's pallets. |
| 2022-08-07 20:42:10 +0000 | <monochrom> | I still spell spurrious with a spurious r. :) |
| 2022-08-07 20:42:12 +0000 | darkling | hangs up the homophone. |
| 2022-08-07 20:43:03 +0000 | <Rembane> | So... what's an isophone? |
| 2022-08-07 20:43:24 +0000 | <monochrom> | I name my iPhone "monophone". :) |
| 2022-08-07 20:43:52 +0000 | <Rembane> | ^^ |
| 2022-08-07 20:44:31 +0000 | <monochrom> | Idea for Harry Potter knockoff: Edsger Dijkstra And The Philosopher's Fork :) |
| 2022-08-07 20:44:37 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds) |
| 2022-08-07 20:45:14 +0000 | <Rembane> | I want rap battles between Dijkstra and the rest of the world |
| 2022-08-07 20:45:23 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 2022-08-07 20:45:27 +0000 | <c_wraith> | What's wrong with CS people, always trying to starve philosophers? |
| 2022-08-07 20:46:15 +0000 | <monochrom> | Because the philosophers put us on rail tracks to be hit by a train? |
| 2022-08-07 20:47:24 +0000 | <darkling> | You'd rather leave the Byzantine generals to work out the issues for themselves? |
| 2022-08-07 20:47:51 +0000 | <Rembane> | darkling: As long as they live stream it I'm cool |
| 2022-08-07 20:48:10 +0000 | <monochrom> | hahahaha |
| 2022-08-07 20:49:03 +0000 | <darkling> | I think that's my call for bedtime. G'night, ladles and jellyspoons. o/ |
| 2022-08-07 20:51:02 +0000 | <Rembane> | \o |
| 2022-08-07 20:53:14 +0000 | slack1256 | (~slack1256@181.43.227.178) |
| 2022-08-07 20:55:39 +0000 | <slack1256> | I got a really minor memory leak. Every week this program run it increases its RSS by 20MiB. I can diagnose leaks easily when they are noticiable, but how would you approach this? |
| 2022-08-07 20:57:26 +0000 | <geekosaur> | eventlog and hs-speedscope? |
| 2022-08-07 20:58:05 +0000 | bob | (~geranim0@modemcable062.79-202-24.mc.videotron.ca) (Remote host closed the connection) |
| 2022-08-07 20:58:05 +0000 | geranim0 | (~geranim0@modemcable062.79-202-24.mc.videotron.ca) (Remote host closed the connection) |
| 2022-08-07 20:58:23 +0000 | <sm> | bisect.. remove functionality until it stops., try to narrow it down |
| 2022-08-07 20:59:01 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
| 2022-08-07 20:59:33 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 21:00:52 +0000 | <sm> | ..watch live memory use with +RTS -S, try to identify events that trigger it.. |
| 2022-08-07 21:01:03 +0000 | <slack1256> | sm: The bisect testing takes a lot of time. It does not manifest until the next week... |
| 2022-08-07 21:01:54 +0000 | <sm> | yes that would be slow, unless you can find ways to trigger it faster |
| 2022-08-07 21:01:55 +0000 | <hpc> | that's about 32 bits per second |
| 2022-08-07 21:03:07 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 21:05:31 +0000 | <monochrom> | Take a trip around the solar system at 0.2c speed. Then you can wait less. >:) |
| 2022-08-07 21:06:28 +0000 | <sm> | if you can't go that fast, rent a super fast vps ? :) |
| 2022-08-07 21:06:43 +0000 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 2022-08-07 21:06:53 +0000 | <slack1256> | hpc: Mmm that is true. I remember there was a new feature on a release note that said you could activate the profiling in certain pieces of code. I could wrap the "loop" part of the program and study the retained allocation per loop. |
| 2022-08-07 21:07:19 +0000 | <slack1256> | monochrom: Hey, I would if I could. But Musk & Co are more interested on pump-and-dumping doge ;_; . |
| 2022-08-07 21:11:02 +0000 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:788d:7b3b:7037:afae) (Ping timeout: 240 seconds) |
| 2022-08-07 21:13:31 +0000 | adium | (adium@user/adium) (Quit: Stable ZNC by #bnc4you) |
| 2022-08-07 21:14:25 +0000 | neceve | (~quassel@2.26.93.14) (Ping timeout: 252 seconds) |
| 2022-08-07 21:15:21 +0000 | coco | (~coco@212-51-146-199.fiber7.init7.net) (Quit: WeeChat 3.5) |
| 2022-08-07 21:17:55 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 2022-08-07 21:18:28 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) |
| 2022-08-07 21:19:01 +0000 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 268 seconds) |
| 2022-08-07 21:20:51 +0000 | michalz | (~michalz@185.246.204.87) (Remote host closed the connection) |
| 2022-08-07 21:20:57 +0000 | coot_ | (~coot@213.134.176.158) (Quit: coot_) |
| 2022-08-07 21:26:40 +0000 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 2022-08-07 21:29:30 +0000 | pavonia | (~user@user/siracusa) |
| 2022-08-07 21:35:43 +0000 | <slack1256> | Oh, eventlog2html has the slope of allocation of different cost-centres... interesting. |
| 2022-08-07 21:36:08 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 2022-08-07 21:36:15 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 21:40:01 +0000 | vglfr | (~vglfr@194.9.14.33) |
| 2022-08-07 21:42:38 +0000 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2022-08-07 21:48:25 +0000 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2022-08-07 21:48:29 +0000 | <geekosaur> | 9.4.1 just landed, it seems |
| 2022-08-07 21:49:07 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 2022-08-07 21:49:11 +0000 | gmg | (~user@user/gehmehgeh) |
| 2022-08-07 21:51:27 +0000 | <monochrom> | -fprof-late gives me that AoE4 feeling: Why wasn't it done on day 1? :) |
| 2022-08-07 21:52:50 +0000 | <monochrom> | (AoE4 is a game such that, for example, 1.5 years after initial release, players can finally pick colours.) |
| 2022-08-07 21:54:35 +0000 | Hecate | stoped after AoE II |
| 2022-08-07 21:54:38 +0000 | acidjnk | (~acidjnk@p200300d6e70586601410f2009aecb0a6.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 2022-08-07 22:05:04 +0000 | moonsheep | (~user@user/moonsheep) |
| 2022-08-07 22:05:05 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 22:06:46 +0000 | <moonsheep> | Hi there, I'm having a hard time understanding STM, especially for a single-consumer, multiple-producers problem. |
| 2022-08-07 22:07:02 +0000 | <moonsheep> | Why does STM tell me that a thread is blocked indefinitely in the following snippet? https://paste.tomsmeding.com/bVC8E0Dl |
| 2022-08-07 22:07:32 +0000 | <moonsheep> | Does it not understand that after the threadDelay new data will be written to the queue? |
| 2022-08-07 22:07:39 +0000 | <moonsheep> | Or are you just not supposed to read from empty queues? |
| 2022-08-07 22:07:50 +0000 | <merijn> | moonsheep: Because, eventually all writing threads finish |
| 2022-08-07 22:07:52 +0000 | <c_wraith> | neither |
| 2022-08-07 22:07:56 +0000 | <dolio> | This is all one thread. |
| 2022-08-07 22:08:04 +0000 | <dolio> | Isn't it? |
| 2022-08-07 22:08:06 +0000 | <merijn> | moonsheep: And your loop tries to read from the queue, and blocks |
| 2022-08-07 22:08:11 +0000 | <merijn> | dolio: Note async in the mapM |
| 2022-08-07 22:08:21 +0000 | <dolio> | Oh, okay. |
| 2022-08-07 22:08:22 +0000 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 2022-08-07 22:08:23 +0000 | <merijn> | but the read loop never terminates |
| 2022-08-07 22:08:30 +0000 | <moonsheep> | Yes that is intentional |
| 2022-08-07 22:08:32 +0000 | <c_wraith> | STM reports something is blocked indefinitely on a read when all remaining uses of a particular reference cell are currently blocked on a read |
| 2022-08-07 22:08:33 +0000 | <merijn> | and the write loop does |
| 2022-08-07 22:08:48 +0000 | <merijn> | moonsheep: Yes, but nothing else can ever write when the writers terminate |
| 2022-08-07 22:08:52 +0000 | <c_wraith> | It's tied in with the garbage collector |
| 2022-08-07 22:09:00 +0000 | <merijn> | moonsheep: GHC detects this, and helpfully throws an exception in your blocking thread |
| 2022-08-07 22:09:12 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 2022-08-07 22:09:22 +0000 | <moonsheep> | So here it is pretty clear that the writer will at some point stop writing, but what if I am (in my actual problem) crawling the internet? The writers may never stop for all I know |
| 2022-08-07 22:09:42 +0000 | eldritchcookie | (~eldritch@177.132.37.49) |
| 2022-08-07 22:09:42 +0000 | <moonsheep> | I really *don't* want the reader to ever terminate |
| 2022-08-07 22:09:44 +0000 | eldritch_cookie | (~eldritch@2804:7f4:8280:8d2f:870a:e15e:a75:13c7) (Ping timeout: 268 seconds) |
| 2022-08-07 22:09:44 +0000 | <c_wraith> | if something that isn't blocked on reading still has a reference to the cell, no problem |
| 2022-08-07 22:09:44 +0000 | <merijn> | moonsheep: Sure, but then the exception won't throw either :p |
| 2022-08-07 22:09:53 +0000 | <moonsheep> | Yeah it does |
| 2022-08-07 22:09:56 +0000 | eldritchcookie | (~eldritch@177.132.37.49) (Client Quit) |
| 2022-08-07 22:10:08 +0000 | <c_wraith> | moonsheep: this is very much about *garbage collection* |
| 2022-08-07 22:10:13 +0000 | <merijn> | moonsheep: No, the problem is "no thread (except the blocked one) has a reference to the queue |
| 2022-08-07 22:10:24 +0000 | <merijn> | moonsheep: Therefore, provably, no one can ever write to week up your reader |
| 2022-08-07 22:10:25 +0000 | <c_wraith> | moonsheep: if the cell is *reachable* by a thread that isn't reading from it, no exceptions thrown |
| 2022-08-07 22:10:27 +0000 | <moonsheep> | Hmm that is weird because I'm pretty sure they do |
| 2022-08-07 22:10:41 +0000 | <merijn> | moonsheep: If, another thread is alive and has a reference to your queue THEN this won't happen |
| 2022-08-07 22:10:47 +0000 | <moonsheep> | Wait maybe my example isn't analogous to my actual use case |
| 2022-08-07 22:11:03 +0000 | <c_wraith> | it isn't, because after 10 iterations your thread dies |
| 2022-08-07 22:11:05 +0000 | <merijn> | moonsheep: It is not, since in your usecases the writers (presumably) don't terminate |
| 2022-08-07 22:11:12 +0000 | <c_wraith> | and nothing is left that can write to the queue |
| 2022-08-07 22:11:21 +0000 | <moonsheep> | c_wraith: well yes, but the example isn't my actual use case, that is over 1000 lines long |
| 2022-08-07 22:11:29 +0000 | <monochrom> | Show us a reproducible example where a writer writes infinitely, the reader reads infinitely, and you still receive a "blocked" error? |
| 2022-08-07 22:11:40 +0000 | <monochrom> | I mean at this point all is speculation. |
| 2022-08-07 22:11:42 +0000 | <moonsheep> | Alright I'll try |
| 2022-08-07 22:11:57 +0000 | <moonsheep> | Yeah I was about to say I'll try to come up with a better minimal test case |
| 2022-08-07 22:11:59 +0000 | <c_wraith> | I mean, it's not speculation to explain where that exception actually comes from. :P |
| 2022-08-07 22:12:28 +0000 | <moonsheep> | The problem is that it happens a few minutes into the crawling process so debugging is a nightmare |
| 2022-08-07 22:12:54 +0000 | <c_wraith> | it's quite possible all your threads you expect to be writing to the cell are dying to uncaught exceptions |
| 2022-08-07 22:13:04 +0000 | <sm> | geekosaur: \o/ ! |
| 2022-08-07 22:13:23 +0000 | <moonsheep> | No I'm fairly certain there are no uncaught exceptions, but they're probably dying some way or another |
| 2022-08-07 22:14:09 +0000 | slack1256 | (~slack1256@181.43.227.178) (Remote host closed the connection) |
| 2022-08-07 22:14:19 +0000 | noteness | (~noteness@user/noteness) (Remote host closed the connection) |
| 2022-08-07 22:14:26 +0000 | <c_wraith> | I mean... threads only terminate from finishing or uncaught exceptions... |
| 2022-08-07 22:14:42 +0000 | noteness | (~noteness@user/noteness) |
| 2022-08-07 22:15:18 +0000 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 2022-08-07 22:15:54 +0000 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
| 2022-08-07 22:15:56 +0000 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 2022-08-07 22:16:35 +0000 | syntactic_sugar | (~amoljha@2601:644:9080:77c0::54f1) |
| 2022-08-07 22:17:02 +0000 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds) |
| 2022-08-07 22:17:12 +0000 | <moonsheep> | Oh wait a second, I've just realized I was completely misunderstand what I was doing |
| 2022-08-07 22:17:32 +0000 | <moonsheep> | Turns out I don't have a consumer and multiple-producers, I have multiple consumers which, after consuming, become producers |
| 2022-08-07 22:17:42 +0000 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 2022-08-07 22:17:42 +0000 | allbery_b | (~geekosaur@xmonad/geekosaur) |
| 2022-08-07 22:17:45 +0000 | allbery_b | geekosaur |
| 2022-08-07 22:17:55 +0000 | <moonsheep> | Alright then nevermind my original question, this is a completely different case |
| 2022-08-07 22:17:57 +0000 | <moonsheep> | My bad for not realizing |
| 2022-08-07 22:18:07 +0000 | <c_wraith> | ah. well then yes, if all of them become consumers at the same time... |
| 2022-08-07 22:18:56 +0000 | <moonsheep> | Also they are fed some initial data |
| 2022-08-07 22:19:02 +0000 | <moonsheep> | Here is how the whole thing looks: |
| 2022-08-07 22:19:10 +0000 | <moonsheep> | At first everyone is a consumer, and everyone is fed some initial data |
| 2022-08-07 22:19:26 +0000 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
| 2022-08-07 22:19:37 +0000 | <monochrom> | This is sounding like a bad case of the tragedy of commons :) |
| 2022-08-07 22:19:39 +0000 | <moonsheep> | After someone finishes consuming all that data, they become a producer that gives data to other consumers |
| 2022-08-07 22:19:59 +0000 | <moonsheep> | After that they wait for someone else to become a producer and give them data |
| 2022-08-07 22:20:10 +0000 | <moonsheep> | Alright I need to simplify things |
| 2022-08-07 22:20:15 +0000 | <moonsheep> | This is way too complicated for me to reason about |
| 2022-08-07 22:20:30 +0000 | <monochrom> | Yeah this is known as "economics" no? >:) |
| 2022-08-07 22:21:05 +0000 | <moonsheep> | Well if this is economics my program invests in crypto cause it ain't workin out |
| 2022-08-07 22:21:10 +0000 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 2022-08-07 22:21:18 +0000 | dcoutts | (~duncan@host86-149-51-51.range86-149.btcentralplus.com) (Remote host closed the connection) |
| 2022-08-07 22:21:25 +0000 | <merijn> | moonsheep: What are you trying to do? |
| 2022-08-07 22:21:37 +0000 | dcoutts | (~duncan@host86-149-51-51.range86-149.btcentralplus.com) |
| 2022-08-07 22:21:39 +0000 | <moonsheep> | A concurrent crawler (of something similar to the web) |
| 2022-08-07 22:21:58 +0000 | <moonsheep> | After a page is crawled, all it's links are sent to other consumers who crawl each of them |
| 2022-08-07 22:22:12 +0000 | <moonsheep> | After each of those finish in turn crawling, they send their respective outlinks to other consumerss |
| 2022-08-07 22:22:34 +0000 | <merijn> | I mean, it really sounds like you just want a single queue with multiple readers AND writers |
| 2022-08-07 22:22:39 +0000 | <moonsheep> | Ideally I have as many threads (consumer+producer) as I have hosts, so I can download concurrently from separate hosts, but not from the same one (not to overload it) |
| 2022-08-07 22:22:59 +0000 | <moonsheep> | merijn: but I don't! I want a separate queue for every host |
| 2022-08-07 22:23:13 +0000 | <moonsheep> | So all pages by google.com get processed by thread 1, all by wikipedia.com by thread 2, etc. |
| 2022-08-07 22:23:20 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 22:23:30 +0000 | <moonsheep> | But what if a page in wikipedia.com links to one in google.com? |
| 2022-08-07 22:23:38 +0000 | <moonsheep> | I have to allow it to add it's page to google's queue |
| 2022-08-07 22:24:05 +0000 | <moonsheep> | Hmm, honestly this is startingg to ssound an awful lot like the actor model |
| 2022-08-07 22:24:15 +0000 | <merijn> | ok, so you need a "Map Domain Queue" |
| 2022-08-07 22:24:36 +0000 | <moonsheep> | Yeah I do have literally a type like that |
| 2022-08-07 22:24:46 +0000 | <moonsheep> | So you seem to be following a thought process similar to mine when designing it |
| 2022-08-07 22:24:51 +0000 | <moonsheep> | I can't be that far off from the answer |
| 2022-08-07 22:25:03 +0000 | <moonsheep> | Wait I'll try to design a more minimal example |
| 2022-08-07 22:25:04 +0000 | <monochrom> | This would not cause a block error because GC could not prove that no writer exists. |
| 2022-08-07 22:25:37 +0000 | <moonsheep> | monochrom: empirical evidence suggests the contrary. So either the GC is broken (highly unlikely) or I'm doing something wrong |
| 2022-08-07 22:25:53 +0000 | <merijn> | I'm pretty willing to bet on option 2 :) |
| 2022-08-07 22:26:00 +0000 | <merijn> | Given that I know how the GC does it :p |
| 2022-08-07 22:26:16 +0000 | <moonsheep> | Again this is one of those situations that are a nightmare to debug because it doesn't fail until like 5 minutes into crawling :'( |
| 2022-08-07 22:26:30 +0000 | <moonsheep> | merijn: I don't know how the GC works but I trust it way more than myself, so definitely |
| 2022-08-07 22:27:01 +0000 | ubert | (~Thunderbi@77.119.210.41.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 2022-08-07 22:28:20 +0000 | <moonsheep> | Oh boy, I'm just starting to realize how fundamentally flawed my current design is |
| 2022-08-07 22:28:36 +0000 | <moonsheep> | For one I already noticed a few mistakes in the implementation |
| 2022-08-07 22:28:55 +0000 | <moonsheep> | But also this is a giant mess of spaghetti, I should probably organize it a little before trying to do fancy pants concurrency |
| 2022-08-07 22:29:20 +0000 | <moonsheep> | Anyway, I'll be back in a few hours or weeks, thank you my dearest debugging ducks :) |
| 2022-08-07 22:36:09 +0000 | nate4 | (~nate@98.45.169.16) |
| 2022-08-07 22:40:57 +0000 | nate4 | (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 2022-08-07 22:44:15 +0000 | BanUtama | (~blake.rai@user/BanUtama) (Ping timeout: 252 seconds) |
| 2022-08-07 22:47:44 +0000 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 2022-08-07 22:48:23 +0000 | Achylles | (~Achylles_@2804:431:d725:d87b:def0:5845:5ed6:f001) |
| 2022-08-07 22:56:51 +0000 | BanUtama | (~blake.rai@user/BanUtama) |
| 2022-08-07 22:58:18 +0000 | jgeerds | (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds) |
| 2022-08-07 23:00:59 +0000 | pioneer | (~pioneer@186-241-18-221.user3p.veloxzone.com.br) |
| 2022-08-07 23:01:27 +0000 | pioneer | UnrelatedMicrowa |
| 2022-08-07 23:01:36 +0000 | UnrelatedMicrowa | Microwave |
| 2022-08-07 23:06:56 +0000 | BanUtama | (~blake.rai@user/BanUtama) (Ping timeout: 268 seconds) |
| 2022-08-07 23:08:07 +0000 | Achylles | (~Achylles_@2804:431:d725:d87b:def0:5845:5ed6:f001) (Quit: Leaving) |
| 2022-08-07 23:10:34 +0000 | BanUtama | (~blake.rai@user/BanUtama) |
| 2022-08-07 23:10:53 +0000 | haritz | (~hrtz@user/haritz) (Remote host closed the connection) |
| 2022-08-07 23:12:57 +0000 | alp_ | (~alp@user/alp) (Ping timeout: 245 seconds) |
| 2022-08-07 23:16:34 +0000 | matthewmosior | (~matthewmo@173.170.253.91) |
| 2022-08-07 23:18:02 +0000 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 2022-08-07 23:18:44 +0000 | noteness | (~noteness@user/noteness) (Ping timeout: 268 seconds) |
| 2022-08-07 23:18:44 +0000 | califax | (~califax@user/califx) (Ping timeout: 268 seconds) |
| 2022-08-07 23:18:52 +0000 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 2022-08-07 23:18:52 +0000 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 2022-08-07 23:18:52 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Read error: Connection reset by peer) |
| 2022-08-07 23:18:52 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Write error: Connection reset by peer) |
| 2022-08-07 23:18:52 +0000 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2022-08-07 23:18:52 +0000 | stiell | (~stiell@gateway/tor-sasl/stiell) (Read error: Connection reset by peer) |
| 2022-08-07 23:19:03 +0000 | haritz | (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) |
| 2022-08-07 23:19:03 +0000 | haritz | (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host) |
| 2022-08-07 23:19:03 +0000 | haritz | (~hrtz@user/haritz) |
| 2022-08-07 23:19:14 +0000 | chexum | (~quassel@gateway/tor-sasl/chexum) |
| 2022-08-07 23:19:18 +0000 | califax | (~califax@user/califx) |
| 2022-08-07 23:19:24 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
| 2022-08-07 23:19:27 +0000 | stiell | (~stiell@gateway/tor-sasl/stiell) |
| 2022-08-07 23:19:39 +0000 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
| 2022-08-07 23:19:39 +0000 | noteness | (~noteness@user/noteness) |
| 2022-08-07 23:19:55 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
| 2022-08-07 23:29:32 +0000 | gmg | (~user@user/gehmehgeh) |
| 2022-08-07 23:31:04 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
| 2022-08-07 23:32:41 +0000 | jpds | (~jpds@gateway/tor-sasl/jpds) |
| 2022-08-07 23:36:49 +0000 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 2022-08-07 23:40:03 +0000 | mikoto-chan | (~mikoto-ch@164.5.249.78) |
| 2022-08-07 23:40:43 +0000 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
| 2022-08-07 23:45:06 +0000 | adium | (adium@user/adium) |
| 2022-08-07 23:51:59 +0000 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 2022-08-07 23:57:13 +0000 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds) |