diff --git a/package.json b/package.json index aa04c5d69e..d96d132899 100644 --- a/package.json +++ b/package.json @@ -57,9 +57,6 @@ "bench:build": "lerna run bench:build ${PACKAGE:+--scope=@jpmorganchase/${PACKAGE}} --stream", "bench:run": "lerna exec ${PACKAGE:+--scope=@jpmorganchase/${PACKAGE}} -- npm run bench:run", "bench": "npm-run-all --silent bench:build bench:run", - "precompile": "mkdir -p obj", - "compile": "cd obj/ && emcmake cmake ../scripts/ && emmake make -j${PSP_CPU_COUNT-8}", - "postcompile": "node scripts/compile", "docs": "lerna run docs --silent --stream", "pretest:build": "lerna exec -- mkdir -p build", "test:build": "bash -c '[[ -z \"${PSP_DOCKER}\" ]] && npm run --silent _build_test || npm run --silent _emsdk -- npm run --silent _build_test'", @@ -72,16 +69,18 @@ "start": "lerna run start --stream --scope", "write_tests": "WRITE_TESTS=1 npm run test:run", "postinstall": "lerna bootstrap --hoist", - "precommit": "npm run lint:autofix && npm run docs && git add . -u", - "lint": "eslint packages/*/src/**/*.js packages/*/test/**/*.js examples/*/*.js", - "lint:autofix:es": "npm run lint -- --fix", - "lint:autofix:clang": "clang-format -i -style=file src/cpp/*.cpp && clang-format -i -style=file src/include/perspective/*.h", - "lint:autofix:less": "prettier --tab-width 4 --write packages/**/src/less/*.less", - "lint:autofix:html": "html-beautify packages/**/src/html/*.html -r", - "lint:autofix:json": "prettier --tab-width 4 --write **/package.json", - "lint:autofix:markdown": "prettier --tab-width 4 --write docs/usage.md docs/installation.md", - "lint:autofix": "npm-run-all --silent lint:autofix:*", - "pre_build": "npm run compile", + "precommit": "npm run lint", + "lint": "npm-run-all --silent lint:*", + "lint:eslint": "eslint packages/*/src/**/*.js packages/*/test/**/*.js examples/*/*.js", + "lint:clang:cpp": "bash -c 'diff -u <(cat src/cpp/*) <(clang-format -style=file src/cpp/*)'", + "lint:clang:include": "bash -c 'diff -u <(cat src/include/perspective/*) <(clang-format -style=file src/include/perspective/*)'", + "fix:es": "npm run lint:eslint -- --fix", + "fix:clang": "clang-format -i -style=file src/cpp/*.cpp && clang-format -i -style=file src/include/perspective/*.h", + "fix:less": "prettier --tab-width 4 --write packages/**/src/less/*.less", + "fix:html": "html-beautify packages/**/src/html/*.html -r", + "fix:json": "prettier --tab-width 4 --write **/package.json", + "fix:markdown": "prettier --tab-width 4 --write docs/usage.md docs/installation.md", + "fix": "npm-run-all --silent fix:*", "_build": "lerna run build ${PACKAGE:+--scope=@jpmorganchase/${PACKAGE}} --stream", "_build_test": "lerna run test:build ${PACKAGE:+--scope=@jpmorganchase/${PACKAGE}} --stream", "_emsdk": "docker run --rm -it ${PSP_CPU_COUNT:+--cpus=\"${PSP_CPU_COUNT}.0\"} -v $(pwd):/src -e PACKAGE=${PACKAGE} perspective/emsdk", diff --git a/packages/perspective-viewer/src/js/dragdrop.js b/packages/perspective-viewer/src/js/dragdrop.js index d18d39b1c5..19fa315dcd 100644 --- a/packages/perspective-viewer/src/js/dragdrop.js +++ b/packages/perspective-viewer/src/js/dragdrop.js @@ -7,7 +7,7 @@ * */ -import {detectIE} from "./utils.js"; +import {detectIE} from "@jpmorganchase/perspective/src/js/utils.js"; function calc_index(event) { if (this._active_columns.children.length == 0) { @@ -68,7 +68,7 @@ export function drop(ev) { } // Deselect the dropped column - if (this._plugin.deselectMode === "pivots" && this._visible_column_count() > 1 && name !== "sort" && name !== "filter") { + if (this._plugin.deselectMode === "pivots" && this._get_visible_column_count() > 1 && name !== "sort" && name !== "filter") { for (let x of this.shadowRoot.querySelectorAll("#active_columns perspective-row")) { if (x.getAttribute("name") === data[0]) { this._active_columns.removeChild(x); @@ -87,7 +87,7 @@ export function column_undrag(event) { Array.prototype.slice.call(this._active_columns.children).map(x => { x.className = ""; }); - if (this._visible_column_count() > 1 && event.dataTransfer.dropEffect !== "move") { + if (this._get_visible_column_count() > 1 && event.dataTransfer.dropEffect !== "move") { this._active_columns.removeChild(data); this._update_column_view(); } diff --git a/packages/perspective-viewer/src/less/default.less b/packages/perspective-viewer/src/less/default.less index e9616cee4c..5a2fb4893a 100644 --- a/packages/perspective-viewer/src/less/default.less +++ b/packages/perspective-viewer/src/less/default.less @@ -306,6 +306,7 @@ } .plugin_information { + color: var(--warning--color, inherit); display: flex; flex-direction: row; justify-content: flex-start; diff --git a/packages/perspective-viewer/src/less/material.dark.less b/packages/perspective-viewer/src/less/material.dark.less index 2dabd2ea52..34868baa16 100644 --- a/packages/perspective-viewer/src/less/material.dark.less +++ b/packages/perspective-viewer/src/less/material.dark.less @@ -74,4 +74,6 @@ perspective-viewer { #4d342f 70%, #222222 100% ); + + --warning--color: #333; } diff --git a/packages/perspective-viewer/src/less/row.less b/packages/perspective-viewer/src/less/row.less index a1d8e54135..26e45c4db9 100644 --- a/packages/perspective-viewer/src/less/row.less +++ b/packages/perspective-viewer/src/less/row.less @@ -161,6 +161,7 @@ border: none; transform-origin: none; transition: 0; + background: var(--plugin--background, #fff) !important; } .awesomplete > ul:before { diff --git a/packages/perspective/bench/config/benchmark.config.js b/packages/perspective/bench/config/benchmark.config.js index 39664db42a..a512066a11 100644 --- a/packages/perspective/bench/config/benchmark.config.js +++ b/packages/perspective/bench/config/benchmark.config.js @@ -1,12 +1,14 @@ const path = require('path'); const common = require('../../src/config/common.config.js'); -module.exports = Object.assign({}, common(), { +module.exports = Object.assign({}, common({no_minify: true}), { entry: './bench/js/benchmark.js', - plugins: [], target: "node", - externals: [/^([a-z0-9]|\@(?!apache\-arrow)).*$/], - node: {}, + externals: [/^([a-z0-9]|\@(?!apache\-arrow)).*?(?!wasm)$/g], + node: { + __dirname: false, + __filename: false + }, output: { filename: 'benchmark.js', path: path.resolve(__dirname, '../../build'), @@ -14,7 +16,3 @@ module.exports = Object.assign({}, common(), { } }); -module.exports.module.rules.push({ - test: /\.wasm$/, - loader: "arraybuffer-loader" -}); \ No newline at end of file diff --git a/packages/perspective/bench/js/report.js b/packages/perspective/bench/js/report.js index 4f391d45ec..ae4afa6d1c 100644 --- a/packages/perspective/bench/js/report.js +++ b/packages/perspective/bench/js/report.js @@ -10,14 +10,12 @@ import "../less/benchmark.less"; import CodeMirror from 'codemirror'; -import 'codemirror/lib/codemirror.css'; -import 'codemirror/theme/eclipse.css'; +import '!!style-loader!css-loader!codemirror/lib/codemirror.css'; +import '!!style-loader!css-loader!codemirror/theme/eclipse.css'; import 'codemirror/mode/javascript/javascript.js'; import Chart from "chart.js"; -import {histogram} from "d3-array"; - String.prototype.hashCode = function(){ var hash = 0; if (this.length == 0) return hash; diff --git a/packages/perspective/bench/results/results.json b/packages/perspective/bench/results/results.json index e84918a4ff..6c74b5a960 100644 --- a/packages/perspective/bench/results/results.json +++ b/packages/perspective/bench/results/results.json @@ -1 +1 @@ -{"data":[{"code":"\n_perspectiveNode2.default.table(csv);\nresolve();\n","bins":[[272.0295320004225,4],[275,20],[280,3],[285,8],[290,17],[295,42],[300,8],[305,0],[310,5],[315,11],[320,11],[325,6],[330,1],[335,3],[340,12],[345,27],[350,13],[355,4],[360,2],[365,0],[370,0],[375,2],[380,0],[385,0],[390,0],[395,0],[400,0],[405,0],[410,0],[415,0],[420,0],[425,0],[430,0],[435,0],[440,0],[445,0],[450,0],[455,1],[460,0],[465,0],[470,0],[475,0],[480,0],[485,0],[490,0],[495,0],[500,0],[505,0],[510,0],[515,0],[520,0],[525,0],[530,0],[535,0],[540,0],[545,0],[550,0],[555,0],[560,0],[565,0],[570,0],[575,0],[580,0],[585,0],[590,0],[595,0],[600,0],[605,0],[610,1]],"avg":316.69745483601565,"std":35.883855340198444,"avg_diff":"-4.82%","std_diff":"-7.65%","old_avg":331.94803671638914,"old_std":38.62856841694975},{"code":"\nvar view = table.view({\n filter: [[\"Origin\", \"contains\", \"P\"]],\n aggregate: \"count\"\n});\nview.delete();\nresolve();\n","bins":[[13.875462003052235,1],[13.9,0],[14,1],[14.1,0],[14.200000000000001,2],[14.3,1],[14.4,0],[14.5,2],[14.6,2],[14.700000000000001,5],[14.8,4],[14.9,3],[15,4],[15.100000000000001,1],[15.200000000000001,2],[15.3,2],[15.4,2],[15.5,2],[15.600000000000001,3],[15.700000000000001,5],[15.8,2],[15.9,8],[16,6],[16.1,11],[16.2,11],[16.3,10],[16.4,9],[16.5,14],[16.6,15],[16.7,16],[16.8,9],[16.9,7],[17,16],[17.1,16],[17.2,19],[17.3,30],[17.4,36],[17.5,66],[17.6,60],[17.7,79],[17.8,52],[17.9,41],[18,165],[18.1,218],[18.2,121],[18.3,110],[18.4,72],[18.5,55],[18.6,76],[18.700000000000003,67],[18.8,85],[18.9,78],[19,61],[19.1,64],[19.200000000000003,45],[19.3,53],[19.4,36],[19.5,24],[19.6,26],[19.700000000000003,20],[19.8,13],[19.9,11],[20,3],[20.1,8],[20.200000000000003,3],[20.3,1],[20.4,3],[20.5,0],[20.6,0],[20.700000000000003,0],[20.8,1],[20.9,1],[21,0],[21.1,0],[21.200000000000003,0],[21.3,0],[21.4,0],[21.5,0],[21.6,0],[21.700000000000003,0],[21.8,0],[21.9,1],[22,0],[22.1,0],[22.200000000000003,1],[22.3,1],[22.4,0],[22.5,0],[22.6,1],[22.700000000000003,0],[22.8,0],[22.9,0],[23,0],[23.1,0],[23.200000000000003,0],[23.3,0],[23.4,1],[23.5,0],[23.6,0],[23.700000000000003,0],[23.8,0],[23.9,0],[24,0],[24.1,0],[24.200000000000003,0],[24.3,0],[24.4,0],[24.5,0],[24.6,0],[24.700000000000003,0],[24.8,0],[24.9,0],[25,0],[25.1,0],[25.200000000000003,0],[25.3,0],[25.4,0],[25.5,1]],"avg":18.253188199863054,"std":0.954650705126697,"avg_diff":"-0.09%","std_diff":"-18.90%","old_avg":18.269091299322174,"old_std":1.1351223331364229},{"code":"\nvar view = table.view({\n filter: [[\"Origin\", \"contains\", \"P\"]],\n aggregate: \"count\"\n});\nview.to_json({\n end_row: 10\n}).then(function () {\n view.delete();\n resolve();\n});\n","bins":[[14.671007998287678,2],[14.8,4],[15,3],[15.200000000000001,3],[15.4,4],[15.600000000000001,5],[15.8,7],[16,1],[16.2,7],[16.400000000000002,5],[16.6,8],[16.8,9],[17,9],[17.200000000000003,18],[17.400000000000002,22],[17.6,34],[17.8,53],[18,69],[18.200000000000003,89],[18.400000000000002,127],[18.6,123],[18.8,111],[19,108],[19.200000000000003,110],[19.400000000000002,88],[19.6,93],[19.8,96],[20,106],[20.200000000000003,141],[20.400000000000002,146],[20.6,120],[20.8,107],[21,61],[21.200000000000003,48],[21.400000000000002,30],[21.6,16],[21.8,2],[22,5],[22.200000000000003,1],[22.400000000000002,1],[22.6,1],[22.8,1],[23,0],[23.200000000000003,0],[23.4,0],[23.6,0],[23.8,0],[24,1],[24.200000000000003,0],[24.400000000000002,0],[24.6,0],[24.8,1],[25,0],[25.200000000000003,0],[25.400000000000002,0],[25.6,0],[25.8,0],[26,0],[26.200000000000003,1],[26.400000000000002,0],[26.6,0],[26.8,0],[27,0],[27.200000000000003,0],[27.400000000000002,1],[27.6,1],[27.8,0],[28,0],[28.200000000000003,0],[28.400000000000002,0],[28.6,1],[28.8,0],[29,0],[29.200000000000003,0],[29.400000000000002,0],[29.6,0],[29.8,0],[30,1]],"avg":19.511948512717225,"std":1.3058199138691573,"avg_diff":"+4.54%","std_diff":"+20.84%","old_avg":18.62649976596914,"old_std":1.0336364098379254},{"code":"\nvar view = table.view({\n filter: [[\"Origin\", \"contains\", \"P\"]],\n row_pivot: ['Dest'],\n aggregate: \"count\"\n});\nview.to_json().then(function () {\n view.delete();\n resolve();\n});\n","bins":[[43.02935100346804,2],[43.2,1],[43.400000000000006,1],[43.6,3],[43.800000000000004,1],[44,4],[44.2,4],[44.400000000000006,7],[44.6,12],[44.800000000000004,19],[45,21],[45.2,27],[45.400000000000006,43],[45.6,42],[45.800000000000004,55],[46,45],[46.2,64],[46.400000000000006,75],[46.6,67],[46.800000000000004,70],[47,89],[47.2,77],[47.400000000000006,87],[47.6,95],[47.800000000000004,88],[48,113],[48.2,83],[48.400000000000006,88],[48.6,83],[48.800000000000004,90],[49,79],[49.2,47],[49.400000000000006,62],[49.6,62],[49.800000000000004,50],[50,40],[50.2,39],[50.400000000000006,31],[50.6,22],[50.800000000000004,16],[51,16],[51.2,11],[51.400000000000006,11],[51.6,5],[51.800000000000004,3],[52,3],[52.2,2],[52.400000000000006,5],[52.6,6],[52.800000000000004,4],[53,0],[53.2,1],[53.400000000000006,3],[53.6,2],[53.800000000000004,0],[54,3],[54.2,1],[54.400000000000006,0],[54.6,1],[54.800000000000004,1],[55,0],[55.2,0],[55.400000000000006,0],[55.6,0],[55.800000000000004,0],[56,1],[56.2,0],[56.400000000000006,0],[56.6,2],[56.800000000000004,1],[57,0],[57.2,2],[57.400000000000006,0],[57.6,0],[57.800000000000004,1],[58,2],[58.2,1],[58.400000000000006,0],[58.6,0],[58.800000000000004,0],[59,0],[59.2,0],[59.400000000000006,0],[59.60000000000001,4],[59.800000000000004,0],[60,1],[60.2,0],[60.400000000000006,0],[60.60000000000001,0],[60.800000000000004,0],[61,0],[61.2,0],[61.400000000000006,0],[61.60000000000001,0],[61.800000000000004,0],[62,0],[62.2,0],[62.400000000000006,0],[62.60000000000001,0],[62.800000000000004,0],[63,1],[63.2,0],[63.400000000000006,0],[63.60000000000001,0],[63.800000000000004,0],[64,0],[64.2,0],[64.4,0],[64.60000000000001,0],[64.80000000000001,0],[65,0],[65.2,0],[65.4,0],[65.60000000000001,0],[65.80000000000001,0],[66,0],[66.2,0],[66.4,0],[66.60000000000001,0],[66.80000000000001,0],[67,0],[67.2,0],[67.4,0],[67.60000000000001,0],[67.80000000000001,0],[68,0],[68.2,0],[68.4,0],[68.60000000000001,0],[68.80000000000001,0],[69,0],[69.2,0],[69.4,0],[69.60000000000001,0],[69.80000000000001,0],[70,0],[70.2,0],[70.4,0],[70.60000000000001,0],[70.80000000000001,0],[71,0],[71.2,0],[71.4,1],[71.60000000000001,0],[71.80000000000001,0],[72,0],[72.2,0],[72.4,0],[72.60000000000001,0],[72.80000000000001,0],[73,0],[73.2,0],[73.4,1],[73.60000000000001,0],[73.80000000000001,0],[74,0],[74.2,1]],"avg":48.12429197707857,"std":2.164523724580564,"avg_diff":"-0.66%","std_diff":"+8.46%","old_avg":48.442534392789895,"old_std":1.9813532334463733},{"code":"\nvar view = table.view({\n filter: [[\"Origin\", \"contains\", \"P\"]],\n aggregate: \"count\"\n});\nview.to_json().then(function () {\n view.delete();\n resolve();\n});\n","bins":[[68.97704099863768,1],[69,0],[69.5,1],[70,2],[70.5,2],[71,4],[71.5,10],[72,8],[72.5,10],[73,14],[73.5,31],[74,28],[74.5,38],[75,31],[75.5,40],[76,38],[76.5,33],[77,23],[77.5,40],[78,23],[78.5,12],[79,21],[79.5,9],[80,12],[80.5,4],[81,3],[81.5,3],[82,1],[82.5,0],[83,0],[83.5,1],[84,2],[84.5,1],[85,0],[85.5,0],[86,1],[86.5,0],[87,0],[87.5,1],[88,1],[88.5,4],[89,8],[89.5,14],[90,24],[90.5,31],[91,21],[91.5,15],[92,8],[92.5,7],[93,4],[93.5,1],[94,1],[94.5,3],[95,0],[95.5,2],[96,2],[96.5,1],[97,0],[97.5,1],[98,0],[98.5,0],[99,0],[99.5,1],[100,0],[100.5,2],[101,0],[101.5,0],[102,0],[102.5,0],[103,0],[103.5,0],[104,0],[104.5,0],[105,0],[105.5,0],[106,0],[106.5,0],[107,0],[107.5,0],[108,0],[108.5,0],[109,0],[109.5,0],[110,0],[110.5,0],[111,0],[111.5,0],[112,0],[112.5,2]],"avg":80.12682334931192,"std":7.26163422024531,"avg_diff":"-0.91%","std_diff":"+0.85%","old_avg":80.85956921469352,"old_std":7.199816485680083},{"code":"\nvar view = table.view({\n row_pivot: ['Dest'],\n aggregate: \"count\",\n row_pivot_depth: 1\n});\nview.to_json().then(function () {\n view.delete();\n resolve();\n});\n","bins":[[95.0453840047121,1],[95.5,0],[96,1],[96.5,1],[97,9],[97.5,8],[98,7],[98.5,17],[99,32],[99.5,36],[100,58],[100.5,56],[101,71],[101.5,60],[102,52],[102.5,48],[103,37],[103.5,18],[104,16],[104.5,20],[105,9],[105.5,7],[106,7],[106.5,3],[107,5],[107.5,4],[108,0],[108.5,3],[109,3],[109.5,4],[110,0],[110.5,1],[111,1],[111.5,0],[112,0],[112.5,0],[113,0],[113.5,0],[114,0],[114.5,0],[115,0],[115.5,1],[116,0],[116.5,0],[117,0],[117.5,0],[118,0],[118.5,0],[119,0],[119.5,0],[120,0],[120.5,0],[121,0],[121.5,0],[122,0],[122.5,1],[123,0],[123.5,0],[124,0],[124.5,0],[125,0],[125.5,0],[126,1],[126.5,0],[127,1],[127.5,0],[128,0],[128.5,0],[129,0],[129.5,0],[130,0],[130.5,0],[131,0],[131.5,0],[132,0],[132.5,0],[133,0],[133.5,0],[134,0],[134.5,0],[135,0],[135.5,0],[136,0],[136.5,0],[137,0],[137.5,0],[138,0],[138.5,0],[139,0],[139.5,0],[140,0],[140.5,0],[141,0],[141.5,0],[142,0],[142.5,0],[143,0],[143.5,0],[144,0],[144.5,0],[145,0],[145.5,0],[146,0],[146.5,1],[147,0],[147.5,0],[148,0],[148.5,0],[149,0],[149.5,0],[150,0],[150.5,0],[151,0],[151.5,0],[152,0],[152.5,0],[153,0],[153.5,0],[154,0],[154.5,0],[155,0],[155.5,0],[156,1]],"avg":102.09377937765169,"std":4.082266487613671,"avg_diff":"+0.13%","std_diff":"+33.79%","old_avg":101.96477249624229,"old_std":2.702898279712944},{"code":"\nvar view = table.view({\n row_pivot: ['Dest'],\n aggregate: \"mean\",\n row_pivot_depth: 1\n});\nview.to_json().then(function () {\n view.delete();\n resolve();\n});\n","bins":[[98.14620400220156,2],[98.5,1],[99,1],[99.5,6],[100,16],[100.5,16],[101,31],[101.5,42],[102,54],[102.5,61],[103,73],[103.5,62],[104,46],[104.5,42],[105,25],[105.5,20],[106,16],[106.5,17],[107,17],[107.5,5],[108,9],[108.5,4],[109,4],[109.5,8],[110,3],[110.5,0],[111,1],[111.5,0],[112,1],[112.5,1],[113,0],[113.5,2],[114,0],[114.5,0],[115,1],[115.5,2],[116,1],[116.5,0],[117,0],[117.5,0],[118,0],[118.5,1],[119,0],[119.5,0],[120,0],[120.5,0],[121,1],[121.5,0],[122,0],[122.5,0],[123,1],[123.5,1],[124,1],[124.5,0],[125,1],[125.5,0],[126,1],[126.5,0],[127,0],[127.5,0],[128,0],[128.5,1],[129,0],[129.5,0],[130,0],[130.5,0],[131,1],[131.5,0],[132,0],[132.5,0],[133,0],[133.5,0],[134,0],[134.5,0],[135,0],[135.5,0],[136,0],[136.5,1],[137,0],[137.5,0],[138,0],[138.5,0],[139,0],[139.5,0],[140,0],[140.5,0],[141,0],[141.5,0],[142,0],[142.5,0],[143,0],[143.5,0],[144,0],[144.5,0],[145,0],[145.5,0],[146,0],[146.5,1]],"avg":104.30971611488282,"std":4.174765719385656,"avg_diff":"-0.42%","std_diff":"-51.23%","old_avg":104.75247435437859,"old_std":6.313580246174308}],"model":"Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz","release":"17.5.0","platform":"darwin"} \ No newline at end of file +{"data":[{"code":"\n_perspectiveNode2.default.table(csv);\nresolve();\n","bins":[[315.76230300962925,3],[320,8],[325,5],[330,16],[335,35],[340,22],[345,11],[350,3],[355,4],[360,3],[365,8],[370,8],[375,6],[380,24],[385,26],[390,5],[395,4],[400,3],[405,1],[410,0],[415,0],[420,1],[425,1],[430,1],[435,0],[440,0],[445,1],[450,0],[455,0],[460,0],[465,0],[470,0],[475,0],[480,0],[485,0],[490,0],[495,0],[500,0],[505,0],[510,0],[515,0],[520,1],[525,0],[530,0],[535,0],[540,0],[545,0],[550,0],[555,0],[560,0],[565,0],[570,0],[575,0],[580,0],[585,0],[590,0],[595,0],[600,0],[605,0],[610,0],[615,0],[620,0],[625,0],[630,0],[635,0],[640,0],[645,0],[650,0],[655,0],[660,0],[665,0],[670,0],[675,0],[680,0],[685,0],[690,0],[695,0],[700,0],[705,0],[710,0],[715,0],[720,0],[725,0],[730,0],[735,0],[740,0],[745,0],[750,0],[755,0],[760,0],[765,0],[770,0],[775,0],[780,0],[785,0],[790,0],[795,0],[800,0],[805,0],[810,0],[815,1]],"avg":362.7220161792947,"std":42.69973266375656,"avg_diff":"-2.48%","std_diff":"-20.77%","old_avg":371.7116352541382,"old_std":51.567505990570744},{"code":"\nvar view = table.view({\n filter: [[\"Origin\", \"contains\", \"P\"]],\n aggregate: \"count\"\n});\nview.delete();\nresolve();\n","bins":[[14.16473700106144,1],[14.200000000000001,1],[14.3,1],[14.4,1],[14.500000000000002,0],[14.600000000000001,0],[14.700000000000001,1],[14.8,0],[14.9,2],[15.000000000000002,2],[15.100000000000001,2],[15.200000000000001,2],[15.3,3],[15.400000000000002,1],[15.500000000000002,0],[15.600000000000001,0],[15.700000000000001,3],[15.8,6],[15.900000000000002,4],[16,6],[16.1,5],[16.200000000000003,5],[16.3,5],[16.400000000000002,8],[16.5,7],[16.6,13],[16.700000000000003,9],[16.8,17],[16.900000000000002,22],[17,27],[17.1,26],[17.200000000000003,27],[17.3,26],[17.400000000000002,28],[17.5,33],[17.6,30],[17.700000000000003,24],[17.8,22],[17.900000000000002,28],[18,22],[18.1,32],[18.200000000000003,35],[18.3,40],[18.400000000000002,37],[18.5,51],[18.6,43],[18.700000000000003,56],[18.8,68],[18.900000000000002,78],[19,73],[19.1,99],[19.200000000000003,75],[19.3,77],[19.400000000000002,76],[19.5,86],[19.6,74],[19.700000000000003,73],[19.8,79],[19.900000000000002,58],[20,64],[20.1,59],[20.200000000000003,63],[20.3,50],[20.400000000000002,30],[20.5,25],[20.6,15],[20.700000000000003,18],[20.8,7],[20.900000000000002,8],[21,7],[21.1,2],[21.200000000000003,3],[21.3,2],[21.400000000000002,2],[21.5,1],[21.6,2],[21.700000000000003,0],[21.8,3],[21.900000000000002,2],[22,0],[22.1,1],[22.200000000000003,0],[22.3,1],[22.400000000000002,1],[22.5,1],[22.6,1],[22.700000000000003,0],[22.8,0],[22.900000000000002,0],[23,0],[23.1,0],[23.200000000000003,0],[23.3,0],[23.400000000000002,0],[23.5,0],[23.6,0],[23.700000000000003,0],[23.800000000000004,0],[23.900000000000002,0],[24,0],[24.1,0],[24.200000000000003,0],[24.300000000000004,0],[24.400000000000002,0],[24.5,0],[24.6,1],[24.700000000000003,0],[24.800000000000004,0],[24.900000000000002,0],[25,0],[25.1,0],[25.200000000000003,0],[25.300000000000004,0],[25.400000000000002,0],[25.5,0],[25.6,0],[25.700000000000003,0],[25.800000000000004,0],[25.900000000000002,0],[26,0],[26.1,0],[26.200000000000003,0],[26.300000000000004,0],[26.400000000000002,0],[26.5,0],[26.6,0],[26.700000000000003,1],[26.800000000000004,1]],"avg":18.99126514641271,"std":1.2033541007277022,"avg_diff":"+1.55%","std_diff":"-0.07%","old_avg":18.697776202125468,"old_std":1.204138619303178},{"code":"\nvar view = table.view({\n filter: [[\"Origin\", \"contains\", \"P\"]],\n aggregate: \"count\"\n});\nview.to_json({\n end_row: 10\n}).then(function () {\n view.delete();\n resolve();\n});\n","bins":[[14.451049998402596,1],[14.5,0],[14.6,1],[14.7,0],[14.8,1],[14.9,0],[15,2],[15.1,2],[15.2,0],[15.3,3],[15.4,5],[15.5,1],[15.6,3],[15.7,4],[15.8,4],[15.9,2],[16,6],[16.1,0],[16.2,5],[16.3,2],[16.4,3],[16.5,10],[16.6,11],[16.7,11],[16.8,11],[16.9,10],[17,16],[17.1,22],[17.2,14],[17.3,28],[17.4,29],[17.5,25],[17.6,38],[17.7,33],[17.8,42],[17.9,29],[18,40],[18.1,38],[18.2,28],[18.3,27],[18.4,34],[18.5,41],[18.6,50],[18.7,35],[18.8,42],[18.9,32],[19,54],[19.1,60],[19.2,75],[19.3,70],[19.4,86],[19.5,80],[19.6,87],[19.7,69],[19.8,94],[19.9,68],[20,86],[20.1,72],[20.2,61],[20.3,58],[20.4,51],[20.5,40],[20.6,38],[20.7,28],[20.8,17],[20.9,20],[21,9],[21.1,8],[21.2,4],[21.3,4],[21.4,3],[21.5,3],[21.6,2],[21.7,2],[21.8,0],[21.9,0],[22,0],[22.1,2],[22.2,1],[22.3,1],[22.4,2],[22.5,0],[22.6,0],[22.700000000000003,1],[22.8,0],[22.9,0],[23,0],[23.1,0],[23.200000000000003,0],[23.3,0],[23.4,0],[23.5,1],[23.6,0],[23.700000000000003,0],[23.8,1],[23.9,0],[24,0],[24.1,0],[24.200000000000003,0],[24.3,0],[24.4,0],[24.5,0],[24.6,0],[24.700000000000003,0],[24.8,1],[24.9,1]],"avg":19.159274226535803,"std":1.2176060814371967,"avg_diff":"+1.45%","std_diff":"-2.25%","old_avg":18.882164844732056,"old_std":1.2450121970538315},{"code":"\nvar view = table.view({\n filter: [[\"Origin\", \"contains\", \"P\"]],\n row_pivot: ['Dest'],\n aggregate: \"count\"\n});\nview.to_json().then(function () {\n view.delete();\n resolve();\n});\n","bins":[[42.097451999783516,1],[42.5,0],[43,3],[43.5,10],[44,23],[44.5,29],[45,56],[45.5,92],[46,141],[46.5,189],[47,237],[47.5,283],[48,302],[48.5,228],[49,151],[49.5,87],[50,55],[50.5,34],[51,26],[51.5,12],[52,13],[52.5,8],[53,3],[53.5,3],[54,1],[54.5,0],[55,4],[55.5,2],[56,0],[56.5,0],[57,1],[57.5,1],[58,2],[58.5,0],[59,0],[59.5,0],[60,0],[60.5,0],[61,0],[61.5,0],[62,1],[62.5,1],[63,0],[63.5,0],[64,0],[64.5,0],[65,0],[65.5,1],[66,0],[66.5,0],[67,0],[67.5,0],[68,0],[68.5,0],[69,0],[69.5,0],[70,0],[70.5,0],[71,0],[71.5,0],[72,0],[72.5,0],[73,0],[73.5,1]],"avg":47.93699074158634,"std":1.87018674304559,"avg_diff":"-2.65%","std_diff":"-99.69%","old_avg":49.20633878484778,"old_std":3.7345842105732636},{"code":"\nvar view = table.view({\n filter: [[\"Origin\", \"contains\", \"P\"]],\n aggregate: \"count\"\n});\nview.to_json().then(function () {\n view.delete();\n resolve();\n});\n","bins":[[72.860749989748,1],[73,0],[73.2,1],[73.4,0],[73.6,0],[73.8,0],[74,0],[74.2,0],[74.4,0],[74.6,0],[74.8,0],[75,0],[75.2,0],[75.4,0],[75.6,3],[75.8,2],[76,3],[76.2,4],[76.4,5],[76.6,4],[76.8,3],[77,8],[77.2,4],[77.4,3],[77.6,13],[77.8,10],[78,12],[78.2,8],[78.4,12],[78.6,10],[78.8,11],[79,10],[79.2,5],[79.4,20],[79.6,11],[79.8,7],[80,18],[80.2,12],[80.4,6],[80.6,8],[80.8,12],[81,11],[81.2,9],[81.4,10],[81.6,13],[81.8,18],[82,9],[82.2,10],[82.4,5],[82.6,6],[82.8,12],[83,16],[83.2,10],[83.4,11],[83.6,10],[83.8,10],[84,2],[84.2,6],[84.4,9],[84.6,7],[84.8,8],[85,5],[85.2,3],[85.4,3],[85.6,5],[85.8,3],[86,2],[86.2,1],[86.4,0],[86.6,1],[86.8,2],[87,1],[87.2,2],[87.4,0],[87.6,0],[87.8,0],[88,0],[88.2,0],[88.4,0],[88.6,0],[88.8,0],[89,0],[89.2,0],[89.4,0],[89.6,0],[89.8,0],[90,1],[90.2,0],[90.4,0],[90.6,0],[90.8,0],[91,0],[91.2,2],[91.4,0],[91.6,2],[91.8,3],[92,2],[92.2,2],[92.4,4],[92.6,1],[92.8,5],[93,8],[93.2,5],[93.4,8],[93.6,14],[93.8,12],[94,5],[94.2,12],[94.4,1],[94.6,5],[94.8,6],[95,8],[95.2,6],[95.4,4],[95.6,3],[95.8,6],[96,2],[96.2,3],[96.4,4],[96.6,3],[96.8,2],[97,3],[97.2,5],[97.4,2],[97.6,1],[97.8,0],[98,1],[98.2,0],[98.4,0],[98.6,1],[98.8,0],[99,0],[99.2,0],[99.4,0],[99.6,1],[99.8,0],[100,0],[100.2,0],[100.4,0],[100.6,0],[100.8,0],[101,0],[101.2,0],[101.4,0],[101.6,0],[101.8,0],[102,0],[102.2,0],[102.4,0],[102.6,0],[102.8,0],[103,0],[103.2,1],[103.4,1]],"avg":84.49366870381174,"std":6.470284726490922,"avg_diff":"-4.47%","std_diff":"-29.02%","old_avg":88.26828702014814,"old_std":8.348132426753132},{"code":"\nvar view = table.view({\n row_pivot: ['Dest'],\n aggregate: \"count\",\n row_pivot_depth: 1\n});\nview.to_json().then(function () {\n view.delete();\n resolve();\n});\n","bins":[[95.60043799877167,2],[95.80000000000001,0],[96.00000000000001,0],[96.20000000000002,0],[96.4,0],[96.60000000000001,2],[96.80000000000001,0],[97.00000000000001,0],[97.20000000000002,2],[97.4,1],[97.60000000000001,3],[97.80000000000001,0],[98.00000000000001,1],[98.20000000000002,0],[98.4,1],[98.60000000000001,7],[98.80000000000001,4],[99.00000000000001,2],[99.20000000000002,7],[99.4,4],[99.60000000000001,10],[99.80000000000001,9],[100.00000000000001,10],[100.20000000000002,18],[100.4,21],[100.60000000000001,8],[100.80000000000001,18],[101.00000000000001,20],[101.20000000000002,26],[101.4,29],[101.60000000000001,21],[101.80000000000001,18],[102.00000000000001,27],[102.20000000000002,23],[102.4,25],[102.60000000000001,21],[102.80000000000001,21],[103.00000000000001,16],[103.20000000000002,18],[103.4,14],[103.60000000000001,17],[103.80000000000001,17],[104.00000000000001,13],[104.20000000000002,17],[104.4,9],[104.60000000000001,10],[104.80000000000001,5],[105.00000000000001,6],[105.20000000000002,5],[105.4,6],[105.60000000000001,9],[105.80000000000001,8],[106.00000000000001,9],[106.20000000000002,5],[106.4,7],[106.60000000000001,6],[106.80000000000001,1],[107.00000000000001,3],[107.20000000000002,2],[107.4,6],[107.60000000000001,5],[107.80000000000001,1],[108.00000000000001,1],[108.20000000000002,6],[108.4,1],[108.60000000000001,1],[108.80000000000001,2],[109.00000000000001,2],[109.20000000000002,0],[109.4,1],[109.60000000000001,0],[109.80000000000001,0],[110.00000000000001,3],[110.20000000000002,0],[110.4,0],[110.60000000000001,0],[110.80000000000001,1],[111.00000000000001,0],[111.20000000000002,0],[111.4,2],[111.60000000000001,0],[111.80000000000001,0],[112.00000000000001,0],[112.20000000000002,0],[112.4,1],[112.60000000000001,0],[112.80000000000001,1],[113.00000000000001,0],[113.20000000000002,0],[113.4,0],[113.60000000000001,0],[113.80000000000001,0],[114.00000000000001,0],[114.20000000000002,0],[114.4,0],[114.60000000000001,0],[114.80000000000001,0],[115.00000000000001,0],[115.20000000000002,1],[115.4,0],[115.60000000000001,0],[115.80000000000001,0],[116.00000000000001,0],[116.20000000000002,0],[116.4,0],[116.60000000000001,0],[116.80000000000001,0],[117.00000000000001,0],[117.20000000000002,0],[117.4,0],[117.60000000000001,0],[117.80000000000001,0],[118.00000000000001,0],[118.20000000000002,0],[118.4,0],[118.60000000000001,0],[118.80000000000001,0],[119.00000000000001,0],[119.20000000000002,0],[119.4,1],[119.60000000000001,1]],"avg":102.87101471719151,"std":2.7302324819374606,"avg_diff":"-2.50%","std_diff":"-301.57%","old_avg":105.43767548601659,"old_std":10.963836692839665},{"code":"\nvar view = table.view({\n row_pivot: ['Dest'],\n aggregate: \"mean\",\n row_pivot_depth: 1\n});\nview.to_json().then(function () {\n view.delete();\n resolve();\n});\n","bins":[[95.58404798805714,1],[96,0],[96.5,1],[97,2],[97.5,4],[98,8],[98.5,9],[99,22],[99.5,34],[100,40],[100.5,51],[101,54],[101.5,46],[102,55],[102.5,55],[103,42],[103.5,34],[104,26],[104.5,17],[105,22],[105.5,10],[106,15],[106.5,14],[107,7],[107.5,8],[108,3],[108.5,5],[109,4],[109.5,1],[110,1],[110.5,0],[111,3],[111.5,1],[112,0],[112.5,0],[113,0],[113.5,0],[114,0],[114.5,0],[115,1],[115.5,0],[116,0],[116.5,1],[117,0],[117.5,0],[118,0],[118.5,0],[119,0],[119.5,0],[120,1],[120.5,0],[121,0],[121.5,0],[122,0],[122.5,0],[123,0],[123.5,0],[124,0],[124.5,0],[125,0],[125.5,0],[126,2],[126.5,0],[127,0],[127.5,0],[128,0],[128.5,0],[129,0],[129.5,0],[130,0],[130.5,1]],"avg":102.7086531924775,"std":3.2325664504347027,"avg_diff":"-20.97%","std_diff":"-598.67%","old_avg":124.24623680072597,"old_std":22.585001138121537}],"model":"Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz","release":"17.5.0","platform":"darwin"} \ No newline at end of file diff --git a/packages/perspective/package.json b/packages/perspective/package.json index 6f599bc89a..7341fe966d 100644 --- a/packages/perspective/package.json +++ b/packages/perspective/package.json @@ -49,7 +49,10 @@ "bench:build:copy": "cp bench/csv/* build", "bench:run": "node build/benchmark.js", "bench": "npm-run-all bench:build bench:run", - "prebuild": "mkdir -p build", + "prebuild": "mkdir -p build && CLICOLOR_FORCE=1 npm run compile", + "precompile": "mkdir -p obj", + "compile": "cd ../../obj/ && emcmake cmake ../scripts/ && emmake make -j${PSP_CPU_COUNT-8}", + "postcompile": "node ../../scripts/compile", "build": "npm-run-all build:webpack", "build:webpack": "npm-run-all -p build:webpack:*", "build:webpack:umd": "webpack --color --config src/config/perspective.config.js", diff --git a/packages/perspective/src/config/common.config.js b/packages/perspective/src/config/common.config.js index 7be6734332..42cbde2200 100644 --- a/packages/perspective/src/config/common.config.js +++ b/packages/perspective/src/config/common.config.js @@ -4,20 +4,20 @@ const PerspectivePlugin = require("../../webpack-plugin"); const plugins = [new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, /(en|es|fr)$/)]; -if (!process.env.PSP_NO_MINIFY && !process.env.PSP_DEBUG) { - plugins.push( - new UglifyJSPlugin({ - sourceMap: true, - mangle: false, - exclude: /asmjs\.worker\.js$/, - output: { - ascii_only: true - } - }) - ); -} +module.exports = function({build_worker, no_minify} = {}) { + if (!process.env.PSP_NO_MINIFY && !process.env.PSP_DEBUG && !no_minify) { + plugins.push( + new UglifyJSPlugin({ + sourceMap: true, + mangle: false, + exclude: /(asmjs\.worker\.js)$/, + output: { + ascii_only: true + } + }) + ); + } -module.exports = function(build_worker) { plugins.push(new PerspectivePlugin({build_worker: build_worker})); return { plugins: plugins, diff --git a/packages/perspective/src/config/perspective.config.js b/packages/perspective/src/config/perspective.config.js index f33f1a5d0e..e22a691457 100644 --- a/packages/perspective/src/config/perspective.config.js +++ b/packages/perspective/src/config/perspective.config.js @@ -1,7 +1,7 @@ const path = require("path"); const common = require("./common.config.js"); -module.exports = Object.assign({}, common(true), { +module.exports = Object.assign({}, common({build_worker: true}), { entry: "./src/js/perspective.parallel.js", output: { filename: "perspective.js",