Spaces:
Running
Running
| # Running the SqueakJS Debugger in Lively | |
| ## Prerequisites | |
| You need to have [git](https://git-scm.com/) and | |
| [docker](https://docs.docker.com/install/) available on the machine that should | |
| host Lively. See [Lively Docker](https://github.com/LivelyKernel/lively-docker) for more details. | |
| ## Install and Run Lively | |
| Now build and run Lively: | |
| ```sh | |
| ./start.sh | |
| ``` | |
| The script will first build a docker image using the Dockerfile in this directory. | |
| To rebuild it, run `docker build --rm -t squeakjs-lively .` | |
| Then the script creates a directory LivelyKernel in the base folder if no such | |
| folder exists yet and will clone the [LivelyKernel](https://github.com/LivelyKernel/LivelyKernel) repository into it. | |
| Additionally, it will pull down the PartsBin from | |
| [lively-web.org](https://lively-web.org). If you want to use an existing Lively | |
| install just copy it into this LivelyKernel folder before running `start.sh`. | |
| _Please note:_ the `start.sh` script will take a few minutes to run the first | |
| time around. This is completly normal, just hang on ;) | |
| After the setup steps are done (a message along the lines of `Lively server | |
| starting...` appears in the command output) you will be able to access Lively at http://localhost:9001/welcome.html | |
| ## Run and Debug SqueakJS | |
| The whole SqueakJS directory is mapped into the LivelyKernel directory | |
| at users/SqueakJS/ | |
| Open http://localhost:9001/users/SqueakJS/lively/squeak.html to run the visual debugger. Use Lively's System Browser to modify the VM source code by navigating to users/SqueakJS. When you accept a method in the browser, the file on your disk will be modified. | |
| ## How it works | |
| All the SqueakJS VM files are loaded into Lively by the squeak_lively.js entry point. This is a module that gets loaded by the SqueakMorph's loadSqueakJS() script in lively/squeak.html. | |
| That morph implements the platform support code similar to the stand-alone squeak.js one, but using Lively facilities. | |