Logs on 2022-03-29 (liberachat/#haskell)
| 00:00:18 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 00:00:19 | <geekosaur> | aren't there already languages that work that way? (sather?) |
| 00:00:36 | <abastro[m]> | IIRC yes |
| 00:01:11 | <hpc> | all unit tests are runnable constraints, just not in a language that looks particularly like constraints |
| 00:01:21 | <hpc> | maybe if it was prolog |
| 00:01:24 | <dminuoso> | What does "runnable constraint" even mean? |
| 00:02:46 | <abastro[m]> | Btw this post comes to my mind |
| 00:02:46 | <abastro[m]> | https://hirrolot.github.io/posts/why-static-languages-suffer-from-complexity |
| 00:06:12 | dminuoso | finds the vast majority of blogs to be not readworthy |
| 00:07:13 | <abastro[m]> | Why tho |
| 00:07:27 | <abastro[m]> | It at least reveals various perspectives of ppl |
| 00:07:39 | <dminuoso> | I find that published papers generally have a higher chance to fit in the 4 categories monochrom mentioned. |
| 00:07:45 | <jackdk> | Because someone said "you should blog, it's good for your career", so now everyone blogs, and the signal is lost in the noise |
| 00:07:53 | × | xff0x quits (~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Ping timeout: 260 seconds) |
| 00:08:15 | <geekosaur> | and every wrong opinion out there is now broadcast to everyone |
| 00:08:21 | <hpc> | a person's perspective can be anything |
| 00:08:27 | <monochrom> | Frankly I am not interested in the perspectives of flatearthers and antivaxxers, for example. |
| 00:08:27 | <hpc> | see also: social networks :P |
| 00:08:30 | <dminuoso> | Mostly because people tend to spend a great deal of time on papers, there's usually peer review, there's cited literature, there's a standard format by which I can quickly get a gist of its content by skimming its abstracft and conclusions. |
| 00:08:46 | <monochrom> | Just examples to show that a ton of perspectives are valueless. |
| 00:09:12 | <jackdk> | monochrom: you just need to do the research. Then you'll understand how the lizards living inside the hollow flat earth established their system of control. |
| 00:09:32 | <hpc> | @quote staircase |
| 00:09:32 | <lambdabot> | hpc says: mountains are a lie perpetrated by big staircase |
| 00:09:53 | <jackdk> | That makes my day |
| 00:09:54 | <monochrom> | Human nature being human nature, programmers' blogs are no different. Like I said, failing in well-informed and unbiased, as most humans do. |
| 00:11:18 | <abastro[m]> | Well yep but it is how the world today runs |
| 00:11:31 | <abastro[m]> | Vast majority of ppl do not read papers |
| 00:12:24 | <dminuoso> | The world is run on technology whose foundation is in academia, though. |
| 00:12:57 | × | fendor_ quits (~fendor@77.119.209.169.wireless.dyn.drei.com) (Remote host closed the connection) |
| 00:13:08 | <abastro[m]> | I often hear that academia is too slow, so technology is detached nowadays |
| 00:13:25 | <abastro[m]> | And companies do their own research if needed |
| 00:13:39 | <abastro[m]> | I mean, otherwise I cannot comprehend Go |
| 00:13:40 | → | sayola joins (~vekto@dslb-002-201-085-116.002.201.pools.vodafone-ip.de) |
| 00:13:49 | → | fendor_ joins (~fendor@77.119.209.169.wireless.dyn.drei.com) |
| 00:13:54 | <jackdk> | Go is not a product of research |
| 00:13:55 | <abastro[m]> | The very existence of it |
| 00:14:02 | × | boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Quit: Ping timeout (120 seconds)) |
| 00:14:12 | <monochrom> | Before the web, you could have rightfully bet that if someone bothered to publish a book through a large publisher, then just all the hurdles of the process were enough screening that even if eventually the book proved to be wrong, you would still get some value out of going through the reading and refuting, for example maybe it's only partly wrong or it made some good points. That would be what you call "at least some perspective". |
| 00:14:34 | <abastro[m]> | I mean, what does it indicate if not detachment of industry from research? |
| 00:14:36 | × | paul1 quits (~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8) (Ping timeout: 240 seconds) |
| 00:14:37 | <dminuoso> | Go was designed by Google as a means to hire masses of young developers. So its design was centered around "make this teachable to people out of high school in under three weeks" (a bit of a hyperbole here, but I hope you get the idea) |
| 00:14:40 | <monochrom> | Today, it's so cheap to just shout on the internet, you can't bet like that anymore. |
| 00:14:43 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 00:14:54 | × | sayola1 quits (~vekto@dslb-002-201-085-116.002.201.pools.vodafone-ip.de) (Ping timeout: 272 seconds) |
| 00:14:56 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 00:15:02 | <hpc> | dminuoso: not much hyperbole |
| 00:15:15 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 00:15:32 | <hpc> | i would put maybe a factor of 50% either way on 3 weeks, and that's it |
| 00:15:37 | → | kaskal joins (~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8) |
| 00:15:47 | <dminuoso> | And I dont mean it to critize, Go exceeded that design goal. |
| 00:16:11 | <dminuoso> | Don't let the trolly gopher mascot side track you. :) |
| 00:16:28 | <monochrom> | I thought it was "make the language so easy that people out of high school can write a compiler for it under three weeks" >:) |
| 00:16:30 | <hpc> | in any event, most of what people perceive as corporate "research" is just discovering the right application for the right academic thing |
| 00:16:31 | <abastro[m]> | I wonder there was a branch of PL dedicated for learn-ability |
| 00:16:57 | <hpc> | to use another google example, mapreduce has it right in the name |
| 00:17:06 | <hpc> | they were not even remotely close to doing original research there |
| 00:17:07 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 00:17:15 | <abastro[m]> | Which research is `Go` based on |
| 00:17:28 | <dminuoso> | abastro[m]: companies do their own research not because of speed, but because of financial interests. |
| 00:17:30 | <abastro[m]> | I mean some are from research, yes |
| 00:17:34 | <abastro[m]> | Tho others? |
| 00:17:47 | <dminuoso> | Why publish a result? That would enable competitors to use your findings. |
| 00:18:15 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds) |
| 00:18:19 | <hpc> | everything in go is basically algol, including the concurrency primitives - https://en.wikipedia.org/wiki/ALGOL_68#par:_Parallel_processing |
| 00:18:31 | <dminuoso> | The only way companies can usually fund research is by keeping results under a tight lock, getting patents, and then hoping they get to the goal faster than the competetion. |
| 00:18:44 | → | HotblackDesiato_ joins (~HotblackD@gateway/tor-sasl/hotblackdesiato) |
| 00:18:55 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
| 00:19:15 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds) |
| 00:19:22 | × | HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection) |
| 00:19:26 | <dminuoso> | And usually the private sector has *tons* more money. A lot of research in universities is funded either by the private sector (in which case there's often agreements that keep the resulting master thesis secret), or by research grants, which are extremely limited. |
| 00:19:30 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 00:19:45 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 00:19:48 | <dminuoso> | This applies particularly to high tech |
| 00:19:57 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 00:20:03 | <hpc> | probably the last truly effective bit of "research" to come out of industry was packet switching from bell labs |
| 00:20:09 | × | Trattue quits (~Trattue@152.70.182.158) (Ping timeout: 240 seconds) |
| 00:20:09 | × | feliix42_ quits (~felix@gibbs.uberspace.de) (Ping timeout: 240 seconds) |
| 00:20:09 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 00:20:19 | → | feliix42 joins (~felix@gibbs.uberspace.de) |
| 00:20:34 | <Axman6> | Hmmm, anyone else just have a bunch of messages arrive all at once? |
| 00:20:46 | → | Trattue joins (~Trattue@152.70.182.158) |
| 00:20:53 | <monochrom> | Yeah, blaming academic research to be slow is a mixture of blaming the victim and denying that doing things properly is slow. |
| 00:21:09 | <Axman6> | I have nothing between 15 past and 20 pastm, then about 20 messages all together |
| 00:21:37 | <hpc> | Axman6: just you |
| 00:21:38 | → | img joins (~img@2405:6580:b1c0:2500:7fee:4a8a:9cab:420) |
| 00:21:38 | × | img quits (~img@2405:6580:b1c0:2500:7fee:4a8a:9cab:420) (Changing host) |
| 00:21:38 | → | img joins (~img@user/img) |
| 00:21:44 | <abastro[m]> | I mean see the projection of university going largely out of fashion due to detachment from industry |
| 00:21:44 | <abastro[m]> | Due to fast-moving world |
| 00:21:44 | <abastro[m]> | Wait wha |
| 00:21:44 | <abastro[m]> | Go was (nearly) algol? |
| 00:21:44 | <abastro[m]> | Yea, by research of industry I meant them studying by themselves and not publishing |
| 00:21:44 | <abastro[m]> | Well, it is not blaming |
| 00:21:44 | <abastro[m]> | It is just that university student is taught something increasingly detached |
| 00:21:52 | <hpc> | oh, or maybe not |
| 00:21:53 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds) |
| 00:21:55 | <hpc> | just got a burst myself |
| 00:22:01 | <abastro[m]> | Anyway I am honestly intimidated by Go's rising |
| 00:22:08 | <Axman6> | yeah, abastro[m] flood :P |
| 00:22:09 | <abastro[m]> | Sorry for being on matrix bridge |
| 00:22:26 | <hpc> | maybe one of libera's servers is slow |
| 00:22:33 | <abastro[m]> | I should perhaps get a proper libera client |
| 00:22:37 | <Axman6> | I don't think this is a matrix thing. glguy you know if something's going on with libra's servers? |
| 00:22:53 | → | chenqisu12 joins (~chenqisu1@183.217.200.168) |
| 00:23:12 | <abastro[m]> | I am on matrix posting to this server, which is going through the matrix bridge btw |
| 00:24:38 | <abastro[m]> | Perhaps i am a bit irritated of some ppl I know pushing heavily on Go for its simplicity and "readability" |
| 00:24:54 | <dminuoso> | At the end businesses strive from finding the ideal balancing point between "ship early but potentially broken" and "ship late but potentially stable" in all kinds of technology. |
| 00:24:59 | <abastro[m]> | Tho tbf they are relatively beginner in programming |
| 00:25:04 | <dminuoso> | If you want, you end up spending more and giving the competition more time. |
| 00:25:06 | <dminuoso> | *wait |
| 00:25:40 | × | chenqisu1 quits (~chenqisu1@183.217.200.168) (Ping timeout: 272 seconds) |
| 00:26:01 | <dminuoso> | If you publish products too early, you risk shipping an unviable product. So I guess a lot of the technologies in compsci in the last 20 years are an artifact of businesses looking for their own sweet spot. |
| 00:27:43 | <abastro[m]> | I guess In the end haskell was too restrictive |
| 00:27:49 | <dminuoso> | So yeah, some businesses have an interest in using JavaScript because, from a business perspective, you get masses of low-skilled developers, that can just plug and play half of npm together, and produce something that 80% of the time does its job. |
| 00:28:07 | <dminuoso> | And if that enables you to get more money from investors constantly |
| 00:28:14 | <dminuoso> | Then it's a successful business strategy |
| 00:28:33 | <glguy> | Axman6: it seems like a hub was having network lag for a moment but I show it as recovered now |
| 00:29:44 | <dminuoso> | glguy: By the way, config-schema pull request. Can you weigh in on that? If that has a chance of getting merged, I would start rewriting a bunch of nixos modules against it. :p |
| 00:29:47 | <Axman6> | Cool, just thought I'd point it out in case it was something the champions running the place hadn't seen |
| 00:30:42 | <monochrom> | Yeah I think industry chooses languages by just how many people can apply to their jobs. Not even anything to do with type systems or "paradigms". Recall that, for example, there was a time Java and C++ was more fashionable than Tcl/Tk and Python (which did exist back then). |
| 00:31:26 | <dminuoso> | And availability of existing libraries they can plug in. Every used library is developer time saved. |
| 00:31:36 | <abastro[m]> | So if one is developing language nowadays, I guess it is better to be extremely easy |
| 00:31:41 | <dminuoso> | Which also explains why some of these products have an exploding depedency closure |
| 00:31:48 | <monochrom> | And today Java and C++ are still very important, despite how people pretend to talk only about Python and Javascript. |
| 00:31:51 | <dminuoso> | It's simply an artifact of saving developer time |
| 00:32:17 | <abastro[m]> | I thought ppl only talk about Java |
| 00:32:44 | <hpc> | java has a monopoly by way of android phones |
| 00:32:57 | <hpc> | anything high-performance on a desktop is going to be C++ |
| 00:33:24 | <hpc> | including all those great big javascript interpreters |
| 00:33:39 | <hpc> | most python libraries are thin wrappers for C code |
| 00:33:54 | <dminuoso> | java is also very ubiquitous in corporate software |
| 00:34:41 | <hpc> | php is still everywhere too |
| 00:34:46 | <hpc> | and ruby |
| 00:34:47 | <dminuoso> | It's very hard to find larger companies that dont have either a few or even entire landscapes of Java software |
| 00:35:58 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 00:38:55 | × | lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection) |
| 00:39:08 | → | lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) |
| 00:40:12 | <glguy> | dminuoso: Is that a big improvement over using a customSpec on textSpec? |
| 00:40:21 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 00:41:49 | × | pnotequalnp quits (~kevin@user/pnotequalnp) (Ping timeout: 246 seconds) |
| 00:41:51 | × | dpratt quits (sid193493@2a03:5180:f:1::2:f3d5) (Ping timeout: 250 seconds) |
| 00:41:51 | × | hook54321 quits (sid149355@user/hook54321) (Ping timeout: 250 seconds) |
| 00:41:51 | × | ysh quits (sid6017@id-6017.ilkley.irccloud.com) (Ping timeout: 250 seconds) |
| 00:41:51 | × | megeve quits (sid523379@id-523379.hampstead.irccloud.com) (Ping timeout: 250 seconds) |
| 00:42:14 | <glguy> | dminuoso: like the hastily written: let textLiteral x = customSpec ("\"" <> x <> "\" literal") textSpec (\y -> if y == x then Right () else Left ("expected \"" <> x <> "\"")) |
| 00:43:05 | → | xff0x joins (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) |
| 00:43:34 | → | megeve joins (sid523379@id-523379.hampstead.irccloud.com) |
| 00:43:36 | → | ysh joins (sid6017@id-6017.ilkley.irccloud.com) |
| 00:44:03 | <glguy> | or I wonder if it'd be better to replace AtomSpec and TextSpec with a more general ExactSpec that takes an arbitrary Value |
| 00:44:44 | → | hook54321 joins (sid149355@user/hook54321) |
| 00:45:04 | → | dpratt joins (sid193493@id-193493.helmsley.irccloud.com) |
| 00:46:02 | <abastro[m]> | And software will always be unreliable |
| 00:48:23 | <abastro[m]> | I hope ppl would not ditch research because "it is not worth the cost" |
| 00:50:57 | <glguy> | dminuoso: at a minimum I can imagine someone wanting to use specific numbers |
| 00:51:06 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 00:53:39 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
| 00:57:51 | <tapas> | sm: yo how was yesod blocked by base64 btw? |
| 00:58:11 | <tapas> | i'm not seeing the package being used, grepping through the code base. Is yesod migrating to it on some branch? |
| 00:59:28 | <abastro[m]> | (Any suggestion of using haskell in math btw? I am going for math major and it would be great if I could.. use it for sth) |
| 00:59:33 | → | Mags0001 joins (~Mags@host-79-26-197-11.retail.telecomitalia.it) |
| 01:00:47 | ← | Mags0001 parts (~Mags@host-79-26-197-11.retail.telecomitalia.it) () |
| 01:01:02 | × | lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection) |
| 01:01:32 | <tapas> | just do math |
| 01:04:28 | → | lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) |
| 01:05:56 | × | lbseale quits (~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer) |
| 01:06:11 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:2ad9:1465:5fb9:8672) |
| 01:06:14 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 01:06:14 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 01:06:14 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:10:27 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:10:38 | × | dka quits (~code-is-a@ns3059207.ip-193-70-33.eu) (Ping timeout: 272 seconds) |
| 01:12:09 | → | dka joins (~code-is-a@ns3059207.ip-193-70-33.eu) |
| 01:12:17 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds) |
| 01:12:49 | × | Akiva quits (~Akiva@user/Akiva) (Quit: WeeChat 3.4) |
| 01:13:15 | → | boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
| 01:14:41 | → | geoduck joins (~X@71.182.184.253) |
| 01:15:07 | × | lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection) |
| 01:15:32 | <abastro[m]> | Welp okay.. |
| 01:16:33 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:17:18 | × | sprout quits (~quassel@2a02:a467:ccd6:1:950:287b:c4be:ac00) (Ping timeout: 260 seconds) |
| 01:21:28 | → | neurocyte1 joins (~neurocyte@IP-094016066081.dynamic.medianet-world.de) |
| 01:21:29 | × | neurocyte1 quits (~neurocyte@IP-094016066081.dynamic.medianet-world.de) (Changing host) |
| 01:21:29 | → | neurocyte1 joins (~neurocyte@user/neurocyte) |
| 01:23:50 | × | neurocyte quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
| 01:23:50 | neurocyte1 | is now known as neurocyte |
| 01:26:01 | → | Inst joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) |
| 01:27:31 | → | ddb joins (~ddb@2607:5300:203:9993::196) |
| 01:28:43 | <sm> | tapas that's a good question. It allowed stack install yesod to work here, but I saw the stackage folks didn't need it. Maybe somebody did a bounds revision, or I messed up somehow. |
| 01:29:42 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:2ad9:1465:5fb9:8672) (Ping timeout: 260 seconds) |
| 01:30:31 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:203:625:d7c4:9b0) |
| 01:30:55 | <sm> | I assumed it just facilitated a viable install plan for yesod, rather than being used by yesod |
| 01:31:27 | → | vglfr joins (~vglfr@88.155.45.251) |
| 01:35:58 | × | nosewings quits (~ngpc@2603-8081-3e05-e2d0-e11f-0c89-4074-605e.res6.spectrum.com) (Remote host closed the connection) |
| 01:40:16 | × | mixfix41 quits (~homefame@user/mixfix41) (Ping timeout: 246 seconds) |
| 01:40:45 | → | paraseba joins (~paraseba@187.10.123.216) |
| 01:40:59 | → | lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) |
| 01:45:18 | → | mixfix41 joins (~homefame@user/mixfix41) |
| 01:45:55 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 01:47:07 | <paraseba> | How would one write isSorted using lens? It would have to zip together contiguous elements of a Fold I suppose? |
| 01:48:18 | → | srk- joins (~sorki@user/srk) |
| 01:48:53 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection) |
| 01:49:27 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 01:49:39 | × | srk quits (~sorki@user/srk) (Ping timeout: 250 seconds) |
| 01:50:08 | <janus> | sm: it was enabled a couple of days ago: https://github.com/commercialhaskell/stackage/commit/74cfdcf03f96459a396f1b9b6f307b57069ea69b#diff-9949098b9af80e5fcef9a718fdda416f3fa8272ca8add4d67ae65fe892990939R5245 |
| 01:51:02 | srk- | is now known as srk |
| 01:51:57 | → | dcoutts__ joins (~duncan@host86-151-9-10.range86-151.btcentralplus.com) |
| 01:54:25 | × | dcoutts_ quits (~duncan@host86-151-44-233.range86-151.btcentralplus.com) (Ping timeout: 250 seconds) |
| 01:56:57 | → | pnotequalnp joins (~kevin@user/pnotequalnp) |
| 01:59:17 | × | vglfr quits (~vglfr@88.155.45.251) (Ping timeout: 260 seconds) |
| 02:02:25 | → | lispy joins (~lispy@82.212.115.165) |
| 02:08:22 | × | lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection) |
| 02:08:27 | × | justOkay quits (~justache@user/justache) (Quit: The Lounge - https://thelounge.chat) |
| 02:13:03 | → | justOkay joins (~justache@user/justache) |
| 02:17:07 | <Zemyla> | :t \g s -> foldrOf g (\a r -> maybe (r (Just a)) (\b -> a >= b && r (Just a))) (const True) s Nothing -- paraseba |
| 02:17:08 | <lambdabot> | Ord a => Getting (Endo (Maybe a -> Bool)) s a -> s -> Bool |
| 02:21:05 | <paraseba> | huh, that's a mouthful... interesting. Thank you! |
| 02:27:38 | <abastro[m]> | Very interesting code |
| 02:27:41 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 02:28:07 | <abastro[m]> | Continuation style, right? |
| 02:29:57 | <Zemyla> | Yep. I'm pretty sure there's a way to do it with less code. |
| 02:30:52 | <abastro[m]> | I wonder if continuation monad could be actually more manageable |
| 02:32:02 | <Zemyla> | Also, I spent all day getting excited that Mealy machines were Traversing Profunctors. |
| 02:32:39 | <abastro[m]> | ?!?! |
| 02:33:38 | <Zemyla> | newtype Mealy a b = Mealy { runMealy :: a -> (b, Mealy a b) } |
| 02:34:35 | <Zemyla> | It's a Profunctor and an Arrow, and it turns out it'd a Traversing as well. |
| 02:35:25 | <Zemyla> | class Traversing p where traverse' :: Traversable t => p a b -> p (t a) (t b) |
| 02:36:42 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 02:36:50 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:39:46 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:39:46 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:39:46 | finn_elija | is now known as FinnElija |
| 02:39:55 | <abastro[m]> | Woah |
| 02:40:07 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 02:40:13 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
| 02:40:15 | <jle`> | nice |
| 02:40:56 | <abastro[m]> | <del>`(b, Mealy a b)` requires applying `b -> c` to both side of the tuple tho</del> |
| 02:42:08 | × | boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Quit: Connection closed) |
| 02:42:27 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 02:42:28 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 02:43:29 | <abastro[m]> | What is the easy way to apply `f : a -> b` to `(a, a)` so I obtain `(b, b)`? |
| 02:43:37 | × | terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
| 02:43:52 | <c_wraith> | Zemyla: if I remember your definition correctly, anything with the two type arguments on the opposite side of the same -> type constructor is Traversing |
| 02:43:52 | <Axman6> | @hoogle (a -> b) -> (a,a) -> (b,b) |
| 02:43:52 | <lambdabot> | Data.Tuple.Extra both :: (a -> b) -> (a, a) -> (b, b) |
| 02:43:53 | <lambdabot> | Extra both :: (a -> b) -> (a, a) -> (b, b) |
| 02:43:53 | <lambdabot> | Text.Ginger.GVal pairwise :: (a -> b) -> (a, a) -> (b, b) |
| 02:44:01 | <c_wraith> | :t join bimap |
| 02:44:02 | <lambdabot> | Bifunctor p => (c -> d) -> p c c -> p d d |
| 02:44:51 | → | terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1) |
| 02:45:38 | <abastro[m]> | Oh now `join bimap`, that is better |
| 02:45:39 | <Axman6> | abastro[m]: re: your earlier question, what sort of maths? |
| 02:46:02 | <abastro[m]> | Think I am going for algebra |
| 02:46:11 | <Axman6> | :t join `asAppliedTo` bimap |
| 02:46:12 | <lambdabot> | Bifunctor p => ((c -> d) -> (c -> d) -> p c c -> p d d) -> (c -> d) -> p c c -> p d d |
| 02:47:49 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 02:48:08 | <abastro[m]> | I mean, I am currently pursuing academic (traditional) mathematics |
| 02:48:18 | <Axman6> | I don't know of anything specifically aimed at algebra, but there is a lot of mathc related haskell stuff, given how mathy everything tends to be. |
| 02:48:27 | <Axman6> | there's some nice number theory stuff IIRC |
| 02:48:46 | <abastro[m]> | Well true, but in math we also use lots of set theory rather than type theory |
| 02:49:52 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 02:50:14 | <abastro[m]> | I am curious about the number theory stuffs! |
| 02:50:26 | <abastro[m]> | How is haskell involved there? |
| 02:51:16 | <Axman6> | I haven't used it much but arithmoi has... things that are useful for... stuff. I remember there being alot of functions for number theoretic stuff |
| 02:51:21 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 02:51:38 | <Axman6> | most of my number theory stuff has been crypto related and cryptonite had everything I needed in it |
| 02:51:46 | <abastro[m]> | Hmm |
| 02:55:17 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 02:56:13 | <abastro[m]> | arithmoi? |
| 02:56:25 | <Axman6> | @hackage arithmoi |
| 02:56:25 | <lambdabot> | https://hackage.haskell.org/package/arithmoi |
| 02:58:47 | → | rekahsoft joins (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) |
| 02:59:52 | → | lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) |
| 03:01:00 | <byorgey> | abastro[m]: in math we SAY that we use lots of set theory, but math as it is actually practiced is really something more like type theory. |
| 03:01:26 | <byorgey> | no one actually encodes everything as sets or even thinks about things that way. |
| 03:02:29 | <abastro[m]> | Thanks, Axman6! |
| 03:02:34 | → | vglfr joins (~vglfr@88.155.45.251) |
| 03:02:57 | <Axman6> | Don't thank me, thank \x -> "https://hackage.haskell.org/package/" ++ x |
| 03:02:57 | <Axman6> | :P |
| 03:03:06 | <abastro[m]> | Hahaha |
| 03:03:49 | <abastro[m]> | byorgey, well mathematicians do practice alike type theory, but IIRC many stuffs actually benefit from flexibility set theory offers. |
| 03:03:54 | <Axman6> | @hackage abastro[m] |
| 03:03:54 | <lambdabot> | https://hackage.haskell.org/package/abastro[m] |
| 03:04:02 | <abastro[m]> | And subset being one huge factor |
| 03:04:47 | <abastro[m]> | Actually Quotient is bigger one but anyway |
| 03:05:11 | <Axman6> | subsets are just type classes, change my mind |
| 03:05:57 | → | Buggys joins (~Buggys@185.149.90.52) |
| 03:07:04 | <abastro[m]> | Well then how do you deal with unions of subsets |
| 03:07:17 | <Axman6> | more type classes |
| 03:07:17 | <Axman6> | :P |
| 03:09:38 | <abastro[m]> | XD |
| 03:13:22 | <abastro[m]> | Type theory fluent on quotients when |
| 03:14:03 | × | paraseba quits (~paraseba@187.10.123.216) (Quit: Client closed) |
| 03:14:46 | <monochrom> | One might say, type theory confluent on quotients, haha. |
| 03:15:55 | <abastro[m]> | wha |
| 03:24:13 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 03:29:00 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 03:30:18 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:203:625:d7c4:9b0) (Ping timeout: 260 seconds) |
| 03:30:24 | → | nate1 joins (~nate@98.45.167.61) |
| 03:32:04 | → | nosewings joins (~ngpc@2603-8081-3e05-e2d0-ab92-d9c1-c016-553e.res6.spectrum.com) |
| 03:34:22 | × | Graham31515 quits (~Graham@user/Graham31415) (Read error: Connection reset by peer) |
| 03:34:28 | → | Graham31415 joins (~Graham@user/Graham31415) |
| 03:34:58 | × | nate1 quits (~nate@98.45.167.61) (Ping timeout: 260 seconds) |
| 03:38:55 | × | benin quits (~benin@183.82.24.110) (Ping timeout: 246 seconds) |
| 03:42:40 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 03:45:55 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 03:51:46 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 03:52:00 | → | mbuf joins (~Shakthi@122.173.70.161) |
| 03:53:16 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 03:55:01 | × | vglfr quits (~vglfr@88.155.45.251) (Ping timeout: 246 seconds) |
| 03:55:33 | → | boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
| 03:56:42 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 03:57:42 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 04:00:46 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 04:05:10 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 246 seconds) |
| 04:05:10 | × | zyklotomic quits (~ethan@res380d-128-61-85-52.res.gatech.edu) (Ping timeout: 246 seconds) |
| 04:06:36 | × | mvk quits (~mvk@2607:fea8:5cc3:7e00::7980) (Ping timeout: 245 seconds) |
| 04:07:11 | → | zyklotomic joins (~ethan@res380d-128-61-83-149.res.gatech.edu) |
| 04:22:13 | → | benin joins (~benin@183.82.24.110) |
| 04:23:46 | → | benin5 joins (~benin@183.82.24.110) |
| 04:25:19 | × | zmt00 quits (~zmt00@user/zmt00) (Quit: Leaving) |
| 04:25:20 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 04:26:53 | × | benin quits (~benin@183.82.24.110) (Ping timeout: 260 seconds) |
| 04:26:53 | benin5 | is now known as benin |
| 04:27:57 | → | zmt00 joins (~zmt00@user/zmt00) |
| 04:36:33 | <tapas> | sm: sounds more like this was a stackage issue than a yesod one |
| 04:36:34 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 04:36:50 | <tapas> | more precisely a stackage nightly |
| 04:37:47 | <tapas> | just tryna understand |
| 04:37:52 | → | cdman joins (~dcm@user/dmc/x-4369397) |
| 04:40:10 | → | alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 04:45:35 | × | rekahsoft quits (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds) |
| 04:47:34 | → | bahamas joins (~lucian@86.120.21.179) |
| 04:48:54 | <tapas> | gotta know thy stakeholders y'feel me |
| 04:49:15 | <energizer> | when haskellers talk about 'pretty printing' what are they referring to? |
| 04:50:10 | <Axman6> | formatting some data textually in a way that is nice for humans to read |
| 04:51:21 | × | lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection) |
| 04:51:23 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 04:51:45 | <energizer> | ok |
| 04:52:58 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 04:54:11 | → | dut joins (~dut@user/dut) |
| 04:56:21 | → | Guest2 joins (~Guest2@2405:201:6002:a800:4d6a:452:e4e8:6bd9) |
| 04:56:31 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 04:57:39 | → | lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) |
| 04:57:44 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 05:02:27 | × | bahamas quits (~lucian@86.120.21.179) (Ping timeout: 260 seconds) |
| 05:05:11 | × | Guest2 quits (~Guest2@2405:201:6002:a800:4d6a:452:e4e8:6bd9) (Quit: Client closed) |
| 05:05:56 | <Axman6> | @hoogle Bool -> (a -> a) -> a -> a |
| 05:05:57 | <lambdabot> | Data.Function.Tools applyWhen :: Bool -> (a -> a) -> a -> a |
| 05:05:57 | <lambdabot> | Data.Function.Tools applyUnless :: Bool -> (a -> a) -> a -> a |
| 05:05:57 | <lambdabot> | Util applyWhen :: Bool -> (a -> a) -> a -> a |
| 05:06:14 | <Axman6> | "Util" *glares* |
| 05:11:56 | → | dcoutts_ joins (~duncan@host86-151-9-10.range86-151.btcentralplus.com) |
| 05:14:31 | × | dcoutts__ quits (~duncan@host86-151-9-10.range86-151.btcentralplus.com) (Ping timeout: 260 seconds) |
| 05:16:10 | → | deadmarshal_ joins (~deadmarsh@95.38.119.235) |
| 05:21:17 | → | merijn joins (~merijn@c-001-002-001.client.esciencecenter.eduvpn.nl) |
| 05:25:13 | × | deadmarshal_ quits (~deadmarsh@95.38.119.235) (Ping timeout: 260 seconds) |
| 05:25:27 | → | dcoutts__ joins (~duncan@host86-151-9-10.range86-151.btcentralplus.com) |
| 05:28:59 | × | dcoutts_ quits (~duncan@host86-151-9-10.range86-151.btcentralplus.com) (Ping timeout: 260 seconds) |
| 05:29:53 | × | boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 05:32:47 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 05:34:19 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 05:39:15 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 05:46:43 | → | mncheck joins (~mncheck@193.224.205.254) |
| 05:47:28 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:52:06 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Read error: No route to host) |
| 05:52:16 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:52:18 | → | deadmarshal_ joins (~deadmarsh@95.38.119.235) |
| 05:54:29 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 05:55:33 | × | merijn quits (~merijn@c-001-002-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
| 05:56:59 | × | deadmarshal_ quits (~deadmarsh@95.38.119.235) (Ping timeout: 260 seconds) |
| 05:57:32 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 272 seconds) |
| 06:09:57 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
| 06:11:26 | → | dcoutts_ joins (~duncan@host86-150-41-212.range86-150.btcentralplus.com) |
| 06:11:52 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 06:12:02 | <jackdk> | Axman6: `bool id f` |
| 06:12:29 | <abastro[m]> | `@hoogle bool` |
| 06:12:31 | <abastro[m]> | > @hoogle bool |
| 06:12:32 | <lambdabot> | <hint>:1:1: error: parse error on input ‘@’ |
| 06:12:43 | <jackdk> | > :i bool |
| 06:12:44 | <lambdabot> | <hint>:1:1: error: parse error on input ‘:’ |
| 06:12:48 | <jackdk> | % :i bool |
| 06:12:48 | <yahb> | jackdk: bool :: a -> a -> Bool -> a -- Defined in `Data.Bool' |
| 06:12:51 | <abastro[m]> | Sorry.. |
| 06:12:58 | <abastro[m]> | Data.Bool? |
| 06:13:01 | <jackdk> | we got there in the end |
| 06:13:13 | <abastro[m]> | `base`???? |
| 06:13:41 | <abastro[m]> | And I thought there were no boolean eliminator in base |
| 06:14:15 | × | dcoutts__ quits (~duncan@host86-151-9-10.range86-151.btcentralplus.com) (Ping timeout: 260 seconds) |
| 06:14:33 | <jackdk> | False |
| 06:14:54 | <abastro[m]> | was my entire worldview |
| 06:16:37 | → | sprout joins (~quassel@2a02:a467:ccd6:1:950:287b:c4be:ac00) |
| 06:18:05 | → | acidjnk joins (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) |
| 06:18:59 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 06:23:24 | × | unyu quits (~pyon@user/pyon) (Ping timeout: 240 seconds) |
| 06:24:09 | <Axman6> | \f t -> f |
| 06:24:36 | → | unyu joins (~pyon@user/pyon) |
| 06:26:57 | → | Everything joins (~Everythin@37.115.210.35) |
| 06:28:42 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 06:29:53 | × | bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 06:32:28 | → | dut_ joins (~dut@user/dut) |
| 06:33:22 | → | dut__ joins (~dut@user/dut) |
| 06:36:12 | × | dut quits (~dut@user/dut) (Ping timeout: 260 seconds) |
| 06:37:33 | × | dut_ quits (~dut@user/dut) (Ping timeout: 260 seconds) |
| 06:39:23 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 06:44:07 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds) |
| 06:44:33 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 06:45:09 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 06:46:11 | → | img joins (~img@user/img) |
| 06:47:01 | × | lechner quits (~lechner@debian/lechner) (Ping timeout: 245 seconds) |
| 06:48:50 | × | Sgeo__ quits (~Sgeo@user/sgeo) (Ping timeout: 272 seconds) |
| 06:49:16 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 06:50:12 | → | jonathanx joins (~jonathan@c-5eea3313-74736162.cust.telenor.se) |
| 06:53:12 | × | jonathanx quits (~jonathan@c-5eea3313-74736162.cust.telenor.se) (Read error: Connection reset by peer) |
| 06:53:30 | → | jonathanx joins (~jonathan@94.234.51.19) |
| 06:55:43 | → | michalz joins (~michalz@185.246.204.97) |
| 06:58:14 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:c0ae:bf23:cf6b:67df) |
| 06:59:49 | × | jonathanx quits (~jonathan@94.234.51.19) (Ping timeout: 246 seconds) |
| 07:00:08 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 07:01:06 | → | jonathanx joins (~jonathan@94.234.51.19) |
| 07:04:28 | → | alp joins (~alp@user/alp) |
| 07:08:14 | → | fef joins (~thedawn@user/thedawn) |
| 07:08:40 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 07:15:51 | × | dextaa_ quits (~dextaa@user/dextaa) (Remote host closed the connection) |
| 07:18:27 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 07:20:05 | × | acidjnk quits (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 07:24:35 | → | ccntrq joins (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a) |
| 07:25:48 | → | zeenk joins (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94) |
| 07:26:15 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
| 07:27:07 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 07:27:23 | × | alp quits (~alp@user/alp) (Ping timeout: 252 seconds) |
| 07:28:38 | × | jonathanx quits (~jonathan@94.234.51.19) (Quit: Leaving) |
| 07:29:29 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 07:30:08 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 07:31:49 | → | alp joins (~alp@user/alp) |
| 07:32:05 | → | neurocyte8 joins (~neurocyte@IP-094016066081.dynamic.medianet-world.de) |
| 07:32:06 | × | neurocyte8 quits (~neurocyte@IP-094016066081.dynamic.medianet-world.de) (Changing host) |
| 07:32:06 | → | neurocyte8 joins (~neurocyte@user/neurocyte) |
| 07:32:13 | → | kmein joins (~weechat@user/kmein) |
| 07:33:33 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 07:34:03 | × | neurocyte quits (~neurocyte@user/neurocyte) (Ping timeout: 260 seconds) |
| 07:34:04 | neurocyte8 | is now known as neurocyte |
| 07:34:25 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 07:34:55 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 07:35:12 | → | MajorBiscuit joins (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) |
| 07:35:27 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 07:37:52 | → | cfricke joins (~cfricke@user/cfricke) |
| 07:39:16 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:41:06 | → | deadmarshal_ joins (~deadmarsh@95.38.119.235) |
| 07:44:09 | → | Hemmo joins (~Hemmo@185.112.82.222) |
| 07:45:44 | [_] | is now known as [itchyjunk] |
| 07:46:03 | <Hemmo> | Hello. I have a function I have managed to do with list comprehension and filter, but I would like to implement it with foldl as an exercise, but I am not sure how to go about it. Here's my function with filter; distanceFilter :: (String -> String -> Float) -> Float -> String |
| 07:46:03 | <Hemmo> | -> [String] -> [String] |
| 07:46:03 | <Hemmo> | distanceFilter f d s ss = filter (\x -> f s x <= d) ss |
| 07:46:25 | <Hemmo> | and my attempt so far with foldl; distanceFilter f d s ss = foldl (\x -> f s x) <= d ss |
| 07:46:58 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 07:47:17 | <Hemmo> | The foldl simply throws errors, any pointers toward the right direction are appreciated =) |
| 07:47:46 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 07:48:03 | × | deadmarshal_ quits (~deadmarsh@95.38.119.235) (Ping timeout: 260 seconds) |
| 07:48:22 | <Hemmo> | And oh, here's what it does; given a distance function f, a Float d, a String s and a list of Strings ss, returns all the strings in ss that are at most d distance away from s. |
| 07:48:48 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 07:49:02 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 07:50:02 | <merijn> | Hemmo: You're writing: "(foldl (\x -> f s x)) <= d ss" |
| 07:50:32 | <merijn> | That's trying to compare a function with "d ss" using <= |
| 07:50:48 | <merijn> | Presumably wrong parenthesis? |
| 07:57:23 | × | Hemmo quits (~Hemmo@185.112.82.222) (Ping timeout: 260 seconds) |
| 07:58:26 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 07:59:03 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 08:02:42 | × | Inst quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 260 seconds) |
| 08:03:14 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 08:04:27 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 08:05:05 | <abastro[m]> | Implementing filter with foldl could be a bit complex at least from looks |
| 08:05:17 | <Franciman> | Zemyla: haskell's Cont monad represents delimited continuations |
| 08:05:36 | <abastro[m]> | One thing, `foldl` is just a folder which folds a list. So, you need some way to construct list other than folding |
| 08:06:18 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 08:06:53 | → | Codaraxis joins (~Codaraxis@user/codaraxis) |
| 08:10:27 | × | Codaraxis__ quits (~Codaraxis@user/codaraxis) (Ping timeout: 260 seconds) |
| 08:15:10 | → | kuribas joins (~user@ptr-25vy0i96ymkampl0mim.18120a2.ip6.access.telenet.be) |
| 08:16:41 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 08:17:20 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 08:20:55 | × | cdman quits (~dcm@user/dmc/x-4369397) (Remote host closed the connection) |
| 08:21:18 | → | cdman joins (~dcm@27.2.217.171) |
| 08:21:18 | × | cdman quits (~dcm@27.2.217.171) (Changing host) |
| 08:21:18 | → | cdman joins (~dcm@user/dmc/x-4369397) |
| 08:24:11 | × | chenqisu12 quits (~chenqisu1@183.217.200.168) (Quit: Leaving) |
| 08:24:44 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 08:24:55 | × | alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 08:29:00 | → | Midjak joins (~Midjak@82.66.147.146) |
| 08:31:48 | × | pnotequalnp quits (~kevin@user/pnotequalnp) (Ping timeout: 240 seconds) |
| 08:32:03 | → | alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 08:35:52 | → | gurkenglas joins (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) |
| 08:41:26 | × | ccntrq quits (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a) (Remote host closed the connection) |
| 08:41:43 | → | ccntrq joins (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a) |
| 08:42:24 | → | bahamas joins (~lucian@86.120.77.115) |
| 08:43:20 | → | Hemmo joins (~Hemmo@91.221.67.198) |
| 08:43:51 | × | shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit) |
| 08:45:27 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 08:46:46 | <phma> | I'm using "stack ghci" and I get a long prompt "*Data.GosperBase.Internals Data.GosperBase Data.GosperBase.Internals>". How do I shorten it? And what does the star mean? |
| 08:47:22 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 08:48:57 | <abastro[m]> | Uhm wait, it is listed twice? |
| 08:49:03 | <abastro[m]> | Doesn't look normal to me |
| 08:49:19 | <Hemmo> | abastro[m]: yeah it does seem a bit complex. I had no trouble coming up with a list comprehension and filter to solve it, but there was simply a suggestion by my teacher to solve it with foldl as well |
| 08:49:55 | <abastro[m]> | Hemmo: Yep, would be a great exercise, but would also take quite a bit of effort |
| 08:49:58 | → | acidjnk joins (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) |
| 08:50:08 | <abastro[m]> | Do you know how to construct the list, and how to pattern match on the list? |
| 08:50:46 | <abastro[m]> | If you can write recursive function for `filter`, you are halfway there |
| 08:52:00 | <maerwald> | phma: :set prompt |
| 08:52:22 | <maerwald> | e.g. :set prompt "> " |
| 08:53:00 | <phma> | maerwald: do I have to set prompt every time I run ghci? |
| 08:53:33 | <maerwald> | you can add that line to the file .ghci I think |
| 08:53:57 | <phma> | is .ghci in my home directory or the project directory? |
| 08:54:09 | → | `2jt joins (~jtomas@210.red-88-24-179.staticip.rima-tde.net) |
| 08:54:10 | <Hemmo> | abastro[m]: well yeah I mean I can match it on list comprehension, but not sure if I know how to do it without it |
| 08:54:46 | <Hemmo> | abastro[m]: recursive function for filter as in call filter on each item again or after each item? |
| 08:54:47 | <abastro[m]> | Yep, I propose you to write barebone recursion without using list comprehension |
| 08:55:04 | × | lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection) |
| 08:55:11 | <maerwald> | phma: https://downloads.haskell.org/ghc/8.10.7/docs/html/users_guide/ghci.html?highlight=dot%20file#the-ghci-and-haskeline-files |
| 08:55:30 | <abastro[m]> | I mean, write: |
| 08:55:30 | <abastro[m]> | ```haskell |
| 08:55:30 | <abastro[m]> | filter :: (a -> Bool) -> [a] -> [a] |
| 08:55:30 | <abastro[m]> | ``` |
| 08:55:47 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 08:56:00 | <abastro[m]> | `filter f l = (write your definition here, preferably by pattern matching on l)` |
| 08:56:54 | × | lispy quits (~lispy@82.212.115.165) (Quit: Client closed) |
| 08:58:55 | <Hemmo> | abastro[m]: yeah cheers i'll give it a shot! |
| 08:59:53 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 260 seconds) |
| 09:00:08 | × | pareto-optimal-d quits (~pareto-op@2001:470:69fc:105::1:b61f) (Quit: You have been kicked for being idle) |
| 09:11:42 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 09:11:52 | → | jgeerds joins (~jgeerds@55d4548e.access.ecotel.net) |
| 09:13:18 | × | cdman quits (~dcm@user/dmc/x-4369397) (Ping timeout: 260 seconds) |
| 09:13:36 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 09:14:18 | → | boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
| 09:15:49 | → | cdman joins (~dcm@27.2.217.171) |
| 09:15:49 | × | cdman quits (~dcm@27.2.217.171) (Changing host) |
| 09:15:49 | → | cdman joins (~dcm@user/dmc/x-4369397) |
| 09:21:29 | × | cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving) |
| 09:25:35 | × | tiferrei quits (~tiferrei@user/tiferrei) (Ping timeout: 240 seconds) |
| 09:25:45 | → | tiferrei2000 joins (~tiferrei@user/tiferrei) |
| 09:26:15 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 09:26:24 | → | Major_Biscuit joins (~MajorBisc@c-001-024-026.client.tudelft.eduvpn.nl) |
| 09:26:48 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:27:11 | × | Major_Biscuit quits (~MajorBisc@c-001-024-026.client.tudelft.eduvpn.nl) (Client Quit) |
| 09:27:28 | → | Major_Biscuit joins (~MajorBisc@c-001-024-026.client.tudelft.eduvpn.nl) |
| 09:29:35 | × | MajorBiscuit quits (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) (Ping timeout: 256 seconds) |
| 09:30:33 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 09:32:26 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 09:32:51 | × | xff0x quits (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 245 seconds) |
| 09:37:40 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 09:37:43 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 09:37:57 | → | widelec-BB joins (~widelec@cpe-109-207-144-181.docsis.tczew.net.pl) |
| 09:39:06 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 09:39:07 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 09:41:04 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 09:43:47 | × | cosimone` quits (~user@93-44-187-176.ip98.fastwebnet.it) (Ping timeout: 260 seconds) |
| 09:44:20 | → | cosimone` joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
| 09:44:36 | ← | widelec-BB parts (~widelec@cpe-109-207-144-181.docsis.tczew.net.pl) ( ) |
| 09:48:52 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 09:50:07 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 09:50:35 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 09:52:39 | × | cosimone` quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 260 seconds) |
| 09:56:29 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 09:56:38 | → | nattiestnate joins (~nate@202.138.250.9) |
| 09:57:56 | → | cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
| 09:58:37 | → | Inst joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) |
| 09:58:43 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 09:59:47 | → | lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) |
| 09:59:58 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
| 10:00:27 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 10:01:03 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 10:01:27 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 10:07:25 | → | xff0x joins (~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) |
| 10:07:41 | → | tfeb joins (~tfb@88.98.95.237) |
| 10:08:08 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 10:10:05 | <tomsmeding> | sm: maerwald: http://play-haskell.tomsmeding.com:8123/play |
| 10:11:08 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 10:12:41 | → | __monty__ joins (~toonn@user/toonn) |
| 10:13:23 | <maerwald> | excellent |
| 10:15:08 | × | zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 260 seconds) |
| 10:16:52 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 10:18:16 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 10:18:19 | × | acidjnk quits (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 10:19:19 | × | bahamas quits (~lucian@86.120.77.115) (Ping timeout: 246 seconds) |
| 10:21:48 | → | DNH joins (~DNH@2a02:8108:1100:16d8:61e3:f551:d48e:e2b3) |
| 10:22:16 | × | ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
| 10:24:26 | <carbolymer> | tomsmeding: nice! what was the reason this thing was born? |
| 10:26:28 | <tomsmeding> | https://github.com/haskell-infra/www.haskell.org/issues/185 |
| 10:27:11 | <tomsmeding> | If y'all crash it it's not coming back, just in a simple tmux lol, sorry |
| 10:30:04 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 10:30:11 | <maerwald> | tomsmeding: it's not using bwrap? |
| 10:30:33 | → | Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de) |
| 10:30:51 | <Profpatsch> | I’m looking into profiling a handler of ours a little. |
| 10:31:09 | <Profpatsch> | And a dumb idea before going for a full-blown benchmarking setup wa?: |
| 10:31:35 | <Profpatsch> | Is there a GHC function that I can call on a thunk, which will return the residential memory of that thunk at runtime? |
| 10:31:38 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 10:32:24 | <Profpatsch> | e.g. if I have a json value from a request, can I somehow introspect how much of it is realized into memory at runtime? |
| 10:36:04 | <carbolymer> | Profpatsch: something of that kind: https://stackoverflow.com/questions/3254758/memory-footprint-of-haskell-data-types ? |
| 10:36:28 | <carbolymer> | Profpatsch: https://hackage.haskell.org/package/ghc-datasize-0.1.2/docs/GHC-DataSize.html |
| 10:37:28 | → | ProfSimm joins (~ProfSimm@87.227.196.109) |
| 10:37:28 | <Hemmo> | GHCI gives me an error message: Variable not in scope: |
| 10:37:28 | <Hemmo> | clusters :: (String -> String -> Float) -> t0 -> [String] -> t |
| 10:37:41 | <Hemmo> | but i have defined the function yet it won't work??clusters :: (String -> String -> Float) -> Float -> [String] -> [String] |
| 10:37:41 | <Hemmo> | clusters f d ss = [x | x <- ss, y <- ss, f x y < d] |
| 10:38:07 | <Hecate> | it's trying to look for a variable called cluster with the "wrong" type signature I think |
| 10:38:18 | <Hecate> | (or you've messed something when importing things? idk) |
| 10:38:28 | <Hemmo> | Uhh is it fixable somehow? ;D |
| 10:38:36 | <Hecate> | Hemmo: can you put a minimal repro code on paste.tomsmeding.com/ ? |
| 10:38:53 | <Hemmo> | Yes I can, uno momento |
| 10:39:37 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 10:40:04 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 10:40:23 | <Profpatsch> | carbolymer: hah, thank you |
| 10:40:27 | <Profpatsch> | not sure I could have found that |
| 10:41:13 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 10:41:44 | <Hemmo> | Hecate: Pasted it in there |
| 10:41:59 | <Hecate> | Hemmo: I'm gonna need the link now :) |
| 10:42:16 | <Hemmo> | Hecate: https://paste.tomsmeding.com/pUtz76bH |
| 10:42:17 | <Hemmo> | ;D |
| 10:42:44 | alMalsamo | is now known as lumberjack123 |
| 10:43:38 | <Hecate> | λ❯ clusters distance1 0.3 ["aaabc", "aabdd", "a", "aa", "abdd", "bcbcb", "", "abcdefghij"] |
| 10:43:41 | <Hecate> | ["aaabc","aaabc","aabdd","aabdd","a","a","aa","aa","aa","abdd","abdd","bcbcb","","abcdefghij"] |
| 10:43:44 | <Hecate> | it :: [String] |
| 10:43:51 | <Hecate> | hmm. |
| 10:44:18 | <Hemmo> | It works for you? |
| 10:44:26 | <Hecate> | it does |
| 10:44:30 | <Hecate> | hmm |
| 10:44:31 | <Hemmo> | Yeah curious. Should for me too. |
| 10:44:32 | <Hecate> | what could it be |
| 10:44:41 | <Hemmo> | Let me do the classic thing and restart ghci lol |
| 10:44:45 | <Hecate> | I have a bunch of extensions in my .ghci that could affect the behaviour |
| 10:45:15 | × | califax quits (~califax@user/califx) (Ping timeout: 240 seconds) |
| 10:45:25 | <Hemmo> | Lol. Restarting did the trick. |
| 10:45:31 | <Profpatsch> | carbolymer: do you know the difference between the `closureSize` function and the `recursiveSize` function? |
| 10:45:31 | <Hemmo> | My ghci bugs at times I've noticed |
| 10:45:42 | <Hemmo> | Ty though. |
| 10:45:45 | <Profpatsch> | I don’t think I understand the documentation |
| 10:45:49 | × | tfeb quits (~tfb@88.98.95.237) (Quit: died) |
| 10:46:06 | <Hecate> | Hemmo: well, nothing that can't be fixed by restoring to a previously known state. :) That's what aeronautics and Erlang do all the time! |
| 10:46:15 | → | califax joins (~califax@user/califx) |
| 10:46:36 | <Hemmo> | Indeed. Should've thought of that first! Classic rookie mistake. |
| 10:47:04 | <Hemmo> | Related to that function and in general, is it possible to use list compr. and have a predicate that checks whether that element is in the list already? |
| 10:47:22 | <Profpatsch> | carbolymer: oh there’s a user guide, maybe that will make it clearer http://felsin9.de/nnis/ghc-datasize/ |
| 10:47:27 | <Hemmo> | so in my example there are some duplicates |
| 10:48:06 | <carbolymer> | Profpatsch: not sure |
| 10:48:16 | <Profpatsch> | carbolymer: I think nothing beats just trying it out :) |
| 10:48:46 | <Hecate> | Hemmo: just `List.nub` them afterwards ;-) |
| 10:49:37 | <Hecate> | because if you looking for the whole list each time a new element is produced (to determine if it's already there), your complexity goes through the roof, as you have what amounts to a nested for-loop |
| 10:50:02 | <Hecate> | just create your list, and go over it to remove the duplicates once it's finished |
| 10:50:18 | × | benin quits (~benin@183.82.24.110) (Quit: The Lounge - https://thelounge.chat) |
| 10:50:29 | → | xkuru joins (~xkuru@user/xkuru) |
| 10:51:22 | <Hemmo> | Hecate: Thanks |
| 10:52:47 | × | Hemmo quits (~Hemmo@91.221.67.198) (Remote host closed the connection) |
| 10:57:08 | <dminuoso> | Hecate: Well, I guess in some sense its not as much as "this definitely fixes it", but its rather "once your system doesn't behave as specified, you cant reason about it anymore" |
| 10:57:16 | <dminuoso> | That's at least the mentality in aeronautics |
| 10:57:34 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 10:59:38 | × | boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 11:01:55 | → | jonathanx joins (~jonathan@dyn-2-sc.cdg.chalmers.se) |
| 11:02:23 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 11:02:45 | × | fef quits (~thedawn@user/thedawn) (Remote host closed the connection) |
| 11:02:48 | × | mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 272 seconds) |
| 11:03:07 | → | mncheck joins (~mncheck@193.224.205.254) |
| 11:03:18 | → | fef joins (~thedawn@user/thedawn) |
| 11:05:37 | → | odnes joins (~odnes@5-203-245-187.pat.nym.cosmote.net) |
| 11:07:10 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 11:07:46 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 11:08:48 | → | boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
| 11:10:25 | <Hecate> | dminuoso: yes |
| 11:10:29 | <Hecate> | you are right |
| 11:10:30 | × | dut__ quits (~dut@user/dut) (Quit: Leaving) |
| 11:10:49 | → | razetime joins (~quassel@117.254.35.62) |
| 11:12:56 | × | Ferdirand quits (~somebody@2001:4c78:2012:5000::2) (Remote host closed the connection) |
| 11:12:56 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 11:16:44 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 11:18:31 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 11:21:26 | × | jonathanx quits (~jonathan@dyn-2-sc.cdg.chalmers.se) (Ping timeout: 260 seconds) |
| 11:22:12 | → | deadmarshal_ joins (~deadmarsh@95.38.119.235) |
| 11:26:27 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 11:26:52 | × | deadmarshal_ quits (~deadmarsh@95.38.119.235) (Ping timeout: 260 seconds) |
| 11:28:47 | × | DNH quits (~DNH@2a02:8108:1100:16d8:61e3:f551:d48e:e2b3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 11:28:49 | × | jiribenes quits (~jiribenes@rosa.jiribenes.com) (Ping timeout: 250 seconds) |
| 11:30:12 | → | benin joins (~benin@183.82.24.110) |
| 11:31:15 | × | benin quits (~benin@183.82.24.110) (Client Quit) |
| 11:33:59 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 11:35:31 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 11:36:12 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 260 seconds) |
| 11:38:41 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 11:42:29 | → | benin joins (~benin@183.82.24.110) |
| 11:42:48 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 11:48:01 | <maerwald> | https://github.com/haskellari/postgresql-simple/issues/58 |
| 11:48:03 | <maerwald> | oh dear. |
| 11:49:02 | × | benin quits (~benin@183.82.24.110) (Ping timeout: 272 seconds) |
| 11:49:02 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 11:49:56 | → | benin joins (~benin@183.82.24.110) |
| 11:50:00 | → | DNH joins (~DNH@2a02:8108:1100:16d8:61e3:f551:d48e:e2b3) |
| 11:50:32 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 11:50:40 | → | odnes_ joins (~odnes@5-203-245-187.pat.nym.cosmote.net) |
| 11:51:20 | × | odnes quits (~odnes@5-203-245-187.pat.nym.cosmote.net) (Read error: Connection reset by peer) |
| 11:53:36 | × | noddy quits (~user@user/noddy) (Quit: WeeChat 3.4) |
| 11:54:44 | <tdammers> | hey, that's my name on there! |
| 11:55:01 | → | noddy joins (~user@user/noddy) |
| 11:55:07 | <abastro[m]> | `nub`? eh |
| 11:56:49 | <merijn> | Montly reminder that anyone close to NL has only 2 more weeks to register for NL-FP ;) |
| 11:56:56 | <merijn> | https://wouter-swierstra.github.io/fp-dag/ |
| 11:57:36 | <dminuoso> | tdammers: Oh yeah, I actually started work to fix this! |
| 11:57:58 | <tdammers> | awesome! |
| 11:58:05 | <dminuoso> | But then a new season of Better Call Saul came out... |
| 11:58:18 | <dminuoso> | Priorities priorities... |
| 11:58:25 | <dminuoso> | Seriously though, I should wrap it up |
| 11:59:18 | → | acidjnk joins (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) |
| 12:00:54 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 12:05:22 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 12:05:23 | × | Everything quits (~Everythin@37.115.210.35) (Ping timeout: 260 seconds) |
| 12:06:54 | → | Everything joins (~Everythin@37.115.210.35) |
| 12:07:16 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 12:12:22 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 12:13:55 | → | zmt00 joins (~zmt00@user/zmt00) |
| 12:14:38 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 12:14:59 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 260 seconds) |
| 12:19:43 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 12:21:09 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 12:21:20 | × | boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 12:22:09 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 12:22:56 | → | jiribenes joins (~jiribenes@rosa.jiribenes.com) |
| 12:25:55 | <maerwald> | tdammers: so use hasql instead? |
| 12:25:59 | → | nathansquan[m] joins (~nathansqu@2001:470:69fc:105::1:e84c) |
| 12:27:04 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds) |
| 12:27:18 | <tdammers> | maerwald: might give it a spin some time. so far my go-to has been HDBC |
| 12:27:26 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 245 seconds) |
| 12:27:40 | <maerwald> | tdammers: but https://nikita-volkov.github.io/hasql-benchmarks/ |
| 12:27:59 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 12:29:12 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 12:29:15 | × | Everything quits (~Everythin@37.115.210.35) (Quit: leaving) |
| 12:29:28 | <tdammers> | sure sure, as I said, I might give it a spin |
| 12:29:57 | <maerwald> | I tried to compile the benchmarks, but they're 7 years old |
| 12:29:59 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:30:59 | <tdammers> | tbf., hasql is expected to be much faster than HDBC simply because it doesn't have to provide an abstraction layer over different DBMS backends |
| 12:32:33 | → | romesrf joins (~romes@44.190.189.46.rev.vodafone.pt) |
| 12:33:20 | <kuribas> | also, why would query generation speed matter when it's swamped by the actual query call? |
| 12:34:33 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 12:34:33 | <tdammers> | that depends on the query, but yeah, a 200% performance difference in your database connectivity layer may not matter at all |
| 12:35:36 | <merijn> | kuribas: Depends on frequency and size of queries :p |
| 12:35:46 | <romesrf> | \o |
| 12:36:17 | <kuribas> | merijn: if you are doing a lot of single queries, isn't that the problem then? |
| 12:36:25 | <kuribas> | you can instead batch the queries. |
| 12:36:25 | <merijn> | Why? |
| 12:36:37 | <merijn> | Maybe you can, maybe you can't depends on the system |
| 12:36:50 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 12:37:18 | <kuribas> | for example with graphQL, you could fetch an entire tree in a single request. |
| 12:37:40 | <kuribas> | With some clever batching, this can reduce the request time by a large factor. |
| 12:38:31 | <kuribas> | So I would focus on the ergonomics of the connectivity layer, rather than the speed. |
| 12:40:32 | → | cdman joins (~dcm@user/dmc/x-4369397) |
| 12:41:59 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 252 seconds) |
| 12:43:48 | → | doyougnu joins (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) |
| 12:44:48 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 12:47:29 | × | fendor_ quits (~fendor@77.119.209.169.wireless.dyn.drei.com) (Remote host closed the connection) |
| 12:48:46 | → | Guest19 joins (~Guest19@ip-86-49-182-248.zrnko.net) |
| 12:48:47 | → | agumonkey joins (~user@88.163.231.79) |
| 12:49:03 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:9dda:4bff:cdb5:90b8) |
| 12:50:06 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 12:50:41 | × | romesrf quits (~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4) |
| 12:51:28 | × | mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 260 seconds) |
| 12:52:07 | <Guest19> | Hello! I am working on a project with Parser (Text.Parsec) and I can't understand how to call try on my own parsers. For example, I create a parser using the do notation composed of multiple parser (e.g. first read a number, then string "hello", return the number as int). Now, when I use try on this custom parser, it seems to apply only to the |
| 12:52:07 | <Guest19> | first parser in the composition (i.e. the one reading a number in this case). Why is that? How can I prevent it? |
| 12:53:06 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 12:53:58 | <maerwald> | Guest19: you want "hello" to be parsed even if the number failed to parse? |
| 12:54:09 | <Guest19> | yes |
| 12:54:36 | <maerwald> | well, that obviously won't work when you wrap the entire parser in try |
| 12:55:05 | <Guest19> | No, sorry, misunderstood the question for a moment. I want the parser to try to read a number followed by the string "hello" and if anything fails, the whole parsing fails and the input (including the number) should not be consumed |
| 12:56:07 | × | acidjnk quits (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 12:58:42 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds) |
| 12:59:23 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 13:00:59 | ← | jakalx parts (~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection) |
| 13:01:00 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 13:01:17 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 13:04:24 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 13:07:24 | × | razetime quits (~quassel@117.254.35.62) (Read error: Connection reset by peer) |
| 13:08:12 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds) |
| 13:08:12 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds) |
| 13:09:09 | → | bahamas joins (~lucian@84.232.140.158) |
| 13:09:13 | → | o-90 joins (~o-90@gateway/tor-sasl/o-90) |
| 13:10:23 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 13:11:08 | × | gawen quits (~gawen@user/gawen) (Quit: cya) |
| 13:11:59 | → | werdnA joins (~andrew@114.88.181.56) |
| 13:12:28 | → | gawen joins (~gawen@user/gawen) |
| 13:12:39 | <werdnA> | I'd love to see some socket and tcp examples (and get screwed by IO ()) |
| 13:12:54 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 13:15:39 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 13:17:40 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 13:19:25 | × | o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection) |
| 13:20:42 | <kuribas> | Guest19: use "try" if you need to backtrack. |
| 13:22:47 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 250 seconds) |
| 13:25:24 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 13:30:25 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 13:32:55 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 13:34:02 | × | jgeerds quits (~jgeerds@55d4548e.access.ecotel.net) (Ping timeout: 260 seconds) |
| 13:36:51 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 13:38:15 | → | razetime joins (~quassel@117.254.35.62) |
| 13:38:36 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds) |
| 13:39:26 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 13:39:26 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 13:39:26 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:41:07 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 13:45:34 | × | bahamas quits (~lucian@84.232.140.158) (Ping timeout: 272 seconds) |
| 13:45:39 | → | acidjnk joins (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) |
| 13:46:53 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 13:49:03 | → | shriekingnoise joins (~shrieking@201.231.16.156) |
| 13:49:05 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 13:50:49 | × | slaydr quits (~slaydr@193.19.109.228) (Ping timeout: 256 seconds) |
| 13:51:03 | <Guest19> | Try seems to work for only the first parser, however :( |
| 13:51:54 | <geekosaur> | how are you doing this? |
| 13:52:40 | <geekosaur> | if you have a series of parsers you want to apply `try` to, either give it a name or wrap the whole set in parentheses (`try (…)`) |
| 13:52:45 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:53:44 | → | img joins (~img@user/img) |
| 13:54:24 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 13:55:58 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds) |
| 13:56:16 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 13:57:19 | werdnA | is now known as An |
| 13:57:23 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 13:57:41 | An | is now known as werdnA |
| 13:58:12 | × | img quits (~img@user/img) (Client Quit) |
| 13:58:33 | × | alp quits (~alp@user/alp) (Ping timeout: 260 seconds) |
| 13:59:03 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:c0ae:bf23:cf6b:67df) (Quit: WeeChat 2.8) |
| 13:59:20 | <Franciman> | sml is GORG |
| 13:59:35 | → | img joins (~img@user/img) |
| 14:00:09 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 14:00:52 | <Franciman> | let's see if haskell can at least keep the same performance |
| 14:01:22 | <shapr> | What's GORG? |
| 14:01:36 | <geekosaur> | Ipresume short for "gorgeous" |
| 14:02:05 | <shapr> | oh, huh |
| 14:02:09 | <Franciman> | it's the definition of sml |
| 14:02:32 | <Franciman> | i'll be good and use Data Sequence in haskell |
| 14:02:38 | <Franciman> | since list is a total clutter |
| 14:02:41 | <Franciman> | in this case |
| 14:02:45 | <shapr> | ich verstehe nicht |
| 14:02:47 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 14:02:50 | <shapr> | jag forstår inte |
| 14:02:56 | <shapr> | ik begrijp het niet |
| 14:03:01 | → | slaydr joins (~slaydr@173.239.197.154) |
| 14:03:37 | → | Pickchea joins (~private@user/pickchea) |
| 14:03:37 | <Franciman> | shapr: i'm confronting the implementations of my toy PL |
| 14:03:40 | <Franciman> | in haskell and in sml |
| 14:03:57 | <shapr> | oh! |
| 14:04:00 | <Franciman> | comparing* maybe |
| 14:04:01 | <shapr> | thanks for the explanation. |
| 14:04:08 | <Franciman> | haskell is SO SLOW |
| 14:04:10 | <shapr> | merci |
| 14:04:33 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 14:04:43 | <Franciman> | i remember somebody arguing that haskell was perfect for writing compilers. Imho it's a pretty decent second choice, after the awesome sml |
| 14:04:49 | → | lispy joins (~lispy@82.212.115.165) |
| 14:04:58 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 14:04:59 | <shapr> | It's good to have tools you enjoy using. |
| 14:05:14 | shapr | hugs lispy |
| 14:05:40 | <shapr> | I like using laziness (non-strictness) to make my programs go faster. |
| 14:05:42 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 14:06:05 | <Franciman> | :) |
| 14:06:37 | <lispy> | I am learning both haskell and lisp and I am liking lisp a bit more I think :P I was here cuz I had a few questions when I was learning haskell and most recently I joined the clisp channel |
| 14:06:37 | <shapr> | For example, comparing two files for equality with a lazy language means the comparison can stop early: https://github.com/shapr/takedouble/blob/main/src/Takedouble.hs#L32 |
| 14:06:51 | <shapr> | lispy: Are you not monsieur Dagit? |
| 14:07:01 | <shapr> | Oh, I guess not. |
| 14:07:04 | <lispy> | Nope Lol |
| 14:07:17 | <shapr> | hi lispy! I've just been learning common lisp myself. |
| 14:07:23 | <Franciman> | shapr: uhm you can do that in strict languages too |
| 14:07:32 | <shapr> | Franciman: sure, but it's more work |
| 14:07:33 | <Franciman> | just use stream based interface |
| 14:07:39 | <Franciman> | and it stops early |
| 14:07:50 | <Franciman> | with good abstractions you get the same code |
| 14:08:06 | <Franciman> | sure in sml you don't have it builtin. You have to write it yourself by hand |
| 14:08:08 | <Franciman> | this is a big cons |
| 14:08:11 | <shapr> | That's the thing I like about languages, they're all equal when you get to turing completeness; so it's about what the languages make easy to do |
| 14:08:22 | <Franciman> | sure |
| 14:09:04 | <shapr> | So I like learning what a language makes easy |
| 14:09:17 | <Franciman> | shapr: thing is |
| 14:09:27 | <Franciman> | laziness makes that easy, and everything else PURE HELL |
| 14:09:34 | <Franciman> | it writes laziness, it reads cringiness |
| 14:09:34 | <shapr> | Huh, doesn't seem that way to me |
| 14:09:41 | <Franciman> | sure |
| 14:09:47 | <shapr> | I really enjoy writing lazy code |
| 14:09:47 | <Franciman> | it's better like this |
| 14:10:03 | <Franciman> | i've been wasting my last year trying to improve the performance of my interpreter |
| 14:10:05 | <shapr> | I get to tie the knot and do all kinda fun things with laziness. |
| 14:10:15 | <Franciman> | the answer was: just switch to sml and kick the ass out of GHC |
| 14:10:24 | <shapr> | That's certainly one answer. |
| 14:10:39 | <Franciman> | as you were previously stating: i also like learning what a languages makes easy |
| 14:10:42 | <maerwald> | shapr: I don't think it's more work. 1. lazy IO is *bad*, 2. you should be using a streaming library to do it, 3. you have those in strict languages too |
| 14:11:07 | × | razetime quits (~quassel@117.254.35.62) (Remote host closed the connection) |
| 14:11:31 | <shapr> | maerwald: do you mean because you can have an inconsistent view of the filesystem? What other bad do you mean? |
| 14:11:46 | <maerwald> | uhm, because it's a hack |
| 14:11:46 | <merijn> | shapr: Leaks resources (like file descriptors) |
| 14:12:02 | <Franciman> | oh so laziness can't get correctness in presence of side effects? |
| 14:12:05 | <Franciman> | uh |
| 14:12:07 | <Franciman> | uh |
| 14:12:08 | <maerwald> | and many more issues... |
| 14:12:35 | <maerwald> | `tar` relies on lazy IO, but keeps a reference to something at some point somewhere, so boom -> everything gets forces into memory |
| 14:12:41 | <shapr> | I still haven't dug into streaming libraries in Haskell, I'd like to do that sometime soon. |
| 14:13:19 | <shapr> | maerwald: would use of a streaming library fix that problem? |
| 14:13:22 | <maerwald> | yes |
| 14:13:49 | <maerwald> | I was about to fix it that way, but then stopped, because libarchive came along |
| 14:13:54 | <maerwald> | and now I'm not using tar anymore |
| 14:14:17 | <shapr> | Wow, tar is from long ago |
| 14:14:18 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 14:14:18 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 14:14:33 | <maerwald> | yeah... the issue is that during unpack, it forces the entire file into memory |
| 14:14:43 | <maerwald> | but otherwise streams correctly |
| 14:14:55 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 14:14:59 | <maerwald> | so if you have 2GB archive with max file size 1mb, you don't notice |
| 14:14:59 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 14:15:02 | → | lechner joins (~lechner@debian/lechner) |
| 14:15:05 | <shapr> | huh, I wouldn't expect that, since tar is concat'd files |
| 14:15:12 | <maerwald> | if you have one huge file your ram blows up |
| 14:15:20 | <shapr> | I wonder why it does that? |
| 14:15:55 | <shapr> | I had that problem the first time I wrote a plugin for lambdabot |
| 14:16:09 | <maerwald> | https://github.com/haskell/tar/blob/a0d722c1f6052bf144017d131a715ea1ae599964/Codec/Archive/Tar/Read.hs#L117-L119 |
| 14:16:34 | <shapr> | oh |
| 14:16:40 | <maerwald> | LBS.drop, but then bs' is passed onto the next iteration |
| 14:16:41 | → | odnes__ joins (~odnes@5-203-245-187.pat.nym.cosmote.net) |
| 14:16:42 | × | odnes_ quits (~odnes@5-203-245-187.pat.nym.cosmote.net) (Read error: Connection reset by peer) |
| 14:16:43 | <maerwald> | so blocks stream fusion |
| 14:17:07 | <maerwald> | those things aren't easy to spot |
| 14:17:35 | <shapr> | Is there some way to automatically find that sort of thing? |
| 14:17:42 | <shapr> | or is it "use a streaming library" ? |
| 14:17:53 | <maerwald> | memory profiling |
| 14:17:57 | <shapr> | Ah, makes sense |
| 14:18:02 | <maerwald> | but then you need to have the right input |
| 14:18:11 | <maerwald> | this was only spotted, because I had an archive with huge files |
| 14:18:14 | <shapr> | so, memory profiling + property based testing? |
| 14:19:08 | <maerwald> | another library abusing lazy bytestring is https://hackage.haskell.org/package/xeno ... we've been discussing with streamly authors to rewrite it in that |
| 14:19:20 | <maerwald> | because here again, you make a mistake and your performance regresses |
| 14:19:31 | <shapr> | huh, neato |
| 14:20:06 | <Franciman> | shapr: do you have a tutorial in tying the knot |
| 14:20:09 | <Franciman> | ? |
| 14:20:19 | <Franciman> | in my third world sml, i have to use mutation to implement it :< |
| 14:20:40 | <Franciman> | it's so neat when expressed in haskell tho *.* |
| 14:21:05 | <shapr> | Franciman: the simplest thing is "let ones = 1 : ones" |
| 14:21:27 | × | jackalope quits (~jackalope@50-24-138-131.bcstcmta02.res.dyn.suddenlink.net) (Ping timeout: 260 seconds) |
| 14:21:35 | <shapr> | maerwald: if I want to use a streaming library in takedouble instead of lazy IO, what's the easiest one to start with? |
| 14:21:36 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 14:21:36 | <Franciman> | wanna look at my example to implement fix? |
| 14:21:39 | <Franciman> | it's SO NEAT |
| 14:21:48 | <Franciman> | 1-liner, no-brainer |
| 14:21:49 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 14:21:54 | <shapr> | Franciman: you can link me, but I'm about to walk to buy food, I can look when I get back :-) |
| 14:22:13 | <Franciman> | let res = eval (envPushValue res env) body in res |
| 14:22:18 | <maerwald> | shapr: I'd like so claim streamly, but it probably isn't. It's just that I prefer it and find the API more natural. But the docs can be confusing. |
| 14:22:20 | <Franciman> | can you make it shorter? |
| 14:22:26 | <Franciman> | i'd like to do it without the let |
| 14:22:28 | <Franciman> | maybe using fix? |
| 14:22:31 | <Franciman> | :t fix |
| 14:22:32 | <lambdabot> | (a -> a) -> a |
| 14:22:42 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 14:22:46 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 14:23:05 | <Franciman> | looks like it does yeah |
| 14:23:06 | <Franciman> | thanks shapr |
| 14:23:08 | <Franciman> | have a nice meal |
| 14:23:15 | → | hololeap joins (~hololeap@user/hololeap) |
| 14:23:33 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 14:24:55 | <maerwald> | shapr: the main two approaches to streaming is 1. expressing actual streams (streamly), so like lists, 2. expressing pipes, so you have a transformer that processes input and produces an output |
| 14:25:00 | <maerwald> | conduit takes the latter |
| 14:25:06 | <maerwald> | and is probably the most popular atm |
| 14:25:21 | → | ab8 joins (~ab@2401:4900:55ac:f030:5de5:a385:33c6:42ed) |
| 14:25:26 | <Franciman> | is conduit faster than streamly, maerwald ? |
| 14:25:29 | <maerwald> | no |
| 14:25:41 | <Franciman> | it also seems more difficult than streamly |
| 14:25:44 | <Franciman> | so why pick it? |
| 14:25:53 | <maerwald> | I wouldn't |
| 14:26:02 | <Franciman> | uhm. But does it have any sort of advantage? |
| 14:26:03 | <maerwald> | but some people find it more natural |
| 14:26:05 | <Franciman> | apart form the huge ecosystem |
| 14:26:13 | <maerwald> | Franciman: yes, performance is very *stable* |
| 14:26:23 | <Franciman> | uh uh i understand. Thanks ^^ |
| 14:26:24 | <maerwald> | while in streamly, if you make a mistake, you can get huge regressions |
| 14:26:40 | <maerwald> | but you usually also get much better performance than conduit if you do it right |
| 14:26:56 | <Franciman> | got it, ty |
| 14:27:12 | → | boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
| 14:27:14 | <maerwald> | that's because streamly depends heavily on inlining, to let GHC optimize your hot loops |
| 14:27:42 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 14:30:27 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 14:32:50 | → | gehmehgeh_ joins (~user@user/gehmehgeh) |
| 14:33:38 | → | rawley joins (~rawley@142.99.241.242) |
| 14:35:35 | × | gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 240 seconds) |
| 14:36:05 | × | Franciman quits (~Franciman@mx1.fracta.dev) (Remote host closed the connection) |
| 14:40:59 | × | acidjnk quits (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 14:41:29 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 14:41:29 | gehmehgeh_ | is now known as gehmehgeh |
| 14:42:06 | × | ccntrq quits (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a) (Remote host closed the connection) |
| 14:42:16 | × | ab8 quits (~ab@2401:4900:55ac:f030:5de5:a385:33c6:42ed) (Ping timeout: 250 seconds) |
| 14:42:24 | → | ccntrq joins (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a) |
| 14:43:43 | × | cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving) |
| 14:45:19 | → | jackalope joins (~jackalope@165.91.13.217) |
| 14:48:49 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:50:35 | werdnA | is now known as CoWaxDanguin |
| 14:50:38 | → | Franciman joins (~Franciman@mx1.fracta.dev) |
| 14:51:18 | CoWaxDanguin | is now known as werdnA |
| 14:51:24 | × | dolio quits (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:54:18 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 14:54:35 | × | werdnA quits (~andrew@114.88.181.56) (Quit: WeeChat 3.4.1) |
| 14:54:40 | <Franciman> | back from testing. At first the haskell version was DAYUMN SLOW |
| 14:54:49 | → | CoWaxDanguin joins (~andrew@114.88.181.56) |
| 14:54:53 | <Franciman> | so i had to turn StrictData on. I got 3x speedup |
| 14:54:54 | CoWaxDanguin | is now known as werdnA |
| 14:55:05 | <Franciman> | now it's faster than the sml version. Mostly because haskell's runtime is DAYUMN NIFTY |
| 14:55:09 | <abastro[m]> | Wh |
| 14:55:34 | <Franciman> | sml version does a 10x more page faults. It performs less computations, but spends half of the time talking to the kernel lol |
| 14:55:39 | <abastro[m]> | Hmm, doesn't StrictData just add strictness annotations |
| 14:55:43 | → | razetime joins (~quassel@117.254.35.62) |
| 14:55:54 | <Franciman> | yes, it reduces thunks |
| 14:56:01 | × | werdnA quits (~andrew@114.88.181.56) (Client Quit) |
| 14:56:12 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 14:56:15 | → | werdnA joins (~andrew@114.88.181.56) |
| 14:56:16 | <Franciman> | and i don't know what other evil thing. And gave me a huge speedup from 3.0s to 0.7s |
| 14:56:23 | <abastro[m]> | But yea it could be great if you are tired at adding ! |
| 14:56:24 | <Franciman> | unbellyveable |
| 14:56:42 | <Franciman> | haskell's runtime is really something! |
| 14:56:55 | → | dolio joins (~dolio@130.44.130.54) |
| 14:57:20 | <[exa]> | what's the code doing btw? |
| 14:57:28 | <[exa]> | (just dayumn curious) |
| 14:57:30 | → | zer0bitz joins (~zer0bitz@2001:2003:f750:a200:544e:226a:9b44:a162) |
| 14:57:33 | <Franciman> | evaluating a lambda term that sums the first 10million numbers |
| 14:57:50 | <Franciman> | (using a recursive implementation) |
| 14:57:56 | <abastro[m]> | <del>Random pythonista I met days ago: Well idk I don't think it will beat python</del> |
| 14:58:32 | <abastro[m]> | Sum by Lambda term? |
| 14:58:34 | <Franciman> | lol python can't even sum the first million numbers without exhausting memory |
| 14:58:42 | <Franciman> | abastro[m]: i implemented this algorithm: |
| 14:58:48 | <Franciman> | sum 0 = 0; sum n = n + sum (n-1) |
| 14:58:50 | <abastro[m]> | Hehe |
| 14:59:05 | <abastro[m]> | Oh, so simple sum function? |
| 14:59:05 | <[exa]> | Franciman: is it on Ints or Integers? |
| 14:59:19 | <Franciman> | Int64. I would expect it to be too slow on integers :( |
| 14:59:29 | <abastro[m]> | Likely optimized into loops at least |
| 14:59:33 | → | epolanski joins (uid312403@id-312403.helmsley.irccloud.com) |
| 14:59:38 | <[exa]> | how long does it take with an accumulator? |
| 15:00:18 | <Franciman> | [exa]: sorry you mean doing: sum n 0 = n; sum n k = sum (n + 1) (k - 1) ? |
| 15:00:30 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 15:00:34 | <abastro[m]> | Wouldn't haskell be smart enough to unroll it as loop anyway |
| 15:00:35 | <Franciman> | i would assume roughly the same, because I didn't implement tail call optimisation, but let me check! |
| 15:00:47 | <Franciman> | wait people |
| 15:00:55 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:00:56 | <Franciman> | i think i couldn't explain things right |
| 15:01:03 | <Franciman> | I used haskell to implement a toy interpreter |
| 15:01:09 | <Franciman> | i'm not implementing the sum in haskell |
| 15:01:11 | <Franciman> | but in the toy language |
| 15:01:14 | <abastro[m]> | Now I see what you did |
| 15:01:19 | <abastro[m]> | Yea now understood |
| 15:01:41 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 252 seconds) |
| 15:01:46 | × | odnes__ quits (~odnes@5-203-245-187.pat.nym.cosmote.net) (Remote host closed the connection) |
| 15:02:06 | → | odnes__ joins (~odnes@5-203-245-187.pat.nym.cosmote.net) |
| 15:02:50 | <kuribas> | abastro[m]: probably not ghc, but llvm maybe. |
| 15:03:02 | <kuribas> | abastro[m]: at least if it is strict. |
| 15:03:27 | <kuribas> | by llvm I mean the ghc llvm backend. |
| 15:04:18 | <abastro[m]> | I think haskell could even optimize the toy language impl into loop |
| 15:04:24 | <abastro[m]> | But that is too wild of a gusss |
| 15:04:24 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 15:04:45 | <Franciman> | the program is not know at compile time |
| 15:05:32 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 15:09:56 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 252 seconds) |
| 15:10:26 | × | `2jt quits (~jtomas@210.red-88-24-179.staticip.rima-tde.net) (Ping timeout: 272 seconds) |
| 15:10:50 | <abastro[m]> | Oh, read from file? |
| 15:11:22 | → | `2jt joins (~jtomas@210.red-88-24-179.staticip.rima-tde.net) |
| 15:12:22 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 15:12:25 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 15:17:31 | × | jackalope quits (~jackalope@165.91.13.217) (Ping timeout: 246 seconds) |
| 15:17:37 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 250 seconds) |
| 15:20:03 | <Franciman> | yes, on the long run |
| 15:20:06 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 15:20:08 | <Franciman> | now it's hardcoded :P |
| 15:20:33 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1) |
| 15:25:30 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 15:29:17 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 15:29:17 | × | pie__ quits (~pie_bnc@user/pie/x-2818909) (Quit: pie__) |
| 15:29:28 | → | pie_ joins (~pie_bnc@user/pie/x-2818909) |
| 15:31:27 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 260 seconds) |
| 15:32:22 | × | rawley quits (~rawley@142.99.241.242) (Remote host closed the connection) |
| 15:32:44 | → | rawley joins (~rawley@142.99.241.242) |
| 15:33:02 | × | doyougnu quits (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 252 seconds) |
| 15:33:37 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 15:33:59 | → | jackalope joins (~jackalope@50-24-138-131.bcstcmta02.res.dyn.suddenlink.net) |
| 15:34:57 | × | pie_ quits (~pie_bnc@user/pie/x-2818909) (Quit: pie_) |
| 15:35:48 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 15:37:07 | → | pie_ joins (~pie_bnc@user/pie/x-2818909) |
| 15:38:02 | × | razetime quits (~quassel@117.254.35.62) (Remote host closed the connection) |
| 15:39:00 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 15:39:18 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:40:24 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 15:41:16 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 15:42:59 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 15:44:38 | × | gdd quits (~gdd@129.199.146.230) (Ping timeout: 272 seconds) |
| 15:44:39 | → | razetime joins (~quassel@117.254.35.62) |
| 15:45:15 | → | jgeerds joins (~jgeerds@55d4548e.access.ecotel.net) |
| 15:46:29 | → | gdd joins (~gdd@129.199.146.230) |
| 15:47:52 | × | ccntrq quits (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a) (Remote host closed the connection) |
| 15:48:10 | → | ccntrq joins (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a) |
| 15:48:19 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 15:49:02 | × | benin quits (~benin@183.82.24.110) (Quit: The Lounge - https://thelounge.chat) |
| 15:50:30 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 15:51:38 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 15:55:40 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 15:58:06 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 16:00:05 | × | Deide quits (~deide@user/deide) (Quit: You have been kicked for being idle) |
| 16:00:08 | × | Joe[m] quits (~jsricemat@2001:470:69fc:105::1:b4ce) (Quit: You have been kicked for being idle) |
| 16:00:08 | × | sofviic[m] quits (~sofviicma@2001:470:69fc:105::1:51fd) (Quit: You have been kicked for being idle) |
| 16:00:51 | × | Major_Biscuit quits (~MajorBisc@c-001-024-026.client.tudelft.eduvpn.nl) (Ping timeout: 260 seconds) |
| 16:02:45 | → | lbseale joins (~ep1ctetus@user/ep1ctetus) |
| 16:03:40 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 16:04:13 | × | Digit quits (~user@user/digit) (Ping timeout: 256 seconds) |
| 16:05:36 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 16:10:36 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 16:11:05 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 16:11:07 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 16:11:34 | → | odnes joins (~odnes@5-203-245-187.pat.nym.cosmote.net) |
| 16:11:49 | × | odnes__ quits (~odnes@5-203-245-187.pat.nym.cosmote.net) (Ping timeout: 240 seconds) |
| 16:12:48 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 16:14:25 | × | jgeerds quits (~jgeerds@55d4548e.access.ecotel.net) (Ping timeout: 256 seconds) |
| 16:15:13 | → | Digitteknohippie joins (~user@user/digit) |
| 16:17:03 | → | deadmarshal_ joins (~deadmarsh@95.38.119.235) |
| 16:17:32 | → | Topsi joins (~Tobias@dyndsl-095-033-095-210.ewe-ip-backbone.de) |
| 16:18:04 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 16:18:24 | → | Major_Biscuit joins (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) |
| 16:18:27 | × | Digitteknohippie quits (~user@user/digit) (Read error: Connection reset by peer) |
| 16:18:39 | → | MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net) |
| 16:19:03 | × | gdd quits (~gdd@129.199.146.230) (Ping timeout: 260 seconds) |
| 16:19:25 | × | MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Client Quit) |
| 16:19:47 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
| 16:20:20 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 16:20:25 | → | bitmapper joins (uid464869@id-464869.lymington.irccloud.com) |
| 16:20:51 | → | gdd joins (~gdd@129.199.146.230) |
| 16:20:53 | × | ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
| 16:21:38 | → | ProfSimm joins (~ProfSimm@87.227.196.109) |
| 16:23:17 | × | pie_ quits (~pie_bnc@user/pie/x-2818909) (Quit: pie_) |
| 16:24:34 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:26:01 | × | mbuf quits (~Shakthi@122.173.70.161) (Quit: Leaving) |
| 16:26:08 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 16:27:17 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 16:27:52 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 16:28:17 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 16:30:34 | → | alp joins (~alp@user/alp) |
| 16:35:16 | → | bahamas joins (~lucian@84.232.140.158) |
| 16:36:29 | × | Major_Biscuit quits (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) (Ping timeout: 250 seconds) |
| 16:36:34 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds) |
| 16:39:25 | × | ccntrq quits (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a) (Remote host closed the connection) |
| 16:39:37 | → | pie_ joins (~pie_bnc@user/pie/x-2818909) |
| 16:40:07 | × | bahamas quits (~lucian@84.232.140.158) (Ping timeout: 260 seconds) |
| 16:43:59 | × | Guest19 quits (~Guest19@ip-86-49-182-248.zrnko.net) (Quit: Client closed) |
| 16:46:11 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 16:50:45 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 16:52:57 | × | Inst quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 260 seconds) |
| 16:53:18 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 16:53:31 | <hololeap> | streaming, pipes, lists, fusion... whenever anyone starts throwing these words around I kinda sorta get what they're talking about, but not really |
| 16:55:53 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
| 16:56:02 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:59:05 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 16:59:12 | × | `2jt quits (~jtomas@210.red-88-24-179.staticip.rima-tde.net) (Remote host closed the connection) |
| 16:59:34 | → | `2jt joins (~jtomas@210.red-88-24-179.staticip.rima-tde.net) |
| 17:00:32 | → | doyougnu joins (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) |
| 17:03:24 | <hololeap> | > the main two approaches to streaming is 1. expressing actual streams (streamly), so like lists, 2. expressing pipes, so you have a transformer that processes input and produces an output |
| 17:03:55 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 246 seconds) |
| 17:04:03 | <hololeap> | I understand #2 pretty well, I think, but how does it differ from #1? what is an "actual stream" and what makes it like a list, whereas #2 is _not_ like a list? |
| 17:04:07 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 17:08:45 | <[exa]> | hololeap: if I get it correctly, #1 gets efficient magically thanks to list fusion (if you have several functions like `f p (x:xs) = g x:f (h p) xs` and join them with (.), with a bit of luck it optimizes to something very efficient with almost no unnecessary allocation), and in #2 you use various high-level tricks to explicitly construct the efficient function yourself (avoiding the need for implicit luck) |
| 17:09:47 | <geekosaur> | and a stream structure (#1) is typically an infinite list: data Stream a = Stream a (Stream a) |
| 17:12:58 | <[exa]> | yeah because if you need to check for [], your amount of data is too low to even necessitate streaming. :D |
| 17:12:59 | → | bahamas joins (~lucian@84.232.140.158) |
| 17:14:22 | → | econo joins (uid147250@user/econo) |
| 17:16:16 | × | boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Quit: Connection closed) |
| 17:16:25 | → | arjun joins (~arjun@user/arjun) |
| 17:16:44 | × | arjun quits (~arjun@user/arjun) (Client Quit) |
| 17:17:06 | → | boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
| 17:17:44 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 17:18:37 | × | bahamas quits (~lucian@84.232.140.158) (Ping timeout: 246 seconds) |
| 17:18:37 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 17:22:47 | → | vicfred joins (~vicfred@user/vicfred) |
| 17:23:26 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds) |
| 17:23:48 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
| 17:24:05 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 17:24:28 | × | deadmarshal_ quits (~deadmarsh@95.38.119.235) (Ping timeout: 260 seconds) |
| 17:25:19 | × | razetime quits (~quassel@117.254.35.62) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 17:25:38 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 17:25:56 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 17:26:51 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 17:28:25 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds) |
| 17:28:36 | × | jackalope quits (~jackalope@50-24-138-131.bcstcmta02.res.dyn.suddenlink.net) (Ping timeout: 260 seconds) |
| 17:29:31 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 17:31:30 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 17:34:08 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 17:35:08 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 17:37:46 | × | hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 17:38:47 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Quit: Leaving) |
| 17:39:02 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 17:39:36 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Read error: Connection reset by peer) |
| 17:39:48 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 17:39:54 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds) |
| 17:41:11 | → | bob joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 17:41:43 | × | bob quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Read error: Connection reset by peer) |
| 17:41:51 | → | yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) |
| 17:42:01 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Client Quit) |
| 17:42:04 | × | gurkenglas quits (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
| 17:42:15 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 17:42:46 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 17:43:08 | × | CATS quits (apic@brezn3.muc.ccc.de) (Remote host closed the connection) |
| 17:43:46 | → | whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com) |
| 17:43:51 | → | bob joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 17:43:51 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Client Quit) |
| 17:43:53 | × | bob quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Read error: Connection reset by peer) |
| 17:46:01 | × | boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Quit: Connection closed) |
| 17:47:19 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 17:48:46 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds) |
| 17:51:06 | → | Macbethwin joins (~chargen@D964062A.static.ziggozakelijk.nl) |
| 17:51:12 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 17:52:14 | Macbethwin | is now known as Chargen |
| 17:52:40 | → | pnotequalnp joins (~kevin@user/pnotequalnp) |
| 17:56:35 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 252 seconds) |
| 17:56:56 | → | deadmarshal_ joins (~deadmarsh@95.38.119.235) |
| 17:59:10 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 18:00:14 | → | Macbethwin_ joins (~chargen@8.21.8.253) |
| 18:00:37 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 18:01:17 | × | deadmarshal_ quits (~deadmarsh@95.38.119.235) (Ping timeout: 256 seconds) |
| 18:03:39 | <ProfSimm> | What is this called in haskell when you have "fun arg arg arg arg arg" |
| 18:03:39 | <ProfSimm> | Application chain, but is there a name for it |
| 18:03:44 | × | Chargen quits (~chargen@D964062A.static.ziggozakelijk.nl) (Ping timeout: 252 seconds) |
| 18:03:59 | Macbethwin_ | is now known as Chargen |
| 18:04:18 | × | shailangsa quits (~shailangs@host86-162-150-212.range86-162.btcentralplus.com) (Ping timeout: 252 seconds) |
| 18:04:31 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 18:04:49 | <tomsmeding> | 12:30 <maerwald> tomsmeding: it's not using bwrap? |
| 18:04:54 | <tomsmeding> | what makes you say that? |
| 18:05:18 | <maerwald[m]> | tomsmeding: i dunno, maybe I'm high |
| 18:05:43 | → | gurkenglas joins (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) |
| 18:05:52 | × | doyougnu quits (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 246 seconds) |
| 18:06:02 | <tomsmeding> | come back down then :p |
| 18:06:11 | → | CATS joins (apic@brezn3.muc.ccc.de) |
| 18:06:22 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 18:09:40 | <tomsmeding> | ProfSimm: you mean a function applied to lots of arguments that arae the same? |
| 18:09:48 | → | boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) |
| 18:10:09 | <ProfSimm> | tomjaguarpaw: not the same, just the application chain or call chain |
| 18:10:19 | <ProfSimm> | Anywya |
| 18:10:22 | <tomsmeding> | an... n-ary application? |
| 18:10:30 | <ProfSimm> | Is that the official name? |
| 18:10:58 | <tomsmeding> | not sure what part of "applying a function to arguments" is what you're trying to find a name for :p |
| 18:12:37 | <monochrom> | There is no special name for application upon application upon appliction. |
| 18:13:11 | → | jackalope joins (~jackalope@165.91.13.172) |
| 18:13:44 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.4.1) |
| 18:13:55 | <monochrom> | Just like there is no special name to distinguish "((x+y)*(a-b))^(c/d)" from "x+y". |
| 18:14:14 | <monochrom> | Apart from "humongous mess". |
| 18:15:37 | <monochrom> | "epic formula" if you're in a good mood. |
| 18:15:45 | <Rembane> | Why not both? |
| 18:16:58 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 18:17:19 | <monochrom> | Sure, humongous mess, epic formula, emperor of the lone islands, defender of the faith. >:) |
| 18:17:29 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 252 seconds) |
| 18:17:47 | <Rembane> | Legendary! |
| 18:18:26 | <monochrom> | Err not epic enough. s/emperor of the lone islands/emperor of the lone islands and othe realms/ . Now that's more like it heehee. |
| 18:19:12 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 18:19:39 | <Rembane> | Spicy! |
| 18:21:06 | <tomsmeding> | emperor of \underline{\mathbf{Set}} |
| 18:21:31 | <tomsmeding> | now that would be an impressive title |
| 18:21:52 | <monochrom> | you forgot "and other classes and categories" >:) |
| 18:21:56 | → | Tuplanolla joins (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) |
| 18:22:10 | <monochrom> | and "defender of the types" haha |
| 18:22:32 | → | jgeerds joins (~jgeerds@d5364b87.access.ecotel.net) |
| 18:23:19 | <tomsmeding> | Lord of the Higher Kinds |
| 18:23:35 | <Rembane> | Conqueror of P=NP |
| 18:24:37 | <monochrom> | Now it's my turn to go "why not both". Conqueror of P=NP and P≠NP. |
| 18:24:52 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds) |
| 18:25:36 | <Rembane> | It's indeed your turn. This is good conquest. |
| 18:25:42 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 18:26:31 | <monochrom> | "think like a warmongering despot" :) |
| 18:26:39 | <tomsmeding> | just work in Falso http://sigtbd.csail.mit.edu/pubs/2016/paper9.pdf |
| 18:28:23 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:28:54 | <monochrom> | I was wondering why it's self-consistent. Then, oh, of course, no one says it's consistent (without self-). |
| 18:29:18 | <monochrom> | "Falso proves itself consistent" is true. :) |
| 18:30:55 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 18:34:22 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds) |
| 18:36:57 | → | k8yun joins (~k8yun@user/k8yun) |
| 18:40:31 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 18:40:55 | × | jackalope quits (~jackalope@165.91.13.172) (Quit: = "vale") |
| 18:43:55 | × | fef quits (~thedawn@user/thedawn) (Ping timeout: 240 seconds) |
| 18:48:41 | × | Chargen quits (~chargen@8.21.8.253) (Quit: Leaving) |
| 18:49:05 | → | Macbethwin joins (~chargen@8.21.8.253) |
| 18:49:31 | × | zer0bitz quits (~zer0bitz@2001:2003:f750:a200:544e:226a:9b44:a162) (Ping timeout: 245 seconds) |
| 18:53:32 | × | kaph quits (~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Ping timeout: 260 seconds) |
| 18:59:44 | → | bahamas joins (~lucian@84.232.140.158) |
| 19:01:31 | → | unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 19:07:55 | → | riddler2d joins (~riddler2d@94.250.72.176) |
| 19:13:09 | → | fendor joins (~fendor@178.165.199.73.wireless.dyn.drei.com) |
| 19:15:23 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 19:19:14 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:23b1:9164:bf8a:2d11) |
| 19:20:25 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 19:20:29 | → | xcmw joins (~textual@dyn-72-33-2-250.uwnet.wisc.edu) |
| 19:21:12 | <xcmw> | Are there any downsides to query based compilers as described in https://ollef.github.io/blog/posts/query-based-compilers.html ? |
| 19:22:54 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 19:24:17 | → | jonathanx joins (~jonathan@c-5eea3313-74736162.cust.telenor.se) |
| 19:25:25 | × | bahamas quits (~lucian@84.232.140.158) (Ping timeout: 240 seconds) |
| 19:28:07 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 19:28:11 | → | neurocyte8 joins (~neurocyte@IP-094016066081.dynamic.medianet-world.de) |
| 19:28:11 | × | neurocyte8 quits (~neurocyte@IP-094016066081.dynamic.medianet-world.de) (Changing host) |
| 19:28:11 | → | neurocyte8 joins (~neurocyte@user/neurocyte) |
| 19:28:59 | × | neurocyte quits (~neurocyte@user/neurocyte) (Ping timeout: 260 seconds) |
| 19:30:38 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 19:34:23 | × | gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 3.4) |
| 19:35:07 | → | gabriel_sevecek joins (~gabriel@188-167-229-200.dynamic.chello.sk) |
| 19:35:36 | → | dextaa_ joins (~dextaa@user/dextaa) |
| 19:35:48 | × | pnotequalnp quits (~kevin@user/pnotequalnp) (Ping timeout: 240 seconds) |
| 19:37:17 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 256 seconds) |
| 19:39:26 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 19:40:46 | → | yauhsien_ joins (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) |
| 19:40:52 | × | yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 19:45:03 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 19:45:33 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 19:47:23 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 19:51:06 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 19:53:13 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 19:55:26 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 19:56:22 | × | yauhsien_ quits (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 19:56:27 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 19:57:22 | → | yauhsien joins (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) |
| 19:57:49 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 19:59:45 | → | acidjnk joins (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) |
| 20:01:43 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 20:02:25 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 20:02:35 | × | yauhsien quits (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 20:03:02 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:03:51 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 20:06:11 | Macbethwin | is now known as Chargen |
| 20:09:04 | × | `2jt quits (~jtomas@210.red-88-24-179.staticip.rima-tde.net) (Ping timeout: 246 seconds) |
| 20:09:08 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 20:11:03 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 20:11:16 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 20:12:41 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 20:13:26 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 20:13:37 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds) |
| 20:13:48 | × | cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds) |
| 20:14:22 | × | agumonkey quits (~user@88.163.231.79) (Ping timeout: 260 seconds) |
| 20:14:54 | → | bliminse joins (~bliminse@host86-185-253-73.range86-185.btcentralplus.com) |
| 20:15:26 | Lord_of_Life_ | is now known as Lord_of_Life |
| 20:16:30 | × | Graham31415 quits (~Graham@user/Graham31415) (Read error: Connection reset by peer) |
| 20:18:00 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 20:19:59 | → | cheater joins (~Username@user/cheater) |
| 20:20:19 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 20:21:36 | → | pavonia joins (~user@user/siracusa) |
| 20:22:27 | → | jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 20:24:49 | × | jonathanx quits (~jonathan@c-5eea3313-74736162.cust.telenor.se) (Ping timeout: 246 seconds) |
| 20:27:18 | × | jgeerds quits (~jgeerds@d5364b87.access.ecotel.net) (Remote host closed the connection) |
| 20:27:35 | → | jgeerds joins (~jgeerds@d5364b87.access.ecotel.net) |
| 20:29:49 | × | jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Quit: WeeChat 3.3) |
| 20:30:41 | × | motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit) |
| 20:30:51 | ← | riddler2d parts (~riddler2d@94.250.72.176) () |
| 20:32:01 | → | yauhsien joins (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) |
| 20:32:03 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4) |
| 20:34:22 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 20:34:31 | → | asocialblade joins (~qsl@user/asocialblade) |
| 20:36:33 | × | yauhsien quits (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
| 20:41:39 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:43:21 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 20:44:27 | → | Emil3566 joins (~Emil3566@host-45-159-164-7.netcity.pl) |
| 20:44:35 | × | jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds) |
| 20:45:21 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:23b1:9164:bf8a:2d11) (Quit: WeeChat 2.8) |
| 20:49:21 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 20:50:32 | ← | Emil3566 parts (~Emil3566@host-45-159-164-7.netcity.pl) (Leaving...) |
| 20:50:53 | × | asocialblade quits (~qsl@user/asocialblade) () |
| 20:58:09 | → | pretty_d1 joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 20:58:10 | × | pretty_d1 quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit) |
| 20:58:37 | → | Guest19 joins (~Guest19@ip-86-49-182-248.zrnko.net) |
| 20:58:37 | × | nattiestnate quits (~nate@202.138.250.9) (Quit: WeeChat 3.5) |
| 20:58:38 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 20:59:13 | × | rawley quits (~rawley@142.99.241.242) (Remote host closed the connection) |
| 21:01:18 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 272 seconds) |
| 21:01:39 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 21:03:00 | → | Inst joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) |
| 21:05:18 | → | kaph joins (~kaph@net-31-156-214-2.cust.vodafonedsl.it) |
| 21:05:34 | → | shailangsa joins (~shailangs@host86-162-150-212.range86-162.btcentralplus.com) |
| 21:05:43 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
| 21:06:53 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 21:07:28 | × | shailangsa quits (~shailangs@host86-162-150-212.range86-162.btcentralplus.com) () |
| 21:09:34 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 21:10:47 | <sshine> | xcmw, interesting blogpost! |
| 21:10:59 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 250 seconds) |
| 21:11:41 | × | alp quits (~alp@user/alp) (Ping timeout: 256 seconds) |
| 21:12:35 | × | lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 260 seconds) |
| 21:13:34 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 21:14:53 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
| 21:16:59 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 21:17:14 | × | Guest19 quits (~Guest19@ip-86-49-182-248.zrnko.net) (Quit: Client closed) |
| 21:21:08 | → | pnotequalnp joins (~kevin@user/pnotequalnp) |
| 21:21:24 | <kuribas> | not sure what that's supposed solve, is it compile times? |
| 21:24:10 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 21:27:23 | × | odnes quits (~odnes@5-203-245-187.pat.nym.cosmote.net) (Quit: Leaving) |
| 21:29:48 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds) |
| 21:32:23 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 21:32:42 | × | michalz quits (~michalz@185.246.204.97) (Remote host closed the connection) |
| 21:37:45 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 256 seconds) |
| 21:38:13 | → | nattiestnate joins (~nate@202.138.250.11) |
| 21:40:29 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 21:41:16 | <koz> | I have a FilePath that looks like "/foo/bar/baz/../quux". Is there some function somewhere I can call which would turn it into "/foo/bar/quux"? |
| 21:41:32 | × | dolio quits (~dolio@130.44.130.54) (Ping timeout: 252 seconds) |
| 21:42:19 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 21:42:55 | × | wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 240 seconds) |
| 21:43:55 | × | nattiestnate quits (~nate@202.138.250.11) (Quit: WeeChat 3.5) |
| 21:44:21 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 21:44:26 | <geekosaur> | https://downloads.haskell.org/ghc/8.10.7/docs/html/libraries/directory-1.3.6.0/System-Directory.html#v:canonicalizePath ? |
| 21:44:40 | <koz> | That looks perfect, thank you, you cute dino! |
| 21:44:45 | <geekosaur> | also beware that that will do the wrong thing if baz is a symlink |
| 21:45:04 | <geekosaur> | (canonicalizePath may deal with this for you, hopefully) |
| 21:45:20 | <koz> | I don't _think_ this is the situation in my case. Worth a try at least. |
| 21:45:26 | → | dolio joins (~dolio@130.44.130.54) |
| 21:45:33 | <Franciman> | i don't know if i said it |
| 21:45:38 | <Franciman> | but haskell's runtime is RAD |
| 21:45:40 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 21:45:49 | <koz> | Franciman: Yeah, it does some quite miraculous things. |
| 21:45:50 | <geekosaur> | I should say what you requested would do the wrong thing |
| 21:46:11 | <koz> | I think Gabriella Gonzales even mentioned that we don't even have to care if IO is async or not, even for FFI. |
| 21:46:19 | <koz> | Which is actually miraculous. |
| 21:47:08 | <maerwald> | geekosaur: what do you mean? |
| 21:47:55 | <geekosaur> | /foo/bar/baz/../quux to /foo/bar/qux is wrong if baz is a symlink |
| 21:47:56 | × | xcmw quits (~textual@dyn-72-33-2-250.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:47:59 | <maerwald> | `..` is a file, not some special path component |
| 21:48:00 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 21:48:08 | × | cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1)) |
| 21:48:10 | <geekosaur> | yes, but it will point somewhere else |
| 21:48:17 | → | k8yun_ joins (~k8yun@user/k8yun) |
| 21:48:23 | <maerwald> | yes and that's the only possible semantics |
| 21:48:32 | <abastro[m]> | `..` is a file? |
| 21:48:33 | <geekosaur> | precisely because it is an actual directopry entry |
| 21:48:37 | <maerwald> | yes |
| 21:48:44 | <koz> | abastro[m]: Yes. |
| 21:48:47 | <abastro[m]> | Oh hmm |
| 21:48:47 | <geekosaur> | \but it will be an entry in the symlinbked-todirectory and will point to its actual parent |
| 21:48:49 | <koz> | So is '.' for that matter. |
| 21:48:51 | → | alp joins (~alp@user/alp) |
| 21:48:53 | → | shailangsa joins (~shailangs@host86-162-150-212.range86-162.btcentralplus.com) |
| 21:48:57 | <abastro[m]> | So that is how unix is implemented |
| 21:49:10 | <monochrom> | "is" and "file" are very broad in the context of unix. |
| 21:49:13 | <geekosaur> | this is the weak spot in symlinks |
| 21:49:17 | <maerwald> | monochrom: lol |
| 21:49:23 | <monochrom> | Well, "is" is very broad universally. |
| 21:49:38 | → | asocialblade joins (~qsl@user/asocialblade) |
| 21:49:49 | <maerwald> | geekosaur: yeah... mountpoints are cleaner xD |
| 21:49:58 | <abastro[m]> | In my OS class IIRC I hardcoded those entries |
| 21:50:07 | → | wyrd joins (~wyrd@gateway/tor-sasl/wyrd) |
| 21:50:17 | <maerwald> | with mountpoints it gets extra tricky to figure out if your recursive file operation may terminate |
| 21:50:21 | <maerwald> | although it's possible |
| 21:50:27 | <abastro[m]> | So that was the wrong way :< |
| 21:50:58 | <geekosaur> | .recursivefindtrap :) |
| 21:51:18 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 21:51:32 | <sm> | Franciman: what do you like about it ? |
| 21:51:48 | × | k8yun quits (~k8yun@user/k8yun) (Ping timeout: 260 seconds) |
| 21:52:07 | <Franciman> | sm: i was doing some tests on my 70lines lambda calculus implementation |
| 21:52:30 | <maerwald> | here's why unix is hard: https://github.com/valvesoftware/steam-for-linux/issues/3671 |
| 21:52:36 | <maerwald> | classic |
| 21:52:40 | <Franciman> | and while laziness is a big problem. Once you get rid of lazy data, haskell's runtime is way more efficient than MLton sml runtime |
| 21:52:43 | <Franciman> | by a lot |
| 21:52:50 | <Franciman> | i think it may be laziness! |
| 21:52:52 | <Franciman> | but who knows |
| 21:52:55 | <Franciman> | btw great job |
| 21:53:14 | <sm> | great job everyone |
| 21:55:01 | <sm> | also, great job on http://play-haskell.tomsmeding.com:8123/play, maerwald & tomsmeding |
| 21:55:17 | <maerwald> | we're still looking for someone with CSS skillz |
| 21:55:30 | <sm> | any particular CSS problem causing trouble ? |
| 21:55:37 | <maerwald> | it looks so 80s |
| 21:55:52 | <maerwald> | dialing in with my 56k modem |
| 21:56:06 | <tomsmeding> | sm: my friend @lieuwex helped me fix the most egregious one, the output making the page overflow |
| 21:56:12 | × | pnotequalnp quits (~kevin@user/pnotequalnp) (Ping timeout: 240 seconds) |
| 21:56:55 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 21:57:04 | <maerwald> | tomsmeding: sorting the list [1..100000] already times out xD |
| 21:57:11 | <maerwald> | kinda funny |
| 21:57:17 | <tomsmeding> | wa- |
| 21:57:22 | <boxscape_> | hmm is it intentional that the default program, the quicksort, removes duplicates? |
| 21:57:26 | <sm> | I kind of like the UI of https://hackmd.io/t_T9l454R5aRWwNsFT0SaA?both. Ctrl-Alt-e/v/b shows edit/view/both. Strong light/dark split to show which is which |
| 21:57:43 | × | fendor quits (~fendor@178.165.199.73.wireless.dyn.drei.com) (Remote host closed the connection) |
| 21:57:45 | <tomsmeding> | boxscape_: you found a bug in maerwald's code |
| 21:57:49 | <boxscape_> | (by having filter (>) and filter (<) rather than one of them being e.g. filter (<=)) |
| 21:58:06 | <monochrom> | I like 80s. |
| 21:58:19 | × | alp quits (~alp@user/alp) (Ping timeout: 260 seconds) |
| 21:58:41 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 21:58:53 | <maerwald> | tomsmeding: it's a test |
| 21:58:58 | <tomsmeding> | lol |
| 21:59:13 | <monochrom> | In fact as a matter of principle I also dislike total strangers using CSS to condescend on me what are "good" background colours and foreground colours. |
| 21:59:22 | <sm> | how hard would it be to embed the haskell code in the url ? |
| 21:59:41 | <maerwald> | url's have a length limit |
| 21:59:57 | <maerwald> | the idea is to integrate it with the pastebin |
| 22:00:01 | <tomsmeding> | yeah |
| 22:00:18 | <sm> | 👍️ |
| 22:00:26 | <tomsmeding> | as you can see on http://play-haskell.tomsmeding.com:8123/LwAM5UU5 I got half-way with one direction of that :p |
| 22:01:43 | × | k8yun_ quits (~k8yun@user/k8yun) (Quit: Leaving) |
| 22:02:21 | <abastro[m]> | <maerwald> "here's why unix is hard: https:/..." <- Interesting that hasufell, ghcup dev, was actively involved in the issue discussion |
| 22:02:47 | <tomsmeding> | abastro[m]: maerwald = hasufell |
| 22:03:02 | <abastro[m]> | Oh?!?!? |
| 22:03:15 | × | DNH quits (~DNH@2a02:8108:1100:16d8:61e3:f551:d48e:e2b3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:03:26 | <maerwald> | I was just trying to get hired as a bash developer xD |
| 22:03:32 | × | unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 252 seconds) |
| 22:03:38 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 22:03:41 | → | DNH joins (~DNH@2a02:8108:1100:16d8:61e3:f551:d48e:e2b3) |
| 22:03:50 | <Franciman> | maerwald: are you saying that it's easier to live as a bash dev than fixing laziness bugs? |
| 22:04:05 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 250 seconds) |
| 22:04:23 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 22:04:27 | <maerwald> | bash is like coding C... one line per day is exhausting and then you think about it over the weekend and find bugs during your sleep |
| 22:04:38 | → | Pickchea joins (~private@user/pickchea) |
| 22:04:51 | <abastro[m]> | XD |
| 22:05:01 | <abastro[m]> | At least you do not need to type much |
| 22:05:02 | <sm> | not any more! Fire up fly-check & ShellCheck ! |
| 22:05:37 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 246 seconds) |
| 22:05:41 | <abastro[m]> | ShellCheck noticed my `dev/null | ..` and removed it. |
| 22:05:55 | <maerwald> | hehe, ShellCheck is good. But there are some corner cases where it may introduce a bug if you rely on quirks, especially with quoting |
| 22:06:03 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 22:07:00 | <abastro[m]> | Relying on quoting quirks? |
| 22:07:23 | <maerwald> | tomsmeding: I'm thinking the playground should randomize the starting code |
| 22:07:56 | <tomsmeding> | give a different bug to each visitor? |
| 22:07:57 | <maerwald> | maybe from the pastes... can we keep a list of runnable playground pastes? |
| 22:08:05 | → | kaph_ joins (~kaph@net-93-67-57-97.cust.vodafonedsl.it) |
| 22:08:19 | <maerwald> | those that compiled |
| 22:08:23 | <boxscape_> | is that a typescript autocompletion when trying to write an import statement? |
| 22:08:35 | × | kaph quits (~kaph@net-31-156-214-2.cust.vodafonedsl.it) (Ping timeout: 256 seconds) |
| 22:08:35 | <maerwald> | some internal table with maybe 100 results |
| 22:08:40 | <maerwald> | boxscape_: yeah |
| 22:08:42 | <tomsmeding> | I think we cannot just present people's pastes like that, have to curate a selection |
| 22:08:47 | <boxscape_> | I see |
| 22:09:22 | <maerwald> | they have a rust parser https://github.com/codemirror/codemirror.next/tree/5377e5104d3424734b5fa0f5f2d66a5a7ea916f4/lang-rust |
| 22:09:24 | <maerwald> | but not haskell |
| 22:09:26 | <maerwald> | darn |
| 22:10:59 | <maerwald> | the parser is lazy or so... so even if you have 100million lines and you scroll down, it won't crash your page |
| 22:11:08 | <sm> | idea to get more styling help: include a link to the source repo, and one specifically to the css file asking for help |
| 22:11:13 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 22:12:05 | <tomsmeding> | ok maybe the play thing should truncate output if it's too long |
| 22:12:30 | <tomsmeding> | my firefox had some issue rendering [1..1000000] |
| 22:12:51 | <maerwald> | doesn't seem too hard though: https://github.com/lezer-parser/rust/blob/main/src/rust.grammar |
| 22:12:58 | <maerwald> | who knows haskell grammar well? :p |
| 22:12:59 | <tomsmeding> | but yeah so mergesort doesn't time out where quicksort does :) |
| 22:13:02 | <tomsmeding> | mergesort > quicksort in haskell |
| 22:13:22 | <tomsmeding> | "lezer" -- that sounds like dutch |
| 22:13:23 | <maerwald> | the best mergesort is bottom-up |
| 22:13:34 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 22:13:35 | <maerwald> | I think it's also partly in-place |
| 22:14:11 | → | yauhsien joins (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) |
| 22:14:50 | <maerwald> | we can also do the quicksort in-place |
| 22:15:06 | × | kuribas quits (~user@ptr-25vy0i96ymkampl0mim.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 22:15:14 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:15:18 | <boxscape_> | Might it be possible to use the GHC API for parsing? |
| 22:15:25 | <tomsmeding> | boxscape_: in JS? |
| 22:15:33 | <boxscape_> | ah, hm, I didn't think of that |
| 22:15:42 | <maerwald> | ghcjs? :D |
| 22:15:47 | <tomsmeding> | plz no |
| 22:15:50 | <maerwald> | haha |
| 22:16:06 | <tomsmeding> | I've said this before, ghcjs is an amazing technical feat, but... |
| 22:17:33 | <boxscape_> | asterius? I suppose it's probably difficult to get that to compile the ghc library |
| 22:17:41 | <boxscape_> | (mainly because it's not listed as supported) |
| 22:18:37 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 240 seconds) |
| 22:18:50 | <maerwald> | maybe the new HF ED can do it |
| 22:18:58 | <maerwald> | as a community test |
| 22:19:00 | <maerwald> | :D |
| 22:19:03 | × | yauhsien quits (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 22:19:38 | <boxscape_> | to make it clear to him what he signed up for eh |
| 22:19:55 | <abastro[m]> | In the github thread I saw hasufell fighting (someone who likely doesn't know what they are talking about). Interesting.. |
| 22:20:31 | <maerwald> | impossible |
| 22:21:28 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 22:22:30 | <janus> | abastro[m]: https://hasufell.github.io/pages/Contact.html |
| 22:22:40 | <abastro[m]> | * hasufell fighting against (someone who |
| 22:22:43 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 22:23:08 | <abastro[m]> | Oh |
| 22:23:27 | <abastro[m]> | It is also powered by hakyll, hmm seems like many ppl are using it |
| 22:23:43 | <abastro[m]> | Does it mean I can use it as well right |
| 22:24:19 | <sm> | nope, it has reached the cutoff, sorry, no more hakyll sites allowed |
| 22:26:11 | <abastro[m]> | Oh noooo |
| 22:27:51 | <hpc> | a few rails slots just opened up, hurry before you're forced to use wordpress :D |
| 22:30:08 | × | Tuplanolla quits (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:30:24 | → | xcmw joins (~textual@dyn-72-33-2-250.uwnet.wisc.edu) |
| 22:30:43 | <abastro[m]> | Btw, how feasible is it to use purescript on hakyll |
| 22:31:06 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:31:20 | <xcmw> | kuribas: It is supposed to solve the problem of reusing what can be reused and only computing what is needed for LSP |
| 22:31:21 | <abastro[m]> | It seems that purescript does botb html generation and redirecting part, so it makes me a bit confused. |
| 22:32:15 | → | seydar joins (~seydar@154-27-113-252.starry-inc.net) |
| 22:32:28 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 22:32:34 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 22:32:41 | <seydar> | is Network.Simple.TCP actually meant to be used? its version is 0.4.5, so I'm worried that I'm going down the wrong path by learning it |
| 22:33:07 | <seydar> | it's just... listening on a port via Network.Simple is kinda (please don't hurt me) burdensome |
| 22:34:24 | × | jgeerds quits (~jgeerds@d5364b87.access.ecotel.net) (Ping timeout: 272 seconds) |
| 22:34:26 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 22:35:08 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 22:35:32 | <davean> | The standard package is https://hackage.haskell.org/package/network |
| 22:35:35 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
| 22:36:21 | × | Inst quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds) |
| 22:37:41 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 22:37:46 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 22:40:47 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 22:41:33 | <geekosaur> | I think it's a low level interface, roughly the same thing you'd do in C to listen on an arbitrary port. Normally you'd use a higher levelpackage for whatever it is you're trying to do |
| 22:42:28 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 22:44:02 | <seydar> | geekosaur: is there a preferred higher-level package for network ops? or is it, like davean said, just Network? |
| 22:44:15 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 22:44:28 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 246 seconds) |
| 22:44:29 | <seydar> | I'm struggling to figure out how to get `getAddrInfo` to take a port number (1024) instead of a port hint ("http") |
| 22:45:41 | <sm> | abastro hakyll just makes websites, so why couldn't you publish some purescript on those too |
| 22:46:09 | <dons> | morning all. |
| 22:46:16 | <abastro[m]> | Oh, makes sense! Thank you |
| 22:46:20 | <sm> | morning dons o/ |
| 22:46:22 | <abastro[m]> | Perhaps then I'd learn purescript |
| 22:46:45 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 22:47:02 | <davean> | seydar: if you have the port number and such, you wouldn't use getAddrInfo? |
| 22:47:10 | <sm> | (but of course it'll be confusing, they're each confusing on their own so you'll have double the fun) |
| 22:47:11 | <davean> | seydar: the only thing getAddrInfo does is resolve that |
| 22:47:18 | <seydar> | davean: I'm having trouble understanding the API — what should i be using instead? |
| 22:47:37 | <davean> | seydar: if you ahve the numeric versions you just construct the AddrInfo you want |
| 22:47:39 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:47:41 | <davean> | because you *already have it* |
| 22:48:46 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Quit: alx741) |
| 22:49:31 | <monochrom> | I suppose getAddrInfo also does hostname lookup, not just "http"->80. |
| 22:49:50 | <davean> | hence "versions" |
| 22:49:53 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 22:50:45 | <monochrom> | But ironically the doc has "let hints = defaultHints { addrFlags = [AI_NUMERICHOST], addrSocketType = Stream }" which is relevant for supplying "80" as the string, if you poke around the names mentioned. |
| 22:51:14 | <monochrom> | Ugh damn English. s/relevant for/relevant to/ . |
| 22:51:17 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 22:51:20 | <monochrom> | Prepositions die die die. |
| 22:51:37 | → | yauhsien joins (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) |
| 22:52:06 | <monochrom> | Err nevermind NUMERICHOST is not about service/port, sorry! |
| 22:52:11 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 250 seconds) |
| 22:52:30 | <monochrom> | But there is AI_NUMERICSERV |
| 22:52:53 | × | Topsi quits (~Tobias@dyndsl-095-033-095-210.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 22:53:10 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 22:53:44 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 22:54:09 | <monochrom> | OTOH to a large extent you can supply a junk (but working) service name, get your SockAddr, then override its port part to your liking. That is, if you use getAddrInfo at all, which is not compulsory. |
| 22:54:34 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 22:54:56 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 22:55:51 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 250 seconds) |
| 22:56:38 | <monochrom> | Because for DNS lookup you can use network-bsd instead. |
| 22:56:57 | × | yauhsien quits (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
| 22:57:14 | × | seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 260 seconds) |
| 22:58:06 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 22:59:15 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 23:00:00 | → | seydar joins (~seydar@154-27-113-252.starry-inc.net) |
| 23:00:18 | <koz> | Is there a way to programmatically dump the contents of PATH? |
| 23:01:07 | <monochrom> | System.Environment has some kind of getEnv. |
| 23:01:39 | <geekosaur> | https://downloads.haskell.org/ghc/8.10.7/docs/html/libraries/filepath-1.4.2.1/System-FilePath-Posix.html#g:2 ? |
| 23:01:44 | <monochrom> | lookupEnv is probably nicer to work with. |
| 23:01:54 | <geekosaur> | (well, yiou';d use System.FilePath for portability) |
| 23:02:00 | <monochrom> | Oh, that's even nicer. |
| 23:02:05 | <koz> | Nice! |
| 23:02:20 | <seydar> | monochrom: what's my alternative to getAddrInfo? |
| 23:02:34 | <seydar> | I'm struggling to just create a SockAddrInet |
| 23:03:03 | <monochrom> | I need to use that in my https://github.com/treblacy/ep haha, as opposed to rolling my own splitter. |
| 23:05:23 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 250 seconds) |
| 23:06:00 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 23:07:00 | <seydar> | davean: since I don't need to use getAddrInfo, what is the alternative? It feels like `SockAddrInet 1024 (word32 conversion of a string)` is the wrong answer |
| 23:08:36 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 23:09:59 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 23:11:11 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 245 seconds) |
| 23:14:03 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 23:14:46 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 23:15:43 | × | mud quits (~mud@user/kadoban) (Quit: quit) |
| 23:17:02 | × | zeenk quits (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94) (Quit: Konversation terminated!) |
| 23:17:25 | <janus> | seydar: did you see https://hackage.haskell.org/package/network-3.1.2.7/docs/Network-Socket.html#v:tupleToHostAddress |
| 23:18:09 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 23:18:16 | <seydar> | janus: i did, but how do i get to the tuple to begin with? |
| 23:19:07 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds) |
| 23:19:18 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 23:19:42 | <janus> | seydar: oh, you're not starting with an IP address? |
| 23:19:52 | × | hololeap quits (~hololeap@user/hololeap) (Excess Flood) |
| 23:20:13 | <seydar> | janus: I have "0.0.0.0" and 1024, and I'm trying to create an address from that |
| 23:20:35 | <janus> | right, then you can just put 0 in each of those tuple entries using tupleToHostAddress |
| 23:20:36 | → | zeenk joins (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94) |
| 23:20:40 | <seydar> | i can combine them and do SockAddrUnix "0.0.0.0:1024", but I'm trying to create an addr with separate parts, akin to SockAddrInet 1024 "0.0.0.0" |
| 23:20:54 | <janus> | % :m +Network.Socket |
| 23:20:55 | <yahb> | janus: ; <no location info>: error:; Could not find module `Network.Socket'; It is not a module in the current program, or in any known package. |
| 23:21:00 | <janus> | i think you can do |
| 23:21:10 | <janus> | > tupleToHostAddress 1024 (0,0,0,0) |
| 23:21:11 | <lambdabot> | error: |
| 23:21:11 | <lambdabot> | Variable not in scope: |
| 23:21:11 | <lambdabot> | tupleToHostAddress :: t0 -> (a0, b0, c0, d0) -> t |
| 23:21:12 | → | hololeap joins (~hololeap@user/hololeap) |
| 23:21:38 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 23:21:56 | <seydar> | > tupleToHostAddress (127, 0, 0, 1) |
| 23:21:58 | <lambdabot> | error: |
| 23:21:58 | <lambdabot> | Variable not in scope: tupleToHostAddress :: (a0, b0, c0, d0) -> t |
| 23:22:11 | <seydar> | janus: but you're correct, that works in ghci for me |
| 23:22:13 | × | zeenk quits (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94) (Client Quit) |
| 23:22:33 | <janus> | yeah, each dot separated number is a word8 in haskell |
| 23:22:45 | <seydar> | ah interesting |
| 23:22:51 | <janus> | a Word8 is a byte, and an IPv4 address is 4 bytes |
| 23:24:02 | <seydar> | i hate that i now have to split my hostname |
| 23:24:14 | <seydar> | is this how everyone else is doing network ops, or am i doing something crazy? |
| 23:24:46 | <janus> | i think you are correct in that there is no platform-independent way to represent an IP address with its port |
| 23:25:02 | <janus> | consider that IPv6 also uses colons inside of it... |
| 23:25:08 | → | deadmarshal_ joins (~deadmarsh@95.38.118.21) |
| 23:25:23 | <janus> | so i think it is simplest to just store the port separately of the address |
| 23:25:40 | <seydar> | i now understand the impetus behind haskell: we should all be pure and disabuse ourselves of IO |
| 23:26:12 | <janus> | many command line tools take the port number completely separately. somehow concatenating the address and the port is something you should only really need for URL's. but you're not dealing with URL's |
| 23:26:34 | <janus> | better not invent yet another encoding scheme that will break whenever you choose to add IPv6 support... |
| 23:26:38 | <seydar> | i'm storing the port separately, but now I have to write a splitter to split the hostname up on dots to turn it into a Word32 |
| 23:26:43 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 23:28:13 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:28:20 | <janus> | you don't need to make a Word32 if you're using the function we talked about... |
| 23:28:42 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 23:29:31 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 23:29:38 | × | deadmarshal_ quits (~deadmarsh@95.38.118.21) (Ping timeout: 260 seconds) |
| 23:29:38 | <seydar> | janus: my hostname comes in as a string |
| 23:30:22 | <seydar> | so i need to turn it into an IPv4 quadruple |
| 23:30:43 | × | acidjnk quits (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 23:31:33 | <Axman6> | (,,,) <$> word8 <* char '.' <*> word8 <* char '.' <*> word8 <* char '.' <*> word8 |
| 23:32:52 | × | boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Quit: Connection closed) |
| 23:34:18 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds) |
| 23:34:41 | <janus> | you can also do it without attoparsec: do { [a,b,c,d] <- pure $ splitOn "." "127.0.0.1"; (,,,) <$> readMaybe a <*> readMaybe b <*> readMaybe c <*> readMaybe d } :: Maybe (Word8,Word8,Word8,Word8) |
| 23:35:16 | <janus> | @package split |
| 23:35:16 | <lambdabot> | https://hackage.haskell.org/package/split |
| 23:36:39 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 23:37:42 | × | alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Client Quit) |
| 23:37:53 | <janus> | seydar: btw when you say 'hostname' that makes it sound like you're using dns (to me at least). but it seems like you're not |
| 23:37:55 | → | mvk joins (~mvk@2607:fea8:5cc3:7e00::7980) |
| 23:40:29 | → | rawley joins (~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca) |
| 23:42:32 | <janus> | seydar: btw SockAddrUnix needs to be used with a path to a unix socket which exists on your filesystem. you can't just plug an IP address in there |
| 23:43:45 | <janus> | ok, i am not 100% sure it needs to exist since there may also be a way to create unix sockets with this type. but IP address is wrong for sure |
| 23:44:09 | <geekosaur> | it should *not* exist, if you're intending to listen on it |
| 23:44:57 | <janus> | all right, makes sense |
| 23:45:33 | <geekosaur> | but yes, SockAddrUnix is an AF_UNIX socket represented by an object of filetype 's' in the filesystem, not an IP address. you want SockAddrInet |
| 23:45:58 | <janus> | does windows have Unix sockets? |
| 23:47:04 | <hpc> | no |
| 23:47:12 | <janus> | oh seems like it does https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/ |
| 23:47:27 | <hpc> | wuh? |
| 23:47:35 | <janus> | even using winsock, it says |
| 23:47:45 | <monochrom> | Still, the haskell library package may not know about it. |
| 23:49:33 | <geekosaur> | haskell tries to supportolder versions of windows as well, so probably it doesn't |
| 23:52:11 | <seydar> | janus: damn, now i need to install Data.List.Split in order to use splitOn |
| 23:52:17 | <seydar> | this is too much for one day, i'll try again tomorrow |
| 23:52:25 | × | seydar quits (~seydar@154-27-113-252.starry-inc.net) (Quit: leaving) |
| 23:52:53 | <janus> | seydar: it's very useful to know how to install libraries though. but see you tomorrow, good night |
| 23:54:15 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
All times are in UTC on 2022-03-29.