content: [package]
  name = "steel-core"
  # version = "0.4.0"
  version.workspace = true
  authors = ["mattwparas <matthewparas2020@u.northwestern.edu>"]
  edition = "2021"
  license = "MIT OR Apache-2.0"
  repository = "https://github.com/mattwparas/steel"
  description = "Core compiler and VM implementation for steel"
  
  
  [lib]
  name = "steel"
  
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
  [dependencies]
  im-rc = { version = "15.1.0", features = ["serde"] }
  codespan-reporting = "0.11.1"
  log = "0.4.17"
  
  futures-executor = "0.3.28"
  futures-util = "0.3.28"
  futures-task = "0.3.28"
  
  serde_json = "1.0.108"
  serde = { version = "1.0.193", features = ["derive", "rc"] }
  bincode = "1.3.3"
  im-lists = "0.11.0"
  
  strsim = "0.11.0"
  quickscope = "0.2.0"
  
  lasso = { version = "0.7.3", features = [
      "multi-threaded",
      "ahash",
      "serialize",
      "inline-more",
  ] }
  
  once_cell = "1.18.0"
  fxhash = "0.2.1"
  steel-gen = { path = "../steel-gen", version = "0.3.0" }
  steel-parser = { path = "../steel-parser", version = "0.7.0" }
  steel-derive = { path = "../steel-derive", version = "0.6.0" }
  cargo-steel-lib = { path = "../cargo-steel-lib", version = "0.2.0", optional = true }
  chrono = { version = "0.4.23", default-features = false, features = ["std", "clock"] }
  env_home = "0.1.0"
  weak-table = "0.3.2"
  # TODO: Consider whether rand needs to be here
  rand = "0.9.0"
  num-bigint = "0.4.6"
  num-rational = "0.4.2"
  num-traits = "0.2.19"
  num-integer = "0.1.46"
  
  # For structs
  smallvec = { version = "1.13.0" }
  
  # Pretty printing documentation
  termimad = { version = "0.31.1", optional = true }
  
  triomphe = { version = "0.1.14", optional = true }
  
  # FFI for dylibs
  abi_stable = { version = "0.11.2", optional = true }
  async-ffi = { version = "0.5.0", features = ["abi_stable"], optional = true }
  # Cranelift JIT
  cranelift = { version = "0.84.0", optional = true }
  cranelift-module = { version = "0.84.0", optional = true }
  cranelift-jit = { version = "0.84.0", optional = true }
  
  anyhow = { version = "1", optional = true }
  
  stacker = { version = "0.1.15", optional = true }
  
  # Sync feature
  im = { version = "15.1.0", features = ["serde"], optional = true }
  
  parking_lot = { version = "0.12", features = ["arc_lock", "send_guard"] }
  
  bigdecimal = "0.4.5"
  
  # Also for sync stuff
  crossbeam-channel = "0.5.15"
  crossbeam-utils = "0.8.21"
  crossbeam-queue = "0.3.12"
  
  httparse = "1.9.4"
  
  compact_str = { version = "0.8.0", features = ["serde"] }
  
  git2 = { version = "0.20.2", optional = true, features = ["vendored-openssl"] }
  ureq = { version = "3.0.12", optional = true }
  
  # For the constant map
  arc-swap = "1.7.1"
  
  md-5 = "0.10.6"
  glob = "0.3.2"
  
  # For helping discover the steel home location
  xdg = "3.0.0"
  
  shared_vector = "0.4.4"
  
  imbl = { version = "6.0", optional = true, features = ["triomphe", "serde"] }
  icu_casemap = "2.0.0"
  
  [target.'cfg(target_family = "wasm")'.dependencies]
  getrandom = { version = "0.3.1", features = ["wasm_js"] }
  
  [target.'cfg(not(target_family = "wasm"))'.dependencies]
  polling = "3.10.0"
  
  [target.'cfg(not(any(target_family = "wasm", target_env = "newlib")))'.dependencies]
  which = "8.0.0"
  
  [dev-dependencies]
  proptest = "1.1.0"
  criterion = "0.5.1"
  
  [build-dependencies]
  steel-gen = { path = "../steel-gen", version = "0.3.0" }
  
  [features]
  # TODO: Deprecate the modules feature flag, it no longer does anything
  default = ["modules"]
  modules = []
  jit = ["dep:cranelift", "dep:cranelift-module", "dep:cranelift-jit"]
  sandbox = []
  dynamic = []
  profiling = []
  unsafe-internals = []
  anyhow = ["dep:anyhow"]
  dylibs = ["dep:abi_stable", "dep:async-ffi"]
  markdown = ["dep:termimad"]
  smallvec = []
  without-drop-protection = []
  stacker = ["dep:stacker"]
  dylib-build = ["dep:cargo-steel-lib"]
  sync = ["dep:im"]
  interrupt = []
  rooted-instructions = []
  recycle = []
  # git = ["dep:gix", "anyhow"]
  git = ["dep:git2", "anyhow"]
  ureq = ["dep:ureq"]
  disable-arity-checking = ["steel-derive/disable-arity-checking"]
  experimental-drop-handler = []
  unsandboxed-kernel = []
  inline-captures = []
  experimental = []
  triomphe = ["dep:triomphe"]
  op-code-profiling = []
  imbl = ["dep:imbl"]
  
  ffi-format = []
  
  [[bench]]
  name = "my_benchmark"
  harness = false
  