Maybe `Enumerator` should not use a full fiber - but something less that behaves like the thread it's run on? An underlying issue is that the user doesn't know they're using a fiber, and really how can we expect them to?chrisseaton (Chris Seaton)
> I think you want to mean "if the string is not ASCII-compatible". Can you explain why? I think a string is only a valid pack format string if it is `ascii_only?` - if it isn't `ascii_only?` then there is a silent warning and the ...chrisseaton (Chris Seaton)
Format routines like pack and unpack blindly treat a string as ASCII-encoded, even if they aren't ASCII or ASCII-compatible. I tried to construct code that was misleading using ASCII-incompatible-encodings but couldn't do it in practi...chrisseaton (Chris Seaton)
The documentation could be more clear, but also note that this isn't in any way specific to Ruby - I would say that this is expected behaviour for a managed language. A weak-ref *may* be cleared if no other references exist. That's shoul...chrisseaton (Chris Seaton)
An interesting project if you are changing the interface could be to write a generic JIT interface, which any JIT could plug into. At the moment we have custom C code to plug in MJIT and YJIT - an interface could reduce that C code and e...chrisseaton (Chris Seaton)
> With shapes you could start with {a,b} and then add the hash keys to get shape {a,b,c,d} and pass all values [1,2,3,4] plus the shape id on the stack. Yes that's the idea in the video I linked.chrisseaton (Chris Seaton)
Reference keyword arguments - what we're doing is using the same idea of shapes, but applying them to the keyword arguments hash to be able to extract keyword arguments without any control-flow. We can implement keyword arguments like th...chrisseaton (Chris Seaton)
I was going to comment that adding or removing multiple items from a queue is likely not great for implementation, as we'd need a lock to make that atomic (or some good ideas of how to do it otherwise.) But then I looked at TruffleRuby a...chrisseaton (Chris Seaton)
Yes, I think a few low-level concurrency primitives should move from Concurrent Ruby to core. As we add more concurrency to Ruby, and add JIT compilers, ideally the VM should understand these primitives, rather than being opaque extensio...chrisseaton (Chris Seaton)