User:Will Gajate/TryJ

From J Wiki
Jump to navigation Jump to search

Project Name: Try J / J playground

Team: Jon Hough, Michael Wallace, Will Gajate

Goal: Offer J console web application (with labs) from J Wiki

Purpose: Increase interest in the language with turnkey (fast and one-click) entry into J environment with labs

Roadmap:


Week 1 (Dec 30): Meet with Wiki group

  • discuss roadmap
  • get project team members contact info and agree on communication medium.
    • high latency -> email, low latency -> what's app or other instant messenger


Week 2 (Jan 5): Meet with Joe Bogner

  • Schedule meeting with Joe Bogner and other interested wiki team members
    • How should we update the existing code base (j-emscripten-src)?
    • What is the build process, toolchain, artifacts (e.g. Vagrant, Linux, make)
    • Should we know about any tricks/traps that would accelerate/stall development and deployment?
    • How should we add J labs to console?


Week 3 (Jan 12) : Set up Github repo to host J Playground on J source github

  • Create new repo on Github
  • Configure webpage and URL hosting
  • Configure committer rights
  • Set up Readme.md


Week 4 (Jan 19): Update j-emscripten-src to use J.903

  • Commit updated project repo
  • Document build process for future maintainers
  • Test TryJ, JPlayground (beta version)
  • Features: one lab, basic functionality


Week 5 (Jan 29): Discuss V1 features to include

  • Links to learning resources
  • Adding existing labs, create new labs?
  • should we align with Jupyter notebooks?



https://github.com/joebo https://github.com/joebo/j-emscripten-src

based on: https://tryapl.org/#



Building instructions Great news... I started down the track of option #1 (starting over with latest emscripten) and make progress with J7

The main hack was that I had to find/rename link() in the source to something else since link is part of the stdlib and was giving linker errors

I haven't tested it extensively but it seems to work better than my hacked up proof of concept .For example, i.10 works without any post-compilation hacks

This is using wasmer https://github.com/wasmerio/wasmer to execute and emscripten 1.38.43 https://github.com/wasmerio/wasmer/issues/2589

The next step from here would be to try and compile j9... I took a few minutes and explored it. I tried changing https://github.com/jsoftware/jsource/blob/master/make2/build_jconsole.sh#L51 to emcc to build with emscripten, however it outputted a bunch of errors that I didn't have a chance to dig into

SO - the good news is that j7 seems buildable with a newer emscripten stack without as many hacks... The less-good news is that we'd still need to create a web UI front-end to use the wasm and also figure out how to compile a newer version of J which has departed much from the J7 gpl source.


I still think this will take up more time than I have to dedicate at the moment but happy to try and help from the sidelines.

1. Clone the repo at https://github.com/joebo/j-emscripten-src 2. Get a working copy of emscripten. It looks like the portable version I used is no longer available 3. Try building using

make -f makefile.emscripten