Skip to content

Latest commit

 

History

History
45 lines (29 loc) · 3.33 KB

File metadata and controls

45 lines (29 loc) · 3.33 KB

Tortoise

NetLogo Web is a JavaScript implementation of the NetLogo programming language and simulation environment. It runs entirely in a web browser, no plugins or installs required. Run it now at netlogoweb.org or get more information at netlogo.org.

If you're encountering an error with NetLogo Web:

See CONTRIBUTING.md for build setup, testing, and contributing guidelines.

Libraries

The following lists the JavaScript runtime libraries used by Tortoise and the licenses they are released under:

Key Scala libraries include scalaz, play-json, and Scala.js.

Requirements

Tortoise requires GraalVM CE 25 (Java 25). The recommended way to install it is via SDKMAN!. The sbt.sh script will automatically activate the correct GraalVM version via SDKMAN! if it is installed. The ./sbt.sh wrapper also pins the Node.js binary to avoid conflicts with GraalVM's bundled node. Use it instead of invoking sbt directly to avoid any oddities.

Compiling

There are several sbt builds within the Tortoise project. Run them via ./sbt.sh:

  • compilerJVM builds the JVM compiler project, used for running some tests.
  • compilerJS builds the Scala.js compiler project, which creates tortoise-compiler.js that can turn NetLogo models and code into javascript.
  • engine builds the combination CoffeeScript and Scala.js engine project, creating tortoise-engine.js, which is required to actually run the result of compiling a NetLogo model to javascript.
  • netLogoWeb contains a JVM project which runs end-to-end tests against the artifacts of compilerJS and engine, using the Graal JS javascript runtime. It also contains the task to publish the finished JavaScript compiler and engine artifacts as a package.
  • macrosJS/JVM contain macros used by Tortoise in widget serialization/deserialization.

For more information see the Tortoise architecture wiki page

Hosted By: Cloudsmith

Package repository hosting is graciously provided by Cloudsmith.