!vyEDBdbmzqApWaugdd:matrix.org

jruby

105 Members
Get 9.4.8.0! http://jruby.org/ | http://wiki.jruby.org | http://logs.jruby.org/jruby/ | http://bugs.jruby.org | Paste at http://gist.github.com27 Servers

Load older messages


SenderMessageTime
26 Jul 2024
@enebo:matrix.orgenebowhich would be special logic15:29:59
@headius:matrix.orgheadiusmaybe dummy scope15:30:02
@headius:matrix.orgheadiusbut this also deopts vars to use dynscope even though it's totally unnecessary15:30:14
@enebo:matrix.orgeneboit is just we have some generic logic and that logic could go oh dummy scope don't look at current one15:30:24
@headius:matrix.orgheadiusso basically we just fully deopt the block only to be able to walk up to the return scope15:30:29
@headius:matrix.orgheadiusI think I knew this was how it works but I had forgotten... this could be deopting tons of scope15:30:51
@enebo:matrix.orgenebobut I don't really know how we do that unless we assign scope as a temp or something in this case15:30:56
@enebo:matrix.orgeneboright not I think it is just looking a getCurrentScope15:31:06
@headius:matrix.orgheadiusit makes this language impl dreadfully slow15:31:06
@headius:matrix.orgheadiusright that's how it gets the scopes to walk15:31:24
@enebo:matrix.orgeneboSo I think if we give scope another temp var and not %scope we can initially give it dummy but we would then always need to indirect through at temp which would be copy(the_temp, %scope) or something15:32:33
@enebo:matrix.orgeneboAnd I am not looking at code as I say this but I believe we are looking at runtime state directly15:32:56
@headius:matrix.orgheadius we have logic to reuse parent scope for for 15:33:31
@enebo:matrix.orgeneboanyways the way to fix this is that we look at current scope and it is the method scope but we are still in the block15:33:37
@headius:matrix.orgheadiusit would be similar here15:33:41
@enebo:matrix.orgeneboso we need to know in that case we need to unwind more15:33:48
@headius:matrix.orgheadiusright15:33:56
@headius:matrix.orgheadiusI know how to make all this stuff work but it needs time15:34:25
@enebo:matrix.orgeneboyeah so indirecting from just checking scope to a variable where initial is set to dummy/anything really probably fixes this15:34:29
@enebo:matrix.orgenebobut this also means we have to cope with nesting15:34:42
@enebo:matrix.orgenebosince n closures would all have the same runtime scope15:34:54
@enebo:matrix.orgeneboso there is more complexity 15:35:01
@enebo:matrix.orgeneboheh we need another marker 15:35:29
@enebo:matrix.orgeneboGoign to help with lunch bbiab15:35:41
@headius:matrix.orgheadiusI have other things I want to do, like always passing the block's dynscope in as an argument rather than going to context for it15:36:32
@headius:matrix.orgheadiustrying to get it closer to something escape analysis can eliminate rather than pinning it on heap15:36:46
@headius:matrix.orgheadiusand in that case we could pass in a dummy scope as long as it still knew to use normal local vars15:37:01
@headius:matrix.orgheadiussometimes I feel like IR compiler is more complex than it is worth to make it do the right thing15:37:26
@headius:matrix.orgheadiusbut I know I need to understand it better15:39:00
@enebo:matrix.orgeneboyeah I have been reasonably happy in how I can reason with it but I also feel it can be complicated. Sometimes I think it is a function of not having written it originally. Also that it is a design for a compiler and not a runtime. I would also probably redo it with a stack-based design16:16:50

There are no newer messages yet.


Back to Room ListRoom Version: 1