From 577f835137a39ce18bb3d9cbac062b4f7905cc47 Mon Sep 17 00:00:00 2001 From: Quinn Dougherty Date: Mon, 22 Aug 2022 06:18:22 -0700 Subject: [PATCH] get import names to resolve --- nix/squiggle-mc.nix | 24 +++++++++---------- packages/components/tsconfig.json | 3 +++ .../SampleSetDist_ToPointSet.res | 4 +++- .../src/rescript/WasmInterface.res | 5 +++- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/nix/squiggle-mc.nix b/nix/squiggle-mc.nix index 15bc4ff6..5ae8c0e5 100644 --- a/nix/squiggle-mc.nix +++ b/nix/squiggle-mc.nix @@ -6,35 +6,35 @@ rec { pname = "quri_squiggle_mc"; version = "0.0.1"; src = ../packages/mc; - - nativeBuildInputs = [ rust pkgs.wasm-bindgen-cli ]; - + nativeBuildInputs = with pkgs; [ rust wasm-bindgen-cli wasm-pack binaryen ]; buildPhase = '' - cargo build --lib --release --target=wasm32-unknown-unknown - mkdir -p $out/pkg - wasm-bindgen --target nodejs --out-dir $out/pkg target/wasm32-unknown-unknown/release/quri_squiggle_mc.wasm + wasm-pack build --release --target nodejs + ''; + installPhase = '' + mkdir -p $out + # sed -i /"quri_squiggle_mc"/"\@quri/squiggle-mc" pkg/package.json + cp -r pkg $out ''; - installPhase = "echo 'skipping installPhase'"; cargoLock = { lockFile = ../packages/mc/Cargo.lock; outputHashes = { - "kernel_density-0.0.2" = "sha256-pHh5p/AS+uopmPSaXK9rKHlmqS26qggXvf1TeitS430="; + "kernel_density-0.0.3" = "sha256-ii+j30I4m1ZSvdMwEckiJOrenU8MZYYlo5PP1UZN4lI="; }; }; }; lint = pkgs.stdenv.mkDerivation { name = "squiggle-mc-lint"; src = ../packages/mc; - buildInputs = with pkgs; [ rustfmt ]; - buildPhase = "rustfmt --check src/**"; + buildInputs = with pkgs; [ cargo rustfmt ]; + buildPhase = "cargo fmt --check"; installPhase = "mkdir -p $out"; }; test = pkgs.stdenv.mkDerivation { name = "squiggle-mc-test"; src = pkg + "/pkg"; - buildInputs = with pkgs; [ cargo ]; - buildPhase = "cargo test"; + buildInputs = with pkgs; [ wasm-pack geckodriver ]; + buildPhase = "wasm-pack test --firefox"; installPhase = "mkdir -p $out"; }; } diff --git a/packages/components/tsconfig.json b/packages/components/tsconfig.json index 14deb5fc..bf0fa58a 100644 --- a/packages/components/tsconfig.json +++ b/packages/components/tsconfig.json @@ -30,6 +30,9 @@ "references": [ { "path": "../squiggle-lang" + }, + { + "path": "../mc" } ] } diff --git a/packages/squiggle-lang/src/rescript/Distributions/SampleSetDist/SampleSetDist_ToPointSet.res b/packages/squiggle-lang/src/rescript/Distributions/SampleSetDist/SampleSetDist_ToPointSet.res index ec2bf0d0..3d137736 100644 --- a/packages/squiggle-lang/src/rescript/Distributions/SampleSetDist/SampleSetDist_ToPointSet.res +++ b/packages/squiggle-lang/src/rescript/Distributions/SampleSetDist/SampleSetDist_ToPointSet.res @@ -32,8 +32,10 @@ module Internals = { } module KDE = { - let normalSampling = (samples, outputXYPoints, kernelWidth) => + let normalSampling' = (samples, outputXYPoints, kernelWidth) => samples |> JS.samplesToContinuousPdf(_, outputXYPoints, kernelWidth) |> JS.jsToDist + let normalSampling = (samples, outputXYPoints, kernelWidth) => + WasmInterface.samplesToContinuousPdf(samples, kernelWidth) } module T = { diff --git a/packages/squiggle-lang/src/rescript/WasmInterface.res b/packages/squiggle-lang/src/rescript/WasmInterface.res index 142a1098..cb37b60c 100644 --- a/packages/squiggle-lang/src/rescript/WasmInterface.res +++ b/packages/squiggle-lang/src/rescript/WasmInterface.res @@ -1,2 +1,5 @@ -@module external sampleN: (array, int) => array = "@quri/squiggle-mc/sample_n" +@module("@quri/squiggle-mc/quri_squiggle_mc") external sampleN: (array, int) => array = "sample_n" let sampleN = sampleN + +@module("@quri/squiggle-mc/quri_squiggle_mc") external samplesToContinuousPdf: (array, int) => PointSetTypes.xyShape = "samples_to_continuous_pdf" +let samplesToContinuousPdf = samplesToContinuousPdf