[package]
name = "tamer"
version = "0.0.0"
authors = ["Mike Gerwitz <mike.gerwitz@ryansg.com>"]
description="TAME in Rust"
license="GPLv3+"
edition = "2021"

[profile.dev]
# Release-level optimizations.  Spending the extra couple of moments
# compile-time is well worth the huge savings we get at runtime.  Note that
# this is still every so slightly slower than a release build; see other
# profile options for release at
# <https://doc.rust-lang.org/cargo/reference/manifest.html>.
opt-level = 3

[profile.release]
lto = true

[profile.bench]
# We want our benchmarks to be representative of how well TAME will perform
# in a release.
lto = true

[dependencies]
arrayvec = ">= 0.7.1"
bumpalo = ">= 2.6.0"
exitcode = "1.1.2"
fxhash = ">= 0.2.1"
getopts = "0.2"
memchr = ">= 2.3.4"  # quick-xml expects =2.3.4 at the time
paste = ">= 1.0.5"
petgraph = "0.6.0"
quick-xml = ">= 0.23.0-alpha3"
static_assertions = ">= 1.1.0"
unicode-width = "0.1.5"

# Feature flags can be specified using `./configure FEATURES=foo,bar,baz`.
#
# Flags beginning with "wip-" are short-lived flags that exist only during
# development of a particular feature; you should not hard-code them
# anywhere, since the build will break once they are removed.  Enabling WIP
# flags should also be expected to cause undesirable behavior in some form
# or another.  Once WIP features are finalized, they are enabled by default
# and the flag removed.
[features]

# Cause `Parser` to emit a verbose, human-readable trace to stderr for every
# token.  This is not intended to be machine-readable, so please do not
# parse it.
#
# This is enabled automatically for the `test` profile.
parser-trace-stderr = []

# Lowering NIR into AIR will begin adding objects to the graph.  Since
# loweirng is not complete, this may result in errors.  This flag can be
# removed when we are able to confidently state that this lowering will not
# cause issues in production TAME code.
wip-nir-to-air = []

# Derive `xmli` file from the ASG rather than a XIR token stream.  This
# proves that enough information has been added to the graph for the entire
# program to be reconstructed.  The `xmli` file will be a new program
# _derived from_ the original, and so will not match exactly.
wip-asg-derived-xmli = ["wip-nir-to-air"]

