diff options
-rw-r--r-- | .gitlab-ci.yml | 4 | ||||
-rw-r--r-- | Justfile | 3 | ||||
-rw-r--r-- | nix/candelabra.nix | 5 | ||||
-rw-r--r-- | nix/racket-env.nix | 2 | ||||
-rw-r--r-- | src/Justfile | 38 |
5 files changed, 36 insertions, 16 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9971c38..75c68e9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,5 +13,5 @@ run-tests: - chmod 700 ~/.ssh - cp "$SSH_KNOWN_HOSTS" ~/.ssh/known_hosts script: - - ssh $SSH_LOCATION 'cd /opt/candelabra && git pull && nixos-rebuild switch --flake .#default' - - ssh $SSH_LOCATION 'cd /opt/candelabra && just run-all-tests' + - ssh $SSH_LOCATION 'cd /opt/candelabra && git pull && nixos-rebuild switch --fast --flake .#default' + - ssh $SSH_LOCATION 'cd /opt/candelabra/src && just run-all-tests' @@ -14,6 +14,3 @@ thesis-watch: alias tc := thesis-clean thesis-clean: cd thesis/; latexmk -c - -run-all-tests: - echo "TODO: run the tests!!" diff --git a/nix/candelabra.nix b/nix/candelabra.nix index da0a51c..192bf1f 100644 --- a/nix/candelabra.nix +++ b/nix/candelabra.nix @@ -13,14 +13,14 @@ inputs @ { src = craneLib.cleanCargoSource (craneLib.path ../src); doCheck = false; - propagatedBuildInputs = [(pkgs.callPackage ./racket-env.nix inputs)]; + propagatedBuildInputs = []; cargoExtraArgs = "-p candelabra-cli"; }; in pkgs.runCommand "candelabra" {} '' . ${pkgs.makeWrapper}/nix-support/setup-hook - mkdir -p $out/bin + mkdir -p $out/{bin,nix-support} makeWrapper ${rustCrate}/bin/candelabra $out/bin/candelabra \ --set CANDELABRA_SRC_DIR ${pkgs.lib.sourceByRegex ../src [ ".*crates" @@ -28,4 +28,5 @@ in ".*crates/library.*" ".*crates/benchmarker.*" ]} + echo "${pkgs.callPackage ./racket-env.nix inputs} ${toolchain}" > $out/nix-support/propagated-build-inputs '' diff --git a/nix/racket-env.nix b/nix/racket-env.nix index 0577b97..d05a4f8 100644 --- a/nix/racket-env.nix +++ b/nix/racket-env.nix @@ -426,8 +426,8 @@ in pkgs.stdenv.mkDerivation { name = "racket-wrapped"; buildInputs = [pkgs.makeWrapper]; - phases = ["installPhase"]; propagatedBuildInputs = [pkgs.z3]; + phases = ["installPhase" "fixupPhase"]; installPhase = '' mkdir -p $out/bin makeWrapper ${racket}/bin/racket $out/bin/racket \ diff --git a/src/Justfile b/src/Justfile index 1a503ff..7c31771 100644 --- a/src/Justfile +++ b/src/Justfile @@ -1,11 +1,33 @@ -select PROJ: - cargo run -- --manifest-path tests/Cargo.toml -p {{PROJ}} select +candelabra := `which candelabra 2>/dev/null || echo ./target/debug/candelabra` +target_dir := justfile_directory() / "target" +tests_dir := justfile_directory() / "tests" +tests_manifest := tests_dir / "Cargo.toml" -compare PROJ: - cargo run -- --manifest-path tests/Cargo.toml -p {{PROJ}} select --compare +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" -candidates PROJ: - cargo run -- --manifest-path tests/Cargo.toml -p {{PROJ}} candidates +run-all-tests: + which candelabra 2>/dev/null || cargo build + rm -fr {{target_dir / "candelabra"}} + echo "Candelabra Path: {{candelabra}}" -cost-model IMPL: - cargo run -- cost-model {{IMPL}} + @just section-start cost-models + @IMPLS=`cargo run -- list-library 2>&1 | cut -d ']' -f 2 | grep ::`; for impl in $IMPLS; do just cost-model $impl; done + @just section-end cost-models + + @just section-start comparisons + cd tests/ && for i in $(ls -d */); do [ "${i%%/}" == "target" ] || just compare ${i%%/}; done + @just section-end comparisons + +cost-model impl: (section-start ("cost-model-" + impl)) && (section-end ("cost-model-" + impl)) + {{candelabra}} cost-model {{impl}} + +compare proj: (section-start ("compare-" + proj)) && (section-end ("compare-" + proj)) + {{candelabra}} --manifest-path {{tests_manifest}} -p {{proj}} select --compare + +@section-start NAME: + echo -e "\e[0Ksection_start:`date +%s`:{{NAME}}\r\e[0K{{NAME}}" + +@section-end NAME: + echo -e "\e[0Ksection_end:`date +%s`:{{NAME}}\r\e[0K" |