Hi all, I'm trying to understand the paper "Time and space profiling for non-strict, higher-order functional languages"[1] and I'm hoping that experienced GHC devs here could help me clarifying some points. Here's my question:
In Figure 5, I don't understand why no costs are attributed to `app2` rule(substitution rule). It looks like to me that this is the function application rule so `A` cost should be attributed here, but in the paper `A` cost is attributed in `app1` rule, which if I understand correctly shows how function part of an application is evaluated. I know about the "lexical scoping rule" explained in 2.4 and the cost should be attributed to the cost center in the scope of lambda definition instead of the cost center in "application site", but Figure 5 still doesn't make sense to me. To me it looks like that there should be two costs attributed in application rules. First cost is "evaluation of the function" part(which should be attributed in `app1` rule) and second is "substitution" part, which should be attributed in `app2` rule but according to the paper we only have the former cost, and the latter is free(e.g. no costs are attributed in second rule). It would be appreciated if someone could help me clarifying this. I'm also looking for more recent papers about GHC's profiler implementation. I'm especially interested profiling in multi-threaded RTS. Lastly, it'd be appreciated if someone could explain me two Bool fields in `StgSCC` constructor of STG syntax. Thanks! UPDATE: I was reading the paper one more time before sending my question and I found one more confusing part. In 4.1 it says "Lexical scoping will subsume all the costs of applying `and1` to its call sites..." but in 2.4 it says "Lexical scoping: Attribute the cost to "fun", the cost centre which lexically encloses the abstraction." so this two definitions of same thing is actually different. To me it looks like the definition in 4.1 is wrong,, it should be "definition site", not "call site". What am I missing here? [1]: http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=36FE097056F4E03CCDD38B598158292E?doi=10.1.1.43.6277&rep=rep1&type=pdf --- Ömer Sinan Ağacan http://osa1.net _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs