2026/04/09

Newest at the top

2026-04-09 13:50:14 +0000danza(~danza@user/danza) danza
2026-04-09 13:46:39 +0000 <merijn> Milan_Vanca: Yes, it would be
2026-04-09 13:46:27 +0000fp1(~Thunderbi@staff236.kora-dyn.aalto.fi) fp
2026-04-09 13:34:30 +0000uli-fem(~uli-fem@115.128.112.118) (Ping timeout: 255 seconds)
2026-04-09 13:33:29 +0000gmg(~user@user/gehmehgeh) gehmehgeh
2026-04-09 13:30:39 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2026-04-09 13:29:47 +0000uli-fem(~uli-fem@115.128.112.118)
2026-04-09 13:17:59 +0000lbseale(~quassel@user/ep1ctetus) ep1ctetus
2026-04-09 13:17:31 +0000lbseale(~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2026-04-09 13:16:31 +0000uli-fem(~uli-fem@115.128.112.118) (Ping timeout: 264 seconds)
2026-04-09 13:11:39 +0000uli-fem(~uli-fem@115.128.112.118)
2026-04-09 12:57:41 +0000uli-fem(~uli-fem@115.128.112.118) (Ping timeout: 252 seconds)
2026-04-09 12:56:36 +0000 <janus> yay, gershom merged my patch for hackage, now only authorized users can update distro information
2026-04-09 12:56:09 +0000poscat(~poscat@user/poscat) poscat
2026-04-09 12:55:45 +0000poscat(~poscat@user/poscat) (Remote host closed the connection)
2026-04-09 12:55:44 +0000Enrico63(~Enrico63@host-212-171-80-94.pool212171.interbusiness.it) (Quit: Client closed)
2026-04-09 12:55:06 +0000castan(~castan@188.26.38.50) (Client Quit)
2026-04-09 12:51:52 +0000castan(~castan@188.26.38.50)
2026-04-09 12:49:37 +0000karenw(~karenw@user/karenw) karenw
2026-04-09 12:46:08 +0000haritz(~hrtz@user/haritz) (Ping timeout: 252 seconds)
2026-04-09 12:46:03 +0000haritzondo(~hrtz@140.228.70.141)
2026-04-09 12:39:40 +0000 <Milan_Vanca> Btw haskell spec probably doesn't say anything about keeping values and reevaluating them right? If my implementation would always reevaluate everything then would it be valid haskell implementation?
2026-04-09 12:38:51 +0000 <Milan_Vanca> I think reading code yields the most insights but one can pick implementation details that are more GHC than haskell
2026-04-09 12:37:44 +0000 <lambdabot> https://dl.acm.org/doi/pdf/10.1145/99370.99385
2026-04-09 12:37:43 +0000 <merijn> @where stg
2026-04-09 12:37:39 +0000 <merijn> Milan_Vanca: The essence of that paper is "how do you compile Haskell's lazy semantics to x86 hardware", which covers a lot low level details related to how GHC compiled Haskell actually runs
2026-04-09 12:36:32 +0000 <merijn> Milan_Vanca: If you're comfortable with C and some assembly I've always found that STG paper rather enlightening
2026-04-09 12:35:53 +0000 <Milan_Vanca> merijn: Mostly procedural ones. Haskell is my first attempt at FP
2026-04-09 12:34:38 +0000 <merijn> i.e. what languages are you experienced with, etc.?
2026-04-09 12:34:21 +0000 <merijn> Milan_Vanca: What's your background?
2026-04-09 12:31:20 +0000tremon(~tremon@83.80.159.219) tremon
2026-04-09 12:28:07 +0000 <Milan_Vanca> Ty all :) I am gonna also read that link
2026-04-09 12:27:33 +0000 <ski> Milan_Vanca ^
2026-04-09 12:27:30 +0000 <lambdabot> strictness-guarded-recursion>
2026-04-09 12:27:30 +0000 <lambdabot> nfshost.com/articles/lazy-eval.html>; "Laziness, strictness, guarded recursion" by bitemyapp at <https://github.com/bitemyapp/learnhaskell/blob/master/specific_topics.md#user-content-laziness-
2026-04-09 12:27:30 +0000 <lambdabot> "Lazy Evaluation of Haskell" by monochrom at <http://www.vex.net/~trebla/haskell/lazy.xhtml>; "The Incomplete Guide to Lazy Evaluation (in Haskell)" by apfelmus in 2015-03-07 at <https://apfelmus.
2026-04-09 12:27:29 +0000 <ski> @where lazy
2026-04-09 12:25:32 +0000Googulator(~Googulato@94-21-172-213.pool.digikabel.hu)
2026-04-09 12:25:26 +0000qqq(~qqq@185.54.23.237) (Remote host closed the connection)
2026-04-09 12:25:24 +0000Googulator(~Googulato@94-21-172-213.pool.digikabel.hu) (Quit: Client closed)
2026-04-09 12:25:22 +0000CiaoSen(~Jura@p549cb690.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2026-04-09 12:24:05 +0000 <merijn> a thunk is just "some computation that unfolds into a (sub)graph" and evaluation is "collapsing a graph into a result"
2026-04-09 12:22:33 +0000 <merijn> Milan_Vanca: Eventually as evaluation procedes parts of the original graph become unreachable (and thus eligible for GC)
2026-04-09 12:22:03 +0000 <merijn> refers to the result (regardless of how you reach x)
2026-04-09 12:21:57 +0000 <merijn> Milan_Vanca: basically we start out with a graph of expressions with main as root, which references x and 'one_hour_long', where 'one_hour_long' in turn also references x (which is a subgraph of '4' '+' and '1'), as code gets evaluated these graphs expand and collapse as we force new computation. Starting to evaluate 'x' first materialises this subgraph of 4+1, once that evaluation is complete 'x' just
2026-04-09 12:21:16 +0000uli-fem(~uli-fem@115.128.112.118)
2026-04-09 12:19:55 +0000 <merijn> Milan_Vanca: No
2026-04-09 12:19:50 +0000 <Milan_Vanca> Does it matter if X is defined in another module?
2026-04-09 12:19:49 +0000 <merijn> Milan_Vanca: It helps to think of a haskell program as a data structure that is mutated
2026-04-09 12:16:35 +0000synchromesh(~john@2406:5a00:2412:2c00:e029:fa8c:cb38:398f) synchromesh