aboutsummaryrefslogtreecommitdiff
path: root/src/Justfile
blob: 0d20a5e41f678e3807e2a32bb9b9adbfdd7d3fec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
candelabra := `which candelabra-cli 2>/dev/null || echo ./target/debug/candelabra-cli`
target_dir := justfile_directory() / "target"
tests_dir := justfile_directory() / "tests"
tests_manifest := tests_dir / "Cargo.toml"

impls := "std::collections::BTreeSet primrose_library::LazySortedVec std::collections::LinkedList primrose_library::EagerUniqueVec std::collections::HashSet std::collections::BTreeMap std::collections::HashMap primrose_library::LazyUniqueVec primrose_library::EagerSortedVec std::vec::Vec"
proj := "std::vec::Vec std::collections::LinkedList"
export RUST_LOG := "debug"

cost-models: rebuild
  rm -fr {{target_dir}}/candelabra
  @IMPLS=`{{candelabra}} list-library 2>&1 | cut -d ']' -f 2 | grep ::`; for impl in $IMPLS; do just cost-model $impl; done

selections *SELECTFLAGS: rebuild
  @cd tests/ && for i in $(ls -d */); do [ "${i%%/}" == "target" ] || just select ${i%%/} {{SELECTFLAGS}}; done

rebuild:
  which candelabra-cli 2>/dev/null || cargo build
  echo "Candelabra Path: {{candelabra}}"

cost-model impl: (section-start ("cost-model-" + impl)) && (section-end ("cost-model-" + impl))
  {{candelabra}} -l cost-model {{impl}}

select proj *FLAGS: (section-start ("compare-" + proj)) && (section-end ("compare-" + proj))
  {{candelabra}} -l --manifest-path {{tests_manifest}} -p {{proj}} select {{FLAGS}}

@section-start NAME:
  echo -e "\e[0Ksection_start:`date +%s`:{{replace(NAME, ":", "-")}}\r\e[0K{{replace(NAME, ":", "-")}}"

@section-end NAME:
  echo -e "\e[0Ksection_end:`date +%s`:{{replace(NAME, ":", "-")}}\r\e[0K"