tweag / asterius

DEPRECATED in favor of ghc wasm backend, see https://www.tweag.io/blog/2022-11-22-wasm-backend-merged-in-ghc
1.98k stars 57 forks source link

Contribution - beginner friendly issues, guide etc. #2

Closed balajirrao closed 5 years ago

balajirrao commented 6 years ago

I'm looking to contribute to this project.

TerrorJack commented 6 years ago

@balajirrao Thanks for taking the interest! I'm going to start a wiki for this repo, including architecture, guide, etc. I'll make sure to make an issue list and include some low-hanging fruits for beginners.

PinkaminaDianePie commented 6 years ago

Any news about this? I want to try Asterius in my pet project, but I don't even know how to start. I hope Haskell to WASM is more right way than Haskell to JS or other similar languages like PureScript.

TerrorJack commented 6 years ago

@PinkaminaDianePie Hi Igor, sorry for missing documentation on current status. Can you elaborate a bit on your own project, and how you intend to fit asterius into that picture?

Right now JavaScript FFI is not implemented yet. I can prioritize implementing a prototype of importing JavaScript objects if you're interested, so it shall be possible to invoke JavaScript functions in Haskell (see #23 for details). Also keep in mind that we don't have GC yet.

PinkaminaDianePie commented 6 years ago

@TerrorJack nothing serious, I have some logic in webworker, which map one 65k array to few other 65k arrays, using some complex algorithms, but since I don't have any work with DOM, user IO etc I thought that it could be interesting to write such logic on Haskell and use JS to communicate between main thread and worker. So I don't even need to invoke any JS logic, I have just the opposite case, where I want to pass some data to haskell and receive some result after some time. I'm not sure about the performance of such solution, but I hope it won't be worse than JS at least. And again, chunks of data are 65k arrays and for me, it takes about ~60ms to transform it by JS, so context switching between JS and WASM won't be an issue.

So don't hurry, it's not something serious, I already have JS version of this code, it's totally not a blocker or any kind of issue for me, I just want to test some tools which I can use together with plain JS (Haskell to WASM / ELM / PureScript ) and maybe even transition to them someday.

Thank you for details, it would be super nice to see some roadmap/milestones somewhere and watch for the progress, I think I'm not only one who wait when it will be possible to use Haskell in the browser without significant performance slowdown.

TerrorJack commented 5 years ago

It's been a long time, apologies but closing this one for the moment.

We'll be exploring a more fine-grained workflow from now on; instead of just pushing a weekly report, we'll record our current task in projects, disassemble them into smaller issues, and do more frequent writeup as we proceed. This shall increase the transparency of this project, and in the meantime, issues suitable for beginners will be tagged so.

There are already various written materials, including docs and blog posts. The docs are the right place to check for the moment; the code in blog posts are outdated.