-
-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run processes in web workers, use message passing for orchestration #18
base: main
Are you sure you want to change the base?
Conversation
…ion, remove context switching
909d19d
to
6c97ee7
Compare
…with new jserror pkg
I have been working on exactly the same thing myself but you seem to already be way further down the road. I am using tinygo to compile golang to wasm and then exposing it as a WebWorker. The Dwarf debugging works in the chrome browser which makes it really easy to test your golang . Very promising for those interested in building a IDE or just reusing golang in the Browser . I am yet to pull this PR to try it out . I saw the latest update to go 1.9 too. Nice |
Hey @gedw99, good to hear on the debugging side of things with tinygo. Mainline Go's support for debugging has been difficult to say the least. I do hope it improves. This PR is so very close to being ready. Unfortunately, I'm continuing to have setbacks especially with regard to inter-worker communication. The latest build I have (may not be pushed here yet) is doing everything with web workers and works pretty well, but still has some issues with sharing file descriptors over pipes. Until those issues are overcome, I hesitate to merge them in as it would decrease reliability of the currently deployed version. I'm maddeningly close – only thing holding me back right now is the lack of a useful debugger. Walking through individual Wasm instructions isn't my idea of fun 😅 |
It’s not possible to use tinygo ? There are pretty easy work around for reflect is that’s the issue. Here is an example of debugging tinygo wasm with Chrome. It has source maps so you step through actual golang inside chrome. https://blog.noops.land/debugging-webAssembly-from-go-sources-in-chrome-devtools You might already know about all the above ? |
Thankyou for persisting on this. I think a ton of devs doing wasm golang want Web workers but just don’t have time / energy to work it through. Also there are a ton of disruptive things that can be bunk on top of hackpadfs. Unblocking the gui thread by having the FS in a Web Worker unblocks tons of possibilities !!! |
Hey @gedw99! If it takes much longer, I may need to try tinygo instead. I'm feeling the sunk-cost fallacy pretty strongly right now 😂 Thank you for your words of encouragement ❤️ |
hey @JohnStarich how is this going? |
Hey @amlwwalker, thanks for checking in. Not swiftly, unfortunately. Probably will be quite a while yet. I've hit several frustrating brick walls in the process of fixing this up. While I would love to say "going great, almost done", I don't want to give you the wrong idea – this likely won't be done for many more weeks. Instead of giving up, however, I've been investing my time in fixing everything that's been slowing me down. Recently, I've been tackling the lack of tools for Go + Wasm. Specifically I'm making it possible to write more and higher quality automated tests with improvements to wasmbrowsertest (#41, #42) and Hackpad's underlying libraries ( It's very slow going, but I fully intend to root out these impossible-to-debug failures I'm hitting on this PR eventually! |
hi @JohnStarich looking forward to seeing this exciting work proceed. is there anything that I can help contribute to? |
like @paralin said - if i can help please shout :) |
Closes #11
This is currently a huge refactor and a work in progress. Hopefully will suss out the major bugs soon 😅