Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→
Page 1 .. 282 283 284 285 286 287 288 289 290 291 292 .. 17987
1,798,616 events total
2021-06-04 18:16:13 ddellacosta joins (~ddellacos@86.106.121.209)
2021-06-04 18:17:28 × theodorc quits (theodorc@cassarossa.samfundet.no) (Read error: Connection reset by peer)
2021-06-04 18:18:58 taeaad joins (~taeaad@user/taeaad)
2021-06-04 18:20:26 teddyc joins (theodorc@cassarossa.samfundet.no)
2021-06-04 18:20:47 × taeaad quits (~taeaad@user/taeaad) (Client Quit)
2021-06-04 18:21:18 × ddellacosta quits (~ddellacos@86.106.121.209) (Ping timeout: 264 seconds)
2021-06-04 18:21:58 taeaad joins (~taeaad@user/taeaad)
2021-06-04 18:26:07 winircuser-780 joins (~winircuse@170.250.221.149)
2021-06-04 18:27:44 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-06-04 18:29:27 bfrk joins (~Thunderbi@mue-88-130-48-143.dsl.tropolys.de)
2021-06-04 18:31:16 × Guest38 quits (~textual@188-182-241-27-dynamic.dk.customer.tdc.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-04 18:31:53 ServerStatsDisco joins (~serversta@2001:470:69fc:105::1a)
2021-06-04 18:32:04 peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-04 18:32:45 × mccoyb quits (~textual@2601:182:d000:3b50:6d20:ecfa:c38a:3ddb) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-04 18:34:02 Guest38 joins (~textual@188-182-241-27-dynamic.dk.customer.tdc.net)
2021-06-04 18:34:28 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2021-06-04 18:34:37 × winircuser-780 quits (~winircuse@170.250.221.149) (Quit: Powered by WinIRC)
2021-06-04 18:43:15 × fresheyeball quits (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
2021-06-04 18:46:20 jakalx joins (~jakalx@base.jakalx.net)
2021-06-04 18:54:42 vicfred joins (~vicfred@user/vicfred)
2021-06-04 18:54:55 fr33domlover joins (~fr33domlo@angeley.es)
2021-06-04 18:55:11 × tinwood quits (~tinwood@canonical/tinwood) (Remote host closed the connection)
2021-06-04 18:55:15 Baloo_ joins (~Baloo_@141.98.255.150)
2021-06-04 18:57:31 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-04 18:58:10 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a54f:2e66:1417:26d8)
2021-06-04 18:58:16 tinwood joins (~tinwood@general.default.akavanagh.uk0.bigv.io)
2021-06-04 18:58:16 × tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (Changing host)
2021-06-04 18:58:16 tinwood joins (~tinwood@canonical/tinwood)
2021-06-04 19:03:37 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2021-06-04 19:03:46 <eggplantade> Is there a name for the algorithm technique of updating objects by replacing them with a pointer to newer data? It's used in garbage collection, unification, and lazy evaluation
2021-06-04 19:04:28 <lucky> eggplantade: uh, it's not the right term but maybe as a pointer since it's a related idea? copy-on-write
2021-06-04 19:13:59 mpt joins (~tom@p57a566da.dip0.t-ipconnect.de)
2021-06-04 19:14:39 <dminuoso> eggplantade: Can you name an example where updating objects by replacing them with a pointer occurs in lazy evaluation?
2021-06-04 19:16:51 × a6a45081-2b83 quits (~aditya@106.212.70.132) (Quit: Konversation terminated!)
2021-06-04 19:17:06 × haltux quits (~haltux@a89-154-181-47.cpe.netcabo.pt) (Ping timeout: 264 seconds)
2021-06-04 19:17:25 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
2021-06-04 19:19:29 Guest10 joins (~Guest10@187.83.249.216.dyn.smithville.net)
2021-06-04 19:19:43 <eggplantade> A thunk can be implemented as storage for either a closure or a pointer to the closure's evaluated result. The first time the thunk is evaluated, the closure is replaced by a pointer to the evaluated result.
2021-06-04 19:19:51 gaura- joins (~gaura@49.205.120.227)
2021-06-04 19:22:23 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-04 19:22:59 <gaura-> What is the best way to install haskell on windows 10?
2021-06-04 19:23:10 <maerwald> gaura-: chocolatey
2021-06-04 19:23:21 <maerwald> or you beta-test ghcup
2021-06-04 19:23:24 <maerwald> or you use stack
2021-06-04 19:23:24 × bfrk quits (~Thunderbi@mue-88-130-48-143.dsl.tropolys.de) (Ping timeout: 244 seconds)
2021-06-04 19:23:28 <Guest10> is there an idiomatic way to reorder a monadic computation based on runtime/term-level information?
2021-06-04 19:23:30 <Guest10> basically, I have something like "do (a <- monadMa; b <- monadMb; return (f a b))" but I may need to reverse the order of running a & b, and there may be many more steps in the calculation
2021-06-04 19:23:56 Guest9 joins (~Guest9@103.240.170.183)
2021-06-04 19:24:47 <dminuoso> Guest10: You can use a free monad representation to re-manipulate the structure I guess
2021-06-04 19:25:28 × mpt quits (~tom@p57a566da.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2021-06-04 19:26:13 <dminuoso> Though, you cant do this in the general case
2021-06-04 19:28:13 mastarija joins (~mastarija@46.188.137.31)
2021-06-04 19:28:37 × gaura- quits (~gaura@49.205.120.227) ()
2021-06-04 19:29:21 <Guest10> i'm looking into free monads; do you mean that this won't generalize naturally to larger numbers of steps?
2021-06-04 19:30:46 <maerwald> free monads aren't really free
2021-06-04 19:30:59 <maerwald> they come with a performancy cost :p
2021-06-04 19:31:13 <dminuoso> Guest10: No rather that you can't arbitrarily manipulate the structure, but you can generate it easily based on runtime information
2021-06-04 19:31:15 <monochrom> Guest10, it is not the size, but the data dependency.
2021-06-04 19:31:29 <dminuoso> And then run some interpreter on that
2021-06-04 19:31:41 <monochrom> You will have a hard time reordering ma >>= \a -> f a
2021-06-04 19:31:42 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-06-04 19:32:17 <dminuoso> My phrasing "re-manipulate" was poorly chosen. It allows you to express the shape of the monadic computation as data itself, making it easy to express it as a runtime value
2021-06-04 19:32:30 <dminuoso> This lets you decouple generating the shape from running it
2021-06-04 19:32:42 <Guest10> oh i see
2021-06-04 19:33:08 <Guest10> actually that gives me an idea...maybe i could just generate all possible permutations of the calculation order and pick one at runtime?
2021-06-04 19:33:09 <dminuoso> You might not even need a full blown free monad, consider whether perhaps a simple command interpreter is enough
2021-06-04 19:33:45 <dminuoso> I dont know enough about your problem domain to say
2021-06-04 19:34:21 × AgentM quits (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
2021-06-04 19:34:41 <dminuoso> eggplantade: Im not well versed in STG, I thought the closure wasnt replaced, but rather that the entry code was rewritten to return a value written inside that same closure.
2021-06-04 19:34:54 <dminuoso> such that the outside pointer remains unchanged
2021-06-04 19:36:38 <monochrom> No, no code is ever rewritten/overwritten.
2021-06-04 19:36:40 <eggplantade> Data in the STG is a closure that returns itself, isn't it?
2021-06-04 19:37:03 <dminuoso> monochrom: How does the self update work then?
2021-06-04 19:37:30 <monochrom> But, you can always in-place change "Closure ptr_to_code ptr_to_param" to "Value ptr_to_value_on_heap"
2021-06-04 19:38:21 <monochrom> And when the next GC happens, the "Value ptr_to_value_on_heap" is eliminated.
2021-06-04 19:38:33 <monochrom> (because it's a middle-person)
2021-06-04 19:39:28 <dminuoso> Guess its time to download stgi.
2021-06-04 19:39:33 <dminuoso> See if it still builds :)
2021-06-04 19:39:42 arjun joins (~user@user/arjun)
2021-06-04 19:39:50 bfrk joins (~Thunderbi@200116b845d01a0023133a647a2f786d.dip.versatel-1u1.de)
2021-06-04 19:40:05 <monochrom> Did you know of https://github.com/takenobu-hs/haskell-ghc-illustrated ?
2021-06-04 19:40:43 <dminuoso> I think I have seen it a long long time ago. Probably when I was really new to Haskell
2021-06-04 19:40:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-04 19:42:11 <monochrom> I think it's very valuable to revisit it now. You are now in a position to understand everything it says. :)
2021-06-04 19:42:17 ubert1 joins (~Thunderbi@p200300ecdf259df0e6b318fffe838f33.dip0.t-ipconnect.de)
2021-06-04 19:42:25 × boxscape quits (~boxscape@user/boxscape) (Ping timeout: 245 seconds)
2021-06-04 19:42:31 <monochrom> It does have one slide "Thunk and update" for this one.
2021-06-04 19:43:03 <arjun> that looks like a nice weekend read monochrom
2021-06-04 19:43:19 <monochrom> I think the slide set is very good preparation before reading the STG papers etc.
2021-06-04 19:43:35 × ubert quits (~Thunderbi@p200300ecdf259d40e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2021-06-04 19:43:35 ubert1 is now known as ubert
2021-06-04 19:44:13 <monochrom> You can also use it as reference material. (I do.) You skim it to know which questions it answers. Then put it aside. When one day you really need an answer, go again.
2021-06-04 19:45:15 <monochrom> E.g., I didn't learn the thread stuff until I really had an urge to.
2021-06-04 19:45:17 fluffyballoon joins (~fluffybal@pat-verona-h.epic.com)
2021-06-04 19:45:42 <monochrom> I'll use this analogy.
2021-06-04 19:46:17 lavaman joins (~lavaman@98.38.249.169)
2021-06-04 19:46:32 <monochrom> the academic papers and even some of GHC wiki : sheet music, the full score of a two-hour-bloody-long symphony
2021-06-04 19:46:37 boxscape joins (~boxscape@user/boxscape)
2021-06-04 19:46:50 <monochrom> those slides : a performance of that music
2021-06-04 19:47:12 <monochrom> For most of us, it makes sense to listen to a performance before reading the score. :)

All times are in UTC.