Remix.run Logo
tombert 11 hours ago

Not the OP, but I'm thinking about like closures?

Say you wanted to make a Node.js framework with callbacks that react to an event. The callback might be a closure that captured some of its surrounding variables. At that point, any of the captured variables are not trivially stack-allocated.

You might be able to do something similar to what Rust does with moving though.

jandrewrogers 10 hours ago | parent | next [-]

Typically you would construct this state in statically allocated memory. A lot of systems work this way. Dynamic heap allocation isn’t the only alternative to stack allocation.

skew-aberration 11 hours ago | parent | prev | next [-]

You could predefine your event handlers within your context, then call 'enter framework' and pass your event handlers as arguments. this is continuation passing style

cmrx64 11 hours ago | parent [-]

it is, but more specifically it’s an eliminator for a coinductive step.

com2kid 10 hours ago | parent | prev [-]

Nah we did something similar on Microsoft Band. I wrote about how - https://meanderingthoughts.hashnode.dev/cooperative-multitas...

The tldr is you had to preallocate a struct with anything you wanted captured ahead of time.