Merge branch 'develop' into overhaul
This commit is contained in:
commit
7a0c10d895
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
|
@ -20,7 +20,7 @@
|
||||||
*.js @Hazelfire @berekuk @OAGr
|
*.js @Hazelfire @berekuk @OAGr
|
||||||
|
|
||||||
# Any opsy files
|
# Any opsy files
|
||||||
.github/** @quinn-doughert @berekuky @OAGr
|
.github/** @quinn-dougherty @berekuk @OAGr
|
||||||
*.json @quinn-dougherty @Hazelfire @berekuk @OAGr
|
*.json @quinn-dougherty @Hazelfire @berekuk @OAGr
|
||||||
*.y*ml @quinn-dougherty @berekuk @OAGr
|
*.y*ml @quinn-dougherty @berekuk @OAGr
|
||||||
*.config.js @Hazelfire @berekuk @OAGr
|
*.config.js @Hazelfire @berekuk @OAGr
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@quri/squiggle-components",
|
"name": "@quri/squiggle-components",
|
||||||
"version": "0.4.1",
|
"version": "0.4.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@floating-ui/react-dom": "^1.0.0",
|
"@floating-ui/react-dom": "^1.0.0",
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
"@headlessui/react": "^1.6.6",
|
"@headlessui/react": "^1.6.6",
|
||||||
"@heroicons/react": "^1.0.6",
|
"@heroicons/react": "^1.0.6",
|
||||||
"@hookform/resolvers": "^2.9.8",
|
"@hookform/resolvers": "^2.9.8",
|
||||||
"@quri/squiggle-lang": "^0.4.1",
|
"@quri/squiggle-lang": "^0.4.2",
|
||||||
"@react-hook/size": "^2.1.2",
|
"@react-hook/size": "^2.1.2",
|
||||||
"clsx": "^1.2.1",
|
"clsx": "^1.2.1",
|
||||||
"framer-motion": "^7.3.2",
|
"framer-motion": "^7.3.2",
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "cross-env REACT_APP_FAST_REFRESH=false && start-storybook -p 6006 -s public",
|
"start": "cross-env REACT_APP_FAST_REFRESH=false && start-storybook -p 6006 -s public",
|
||||||
"build:cjs": "rm -rf dist/src && tsc -b",
|
"build:cjs": "rm -rf dist/src && rm -f dist/tsconfig.tsbuildinfo && tsc -b",
|
||||||
"build:css": "postcss ./src/styles/main.css -o ./dist/main.css",
|
"build:css": "postcss ./src/styles/main.css -o ./dist/main.css",
|
||||||
"build:storybook": "build-storybook -s public",
|
"build:storybook": "build-storybook -s public",
|
||||||
"build": "yarn run build:cjs && yarn run build:css && yarn run build:storybook",
|
"build": "yarn run build:cjs && yarn run build:css && yarn run build:storybook",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@quri/squiggle-lang",
|
"name": "@quri/squiggle-lang",
|
||||||
"version": "0.4.1",
|
"version": "0.4.2",
|
||||||
"homepage": "https://squiggle-language.com",
|
"homepage": "https://squiggle-language.com",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
"@stdlib/stats": "^0.0.13",
|
"@stdlib/stats": "^0.0.13",
|
||||||
"jstat": "^1.9.5",
|
"jstat": "^1.9.5",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"mathjs": "^11.2.0",
|
"mathjs": "^11.2.1",
|
||||||
"pdfast": "^0.2.0"
|
"pdfast": "^0.2.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
|
@ -1,3 +1,29 @@
|
||||||
Various scripts used for development, benchmarking and testing.
|
Various scripts used for development, benchmarking and testing.
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
None of these are bundled in NPM package yet.
|
None of these are bundled in NPM package yet.
|
||||||
|
=======
|
||||||
|
None of these are bundled in the NPM package yet.
|
||||||
|
|
||||||
|
# run.mjs
|
||||||
|
|
||||||
|
`scripts/run.mjs` allows quick testing of Squiggle programs:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ./scripts/run.mjs '2+2'
|
||||||
|
Running 2+2
|
||||||
|
Ok 4
|
||||||
|
@{__result__: 4}
|
||||||
|
```
|
||||||
|
|
||||||
|
# run-file.mjs
|
||||||
|
|
||||||
|
`scripts/run-file.mjs` can be used to run and benchmark squiggle scripts stored in files:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ./scripts/run-file.mjs ./path/to/file.squiggle
|
||||||
|
Time: 3.18 Ok
|
||||||
|
```
|
||||||
|
|
||||||
|
To see the result and bindings, add the `-o` or `--output` flag.
|
||||||
|
>>>>>>> develop
|
||||||
|
|
27
packages/squiggle-lang/scripts/bench-map-reduce.mjs
Executable file
27
packages/squiggle-lang/scripts/bench-map-reduce.mjs
Executable file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
import { SqProject } from "@quri/squiggle-lang";
|
||||||
|
|
||||||
|
const measure = (cb, times = 1) => {
|
||||||
|
const t1 = new Date();
|
||||||
|
|
||||||
|
for (let i = 1; i <= times; i++) {
|
||||||
|
cb();
|
||||||
|
}
|
||||||
|
const t2 = new Date();
|
||||||
|
return (t2 - t1) / 1000;
|
||||||
|
};
|
||||||
|
|
||||||
|
const maxP = 5;
|
||||||
|
|
||||||
|
for (let p = 0; p <= maxP; p++) {
|
||||||
|
const size = Math.pow(10, p);
|
||||||
|
const project = SqProject.create();
|
||||||
|
project.setSource(
|
||||||
|
"main",
|
||||||
|
`List.upTo(1, ${size}) |> map({|x| List.upTo(1, 100) |> reduce(0, {|a,b|a+b})})`
|
||||||
|
);
|
||||||
|
const time = measure(() => {
|
||||||
|
project.run("main");
|
||||||
|
});
|
||||||
|
console.log(`1e${p}`, "\t", time);
|
||||||
|
}
|
27
packages/squiggle-lang/scripts/bench-map.mjs
Executable file
27
packages/squiggle-lang/scripts/bench-map.mjs
Executable file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
import { SqProject } from "@quri/squiggle-lang";
|
||||||
|
|
||||||
|
const measure = (cb, times = 1) => {
|
||||||
|
const t1 = new Date();
|
||||||
|
|
||||||
|
for (let i = 1; i <= times; i++) {
|
||||||
|
cb();
|
||||||
|
}
|
||||||
|
const t2 = new Date();
|
||||||
|
return (t2 - t1) / 1000;
|
||||||
|
};
|
||||||
|
|
||||||
|
const maxP = 7;
|
||||||
|
|
||||||
|
for (let p = 0; p <= maxP; p++) {
|
||||||
|
const size = Math.pow(10, p);
|
||||||
|
const project = SqProject.create();
|
||||||
|
project.setSource("list", `l = List.upTo(1,${size})`);
|
||||||
|
project.run("list");
|
||||||
|
project.setSource("map", "l |> map({|x| x})");
|
||||||
|
project.setContinues("map", ["list"]);
|
||||||
|
const time = measure(() => {
|
||||||
|
project.run("map");
|
||||||
|
});
|
||||||
|
console.log(`1e${p}`, "\t", time);
|
||||||
|
}
|
|
@ -14,12 +14,20 @@ const measure = (cb, times = 1) => {
|
||||||
return (t2 - t1) / 1000;
|
return (t2 - t1) / 1000;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
const red = (s) => `\x1b[31m${s}\x1b[0m`;
|
const red = (s) => `\x1b[31m${s}\x1b[0m`;
|
||||||
const green = (s) => `\x1b[32m${s}\x1b[0m`;
|
const green = (s) => `\x1b[32m${s}\x1b[0m`;
|
||||||
|
|
||||||
const program = new Command();
|
const program = new Command();
|
||||||
|
|
||||||
program.option("-t, --time");
|
program.option("-t, --time");
|
||||||
|
=======
|
||||||
|
const red = (str) => `\x1b[31m${str}\x1b[0m`;
|
||||||
|
const green = (str) => `\x1b[32m${str}\x1b[0m`;
|
||||||
|
|
||||||
|
const program = new Command();
|
||||||
|
|
||||||
|
>>>>>>> develop
|
||||||
program.option("-o, --output");
|
program.option("-o, --output");
|
||||||
program.arguments("<string>");
|
program.arguments("<string>");
|
||||||
|
|
||||||
|
@ -40,7 +48,11 @@ if (!src) {
|
||||||
}
|
}
|
||||||
|
|
||||||
project.setSource("main", src);
|
project.setSource("main", src);
|
||||||
|
<<<<<<< HEAD
|
||||||
const t = measure(() => project.run("main"));
|
const t = measure(() => project.run("main"));
|
||||||
|
=======
|
||||||
|
const time = measure(() => project.run("main"));
|
||||||
|
>>>>>>> develop
|
||||||
|
|
||||||
const bindings = project.getBindings("main");
|
const bindings = project.getBindings("main");
|
||||||
const result = project.getResult("main");
|
const result = project.getResult("main");
|
||||||
|
@ -50,6 +62,7 @@ if (options.output) {
|
||||||
console.log("Bindings:", bindings.toString());
|
console.log("Bindings:", bindings.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
if (options.time) {
|
if (options.time) {
|
||||||
console.log(
|
console.log(
|
||||||
"Time:",
|
"Time:",
|
||||||
|
@ -58,3 +71,11 @@ if (options.time) {
|
||||||
result.tag === "Error" ? result.value.toString() : ""
|
result.tag === "Error" ? result.value.toString() : ""
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
=======
|
||||||
|
console.log(
|
||||||
|
"Time:",
|
||||||
|
String(time),
|
||||||
|
result.tag === "Error" ? red(result.tag) : green(result.tag),
|
||||||
|
result.tag === "Error" ? result.value.toString() : ""
|
||||||
|
);
|
||||||
|
>>>>>>> develop
|
||||||
|
|
18
packages/squiggle-lang/scripts/run.mjs
Executable file
18
packages/squiggle-lang/scripts/run.mjs
Executable file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
import { SqProject } from "@quri/squiggle-lang";
|
||||||
|
|
||||||
|
const project = SqProject.create();
|
||||||
|
|
||||||
|
const src = process.argv[2];
|
||||||
|
if (!src) {
|
||||||
|
throw new Error("Expected src");
|
||||||
|
}
|
||||||
|
console.log(`Running ${src}`);
|
||||||
|
project.setSource("a", src);
|
||||||
|
project.run("a");
|
||||||
|
|
||||||
|
const result = project.getResult("a");
|
||||||
|
console.log(result.tag, result.value.toString());
|
||||||
|
|
||||||
|
const bindings = project.getBindings("a");
|
||||||
|
console.log(bindings.asValue().toString());
|
|
@ -3,7 +3,7 @@
|
||||||
"displayName": "Squiggle",
|
"displayName": "Squiggle",
|
||||||
"description": "Squiggle language support",
|
"description": "Squiggle language support",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"version": "0.4.1",
|
"version": "0.4.2",
|
||||||
"publisher": "QURI",
|
"publisher": "QURI",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|
12
yarn.lock
12
yarn.lock
|
@ -4797,7 +4797,7 @@
|
||||||
"@types/history" "^4.7.11"
|
"@types/history" "^4.7.11"
|
||||||
"@types/react" "*"
|
"@types/react" "*"
|
||||||
|
|
||||||
"@types/react@*", "@types/react@^18.0.18":
|
"@types/react@*", "@types/react@^18.0.1", "@types/react@^18.0.18":
|
||||||
version "18.0.20"
|
version "18.0.20"
|
||||||
resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.20.tgz#e4c36be3a55eb5b456ecf501bd4a00fd4fd0c9ab"
|
resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.20.tgz#e4c36be3a55eb5b456ecf501bd4a00fd4fd0c9ab"
|
||||||
integrity sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA==
|
integrity sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA==
|
||||||
|
@ -12346,10 +12346,10 @@ markdown-it@^8.3.1:
|
||||||
mdurl "^1.0.1"
|
mdurl "^1.0.1"
|
||||||
uc.micro "^1.0.5"
|
uc.micro "^1.0.5"
|
||||||
|
|
||||||
mathjs@^11.0.1, mathjs@^11.2.0:
|
mathjs@^11.0.1, mathjs@^11.2.1:
|
||||||
version "11.2.0"
|
version "11.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-11.2.0.tgz#06ade7425287bf69c3210158853996a55861e07e"
|
resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-11.2.1.tgz#725d2e769eb036214530ff532cea4a464efdc75e"
|
||||||
integrity sha512-4x1LUP1tkNWWvaZiPO+rF9rKE5q4o541FF4m8ZIk1PlmSyHDGRAKutjA67rICK4DXWEY1gpumPOvaq3xuQHT6Q==
|
integrity sha512-V5lqIPExHtFi56LUf0Gyz0wyuJmSbXUM3liZcCDNpj4OKQaUlpQuAymC8x9mFNqajWOgxqS1HZ7Z5B76Hbwrtw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.19.0"
|
"@babel/runtime" "^7.19.0"
|
||||||
complex.js "^2.1.1"
|
complex.js "^2.1.1"
|
||||||
|
@ -15152,7 +15152,7 @@ react-vega@^7.6.0:
|
||||||
prop-types "^15.8.1"
|
prop-types "^15.8.1"
|
||||||
vega-embed "^6.5.1"
|
vega-embed "^6.5.1"
|
||||||
|
|
||||||
react@^18.1.0:
|
react@^18.0.0, react@^18.1.0:
|
||||||
version "18.2.0"
|
version "18.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
|
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
|
||||||
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
|
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
|
||||||
|
|
Loading…
Reference in New Issue
Block a user