missionary 2024-12-12

Could someone help me with this cloroutine bug: https://github.com/leonoel/cloroutine/pull/33 Specifically: • Is my analysis correct, can we just skip constants during SSA? • If yes, how to exempt constants from intermediate bindings? (First attempt I'm trying to hack it into collect, but that's probably wrong)

@bendlas I pushed a fix for the regressions on your PR, could you confirm it solves your problem ?

It looks correct to me, it may also simplify generated code as a bonus. I have no idea if it's a complete solution to the initial problem but at least it's worth trying. I would start here https://github.com/leonoel/cloroutine/blob/2f5e0ad6f7b2de56671218cfcbb9d42c000bd942/src/cloroutine/impl.cljc#L495 Instead of calling add-place, you can just set the result form inline with (assoc ssa :result form :tag tag). Then you'll need to check where :result is used (e.g. with-place) and check the inline case

I've attempted to fix js* expressions and it worked, but I introduced a few regressions. Can somebody assist with debugging these? https://github.com/leonoel/cloroutine/pull/33#issuecomment-2842474554