Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→
Page 1 .. 717 718 719 720 721 722 723 724 725 726 727 .. 5022
502,152 events total
2020-10-18 19:27:40 gioyik joins (~gioyik@190.67.155.46)
2020-10-18 19:28:02 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-18 19:28:11 evanjs joins (~evanjs@075-129-188-019.res.spectrum.com)
2020-10-18 19:29:11 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
2020-10-18 19:29:41 <hpc> rust's Result sugar in particular is like being in a whole-program Either
2020-10-18 19:30:08 <dolio> You can't in C#, either, which also shows you that the line people take in here about them only being useful because they can be abstracted over is also wrong. :)
2020-10-18 19:32:06 <hpc> it's a little bit of both
2020-10-18 19:32:10 christo joins (~chris@81.96.113.213)
2020-10-18 19:32:14 <hpc> like how you don't see much CPS in python code
2020-10-18 19:32:35 <hpc> even though it has "first-class functions"
2020-10-18 19:32:39 × gioyik quits (~gioyik@190.67.155.46) (Ping timeout: 260 seconds)
2020-10-18 19:32:40 × stefan-__ quits (~cri@42dots.de) (Read error: Connection reset by peer)
2020-10-18 19:32:44 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-18 19:32:56 × codygman quits (~codygman@47-184-107-46.dlls.tx.frontiernet.net) (Ping timeout: 256 seconds)
2020-10-18 19:33:00 stefan-__ joins (~cri@42dots.de)
2020-10-18 19:33:07 <dolio> CPS just makes stack usage worse in python.
2020-10-18 19:33:21 × proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection)
2020-10-18 19:33:29 <Rembane> Is there an optimization needed to not bloat the stack?
2020-10-18 19:33:50 <hpc> well, that too
2020-10-18 19:34:00 <dolio> You need 'proper tail recursion'.
2020-10-18 19:34:14 <hpc> still, that hardly stops ruby programmers from doing the same thing
2020-10-18 19:35:22 <dolio> Do you mean blocks?
2020-10-18 19:35:32 <dolio> Those are a little less aggresive than CPS.
2020-10-18 19:35:54 proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net)
2020-10-18 19:36:07 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-10-18 19:36:49 × christo quits (~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-10-18 19:36:52 <dolio> It definitely influences the designs people use, tough.
2020-10-18 19:37:00 × albertus1 quits (~seb@x4db9b903.dyn.telefonica.de) (Quit: Leaving.)
2020-10-18 19:37:04 <dolio> Having a good syntax for it.
2020-10-18 19:37:04 <hpc> they result in the same sort of code
2020-10-18 19:37:21 gioyik joins (~gioyik@190.67.155.46)
2020-10-18 19:37:41 <Rembane> dolio: Got it. Does this imply that they have proper tail recursion in the Javascript engines, because I see Javascript code that looks awfully lot like CPS
2020-10-18 19:37:42 codygman joins (~codygman@2600:380:f900:eb14:1646:9538:6f47:89d5)
2020-10-18 19:38:16 <dolio> Some might now, but they've been doing CPS a lot longer than that.
2020-10-18 19:39:22 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-18 19:39:22 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-18 19:39:22 GyroW joins (~GyroW@unaffiliated/gyrow)
2020-10-18 19:39:22 <hpc> setTimeout does a nice job of resetting things, in any event
2020-10-18 19:39:43 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
2020-10-18 19:40:05 × proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Ping timeout: 240 seconds)
2020-10-18 19:40:17 <hpc> or all sorts of browser built-in asynchronous stuff really
2020-10-18 19:40:25 <hpc> javascript tends to run in short bursts
2020-10-18 19:40:46 <dolio> It's specific stuff that uses that, though, because there's basically no other choice. If you tried to just turn some loops into CPS or something, you'd have a bad time.
2020-10-18 19:40:50 <Rembane> That's true.
2020-10-18 19:41:24 <dolio> They're using it for pseudo threading stuff, kind of.
2020-10-18 19:41:55 × jmsx quits (~jordan@li1158-85.members.linode.com) (Quit: bye o/)
2020-10-18 19:42:02 × knupfer quits (~Thunderbi@200116b82c6f4e003906994b36cffa11.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-10-18 19:42:04 × gioyik quits (~gioyik@190.67.155.46) (Ping timeout: 256 seconds)
2020-10-18 19:42:39 × geekosaur quits (ae68c070@cpe-174-104-192-112.neo.res.rr.com) (Remote host closed the connection)
2020-10-18 19:45:57 <dolio> Lack of sensible handling for this doesn't make much sense, but that's another topic, I guess.
2020-10-18 19:46:05 × alp quits (~alp@2a01:e0a:58b:4920:a554:1244:1f69:224d) (Ping timeout: 272 seconds)
2020-10-18 19:46:42 × recon_- quits (~quassel@2602:febc:0:b6::6ca2) (Ping timeout: 260 seconds)
2020-10-18 19:48:18 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-18 19:48:25 × dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 240 seconds)
2020-10-18 19:50:19 recon_- joins (~quassel@208.87.96.9)
2020-10-18 19:52:46 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-10-18 19:54:18 <dolio> Rembane: By the way, "proper tail recursion," is what Scheme calls it, but I think it's a bad name, because it's not about recursion.
2020-10-18 19:55:13 × jchia__ quits (~jchia@58.32.37.146) (Quit: Leaving.)
2020-10-18 19:55:13 <Rembane> dolio: Is it the transformation of a recursive function that passes some test into a while-function they call proper tail recursion?
2020-10-18 19:55:28 hackage FunGEn 1.1 - A lightweight, cross-platform, OpenGL/GLUT-based game engine. https://hackage.haskell.org/package/FunGEn-1.1 (SimonMichael)
2020-10-18 19:55:32 jchia__ joins (~jchia@58.32.37.146)
2020-10-18 19:55:49 × jchia__ quits (~jchia@58.32.37.146) (Client Quit)
2020-10-18 19:56:03 <monochrom> In Javascript and I suppose Python, you would both CPS and trampoline.
2020-10-18 19:56:05 <dolio> It says that it must be possible to perform an unbounded amount of tail calls (in a bounded amount of space).
2020-10-18 19:56:36 × conal quits (~conal@172.255.125.154) (Quit: Computer has gone to sleep.)
2020-10-18 19:56:58 <monochrom> CPS eliminates non-tail calls. To manually turn tail calls to jumps, you trampoline.
2020-10-18 19:57:11 <monochrom> s/ to / into /
2020-10-18 19:58:04 knupfer joins (~Thunderbi@i59F7FFD6.versanet.de)
2020-10-18 20:00:30 <dolio> Specifically, if you only handle recursive procedures, CPS will ruin it, because CPS builds a heap-allocated function that does a ton of tail calls in a way that isn't obviously direct recursion.
2020-10-18 20:00:55 <dolio> So you need the tail calls in the continuation to behave well, too.
2020-10-18 20:01:07 <Rembane> It's turtles all the way down!
2020-10-18 20:01:16 <dolio> Otherwise you'll have an optimmized loop that builds a function that blows up the stack.
2020-10-18 20:01:25 <monochrom> The ridiculous length people would go to obfuscate their source code, just because "high-level" languages don't grow out of "stack is limited, heap is unlimited".
2020-10-18 20:01:53 <monochrom> forgetting that "I'm a high-level language, I am in a position to actually redefine what 'stack' and 'heap" mean".
2020-10-18 20:03:26 <monochrom> Yeah you will want to do general tail-call optimizations, not just tail-recursion optimizations.
2020-10-18 20:04:15 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: gone to sleep. ZZZzzz…)
2020-10-18 20:04:16 <Rembane> Isn't this what we have good compilers for? Or at least decent runtime systems?
2020-10-18 20:04:45 <dolio> Most people use languages that don't.
2020-10-18 20:05:07 <dolio> Because they're industry standard and popular.
2020-10-18 20:05:49 <dolio> Languages with good compilers/runtimes are for ivory tower academics.
2020-10-18 20:06:12 jmsx joins (~jordan@li1158-85.members.linode.com)
2020-10-18 20:06:13 rprije joins (~rprije@110-175-117-18.tpgi.com.au)
2020-10-18 20:06:16 × isovector1 quits (~isovector@172.103.216.166.cable.tpia.cipherkey.com) (Remote host closed the connection)
2020-10-18 20:06:50 <Rembane> Well, then I prefer the ivory tower languages.
2020-10-18 20:08:38 gioyik joins (~gioyik@190.67.155.46)
2020-10-18 20:10:02 × xff0x quits (~fox@2001:1a81:53f8:9f00:217d:12db:12d5:cd4c) (Ping timeout: 260 seconds)
2020-10-18 20:10:42 xff0x joins (~fox@2001:1a81:53f8:9f00:7c69:3a05:36cd:a9b4)
2020-10-18 20:13:07 × gioyik quits (~gioyik@190.67.155.46) (Ping timeout: 246 seconds)
2020-10-18 20:13:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-10-18 20:15:40 isovector1 joins (~isovector@172.103.216.166)
2020-10-18 20:16:46 <sm[m]> g'day all, I have released an update of https://github.com/haskell-game/fungen (simple 2d opengl-based game engine tested with ghc 8.8, 8.10)
2020-10-18 20:17:43 conal joins (~conal@172.255.125.154)
2020-10-18 20:20:36 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2020-10-18 20:22:03 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
2020-10-18 20:23:58 contiver_ joins (~contiver@84-115-64-62.wifi.dynamic.surfer.at)
2020-10-18 20:24:35 × ggole quits (~ggole@2001:8003:8119:7200:a8c8:f35b:bee4:ed57) (Quit: Leaving)
2020-10-18 20:26:05 × contiver__ quits (~contiver@84-115-64-62.wifi.dynamic.surfer.at) (Ping timeout: 240 seconds)
2020-10-18 20:26:37 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-18 20:27:20 × dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving)
2020-10-18 20:33:45 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)

All times are in UTC.