Skip to content
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

[emscripten] build with emscripten #16

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

PatrickSpeicher
Copy link

We implemented all necessary changes to compile FastDownward with emscripten and run the resulting wasm binary in a browser.
Our work was initially presented at ICPAPS'20. For more details, visit: https://sites.google.com/view/planning-in-the-browser/startseite

We added a README and example files inside src/javavascript/ explaining the process of compiling the project with emscripten and testing it in the browser.

Feel free to contact me via email: [email protected]

@haz
Copy link

haz commented Dec 15, 2020

So fun :D.

Any chance you'd be up for wrapping the invocation to mirror the solver.planning.domains API format? That way, the online editor could be configured to load/use things locally (to the client). Would be mighty helpful for courses using the editor.

@PatrickSpeicher
Copy link
Author

@haz Yes, definitely!
I believe this would be a perfect addition for the planning.domains project and I would love to implement this as the next step after our changes to the source code are somewhat approved.

@PatrickSpeicher
Copy link
Author

@haz We pushed the necessary changes for running the translator in the browser.
It works by first building the translator as a python wheel and then running it in the browser using Pyodide.
The code for that (incl. Readme and example files) is in src/javascript/translator.

@haz
Copy link

haz commented Oct 15, 2021

Nice! We already have pyodide loading in the editor for tarski parsing, so it's already ready to go.

Have the wrap to mirror the online solver API?

@roeger
Copy link
Contributor

roeger commented Jul 10, 2024

Hi @PatrickSpeicher,

sorry that this took so extraordinarily long for us to look into this.

One major reason why no-one took this up earlier is probably that the emscripten support would have to be maintained in the long term and we do not have the expertise to do so. Also some of the changes (in particular the restructuring of the translate component and the --input parameter) are rather controversial and we would need to work together to explore alternatives.

In the (very) long term, we also plan to join the translator and search component (with a C++ implementation and Python interface), and I don't see that anyone from the team would be interested to do the necessary changes to the emscripten support.

So before we dive deeper into a discussion, three quick questions:

  1. Are you still interested in an integration after such a long time?
  2. Would you be willing to serve as a maintainer for the emscripten support (also in the long term)?
  3. Could it be an option to keep the emscripten support external (just keeping the fork)?

Best,
Gabi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants