squiggle/packages/mc
2022-08-17 13:04:00 -07:00
..
src wrastling with bindgen on structures 2022-08-17 13:04:00 -07:00
static Something like an end to end proof of concept 2022-08-17 04:18:09 -07:00
tests just mc 2022-08-16 20:25:31 -07:00
ts Something like an end to end proof of concept 2022-08-17 04:18:09 -07:00
.gitignore just mc 2022-08-16 20:25:31 -07:00
cargo-refresh-nix.sh just mc 2022-08-16 20:25:31 -07:00
Cargo.lock wrastling with bindgen on structures 2022-08-17 13:04:00 -07:00
Cargo.nix wrastling with bindgen on structures 2022-08-17 13:04:00 -07:00
Cargo.toml wrastling with bindgen on structures 2022-08-17 13:04:00 -07:00
package.json Something like an end to end proof of concept 2022-08-17 04:18:09 -07:00
README.md Something like an end to end proof of concept 2022-08-17 04:18:09 -07:00
tsconfig.json Something like an end to end proof of concept 2022-08-17 04:18:09 -07:00
webpack.config.js Something like an end to end proof of concept 2022-08-17 04:18:09 -07:00

@quri/squiggle-mc - parallel Monte Carlo with memoization for the @quri/squiggle-lang javascript interface

How to install

Please run yarn at the monorepo level.

In this subrepo, please run ./cargo-refresh-nix.sh every time Cargo.toml/Cargo.lock is modified, it requires nix with flakes.

Please view /.github/workflows/ci.yml for the most accurate story about how to build in concert with the rest of the packages in the monorepo.

How to run in debug mode

# Builds the project and opens it in a new browser tab. Auto-reloads when the project changes.
yarn start

How to build in release mode

# Builds the project and places it into the `dist` folder.
yarn build

How to run unit tests

These are the headless browser tests, which will attempt to download and install drivers, and may fail.

# Runs tests in Firefox
yarn test -- --firefox

# Runs tests in Chrome
yarn test -- --chrome

# Runs tests in Safari
yarn test -- --safari

What does each file do?

  • Cargo.toml contains the standard Rust metadata. You put your Rust dependencies in here. You must change this file with your details (name, description, version, authors, categories)

  • package.json contains the standard npm metadata. You put your JavaScript dependencies in here. You must change this file with your details (author, name, version)

  • webpack.config.js contains the Webpack configuration. You shouldn't need to change this, unless you have very special needs.

  • The js folder contains your JavaScript code (index.js is used to hook everything into Webpack, you don't need to change it).

  • The src folder contains your Rust code.

  • The static folder contains any files that you want copied as-is into the final build. It contains an index.html file which loads the index.js file.

  • The tests folder contains your Rust unit tests.