unison/development.markdown
2018-05-16 18:20:27 -04:00

1.5 KiB

These are commands that will likely be useful during development.

Scala

Launch sbt in runtime-jvm directory, then here are various useful commands:

  • main/test:run - runs all the tests
  • main/test:run compilation - runs tests prefixed by "compilation"
  • main/test:run 102932 compilation.let3 - runs tests prefixed by "compilation.let3" with the random seed 102932
  • benchmark/run - presents menu of benchmarks to run
  • ;clean;coverage;main/test:run;coverageReport followed optionally by ;coverageOff - generates test coverage report

Haskell

For doing compilation you can do:

stack repl unison-parser-typechecker

From here, do Main.main to run the tests and :r for rapid recompile.

You can also do:

stack build unison-parser-typechecker

If you want to run the tests outside the REPL.

Note: As part of shared-tests, all the Unison code in unison-src/base.u is parsed and typechecked. If you're tweaking the parser and/or typechecker and want to quickly test changes, you can add some additional definitions to this file and rerun the tests.

What if you want a profiled build? Do:

stack build --executable-profiling --library-profiling --ghc-options="-fprof-auto -rtsopts" unison-parser-typechecker

Again you can leave off the flag. To run an executable with profiling enabled, do:

stack exec -- <executable-name> +RTS -p

That will generate a <executable-name>.prof plain text file with profiling data. More info on profiling.