This does two things: 1. Removes callback; it didn't add anything of practical value. The operation will simply be performed as long as no error is provided by the callee. 2. Consolodates three arguments into `ProposedRel`. This makes blocks in `object_rel!` less verbose and boilerplate-y. I'll probably implement `TplShape::Unknown` via the dynamic `Ident` `Tpl` edge before continuing with any cleanup. This is getting pretty close to reasonable for future implementations. DEV-13163
TAME in Rust (TAMER)
TAME was written to help tame the complexity of developing comparative insurance rating systems. This project aims to tame the complexity and performance issues of TAME itself. TAMER is therefore more tame than TAME.
TAME was originally written in XSLT. For more information about the
project, see the parent
To bootstrap from the source repository, run
To configure the build for your system, run
./configure. To build, run
make. To run tests, run
You may also invoke
cargo directly, which
make will do for you using
options provided to
Note that the default development build results in terrible runtime performance! See [#Build Flags] below for instructions on how to generate a release binary.
The environment variable
CARGO_BUILD_FLAGS can be used to provide
additional arguments to
cargo build when invoked via
make. This can be
provided optionally during
configure and can be overridden when invoking
make. For example:
# release build $ ./configure && make CARGO_BUILD_FLAGS=--release $ ./configure CARGO_BUILD_FLAGS=--release && make # dev build $ ./configure && make $ ./configure CARGO_BUILD_FLAGS=--release && make CARGO_BUILD_FLAGS=
This section contains advice for those developing TAMER.
Developers should be using test-driven development (TDD).
make check will
run all necessary tests.
rustfmt that can automatically format code for you. This
project mandates its use and therefore eliminates personal preference in
code style (for better or worse).
Formatting checks are run during
make check and, on failure, will output
the diff that would be applied if you ran
make fmt (or
make fix); this
cargo fmt for you (and will use the binaries configured via
Since developers should be doing test-driven development (TDD) and therefore
should be running
make check frequently, the hope is that frequent
feedback on formatting issues will allow developers to quickly adjust their
habits to avoid triggering formatting errors at all.
If you want to automatically fix formatting errors and then run tests:
$ make fmt check
Benchmarks serve two purposes: external integration tests (which are subject
to module visibility constraints) and actual benchmarking. To run
Note that link-time optimizations (LTO) are performed on the binary for benchmarking so that its performance reflects release builds that will be used in production.
configure script will automatically detect whether the
is unstable (as it was as of the time of writing) and, if so, will
automatically fall back to invoking nightly (by running
cargo +nightly bench).
If you do not have nightly, run you install it via
rustup install nightly.