squiggle/packages/mc/README.md
Quinn Dougherty 07c3004c82 just mc
2022-08-16 20:25:31 -07:00

53 lines
1.7 KiB
Markdown

# `@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.
## How to run in debug mode
```sh
# 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
```sh
# 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.
```sh
# 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.