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
General prettiness - the current layout exposes the fact that I'm very much not a web developer.
EDIT: since Web app #116, I don't think it's too bad (ironically, two years on from the above comment, frontend web development is a big part of my job).
The initial settings for the buttons and sliders do not currently reflect the initial OutputOptions. I was unsure how to set the right HTML attributes, without them being constantly refreshed and causing flickering. Probably worth asking on the Miso Slack channel. See this unused commit.
Relatedly, selecting an example from the drop-down menu should populate the text box.
The settings should be reflected in the URL - I've found myself wanting to share a particular formatting of an expression.
Sliders should display exact current value as text.
Version bounds. I've been using GHC 9.2 with plain Cabal, and GHC 8.6 (!) with Nix, which may make it awkward to get this right. Also, because this isn't a library, and we mostly only care about the Nix build, which has everything pinned, this is much less of an issue than it would usually be.
Integrate with CI, so that it can be rebuilt and deployed whenever a release tag is pushed.
Link to the webpage prominently from Github and Hackage.
Switch from GHCJS to GHC's own JS backend.
Actually, WASM would be even better. See examples. Note that the packaging situation is currently a bit messy, so it might be best to wait for that. For example, currently Nix is strongly recommended for managing ghc-wasm-meta, but we can only (easily?) use it to get a development shell, rather than an actual package derivation.
There's no rush on this. Everything still works with the current code. The biggest reason to move might be dropping support for GHC 8.6, but we're pretty conservative about dropping old GHCs. At time of writing, we still test 8.0.2 on CI.
Note that, for development, everything can be built with just Cabal, which will use jsaddle to run a web server. Use nix-build to compile to JavaScript, using GHCJS.
The web branch contains Miso code for generating the app currently deployed at https://georgefst.github.io/pretty-simple. This is really just a proof of concept. Places to improve:
OutputOptions. I was unsure how to set the right HTML attributes, without them being constantly refreshed and causing flickering. Probably worth asking on the Miso Slack channel. See this unused commit.StringOutputStyledropdown (see pPrint prints unexpected characters for unprintable string contents #64).ghc-wasm-meta, but we can only (easily?) use it to get a development shell, rather than an actual package derivation.Note that, for development, everything can be built with just Cabal, which will use jsaddle to run a web server. Use
nix-buildto compile to JavaScript, using GHCJS.Inspiration: