Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upstream some REPL changes #9328

Merged
merged 19 commits into from
Nov 7, 2023
Merged

Upstream some REPL changes #9328

merged 19 commits into from
Nov 7, 2023

Conversation

mischnic
Copy link
Member

@mischnic mischnic commented Oct 18, 2023

  • Set a default fallback name for the namer, this sometimes happens if the source directory is /, which usually never happens.
  • Add a browser fallback to use lightningcss-wasm
  • Bump msgpackr
  • Fix rust bindings build scripts
  • Fix rust bindings browser wrapper
  • In makeShared, only copy contents if the buffer isn't empty (caused some strange errors like cannot perform TypedArray.prototype.set for detached buffer)
  • process.stdout is undefined on web
  • child_process.exec is undefined on web

@parcel-benchmark
Copy link

parcel-benchmark commented Oct 19, 2023

Benchmark Results

Kitchen Sink ✅

Timings

Description Time Difference
Cold 1.59s -14.00ms
Cached 259.00ms -18.00ms 🚀

Cold Bundles

No bundle changes detected.

Cached Bundles

No bundle changes detected.

React HackerNews ✅

Timings

Description Time Difference
Cold 4.33s -140.00ms
Cached 449.00ms +16.00ms

Cold Bundles

Bundle Size Difference Time Difference
dist/logo.8dd07848.png 244.00b +0.00b 255.00ms -16.00ms 🚀

Cached Bundles

No bundle changes detected.

AtlasKit Editor ✅

Timings

Description Time Difference
Cold 38.84s -2.21s 🚀
Cached 2.49s +20.00ms

Cold Bundles

Bundle Size Difference Time Difference
dist/index.52a242f7.js 3.78mb +0.00b 18.88s -1.27s 🚀
dist/pdfRenderer.ba28cccc.js 1.11mb +0.00b 14.57s -934.00ms 🚀
dist/editorView.a0126b37.js 619.22kb +0.00b 15.63s -920.00ms 🚀
dist/refractor.3e0cc31b.js 598.96kb +0.00b 13.44s -676.00ms 🚀
dist/popup.a77286c1.js 321.45kb +0.00b 13.44s -676.00ms 🚀
dist/ConfigPanelFieldsLoader.182d39bc.js 303.43kb +0.00b 9.00s -918.00ms 🚀
dist/EmojiPickerComponent.1e4c5464.js 188.61kb +0.00b 13.28s -833.00ms 🚀
dist/card.d06de810.js 138.91kb +0.00b 9.00s -911.00ms 🚀
dist/ConfigPanelFieldsLoader.3b50a158.js 82.73kb +0.00b 13.28s -796.00ms 🚀
dist/mobile-upload.63ab2b72.js 66.34kb +0.00b 5.72s -574.00ms 🚀
dist/esm.34897092.js 62.95kb +0.00b 13.44s -676.00ms 🚀
dist/ElementBrowser.e8f01080.js 61.94kb +0.00b 9.00s -912.00ms 🚀
dist/esm.271a6e34.js 59.30kb +0.00b 9.00s -920.00ms 🚀
dist/component-lazy.51d1dec9.js 58.94kb +0.00b 6.06s -592.00ms 🚀
dist/component.ea8ea9a2.js 57.16kb +0.00b 5.72s -571.00ms 🚀
dist/DatePicker.042aeb21.js 47.46kb +0.00b 6.72s -779.00ms 🚀
dist/Modal.fa93d531.js 27.83kb +0.00b 5.70s -592.00ms 🚀
dist/DatePicker.e51a79b1.js 24.96kb +0.00b 6.72s -779.00ms 🚀
dist/component.f7f8c338.js 18.68kb +0.00b 5.70s -593.00ms 🚀
dist/js.e1035d4d.js 17.15kb +0.00b 5.70s -592.00ms 🚀
dist/ConfigPanelFieldsLoader.3384e28b.js 15.74kb +0.00b 9.00s -911.00ms 🚀
dist/ui.8c117104.js 14.48kb +0.00b 9.00s -912.00ms 🚀
dist/ConfigPanelFieldsLoader.aa7dd375.js 13.63kb +0.00b 9.00s -912.00ms 🚀
dist/dropzone.464b3150.js 13.40kb +0.00b 13.44s -674.00ms 🚀
dist/pdfRenderer.a0700f46.js 11.90kb +0.00b 11.77s +1.85s ⚠️
dist/dropzone.1c15cdc1.js 11.48kb +0.00b 13.44s -674.00ms 🚀
dist/clipboard.400013a2.js 7.92kb +0.00b 13.44s -676.00ms 🚀
dist/mobile-upload.3747b689.js 7.79kb +0.00b 5.70s -589.00ms 🚀
dist/mobile-upload.3baad8e4.js 7.79kb +0.00b 9.00s -917.00ms 🚀
dist/mobile-upload.7a892a37.js 7.79kb +0.00b 9.00s -918.00ms 🚀
dist/index.runtime.d5d39f8d.js 7.29kb +0.00b 13.45s -793.00ms 🚀
dist/browser.0009c8b4.js 7.19kb +0.00b 13.44s -673.00ms 🚀
dist/index.b16227d6.css 4.08kb +0.00b 13.46s -793.00ms 🚀
dist/Modal.850345b4.js 3.86kb +0.00b 5.70s -592.00ms 🚀
dist/component.360dba95.js 3.20kb +0.00b 5.70s -589.00ms 🚀
dist/media-picker-analytics-error-boundary.c493f011.js 3.18kb +0.00b 13.44s -673.00ms 🚀
dist/png-chunks-extract.92497b2d.js 3.06kb +0.00b 5.70s -588.00ms 🚀
dist/ru.0cf3f40e.js 2.81kb +0.00b 9.00s -912.00ms 🚀
dist/uk.282f23b1.js 2.76kb +0.00b 9.00s -911.00ms 🚀
dist/codeViewerRenderer.51140ec8.js 2.61kb +0.00b 11.77s +1.85s ⚠️
dist/th.137e1013.js 2.60kb +0.00b 9.00s -912.00ms 🚀
dist/ResourcedEmojiComponent.9a253c26.js 2.47kb +0.00b 6.72s -778.00ms 🚀
dist/pl.bce591be.js 2.25kb +0.00b 6.72s -777.00ms 🚀
dist/cs.bf42283b.js 2.23kb +0.00b 6.72s -778.00ms 🚀
dist/de.90d5c4fa.js 2.17kb +0.00b 6.72s -778.00ms 🚀
dist/fr.ff5d335f.js 2.13kb +0.00b 6.72s -778.00ms 🚀
dist/es.80bf0476.js 2.12kb +0.00b 6.72s -777.00ms 🚀
dist/hu.223c2cde.js 2.10kb +0.00b 6.72s -778.00ms 🚀
dist/fi.98bb8fa8.js 2.09kb +0.00b 6.72s -778.00ms 🚀
dist/ja.7d4156df.js 2.09kb +0.00b 6.72s -778.00ms 🚀
dist/vi.b46097db.js 2.09kb +0.00b 9.00s -911.00ms 🚀
dist/pt_BR.b9e37d37.js 2.06kb +0.00b 6.72s -777.00ms 🚀
dist/tr.c85d90a9.js 2.03kb +0.00b 9.00s -912.00ms 🚀
dist/ko.9c6bf469.js 1.98kb +0.00b 6.72s -778.00ms 🚀
dist/sv.1c06c95c.js 1.98kb +0.00b 9.00s -912.00ms 🚀
dist/it.04edb54a.js 1.97kb +0.00b 6.72s -778.00ms 🚀
dist/nb.9bd6db78.js 1.96kb +0.00b 6.72s -777.00ms 🚀
dist/date.139a08b0.js 1.95kb +0.00b 6.06s -592.00ms 🚀
dist/da.d2d8303e.js 1.95kb +0.00b 6.72s -778.00ms 🚀
dist/nl.c4d12122.js 1.94kb +0.00b 6.72s -777.00ms 🚀
dist/images.774ef3be.js 1.90kb +0.00b 6.06s -591.00ms 🚀
dist/zh_TW.b7c55aa6.js 1.86kb +0.00b 9.00s -911.00ms 🚀
dist/zh.b01fe721.js 1.84kb +0.00b 9.00s -911.00ms 🚀
dist/feedback.4b745631.js 1.76kb +0.00b 6.72s -778.00ms 🚀
dist/status.20808f9b.js 1.67kb +0.00b 6.06s -591.00ms 🚀
dist/code.3ce450f8.js 1.56kb +0.00b 6.06s -592.00ms 🚀
dist/workerHasher.4f6584da.js 1.56kb +0.00b 5.70s -588.00ms 🚀
dist/workerHasher.540c9790.js 1.56kb +0.00b 9.00s -911.00ms 🚀
dist/workerHasher.c840c607.js 1.56kb +0.00b 9.00s -918.00ms 🚀
dist/workerHasher.730f3766.js 1.56kb +0.00b 13.44s -676.00ms 🚀
dist/workerHasher.9b1fcdbf.js 1.56kb +0.00b 13.44s -673.00ms 🚀
dist/list-number.fdc97a50.js 1.47kb +0.00b 6.06s -592.00ms 🚀
dist/heading6.e6e03f52.js 1.36kb +0.00b 6.72s -778.00ms 🚀
dist/16.4998f52b.js 1.35kb +0.00b 5.70s -594.00ms 🚀
dist/heading3.73972e33.js 1.35kb +0.00b 6.06s -592.00ms 🚀
dist/16.330880f6.js 1.29kb +0.00b 5.70s -592.00ms 🚀
dist/link.71e06c5e.js 1.28kb +0.00b 6.06s -592.00ms 🚀
dist/emoji.8f9f45dc.js 1.25kb +0.00b 6.06s -591.00ms 🚀
dist/heading5.d2f94d9d.js 1.23kb +0.00b 6.72s -777.00ms 🚀
dist/expand.c983e90a.js 1.18kb +0.00b 6.72s -779.00ms 🚀
dist/heading2.c27d912d.js 1.17kb +0.00b 6.06s -592.00ms 🚀
dist/heading4.be08fc9e.js 1.12kb +0.00b 6.06s -592.00ms 🚀
dist/mention.f4723418.js 1.09kb +0.00b 6.06s -592.00ms 🚀
dist/layout.b5e3a7ef.js 1.05kb +0.00b 6.06s -591.00ms 🚀
dist/divider.7bb33712.js 1.04kb +0.00b 6.06s -591.00ms 🚀
dist/action.c407ac14.js 1.02kb +0.00b 6.06s -592.00ms 🚀
dist/heading1.d7caae19.js 1.02kb +0.00b 6.06s -591.00ms 🚀
dist/16.371e251f.js 1.00kb +0.00b 5.70s -593.00ms 🚀
dist/list.bd698aa0.js 1011.00b +0.00b 6.06s -592.00ms 🚀
dist/quote.d6bda47a.js 1011.00b +0.00b 6.06s -591.00ms 🚀
dist/decision.a17a0d00.js 992.00b +0.00b 6.06s -592.00ms 🚀
dist/16.8adad466.js 980.00b +0.00b 5.70s -592.00ms 🚀
dist/16.71432140.js 980.00b +0.00b 5.70s -592.00ms 🚀
dist/panel-warning.772e8569.js 968.00b +0.00b 6.06s -591.00ms 🚀
dist/16.e5f05248.js 960.00b +0.00b 5.70s -593.00ms 🚀
dist/16.549c63e3.js 955.00b +0.00b 6.06s -592.00ms 🚀
dist/table.e0e68580.js 946.00b +0.00b 6.06s -591.00ms 🚀
dist/16.79864de1.js 920.00b +0.00b 5.72s -576.00ms 🚀
dist/panel.45c00b08.js 887.00b +0.00b 6.06s -591.00ms 🚀
dist/panel-error.bfda44fb.js 864.00b +0.00b 6.06s -592.00ms 🚀
dist/16.7d7d7930.js 862.00b +0.00b 5.70s -593.00ms 🚀
dist/16.4556c00f.js 834.00b +0.00b 5.70s -593.00ms 🚀
dist/16.a44bb474.js 827.00b +0.00b 5.70s -593.00ms 🚀
dist/16.bf9fb66d.js 821.00b +0.00b 6.06s -592.00ms 🚀
dist/panel-success.4afcba7a.js 805.00b +0.00b 6.06s -592.00ms 🚀
dist/panel-note.58ef2b52.js 795.00b +0.00b 6.06s -592.00ms 🚀
dist/16.dffb58fe.js 782.00b +0.00b 5.70s -594.00ms 🚀
dist/16.0118b1f8.js 776.00b +0.00b 5.70s -592.00ms 🚀
dist/16.9a311f76.js 776.00b +0.00b 5.70s -593.00ms 🚀
dist/16.edf70d70.js 775.00b +0.00b 5.70s -593.00ms 🚀
dist/16.4af9f37f.js 774.00b +0.00b 5.70s -593.00ms 🚀
dist/16.aa70dcce.js 773.00b +0.00b 5.70s -592.00ms 🚀
dist/16.c715b7e1.js 746.00b +0.00b 6.06s -592.00ms 🚀
dist/16.54ffa2b2.js 725.00b +0.00b 5.70s -593.00ms 🚀
dist/16.d7c3881b.js 697.00b +0.00b 5.70s -593.00ms 🚀
dist/sk.4be9c93f.js 656.00b +0.00b 9.00s -913.00ms 🚀
dist/pt_PT.e211e609.js 635.00b +0.00b 6.72s -777.00ms 🚀
dist/et.88ef7cb4.js 633.00b +0.00b 6.72s -777.00ms 🚀
dist/simpleHasher.09765db3.js 589.00b +0.00b 5.70s -588.00ms 🚀
dist/simpleHasher.c14e20b4.js 589.00b +0.00b 9.00s -911.00ms 🚀
dist/simpleHasher.23db7a52.js 589.00b +0.00b 9.00s -918.00ms 🚀
dist/simpleHasher.eefc98b4.js 589.00b +0.00b 13.44s -676.00ms 🚀
dist/simpleHasher.47b9c809.js 589.00b +0.00b 13.44s -673.00ms 🚀
dist/is.5f045a22.js 495.00b +0.00b 6.72s -778.00ms 🚀
dist/ro.8d5b380a.js 482.00b +0.00b 6.72s -778.00ms 🚀
dist/en_GB.4c40e6c6.js 472.00b +0.00b 6.72s -777.00ms 🚀
dist/en.e1d21f6d.js 469.00b +0.00b 6.72s -777.00ms 🚀
dist/index.html 248.00b +0.00b 13.48s -790.00ms 🚀

Cached Bundles

Bundle Size Difference Time Difference
dist/pt_BR.b9e37d37.js 2.06kb +0.00b 8.91s +1.88s ⚠️
dist/ro.8d5b380a.js 482.00b +0.00b 8.91s +1.88s ⚠️

Three.js ✅

Timings

Description Time Difference
Cold 3.21s -16.00ms
Cached 336.00ms -10.00ms

Cold Bundles

Bundle Size Difference Time Difference
dist/Three.js 572.25kb +0.00b 1.12s +58.00ms ⚠️

Cached Bundles

No bundle changes detected.

Click here to view a detailed benchmark overview.

@mischnic mischnic force-pushed the repl-upstream branch 4 times, most recently from 2d5cc41 to f8e2854 Compare October 27, 2023 18:25
format === 'ansi'
? _chalk
: {
gray: {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is gray the only color we use?

Copy link
Member Author

@mischnic mischnic Nov 7, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, gray underline is the only thing used in this function (and if not, Flow would complain as well).

The remaining colors of printed diagnostics come from the function that formats the result of prettyDiagnostic (like the CLI reporter), and from the codeframe syntax highlighter.

The latter is currently not working in the REPL because by default chalk is a noop in the browser, unless force-enabled with an option. The syntax highlighter emphasize only exposes these chalk options in newer versions, which are ESM only. That would work fine for the published Parcel packages (@parcel/codeframe is bundled before publishing), but not in the monorepo where @parcel/codeframe is only transpiled with Babel and resulting in require("emphasize").

packages/core/workers/src/web/WebChild.js Outdated Show resolved Hide resolved
packages/core/workers/src/web/WebWorker.js Outdated Show resolved Hide resolved
worker.on('ready', () => {
this.readyWorkers++;
if (this.readyWorkers === this.options.maxConcurrentWorkers) {
this.emit('ready');
Copy link
Member Author

@mischnic mischnic Nov 7, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This new ready event on the WorkerFarm is used to show in the REPL UI when the workers are ready (the slow bit is loading the JS/Wasm)

@mischnic
Copy link
Member Author

mischnic commented Nov 7, 2023

I added a message to signal the main thread when the worker is started, and a message to signal the worker it's about to be worker.terminate()d and should execute its exit callback.

@mischnic mischnic merged commit 817c778 into v2 Nov 7, 2023
15 of 16 checks passed
@mischnic mischnic deleted the repl-upstream branch November 7, 2023 17:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants