You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@chrisseaton@nirvdrum@eregon I wasn't sure how to approach this but I'm curious to know how. Adding TruffleBoundary somewhere? Refactoring some method to compile?
The final problem here is recursiveAppendNumber - which is recursive as the name suggests, and we can't PE (partially evaluate) unbounded recursion. You see this method a lot in exception constructors, but here it looks like it goes back towards hex, UnicodeSet.complement, NormalizerBase.decompose, at which point we're in some Unicode code. Going further back we're in String#encode (in Ruby), which is probably where we need to do something.
Looking at StringNodes.EncodeNode we see that these methods clearly aren't designed for compilation. In fact we have notDesignedForCompilation() so why isn't that working? I think it's because the recursion causes a problem before notDesignedForCompilation() gets a chance to cause a failure itself.
I would say for now make all the @Specialization methods in that node @TruffleBoundary. There is no obvious way to improve them for compilation - they go down into JRuby, and at the moment encoding strings isn't something we've looked at making fast.
Here are some traces I grabbed from the output:
The text was updated successfully, but these errors were encountered: