On 6/15/22 20:26, Ron Pressler wrote:
Am I right to understand that to mean that the x86-32 port does fully implement 
the virtual
threads spec, albeit with the “fake virtual thread” implementation rather than 
VM continuations?
Yes. Although it is still not clear to me if that implementation even passes 
JCK.

The current implementation focused on x64 and aarch64, and it is certainly 
possible that some
assumptions about those architectures crept in. Over time, I expect that 
contributions from
maintainers of other ports would gradually guide refactoring of the code into a 
more platform
independent shape. Of course, any port maintainer who wishes to join the 
project and participate
more actively is more than welcome.
Sure, but let me talk about a huge elephant-in-the-room caveat.

I firmly believe port maintainers should not be put into position of deciphering the current Loom implementation, guessing the implementation intents, and only then figuring out where those intents are broken for a particular port. The porters job is the second part: looking at clean implementation, having their "Aha, this code/comment says something that does not hold for my arch" moments, and working those out.

The first part is the responsibility of Loom developers: readability, documentation clarity, reasonable pre-/post-conditions, extensive verification, etc. I am sure many non-Loom developers would lend a helping hand in that. I, for one, contributed a few rewrites already.

But, someone who wrote the original Loom code should take a lead in improving the VM code for much easier understanding and clarity. I suspect a lot of finer details about VM code implementation are still in the heads of original Loom developers, and such details need to be incorporated in the well-structured, well-documented, well-tested code. IMO, that needs to happen before any more serious work is done in VM parts, if you want ports to ever catch up, or indeed the whole project to succeed.

The fact that even the x86_32 implementation -- that shares a lot of already implemented code with x86_64! -- proves hard to implement and debug at the moment, must be quite alarming for any other ports work... It worries me a lot, that's for sure.

--
Thanks,
-Aleksey

Reply via email to