Compare commits

...

2028 Commits

Author SHA1 Message Date
Jarred Sumner
036e580045 Fixes https://github.com/oven-sh/bun/issues/1069 2022-08-18 01:13:11 -07:00
Jarred Sumner
9eaed7cec7 Fix missing prototype property on generated classes 2022-08-18 00:56:36 -07:00
Jarred Sumner
eb5b298bc1 Update generate-classes.ts 2022-08-18 00:22:29 -07:00
Jarred Sumner
5de8271181 Handle builds with remote inspector disabled 2022-08-18 00:22:24 -07:00
Jarred Sumner
f4ff5ecbdf Missing parameter after merge 2022-08-17 22:38:07 -07:00
Jarred Sumner
1ebebbc698 Update build-id 2022-08-17 21:55:36 -07:00
Jarred Sumner
b3f5131981 Update build-id 2022-08-17 21:46:28 -07:00
Jarred Sumner
8399d31af2 Update ZigGlobalObject.cpp 2022-08-17 21:44:00 -07:00
Jarred Sumner
1d2b52d15c Move the crypto hashers to the new bindings 2022-08-17 21:38:16 -07:00
Zilin Zhu
4fe8b8e5b7 Add native process module (#1095) 2022-08-17 20:14:31 -07:00
Jarred Sumner
cb1114dba6 uncomment 2022-08-17 19:27:35 -07:00
Jarred Sumner
c720bdc324 Move around some things 2022-08-17 19:26:10 -07:00
Jarred Sumner
bc412e1f6f slightly improve streams perf 2022-08-17 19:25:43 -07:00
Jarred Sumner
ddd151a23b Bump WebKit 2022-08-17 18:53:11 -07:00
Jarred Sumner
ac20150d04 Update http_client_async.zig 2022-08-17 08:18:13 -07:00
Jarred Sumner
9594c82180 Update react-hello-world.jsx 2022-08-17 07:55:19 -07:00
Jarred Sumner
93b663e43d New Zig <> C++ bindings generator. +20% faster HTTP server 2022-08-17 07:37:14 -07:00
Jarred Sumner
65820893c9 Slightly improve header init perf 2022-08-17 07:36:35 -07:00
Jarred Sumner
6a65631cbd [bun:ffi] Improve ptr() performance and implement code generation for DOMJIT 2022-08-17 07:36:35 -07:00
Jarred Sumner
382be2cb46 [bun:sqlite] Add DOMJIT to get() 2022-08-17 07:36:35 -07:00
Zilin Zhu
0aa3a0a5b0 Fix server segfault by making controller not early GC'ed (#1090)
* Fix http server segfault by making controller not get GC'ed

* fix format
2022-08-17 05:22:09 -07:00
Zilin Zhu
77b449856d Fix active_task count for timeout tasks (#1081) 2022-08-15 05:37:37 -07:00
Jonathan Collazo
b59d93b01e updating libarchive (#1078) 2022-08-14 21:23:17 -07:00
Zilin Zhu
afe34df3cc Add synthetic buffer module (#1076)
* Add synthetic buffer module

* rename Buffer.h to BufferModule.h
2022-08-14 18:08:25 -07:00
Jarred Sumner
9af4c0420e Update webKit 2022-08-13 23:29:05 -07:00
Jarred Sumner
952a4ab94a fixups 2022-08-13 23:06:14 -07:00
Jarred Sumner
e210f271bb Fix macOS build 2022-08-13 21:58:31 -07:00
Jarred Sumner
64b20cac88 Merge remote-tracking branch 'origin/jarred/redo-linux-event-loop' 2022-08-13 21:01:31 -07:00
Jarred Sumner
f90c09d715 wip SyntheticModule 2022-08-13 18:18:05 -07:00
Jarred Sumner
5644da1a3e Update WebKit 2022-08-13 18:18:05 -07:00
Jarred Sumner
a2d6e58875 [Bun.serve] Fix crash on req.headers async 2022-08-13 18:18:05 -07:00
Jarred SUmner
0815c83974 Improve event loop reliability on Linux 2022-08-13 06:07:18 -07:00
Ikko Ashimine
65ca0503a7 [bun error] fix typo in markdown.ts (#995)
happend -> happened
2022-08-12 19:22:32 -07:00
Jarred Sumner
5f68c562f9 Make versions consistent 2022-08-12 19:17:26 -07:00
Jarred Sumner
9ba080e829 Update WebKit URLs 2022-08-12 18:31:26 -07:00
Jarred Sumner
4df0385c23 Update WebKit 2022-08-12 18:28:32 -07:00
Jarred Sumner
75cad910db Add missing sqlite3 symbol 2022-08-12 15:16:02 -07:00
Jarred Sumner
262f00df3e Update bun-mac-x64-baseline.yml 2022-08-12 13:26:05 -07:00
Zilin Zhu
1dce0b2af1 remove column name caches in js (#1057) 2022-08-12 03:07:51 -07:00
Ryan Russell
c33f39b39c refactor(src/tagged_pointer): IntPrimtiive -> IntPrimitive (#1046)
Signed-off-by: Ryan Russell <git@ryanrussell.org>

Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-08-12 03:04:00 -07:00
Zilin Zhu
bcc4580cdc invalidate column name caches when the schema of table may change (#1056) 2022-08-12 02:47:01 -07:00
Jarred Sumner
dba3aaedab Faster performance.now() 2022-08-12 01:18:31 -07:00
Jarred Sumner
c9cd8bd13b Update WebKit 2022-08-12 01:18:31 -07:00
Jarred Sumner
5c1ca0cc47 [bun.js] up to 60% faster TextEncoder.encodeInto and ~3% faster TextEncoder.encode 2022-08-12 01:18:31 -07:00
Jarred Sumner
2ac8c83be0 [Bun.serve] Fix crash on invalid certificate file path for SSL 2022-08-12 01:18:31 -07:00
Zilin Zhu
66869f2239 fix appendFile permission (#1052) 2022-08-11 01:00:06 -07:00
Zilin Zhu
1bc5036d2e fix MD5 length and compile error (#1050) 2022-08-10 23:11:24 -07:00
Jarred Sumner
bcdc68ac94 Add bun link and bun unlink to completions 2022-08-10 23:09:07 -07:00
Jarred Sumner
f8d5c4594f [bun unlink] Partially implement 2022-08-10 23:08:51 -07:00
Jarred Sumner
437dc22862 Include GIT_SHA in linux builds 2022-08-10 21:49:31 -07:00
Jarred Sumner
271178d1a5 Update bun-mac-aarch64.yml 2022-08-10 21:46:41 -07:00
Jarred Sumner
5287b482e6 Update ZigGlobalObject.cpp 2022-08-10 21:46:27 -07:00
Jarred Sumner
4fe24a4f3c Log uncaught exceptions 2022-08-10 21:46:17 -07:00
Jarred Sumner
551cb26afb Add shared property 2022-08-10 21:26:32 -07:00
Jarred Sumner
d9ae284463 Fix console.log with typed arrays 2022-08-10 21:26:20 -07:00
Jarred Sumner
00d5f6699b Add Event JSType 2022-08-10 18:45:30 -07:00
Jarred Sumner
3ca4bab2d5 Faster debug builds 2022-08-10 17:44:18 -07:00
Jarred Sumner
e9c855f837 Fix MessageEvent formatting
Fixes https://github.com/oven-sh/bun/issues/510
2022-08-10 17:44:10 -07:00
Jarred Sumner
f09e7ac630 improve reliability of WebSocket
- Fix GC not keeping WebSocket alive
- Fix ignoring messages sent immediately after upgrade

Fixes https://github.com/oven-sh/bun/issues/521
2022-08-10 17:40:17 -07:00
Jarred Sumner
e511b14b2a Fix spurious unhandled promise rejection error 2022-08-10 15:46:23 -07:00
Jarred Sumner
6ca32d800d [bun upgrade] Add changelog URL
Fixes https://github.com/oven-sh/bun/issues/1019
2022-08-10 15:30:34 -07:00
Jarred Sumner
218ab7f967 Remove trailing newline in git sha 2022-08-10 15:29:53 -07:00
Jarred Sumner
099ad31deb Update js_parser.zig 2022-08-10 15:19:03 -07:00
Jarred Sumner
2644b9d792 [TS] Fix bug with import Foo = require("bar")
Closes https://github.com/oven-sh/bun/issues/1045
2022-08-10 15:08:54 -07:00
Jarred Sumner
67cdf1c9b3 Commit snapshot 2022-08-10 13:41:43 -07:00
Jarred Sumner
1eddf254e1 Fix linux build? 2022-08-09 18:43:42 -07:00
Jarred Sumner
c148c33510 [js] Fix console.log(Infinity) 2022-08-09 16:37:05 -07:00
Jarred Sumner
429abc1278 [bun:ffi] ~30% perf improvement for wrapped functions 2022-08-09 16:35:06 -07:00
Jarred Sumner
3dca3baaec [bun:ffi] Re-enable most of the tests 2022-08-09 16:17:35 -07:00
Jarred Sumner
bbb6e25c68 [bun:ffi] Feature: Expose ptr on the FFI function 2022-08-09 16:17:11 -07:00
Jarred Sumner
b428227895 [bun:ffi] Feature: C deallocator callback function for toBuffer and toArrayBuffer 2022-08-09 16:16:51 -07:00
Jarred Sumner
6c8ba6c5fc Fix linux build 2022-08-09 15:38:47 -07:00
Jarred Sumner
01f567e915 add some comments 2022-08-09 06:05:20 -07:00
Jarred Sumner
f44f98be33 [node compat] Add tests for fs.copyFileSync 2022-08-09 05:48:22 -07:00
Jarred Sumner
16f24086f8 [node compat] Improve fs.copyFileSync performance on macOS 2022-08-09 05:48:20 -07:00
Jarred Sumner
f4ab46a8bd Update Makefile 2022-08-09 05:47:46 -07:00
Jarred Sumner
8ae4c745e1 Improve fs.copyFile performance on Linux (#1035)
* [fs] Improve fs.copyFile performance on Linux

* Add a fs.copyFileSync benchmark

* Fix build error

* Update node.mitata.mjs

* Be more careful with permission

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-08-09 05:44:39 -07:00
Jarred Sumner
b274d22205 Simplify building the debug tools 2022-08-09 02:33:04 -07:00
Jarred Sumner
159a1e4bf2 Fix clean-bindings script 2022-08-09 02:32:46 -07:00
Jarred Sumner
a6596ace70 [misc] Add a way to disable LOLHTML
LOLHTML costs about 1 MB of binary size
2022-08-09 01:41:13 -07:00
Jarred Sumner
28ad93f02f [node compat] Update "module" module's require.resolve implementation 2022-08-09 01:41:13 -07:00
Jarred Sumner
4575df38e6 [misc] Add a global private @Bun 2022-08-09 01:41:13 -07:00
Jarred Sumner
b36b7fee16 [node compat] Implement require.resolve 2022-08-09 01:41:13 -07:00
Jarred Sumner
01847cabd2 Delete server polyfill 2022-08-09 01:41:13 -07:00
Zilin Zhu
9a721adbff Fix static require by setting the state machine manually (#1034) 2022-08-09 01:25:41 -07:00
TiKevin83
ceb78d2bb9 Update example Next app to 12.2 (#1033)
* Update bun-framework-next for version 12.2

* Match on minor version for next peer dependency per compatibility issues

* Update example next app packages per 12.2 integration

* Update next version warning per minor version compatibility changes

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2022-08-08 15:29:12 -07:00
Zilin Zhu
02644ab65a Raise error on unhandled rejected promises (#1010)
* deal with unhandled rejected promise

* use Vector<Strong<JSPromise>> to store rejected promises
2022-08-08 10:58:00 -07:00
Jarred Sumner
98c2d20ab0 Flip boolean 2022-08-08 03:54:14 -07:00
Jarred Sumner
84e76ce4ad Fix baseline builds once again 2022-08-08 03:39:44 -07:00
Zilin Zhu
05a382172f fix compiling error on linux (#1027) 2022-08-08 02:13:11 -07:00
Jarred Sumner
766ce5ab7b Update JSSQLStatement.cpp 2022-08-08 01:26:21 -07:00
Zilin Zhu
463f2b7dab fix segfault for query().all() with more than 64 properties (#1025)
* fix segfault for query().all() with more than 64 properties

* Update src/bun.js/bindings/sqlite/JSSQLStatement.cpp

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2022-08-08 00:54:13 -07:00
Ryan Russell
a6b089bd17 refactor(src/install): clap readability fixes (#1024)
Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-08-08 00:20:44 -07:00
Jarred Sumner
05bca1e4e4 bun link fixture 2022-08-07 23:28:10 -07:00
Jarred Sumner
73a18c99e6 [bun install] Increase "slow filesystem detected" notice 2022-08-07 23:24:23 -07:00
Jarred Sumner
c795c6742d [misc] fix typo 2022-08-07 23:23:42 -07:00
Jarred Sumner
cc2c50ad09 [bun install] Implement bun link 2022-08-07 23:23:34 -07:00
Jarred Sumner
f990df97ce [misc] Don't spam protect / unprotect in debug logs 2022-08-07 19:21:37 -07:00
Jarred Sumner
5d7ed5cbce Improve memlock limit error 2022-08-07 16:51:14 -07:00
Jarred Sumner
12dbc1ed7b [bun install] Implement symlink backend
Fixes https://github.com/oven-sh/bun/issues/1017
2022-08-07 15:58:41 -07:00
Jarred Sumner
cf78745271 [misc] Microptimize directory tree walker 2022-08-07 15:58:41 -07:00
Jarred Sumner
52865750da Update bun.lockb 2022-08-07 15:58:41 -07:00
Zilin Zhu
6b45f39322 re-register setInterval to VM after completion (#1014) 2022-08-07 09:23:45 -07:00
Jarred Sumner
31b8ad8230 Update Dockerfile 2022-08-06 10:40:57 -07:00
Jarred Sumner
49c4f29c1f Ensure cache invalidation for building bun 2022-08-06 09:17:23 -07:00
Jarred Sumner
a35730a7b6 Ensure correct directory for linking WebKit 2022-08-06 09:17:23 -07:00
Zilin Zhu
b8993dbd78 [wiptest] fix calling toBe in describe (#1000) 2022-08-06 02:32:32 -07:00
Jarred Sumner
c94091d8b1 Refresh all the bun.lockb 2022-08-05 23:28:19 -07:00
Jarred Sumner
4c01845f32 [BREAKING][bun install] Invalidate all the lockfiles 2022-08-05 23:20:24 -07:00
Jarred Sumner
b17f5b750e [bun install] Support authenticated registries 2022-08-05 22:42:22 -07:00
Jarred Sumner
a16dcbbb5b [bun install] Support private registries & private scopes 2022-08-05 22:41:43 -07:00
Jarred Sumner
c74df4c880 Fix https://github.com/oven-sh/bun/issues/996 2022-08-05 21:49:27 -07:00
Jarred Sumner
e34190fe66 Fix error message in install script 2022-08-05 16:36:25 -07:00
Jarred Sumner
7cbb9add48 Fix baseline detection for macOS x64 2022-08-05 16:30:51 -07:00
Jordan Lees
35a6946b63 Update README for development help (#982)
* Add info on Docker (was undockumented)

I'm actually just assuming Docker is required on all systems. Feel free to correct me lol

* Update README with info on newer devcontainer cli

since `devcontainer open` is no longer supported

* Update README - Troubleshooting steps

* Update README.md

* Update README.md

Fixing Jarred's correction on https://github.com/oven-sh/bun/pull/982, plus some better organization

* Update README.md

Forgot to include remote containers extension; added Troubleshooting (general) link to the table of contents
2022-08-05 12:42:43 -07:00
Hyro
1cb8f0fa73 feat(util): support for util.TextDecoder (#990)
* build:(landing) automated website build

* Revert "build:(landing) automated website build"

This reverts commit ddee8485fd.

* feat(util): support for util.TextDecoder

* tests(util): add TextDecoder

* tests: seperate text-decoder

Co-authored-by: xHyroM <xHyroM@users.noreply.github.com>
2022-08-05 10:42:52 -07:00
Hyro
5bca8a1d47 benchmarks(sqlite): invalid northwind database url (#989)
* build:(landing) automated website build

* Revert "build:(landing) automated website build"

This reverts commit ddee8485fd.

* benchmarks(sqlite): fix invalid northwind database url

Co-authored-by: xHyroM <xHyroM@users.noreply.github.com>
2022-08-05 10:36:32 -07:00
Soney Mathew
7e93c2368e Fix of panic in threads while downloading scoped packages (#992) 2022-08-05 10:34:50 -07:00
Soney Mathew
9fad889f26 Fix for bearer tokens missing from request headers on bun install step (#991) 2022-08-05 03:15:26 -07:00
Lee Robinson
95294d245c Convert landing page to zero-JS Next.js application. (#945) 2022-08-05 00:37:34 -07:00
Jarred Sumner
c5b600ad48 [misc] Add bun init to bun help 2022-08-04 23:24:17 -07:00
Jarred Sumner
9cce277eaf [misc] Make the macOS builds faster 2022-08-04 23:22:09 -07:00
Jarred Sumner
7e3fe03fb0 [bun init] Add a test 2022-08-04 23:21:41 -07:00
Jarred Sumner
1bc8c92e2f [misc] Add bun-types to repo 2022-08-04 22:16:05 -07:00
Jarred Sumner
f0d332e287 [bun:sqlite] Fix crash when > 64 columns
Fixes https://github.com/oven-sh/bun/issues/987
2022-08-04 22:16:05 -07:00
Zilin Zhu
e7ecedf3e9 allow setting status code in Response.redirect (#985) 2022-08-04 21:44:26 -07:00
Jarred Sumner
d034c004f9 Implement bun init subcommand 2022-08-04 21:42:49 -07:00
Jarred Sumner
7ba61bc983 [bun create] Allow custom start commands 2022-08-04 21:41:12 -07:00
Jarred Sumner
2b55f2d00f Allow timer with 0 -> 1 2022-08-04 21:40:48 -07:00
Jarred Sumner
4d19970663 [bun upgrade] Prepare for version strings with a space 2022-08-04 21:40:23 -07:00
Jarred Sumner
5ccb4f10d2 setImmediate is now a global 2022-08-04 21:39:58 -07:00
Jarred Sumner
6375982d19 [node.js compat] make var {isBuffer} = Buffer; work 2022-08-04 21:25:14 -07:00
Jarred Sumner
58882c0555 Fix building debug tools 2022-08-04 12:46:09 -07:00
Jarred Sumner
fd7be10f3a Disable browser field for bun, bun_macro
Closes #979
2022-08-04 10:42:33 -07:00
Jarred Sumner
1c1ba17908 Update README.md 2022-08-04 01:42:59 -07:00
Jarred Sumner
ef25009bcd Update README.md 2022-08-04 01:36:30 -07:00
Jarred Sumner
3c5b68caa7 [node.js compat] Clamp for Buffer functions instead of throwing 2022-08-03 21:31:15 -07:00
Jarred Sumner
37fe03e1ca Fix Dockerfile 2022-08-03 21:17:43 -07:00
Zilin Zhu
36d5d764d8 fix path.normalize on ... (#966) 2022-08-03 21:14:08 -07:00
Jarred Sumner
b310d7c40d [node.js compat] latin1 & ascii encoding for Buffer 2022-08-03 21:11:20 -07:00
Jarred Sumner
290fb7f7e7 [Bun.Transpiler] Fix bug that would cause some bun-specific transforms to run 2022-08-03 20:52:17 -07:00
Jarred Sumner
aa0be51d40 Fix test failures from JSPropertyIterator change 2022-08-03 20:52:17 -07:00
Jarred Sumner
77bab6c782 [misc] Make name more consistent 2022-08-03 20:52:16 -07:00
Jarred Sumner
9d81d24a7a Fix mac builds 2022-08-03 20:51:01 -07:00
Zilin Zhu
de848d4e1c fix(makefile): mkdir DEBUG_OBJ_DIR before compiling bindings (#975) 2022-08-03 20:11:09 -07:00
Jarred Sumner
440eba7c9b [misc] Fix make headers 2022-08-03 19:13:08 -07:00
Jarred Sumner
cf81ee5f41 Update build-id 2022-08-03 18:58:59 -07:00
Jarred Sumner
e29ef5561f [bun install] Include scripts when lockfile doesn't change 2022-08-03 18:44:54 -07:00
Jarred Sumner
6ef45c9e33 [misc] Make debug builds faster 2022-08-03 18:35:53 -07:00
Jarred Sumner
2094667417 [bun install] Support lifecycle hooks for cwd's package.json
`bun install` will now run prepare & install `"scripts"` for the root package.json (not dependencies)

This makes things like `husky` work and possibly `patch-package`
2022-08-03 18:35:53 -07:00
Jarred Sumner
928f6e068b Don't use SIMD in non-SIMD builds 2022-08-03 18:35:53 -07:00
Jarred Sumner
e253ce0948 Add process.revision and expose git sha to builds 2022-08-03 18:35:53 -07:00
Zilin Zhu
58feb81c36 use import.meta.require instead of import (#973) 2022-08-03 18:31:39 -07:00
Carter Snook
f4ac41b5d9 fix: prop iterator cstring variant (#974) 2022-08-03 15:32:39 -07:00
Carter Snook
033eebce29 refactor: create a high-level property iterator (#972)
This also fixes multiple memory leaks double frees.
2022-08-03 14:05:38 -07:00
Jarred Sumner
40a187f0de fix bug in process.hrtime() 2022-08-03 13:26:19 -07:00
Zilin Zhu
a8d499208b Fix Makefile (#957) 2022-08-02 16:45:57 -07:00
Zilin Zhu
a5a1435867 Fix u32 jsNumber cast (#964) 2022-08-02 16:45:18 -07:00
Jarred Sumner
ed9abb0cb0 [node.js compat] Implement process.hrtime() and process.hrtime.bigint() 2022-08-02 16:41:47 -07:00
Jarred Sumner
fcce3ff5ac Basename 2022-08-01 15:17:59 -07:00
Jarred Sumner
85c4c25bc2 Use WebKit LTO builds where appropriate 2022-08-01 15:16:17 -07:00
Jarred Sumner
35bd08f7d7 Mention moduleResolution: node so people copy paste the right thing 2022-08-01 15:06:50 -07:00
Jarred Sumner
cfa7a43ee7 Fix typo 2022-07-31 15:44:25 -07:00
Kid
52c962cb5b chore: migrate deprecated @vscode/dev-container-cli (#912) 2022-07-31 15:43:15 -07:00
Oran Simhony
43c1f17d1f Fix: move bun, Webkit and zig urls from Jarred-Sumner to oven-sh. (#944)
* Fix: move bun, Webkit and zig urls from Jarred-Sumner to oven-sh.

* Fix: changed urls from types.d.ts to base bun-types repo.
2022-07-31 15:41:45 -07:00
Hyro
a04c29aaf1 chore: fix labeler (#899) 2022-07-31 01:11:26 -07:00
Ryan Russell
af5a062424 refactor(bunjs/bindings): code readability fix functionLazyLoadStreamPrototypeMap_getter (#926) 2022-07-31 01:10:49 -07:00
Charles F. Munat
8882e52539 Fix/react accessibility (#932) 2022-07-31 01:10:10 -07:00
dave caruso
ccc22bb968 fix(makefile): devcontainer install (#933) 2022-07-31 01:09:42 -07:00
Jarred Sumner
05953a0680 Fix typo 2022-07-30 23:11:36 -07:00
Jarred Sumner
d132c131eb Fix default value in Dockerfile 2022-07-30 23:09:04 -07:00
Jarred Sumner
1e8af74564 There is no non-LTO build for amd64 webkit, but probably should change that 2022-07-30 23:06:39 -07:00
Jarred Sumner
1ff60e7534 Use webkit without march 2022-07-30 23:02:48 -07:00
Jarred Sumner
7b7b4b46af Fix build 2022-07-29 22:09:01 -07:00
Jarred Sumner
d61ef19ecf Update bun-framework-next for Next 12.2 2022-07-29 22:06:57 -07:00
TiKevin83
b765619ad6 Update bun-framework-next for Compatibility with Next 12.2+ (#920) 2022-07-29 20:48:18 -07:00
Jarred Sumner
e8b848dfcf Fix path 2022-07-29 18:31:39 -07:00
Jarred Sumner
467a106db0 Potentially fix build 2022-07-29 18:27:22 -07:00
Carter Snook
3d6d2651da fix(ffi): double-free segfault with symbols object (#919) 2022-07-29 17:43:18 -07:00
Hyro
a5eaa907e2 docs: fix broken ffi benchmark link (#914)
* build:(landing) automated website build

* Revert "build:(landing) automated website build"

This reverts commit ddee8485fd.

* docs: fix broken ffi benchmark link

Co-authored-by: xHyroM <xHyroM@users.noreply.github.com>
2022-07-29 14:00:03 -07:00
Hyro
50284f38a6 chore(ci): add segfault label (https://github.com/oven-sh/bun/pull/916) 2022-07-29 21:06:46 +02:00
sno2
09c6802891 chore(ci): add segfault label 2022-07-29 14:04:26 -05:00
Jarred Sumner
4bdad99ead Use WebKit baseline build 2022-07-28 18:49:34 -07:00
Jarred Sumner
56885fae4d Bust cache again 2022-07-28 17:37:37 -07:00
Jarred Sumner
d173f777a7 Bust cache 2022-07-28 15:08:45 -07:00
Jarred Sumner
94ea5f28db Bump WebKit 2022-07-28 14:26:46 -07:00
Kevin Ingersoll
b70f6fcb51 landing/docs: make Bun naming consistent (#906)
* landing/docs: make Bun naming consistent

* fix spacing, wrap one more code thing
2022-07-28 13:48:21 -07:00
Jarred Sumner
6fecda6b73 There are ~3 different versions of strip with different flags and it is very confusing 2022-07-28 04:31:45 -07:00
Jarred Sumner
cbae4a31aa Bust cache 2022-07-28 04:09:04 -07:00
Jarred Sumner
13364767fb Bump webkit 2022-07-28 04:05:33 -07:00
Jarred Sumner
3e73ea2e26 Only strip debug symbols 2022-07-28 04:05:02 -07:00
Jarred Sumner
21b8f80a99 [misc] Make debug builds not depend on a specific directory structure 2022-07-28 04:04:53 -07:00
Jarred Sumner
23f1e008a2 Use ADD so that the caching is set 2022-07-28 04:04:29 -07:00
Jarred Sumner
380e7e1cfb Update WebKit 2022-07-28 04:04:10 -07:00
Jarred Sumner
2106afc4d4 Fix process.versions.webkit 2022-07-28 04:04:07 -07:00
Jarred Sumner
97cd944237 [node compat] Fix bug with process.title 2022-07-28 04:03:49 -07:00
Jarred Sumner
5cf39ef6c5 Update build-id 2022-07-28 02:54:28 -07:00
Jarred Sumner
90727f305e Downgrade baseline target to westmere 2022-07-28 00:40:07 -07:00
Jarred Sumner
78dd366272 Update bun-dockerhub.yml 2022-07-28 00:09:23 -07:00
Jarred Sumner
dddc645d4b [misc] Remove irrelevant scripts 2022-07-27 21:21:36 -07:00
Jarred Sumner
bd547ace80 [misc] Replace reference to old repo 2022-07-27 21:20:45 -07:00
Jarred Sumner
194a5c896e [misc] Simplify the commands used to build bun 2022-07-27 21:20:09 -07:00
Jarred Sumner
7c5c4f5694 Clean up some things with the devcontainer 2022-07-27 21:18:58 -07:00
Jarred Sumner
6b25e6935e [bun install] Fix segfault when loading scopes 2022-07-27 21:16:22 -07:00
Jarred Sumner
bebce1ec63 [bun install] Fix missing lockfile data for tarballs 2022-07-27 21:15:57 -07:00
Jarred Sumner
eea925e7e0 Remove disabled workflow 2022-07-27 18:37:43 -07:00
Jarred Sumner
a1e0af20b8 Fix Dockerfile 2022-07-27 18:37:23 -07:00
Rishi Goomar
9e342c17b2 docs(macos): Improve MacOS Development Instructions (#836)
* docs(macos): Improve MacOS Development Instructions

* Update MacOS zig install to be more automated
2022-07-27 18:28:38 -07:00
Jarred Sumner
9bd4a8f7bb [docker] wip 2022-07-27 18:13:30 -07:00
Jarred Sumner
ed56c1350e [docker] wip 2022-07-27 18:11:13 -07:00
Jarred Sumner
0c6512cd33 [docker] wip 2022-07-27 18:09:00 -07:00
Jarred Sumner
75b14341af [docker] wip 2022-07-27 18:06:17 -07:00
Jarred Sumner
fa3404920a Upgrade WebKit in Dockerfile 2022-07-27 18:03:09 -07:00
Jarred Sumner
353f899309 getObject -> asCell because it's a little bit safer 2022-07-27 17:48:25 -07:00
Jarred Sumner
bdbd70ca0f Update WebKit 2022-07-27 17:46:28 -07:00
Jarred Sumner
87746d611b Upgrade WebKit 2022-07-27 17:46:28 -07:00
szatkus
a00eb95e29 #609 Don't truncate ascii buffers to 7-bit (#775) 2022-07-27 11:42:39 -07:00
Jarred Sumner
e468a61811 fixup 2022-07-27 02:06:46 -07:00
Jarred Sumner
4ee298fe20 "SegmentationFault at 1" -> "SegmentationFault at 0x10000000" 2022-07-27 02:04:19 -07:00
Jarred Sumner
999d39ec0b WIP fix workflow run 2022-07-26 22:25:17 -07:00
Jarred Sumner
6772d3a102 Update readme 2022-07-26 22:14:00 -07:00
Jarred Sumner
ba0657410d Remove bun-types from repo 2022-07-26 22:10:01 -07:00
Jarred Sumner
03fde4c3fd WIP fix workflow run 2022-07-26 22:00:13 -07:00
Jarred Sumner
b189b6e947 WIP fix workflow run 2022-07-26 21:19:25 -07:00
Jarred Sumner
3b247daf75 WIP fix workflow run 2022-07-26 20:01:55 -07:00
Jarred Sumner
6b556a186f WIP fix workflow run 2022-07-26 01:05:19 -07:00
Jarred Sumner
03f0431800 WIP fix workflow run 2022-07-26 00:54:21 -07:00
Jarred Sumner
b56979ebe1 WIP fix workflow run 2022-07-26 00:53:39 -07:00
Jarred Sumner
4123ce1a4f WIP fix workflow run 2022-07-26 00:27:18 -07:00
Jarred Sumner
5d52e22aee WIP fix workflow run 2022-07-26 00:24:03 -07:00
Jarred Sumner
ae4595f9e2 WIP fix workflow run 2022-07-25 23:46:29 -07:00
Jarred Sumner
8ccfe2957f WIP fix workflow run 2022-07-25 23:17:57 -07:00
Jarred Sumner
63adad8caf WIP fix workflow run 2022-07-25 23:17:34 -07:00
Jarred Sumner
162c3f2d13 WIP fix workflow run 2022-07-25 23:12:59 -07:00
Jarred Sumner
e03cde7cd5 WIP fix workflow run 2022-07-25 23:11:10 -07:00
Jarred Sumner
27736f1103 WIP fix workflow run 2022-07-25 22:31:44 -07:00
Jarred Sumner
81dc410e50 WIP fix workflow run 2022-07-25 21:49:09 -07:00
Jarred Sumner
731adbc9a0 WIP fix workflow run 2022-07-25 21:47:40 -07:00
Jarred Sumner
dba221ba22 WIP fix workflow run 2022-07-25 21:34:01 -07:00
Jarred Sumner
45249b4a71 WIP fix workflow run 2022-07-25 21:05:47 -07:00
Jarred Sumner
0450615b61 WIP fix workflow run 2022-07-25 20:09:49 -07:00
Jarred Sumner
9f45ec1959 WIP fix workflow run 2022-07-25 19:30:57 -07:00
Jarred Sumner
4bb610c984 WIP fix workflow run 2022-07-25 18:49:23 -07:00
Jarred Sumner
0769f90301 WIP fix workflow run 2022-07-25 18:49:16 -07:00
Jarred Sumner
31db186baf WIP fix workflow run 2022-07-25 18:19:36 -07:00
Jarred Sumner
2501cb0160 WIP fix workflow run 2022-07-25 17:00:01 -07:00
Jarred Sumner
a2ac1d22af WIP fix workflow run 2022-07-25 16:57:49 -07:00
Jarred Sumner
fcf77792bc WIP fix workflow run 2022-07-25 16:55:41 -07:00
Jarred Sumner
b582d64df2 WIP fix workflow run 2022-07-25 16:47:43 -07:00
Jarred Sumner
552e21c6ab Update Makefile 2022-07-25 16:40:23 -07:00
Jarred Sumner
2a0357814a WIP fix workflow run 2022-07-25 16:38:36 -07:00
Jarred Sumner
583135aef7 WIP fix workflow run 2022-07-25 16:38:19 -07:00
Jarred Sumner
80f9ae7789 WIP fix workflow run 2022-07-25 16:35:49 -07:00
Jarred Sumner
959b6a80d0 WIP fix workflow run 2022-07-25 16:21:00 -07:00
Jarred Sumner
3c1a9bcb74 WIP fix workflow run 2022-07-25 16:17:44 -07:00
Jarred Sumner
386ba0abfd WIP fix workflow run 2022-07-25 14:59:39 -07:00
Jarred Sumner
146aafed92 WIP fix workflow run 2022-07-25 14:54:25 -07:00
Jarred Sumner
2f89501a6e WIP fix workflow run 2022-07-25 14:54:03 -07:00
Jarred Sumner
b11069420d update bench number 2022-07-25 13:30:44 -07:00
Jarred Sumner
5a81acce3a [bun install] Fix AccessDenied error when installing some packages
Fixes https://github.com/oven-sh/bun/issues/728
Fixes https://github.com/oven-sh/bun/issues/867
Fixes https://github.com/oven-sh/bun/issues/135

Credit @SheetJSDev
2022-07-25 01:37:58 -07:00
Victory Osikwemhe
8a43083415 Support for completion in Bash (#403)
* Add bash completions for optional flags (long and short options)

* extend bash completion to support options with specific requirements

* fix: remove global variables

* fix: rename cur_file to cur_word

* add c,rm,i aliases

* fix: add --help flag to create alias

* fix: --loader options bug

* fix --backend and linting

* linting

* add support for file completion for `bun run` as well as few changes also

* chore(): use _ as prefix for function names

* fix undefined function

* feat(wip): implement installation for bash bun completion in zig

* fix(): use separate paths instead of slice of paths

* rename _bun.bash to bun.completion.bash for compatability with  oh-my-bash

* change `bun.completion.bash` to filename
2022-07-25 00:47:34 -07:00
Pekka Enberg
6df6dac128 Add 'scripts/nproc' helper script (#623)
* Add 'scripts/nproc' helper script

There's no 'nproc' on macOS by default so add a helper script that uses
sysctl instead. Simplifies build environment setup on macOS.

* Delete nproc

* Update Makefile

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2022-07-25 00:45:57 -07:00
Hyro
d3c4f5c444 fix(types): add missing types for WebSocket (#578)
* fix(types): add missing types for ws

* fix: add missing path

\n

index.d.ts\npaths.txt

* fix: use types from lib.dom.d.ts

* types: update header

* style: new line

* Delete index.js

* fix: remove MessagePort

* fix: remove MessagePort

* fix: set MessageEventSource to undefined
2022-07-25 00:39:26 -07:00
Hyro
e68c4f584b feat(install): use this repository (#582)
https://github.com/oven-sh/bun instead of https://github.com/Jarred-Sumner/bun-releases-for-updater
2022-07-25 00:38:55 -07:00
Soney Mathew
ff5f2c357d Increasing test coverage for node compatibility for util (#854)
* [Bun.js] support for util.TextEncoder

* [Bun.js] test for util.TextEncoder

* [Bun.js] tests ported from node's test-util
2022-07-25 00:38:36 -07:00
mikeswann
285b47ff36 Use 'ADD' instead of running wget to make docker compare checksums on bun's latest file (#864) 2022-07-25 00:36:33 -07:00
Jarred Sumner
0a113d7f0c WIP fix workflow run 2022-07-24 23:30:42 -07:00
Jarred Sumner
dea662c796 WIP fix workflow run 2022-07-24 23:25:07 -07:00
Jarred Sumner
4ec6520927 WIP fix workflow run 2022-07-24 23:24:54 -07:00
Jarred Sumner
b0da58ad89 WIP fix workflow run 2022-07-24 23:15:01 -07:00
Jarred Sumner
43b5105a5e WIP fix workflow run 2022-07-24 23:06:13 -07:00
Jarred Sumner
c93ae8666c WIP fix workflow run 2022-07-24 23:02:47 -07:00
Jarred Sumner
d8052f733d WIP fix workflow run 2022-07-24 23:01:14 -07:00
Jarred Sumner
e7966f37ec WIP fix workflow run 2022-07-24 22:58:32 -07:00
Jarred Sumner
7e6e1cbf96 WIP fix workflow run 2022-07-24 22:53:15 -07:00
Jarred Sumner
2c39345fb4 WIP fix workflow run 2022-07-24 22:51:08 -07:00
Jarred Sumner
43f74ebcfe WIP fix workflow run 2022-07-24 22:44:02 -07:00
Jarred Sumner
aa44ac4b24 WIP fix workflow run 2022-07-24 22:43:12 -07:00
Jarred Sumner
acf177f651 WIP fix workflow run 2022-07-24 22:33:36 -07:00
Jarred Sumner
02a61e5277 WIP fix workflow run 2022-07-24 22:30:02 -07:00
Jarred Sumner
8d138061a9 WIP fix workflow run 2022-07-24 22:28:28 -07:00
Jarred Sumner
dd0dafbeec [docker] Prepare for macOS releases 2022-07-24 22:21:07 -07:00
Jarred Sumner
3ae3cdaa64 Update build.zig 2022-07-24 21:40:07 -07:00
Jarred Sumner
4f2d74edb9 Set explicit skylake 2022-07-24 21:33:54 -07:00
Jarred Sumner
4aa3bc7bee [wip] docker 2022-07-24 21:28:25 -07:00
Jarred Sumner
6c6e8509ad Build macOS object files 2022-07-24 21:21:21 -07:00
Jarred Sumner
5875bb3195 [docker] Move more flags 2022-07-24 18:27:45 -07:00
Jarred Sumner
25de617c92 [docker] WIP 2022-07-24 18:19:32 -07:00
Jarred Sumner
1abe377e20 [docker] wip 2022-07-24 18:17:10 -07:00
darker
88b85752a2 feat: clean/factorize ARGS (#839) 2022-07-24 18:16:47 -07:00
Jarred Sumner
fde64ace31 probably fix avx2 builds 2022-07-24 17:19:05 -07:00
Jarred Sumner
3369881e73 Update bun.yml 2022-07-24 16:25:57 -07:00
Rishi Goomar
f42a0759f8 fix(release): Remove the ${{}} from the if block in GHA (#863)
See - https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idif
```
When you use expressions in an if conditional, you may omit the expression syntax (${{ }}) because GitHub automatically evaluates the if conditional as an expression.

```
2022-07-24 15:51:52 -07:00
Jarred Sumner
e19da7bb36 Attempt to fix canary build 2022-07-24 15:02:59 -07:00
Jarred Sumner
306132eda3 Attempt to fix canary build 2022-07-24 14:49:32 -07:00
Jochem Hagenaars
1be0100911 chore(examples/kingworld): Change bun-types to latest (#766)
* Bumped hono version number

* Changed bun-types version

* Bumped bun-types
2022-07-24 22:55:16 +02:00
Yusuke Wada
7896361084 chores(examples/hono): Refine Hono example (#773)
* fixed path

* add favicon

* Correct version: `^2.0.0`

* remove wiptest command
2022-07-24 22:51:41 +02:00
Jarred Sumner
bdf6b3e312 Wire up console.log(new Blob) 2022-07-24 01:22:33 -07:00
Jarred Sumner
af36e99317 Some tests for console.log(new Blob([123])) 2022-07-24 01:22:33 -07:00
Jarred Sumner
8e84f361ac Print < 512 bytes as "N bytes" instead of "0.0" 2022-07-24 01:22:33 -07:00
Jarred Sumner
c921e4a3f1 Improve console.log(new Blob([123])) output 2022-07-24 01:22:33 -07:00
Jarred Sumner
f524c72095 Make errors always print error: unless the name of the error is Error 2022-07-24 01:22:33 -07:00
Jarred Sumner
b09290b9cb [wip] GitHub action fix 2022-07-24 01:22:33 -07:00
Soney Mathew
7de90a82b0 [Bun.js] support for util.TextEncoder (#844)
* [Bun.js] support for util.TextEncoder

* [Bun.js] test for util.TextEncoder
2022-07-23 15:51:27 -07:00
darker
c412d0069e feat: added info, info_bod and success method to wrap type of messages (#845) 2022-07-23 12:39:12 -07:00
Harsh Mishra
277360e656 ci: add docker caching to ci workflows (#846) 2022-07-23 12:38:47 -07:00
darker
a61b959491 feat: add .PHONY on makefile targets (#847) 2022-07-23 12:38:28 -07:00
Michell Brito
09da245aa0 Merge pull request #827 from aaditeynair/main 2022-07-23 10:16:40 -04:00
Michell Brito
872304852e Merge pull request #800 from alexkuz/fix-install-script-colors--645 2022-07-22 20:32:57 -04:00
Michell Brito
75741d7d44 Merge pull request #804 from Sanix-Darker/doc/Makefile 2022-07-22 20:31:58 -04:00
Jarred Sumner
849c743cd2 [bun install] Fix issue with URL path when sending request 2022-07-22 17:12:37 -07:00
Jarred Sumner
52144c0577 Fix missing function bug 2022-07-22 16:17:13 -07:00
Jarred Sumner
1e9706d76d [bun wiptest] This test does not seem to run? 2022-07-22 16:17:13 -07:00
SheetJSDev
db51f285f8 bun install use custom BUN_CONFIG_REGISTRY port (#823) 2022-07-22 15:55:24 -07:00
Jarred Sumner
8392a86300 [docker] wip 2022-07-22 15:41:08 -07:00
Jarred Sumner
6edae78c6f [docker] wip 2022-07-22 14:04:12 -07:00
Jarred Sumner
136c696043 [docker] Use gcr 2022-07-22 14:01:32 -07:00
Jarred Sumner
2e71ea4db9 [bun dev] Add flag to force hmr 2022-07-22 13:52:55 -07:00
Jarred Sumner
7914adff1e Fix link command on macOS 2022-07-22 13:34:28 -07:00
Jarred Sumner
2dcd9e7eb9 [bun upgrade] Fix version display name for canary build 2022-07-22 13:26:31 -07:00
Jarred Sumner
2a6acf3c90 [bun upgrade] Fix name used in temporary dir for canary builds 2022-07-22 13:06:51 -07:00
Jarred Sumner
cd7f6db1d3 WIP fix workflow run 2022-07-22 12:34:35 -07:00
Jarred Sumner
15e8e67017 Clarify 2022-07-22 12:21:24 -07:00
Jarred Sumner
105350b826 Mention WSL version requirement 2022-07-22 12:20:04 -07:00
Jarred Sumner
d003fb4288 Only run canary release on push to main 2022-07-22 12:19:55 -07:00
Jarred Sumner
c2d6ceb0f3 [bun upgrade] Implement --canary and BUN_CANARY=1 2022-07-22 12:19:30 -07:00
Aaditey Nair
7c7cec0416 Fix mistake in Next.js Example README. 2022-07-22 16:50:24 +05:30
Jarred Sumner
ddfd2fd442 Update WebKit 2022-07-22 02:06:30 -07:00
Jarred Sumner
c654a6fceb Workaround submodules issue 2022-07-22 01:58:48 -07:00
Jarred Sumner
bced6fab58 Delete plus100-napi 2022-07-22 01:53:57 -07:00
Jarred Sumner
cd9680c61c Rename linux amd64 -> linux x64 2022-07-22 01:48:40 -07:00
Jarred Sumner
80f797b2e5 Mark as executable 2022-07-22 01:37:42 -07:00
Connor Lurring
2960a5cd72 fix: remove suffix arg for mktemp compatibility (#825) 2022-07-22 01:34:00 -07:00
Jarred Sumner
0d4b4c4942 Canary builds (Linux) (#824)
* wip

* WIP:

* WIP

* WIP

* WIP

* WIP

* WIP

* Update WebKit

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* Update WebKit

* WIP

* WIP

* WIP

* WIP

* Workaround missing system calls

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* Fix baseline detection

* WIP

* strip debug symbol

* Auto-generate canary build

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-07-22 00:58:45 -07:00
Jarred Sumner
c772256e93 Separate Dockerfile for devcontainer 2022-07-21 16:58:24 -07:00
Jarred Sumner
4b5e7cdab7 Bump 2022-07-21 16:58:24 -07:00
Jarred SUmner
588669ea6a Redo the dockerfile 2022-07-21 16:58:07 -07:00
Sakib Hasan
e6c58ae4f2 docs(templates): Update README.md (#783)
Improvement reactjs example readme file, Added learning resources
2022-07-21 13:07:40 +02:00
Carter Snook
afb1dc1d79 chore(vscode): set tab size and tab format (#810) 2022-07-20 13:37:52 -07:00
Carter Snook
7500f4b2ca feat(node/fs): implement more stat methods (#807) 2022-07-20 10:19:41 -07:00
sanix-darker
8d96b184df doc: added an helper for the huge Makefile 2022-07-20 13:15:28 +02:00
Alexander
5c620959bb fix install script colors 2022-07-20 11:51:21 +04:00
Jarred Sumner
08bff8e090 Allow blank 2022-07-19 23:04:54 -07:00
Carter Snook
8bcf68e5e0 fix(api): stop double-free of prop array (#793) 2022-07-19 21:05:52 -07:00
Wallunen
e5af1ea3bc refactor(installer): renovate install script (#745) 2022-07-19 14:56:28 -04:00
SheetJSDev
6afbf1b166 added mystery-box example macro (#787) 2022-07-18 22:26:56 -07:00
Shahidul Islam Majumder
600929ee6d fix deno console.log benchmark (#771)
* chore(benchmark): fix deno console.log benchmark

* only show benchmark results

Co-authored-by: evanwashere <github@evan.lol>
2022-07-18 19:30:58 -04:00
Jarred Sumner
d2874f6a49 bump examples 2022-07-18 13:12:03 -07:00
Jarred Sumner
a1a0c18478 [js] Set global and self
Fixes https://github.com/oven-sh/bun/issues/768
2022-07-17 22:49:09 -07:00
Jarred Sumner
ba65185bcb [js] Fix invalid unicode codepoint in error 2022-07-17 22:39:57 -07:00
Jarred Sumner
a17221258d Fixes https://github.com/oven-sh/bun/issues/769
Not tested
2022-07-17 22:37:24 -07:00
SheetJSDev
a00380c7c2 url.js use util_isString (#772) 2022-07-17 22:00:23 -07:00
Jarred Sumner
2ef7a12383 Update Dockerfile 2022-07-17 17:16:45 -07:00
Jarred Sumner
d54470ef98 Use Node v16 in Dockerfile due to glibc 2.28 requirement 2022-07-17 16:48:26 -07:00
Jarred Sumner
17bbdf790e Try with 18.04 2022-07-17 16:37:36 -07:00
Jarred Sumner
bcad0d4de7 Downgrade Ubuntu used in Dockerfile to hopefully reduce glibc requirement to 2.27 2022-07-17 16:35:42 -07:00
Jarred Sumner
9ab63dced8 [bun install] Forgot to commit isCI function 2022-07-17 15:54:43 -07:00
Alexander Kuznetsov
e79ed4f738 fix printing message for thrown non-error objects (#764)
* fix printing message for thrown non-error objects

* fine tuning error formatting

* more fine tuning error formatting
2022-07-17 13:24:35 -07:00
Jarred Sumner
b897ad3ec2 [bun install] Implement --no-verify flag to skip verifying integrity of downloaded packages 2022-07-17 10:08:37 -07:00
Jarred Sumner
daed2a79f9 [bun install] Rename skip_verify -> skip_verify_installed_version_number 2022-07-17 10:08:37 -07:00
Jarred Sumner
0a5470e802 [bun install] Implement --no-progress to disable the progress bar 2022-07-17 10:08:37 -07:00
Jarred Sumner
a02b2d1c5b [bun install] Improve performance of integrity hashing
By using optimized BoringSSL implementations
2022-07-17 10:08:37 -07:00
Jochem Hagenaars
0cc88b8669 Bumped hono version number (#746)
* Bumped hono version number

* Changed bun-types version
2022-07-17 09:57:29 -07:00
pathei-kosmos
c4fbcaeb21 fixed some licenses in README (#758)
* fixed some licenses

* typo
2022-07-17 07:58:49 -07:00
Alexander Kuznetsov
a85413c802 fix scoped packages name resolution (#760) 2022-07-17 07:58:28 -07:00
thislooksfun
24a5f9ba29 test(wiptest): add a way to test wiptest (#699)
This adds a really basic test runner that will execute test files using
`bun wiptest` and compare the output to make sure it's correct. It could
definitely be improved, especially in the speed department, but it's at
least functional now, which is better than we had before!
2022-07-16 20:36:46 -07:00
thislooksfun
e9f376825c docs: fix documentation of atob and btoa (#748)
These function are confusingly named. `btoa` converts "Binary" to Ascii
by encoding the input using base64. `atob` reverses that process by
base64 decoding the Ascii input into a "Binary" output.

The names come from the Unix utilities with the same names, which
"converts a binary file to ascii for transmission over a telephone line"
(https://www.unix.com/man-page/minix/1/btoa/)

See:
- https://developer.mozilla.org/en-US/docs/Web/API/atob
- https://developer.mozilla.org/en-US/docs/Web/API/btoa
- https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa-dev

Note: the actual implementation of `btoa` and `atob` are correct, but
the docs were backwards.
2022-07-16 15:23:18 -07:00
John Daly
3c0f18f704 fix/clean-up-bun-error (#753)
* Fixing TypeScript errors in bun-error package

* Fixing import path

* Removing unused 'isClient' prop from AsyncSourceLines

* PR feedback
2022-07-16 15:14:14 -07:00
Jarred Sumner
f7e9b91701 [parser] Fix symbol collision with require
Fixes https://github.com/oven-sh/bun/issues/674
Fixes https://github.com/oven-sh/bun/issues/382
2022-07-15 23:08:25 -07:00
Jarred Sumner
e7246837a1 Add a TLA test 2022-07-15 21:48:30 -07:00
Jarred Sumner
fd4a210b84 [bun.js] Fix non-ascii latin1 string handling in console.log
Closes https://github.com/oven-sh/bun/issues/738
Closes https://github.com/oven-sh/bun/issues/737
2022-07-15 21:07:41 -07:00
Travis Pulley
9a7874a680 minor edit: Makefile (#672)
* minor edit: Makefile

Fixed a suggested command when ninja isn't found to the correct package name

* Makefile: minor edit

Ninja build has different names in different package managers. This handles both known instances.

* Makefile: ninja package name suggestion

When checking requirements, ninja build has a different name for brew and ubuntu/debian. This handles both.
2022-07-15 16:42:53 -07:00
Finn R. Gärtner
5c2ec9cad2 fix(README): Remove unused troubleshooting link (#736) 2022-07-15 13:20:19 -07:00
Foyzul Karim
5b248962e7 docs: Added readme file for blank template (#727)
* Added  readme file for blank template

* Removed `Special note` section
2022-07-15 22:09:56 +02:00
Hyro
65027bff99 chore(workflows): dont run on forks (#734)
* build:(landing) automated website build

* Revert "build:(landing) automated website build"

This reverts commit ddee8485fd.

* workflows(bun-dockerhub): dont run on forks

* chore(bun-landing): update

dont run on forks
fix commit changes

* workflows(bun): dont run on forks

Co-authored-by: xHyroM <xHyroM@users.noreply.github.com>
2022-07-15 12:41:12 -07:00
Hiroaki Nakamura
f35e13d57e Use Jarred-Sumner/vscode-zig march18 in devcontainer (#266) 2022-07-15 12:13:02 -07:00
Hyro
04572506ba chore(workflows): labeler, label sync (#701)
* chore: labeler.yml

* chore(workflows): labeler

* chore(workflows): label syncer

* chore: labels.yml

* chore(labeler): add benchmarks

* chore(labels): add packages:bun

* chore(labeler): add packages:bun

* chore(labels): add question

* chore(labels): add esm<>cjs

* chore(labels): add chore label
2022-07-15 12:02:28 -07:00
Finn R. Gärtner
ebf78e5ea6 fix(examples/bun-bakery): Create gitignore (#697) 2022-07-15 12:02:03 -07:00
Wulfre
7e695c0086 Create github workflow to publish releases on dockerhub (#716)
* Create github workflow to publish releases on dockerhub

* Improve readability of final dockerhub dockerfile RUN command

Co-authored-by: Wulfre <wulfre@users.noreply.github.com>
2022-07-15 12:00:48 -07:00
SaltyAom
40b7b99c2c fix(types): add missing types from URLSearchParams (#731)
* feat(examples): add kingworld

* fix(examples/kingworld): add .gitignore

* fix(template/kingworld): rename .gitignore to gitignore

* fix(template/kingworld): update to request change

* fix(template/kingworld): update 'getting start' to 'Getting Started'

* template(kingworld/bun): update to requested change

* fix(bun-types): add missing method type of URLSearchParams
2022-07-15 12:00:16 -07:00
SaltyAom
61de6032af template(kingworld): Add kingworld template (#708)
* feat(examples): add kingworld

* fix(examples/kingworld): add .gitignore

* fix(template/kingworld): rename .gitignore to gitignore

* fix(template/kingworld): update to request change

* fix(template/kingworld): update 'getting start' to 'Getting Started'
2022-07-15 13:54:18 +02:00
Jonathan Rubin
b901f55164 chores(template/react): Update to React 18 (#627)
* Updated react example template

* build:(landing) automated website build

* removed bun.lockb and most of changes from react example index.html

Co-authored-by: rubinj30 <rubinj30@users.noreply.github.com>
2022-07-15 12:17:38 +02:00
Hyro
9eac93d176 fix(templates/blank): Update bun types (#704) 2022-07-14 20:43:02 +02:00
YOSHIKI
a4ced701dc fix(templates): Fix hono example template (#633)
* Fix hono example template

* Update package.json
2022-07-14 20:42:18 +02:00
Mustafa Hasan Khan
0d65a1fe10 fix(packages/bun-landing): Fixed punctuation (#280) 2022-07-14 20:20:43 +02:00
0xflotus
de50c709a4 fix small typo in readme (#706) 2022-07-14 13:56:50 -04:00
Robert Soriano
3b5ad05627 docs: remove emulating cpu section (#714) 2022-07-14 13:49:49 -04:00
pnxdxt
1ea4dc13f0 docs: correct typo missing dots (#603) 2022-07-13 23:51:22 +02:00
Fábio Santos
74a600b833 docs: Substitute npm install with bun add (#670) 2022-07-13 23:44:08 +02:00
Ikko Ashimine
4b271ee430 fix(napi): gurantee -> guarantee (#683) 2022-07-13 23:32:46 +02:00
Omer Shahar
6e4e5fa94c fix(README): Add punctuation (#611) 2022-07-13 23:20:54 +02:00
Dennis Dudek
8e9042142c docs: Add bun-bakery template (#649) 2022-07-13 22:40:29 +02:00
Gabriel Nunes
5a2425d585 fix: og:image share url (#678)
* feat: create share image for social media

* fix: group meta tags

* fix: adjust og:image to full url
2022-07-13 10:39:51 -07:00
evan
bf19759188 add node:http Server polyfill (#572)
* node:http polyfill

* remove @ts-ignore

* reuse emitter instance

* requested changes

* cleanup

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2022-07-13 07:08:57 -07:00
Thomas Jaggi
0bcd812bd5 docs: Link esbuild and @evanw in README (#669) 2022-07-13 11:35:00 +02:00
Finn R. Gärtner
2769c74c74 fix(env_loader): Off by one error (#668) 2022-07-13 02:33:32 -07:00
Jarred Sumner
64c93a0569 Types 2022-07-13 01:32:21 -07:00
evanwashere
f01bc3c752 switch from stream-browserify to readable-stream 2022-07-13 04:18:51 -04:00
Jarred Sumner
9bba47129a Add a console.log bench 2022-07-13 01:03:03 -07:00
Jarred Sumner
54b03f6e8a Add newline to symbols (fixes warning) 2022-07-13 01:03:03 -07:00
evanwashere
71930db9b0 fix benchmark not building with old rust version 2022-07-13 03:14:50 -04:00
Jarred Sumner
e4016c1a77 [http] Fix assertion 2022-07-12 22:56:20 -07:00
Jarred Sumner
b37ffde4ed [bun.js] GC more strings 2022-07-12 22:56:09 -07:00
Jarred Sumner
dd7a346ac8 [bun install] Handle case that should really never happen 2022-07-12 22:55:38 -07:00
Jarred Sumner
d3963d6ea2 [bun.js] Fix GC bug with fetch 2022-07-12 22:46:27 -07:00
pnxdxt
0592b1dbed feat(landing): create github action rebuilding the site on changes (#651) 2022-07-12 21:37:39 -07:00
Gabriel Nunes
7b3dbf1108 feat(packages/bun-landing): Create share image for social media (#629)
* feat: create share image for social media

* fix: group meta tags
2022-07-12 22:20:39 +02:00
Aditya Agarwal
60e8cf4746 fix(README): Exchange backticks for <code></code> (#641) 2022-07-12 22:11:43 +02:00
Aditya Agarwal
a396e69384 fix(README): Fix punctuation (#639) 2022-07-12 22:10:05 +02:00
Jarred Sumner
6eebd11a06 .3 not .0 2022-07-12 12:26:58 -07:00
Jarred Sumner
56ac919f54 [landing] Hashing benchmark 2022-07-12 12:21:56 -07:00
evanwashere
cbc1e407c3 use permalinks for landing page 2022-07-12 12:57:28 -04:00
evan
e55d6eed2b fix benchmark urls on landing page (#636) 2022-07-12 18:49:32 +02:00
Giorgio Bellisario
ed18a318b9 docs: Fix "coercion" spelling (#628) 2022-07-12 16:43:08 +02:00
pnxdxt
80969a59a5 chore(landing): build changes (#626) 2022-07-12 16:40:39 +02:00
Finn R. Gärtner
a0f8b8c68a fix(examples/hono): Update package name (#620) 2022-07-12 03:09:15 -07:00
SheetJSDev
5774069cfe fix blank template (#523) 2022-07-12 03:03:17 -07:00
Jarred Sumner
83ad9fa780 [napi] Implement napi_get_property_names 2022-07-12 02:50:47 -07:00
Jesse-Lucas1996
a63a0ccc10 docs: Hono example with typescript (#577)
* hono example with typescript

* changing of name in package json

* adding dom to lib

* removal of git ignore

* removed DOM

* Update examples/hono/src/index.ts

Co-authored-by: Hyro <generalkubo@gmail.com>

* changed port

* added read me

* Update index.ts

* Update package.json

* Update readme.md

Co-authored-by: Hyro <generalkubo@gmail.com>
Co-authored-by: Jesse Lucas <jlucas@corpcloud.com.au>
Co-authored-by: Finn R. Gärtner <65015656+FinnRG@users.noreply.github.com>
2022-07-12 11:46:22 +02:00
Ryan Bargholz
734775e410 Support specifying a JSON response type in bun.d.ts (#563)
Co-authored-by: Ryan Bargholz <ryan@asteria.com>
2022-07-12 01:47:58 -07:00
Ryan Russell
4987067a18 refactor(exports.zig): Fix WebSocketHTTPSClient var name (#598)
Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-07-12 01:47:36 -07:00
Finn R. Gärtner
a6ab6e2131 fix(env_loader): Ignore spaces before equals sign (#602)
* fix(env_loader): Ignore spaces before equals sign

* fix(env_loader): Change the type of key_end to usize
2022-07-12 01:42:36 -07:00
evan
a9e4ff2029 cleanup benchmarks folder (#587)
* cleanup benchmarks

* run prettier
2022-07-12 01:40:12 -07:00
Jarred Sumner
7eea306b0f Update build-id 2022-07-12 00:21:45 -07:00
Jarred Sumner
7b708255f5 [jsc] Fix segfault with promises 2022-07-12 00:20:46 -07:00
Jarred Sumner
46e8717e6c [bun install] Fix NotSameFileSystem error (for real this time) 2022-07-12 00:20:46 -07:00
Ben Williams
e85f8011d5 docs: Updated logLevel to include debug (#189) 2022-07-12 01:20:10 +02:00
pnxdxt
ae02cad3f5 docs: remove double v of version (#601) 2022-07-12 01:11:32 +02:00
Ryan Russell
f0529ca253 docs(various): .md readability improvements (#597) 2022-07-12 00:41:23 +02:00
Evan Boehs
349eb9481d docs: builtin -> built-in (#585) 2022-07-12 00:38:42 +02:00
deijjji303
889ed66a01 docs: Added note of AVX2 requirement and mentioned Intel SDE workaround in README.md (#346) 2022-07-12 00:36:51 +02:00
josesilveiraa
ede7576899 chore(docs): add comma (#580) 2022-07-12 00:33:03 +02:00
Rudraksh Karpe
299c61896e docs: Fix typo (#599)
Under the Credits section
On line no. 2, it is mentioned as based off of whereas based on would be the correct choice of a word representing it as official documentation of Bun.
I hope this would help to make the Bun Documentation more precise to the users.
2022-07-12 00:28:17 +02:00
Jarred Sumner
fb03027b5b Broken links? 2022-07-11 13:41:48 -07:00
B E C H
d3ec0e204f Fixed broken links on the Bun.serve benchmark (#590)
Fixed the broken links to the Bun.serve benchmark sources.
2022-07-11 13:39:42 -07:00
Jarred Sumner
9bd8e6e604 Update javascript.zig 2022-07-11 11:06:59 -07:00
Jarred Sumner
3086fff66d woops 2022-07-11 08:46:04 -07:00
Jarred Sumner
2b709315e3 [integration test scripts] bun -> bun dev 2022-07-11 08:45:44 -07:00
Jarred Sumner
a7adf3d369 Revert changes to integration test scripts that break macOS tests 2022-07-11 08:39:30 -07:00
Jarred Sumner
59113ea3ae Update build-id 2022-07-11 08:19:07 -07:00
Carter Snook
5fc353797f feat(core): implement web interaction APIs (#528)
* feat(core): implement web interaction APIs

* fix(core): adjust web prompt code and add types
2022-07-11 08:11:02 -07:00
Jarred Sumner
6190130626 [resolver] Stripe file:// from import paths 2022-07-11 08:04:55 -07:00
Jarred Sumner
f6cd941522 Fixes https://github.com/oven-sh/bun/issues/195 2022-07-11 08:04:55 -07:00
Jarred Sumner
a6c216db00 Revert "Fix: NotSameFileSystem at clonefile (#546)" (#581)
This reverts commit 2659febd1b.
2022-07-11 08:04:20 -07:00
Snazzah
4394169405 feat(types): Add types for node modules and various fixing (#470)
* fix(types): add __dirname and __filename as deprecated types

* fix(types): add stream() method to Blob

* fix(types): update getRandomValues in Crypto

* fix(types): add buffer type defs

* fix(types): remove buffer type setting in fs

* fix(types): extend TypedArray in crypto.getRandomValues

Co-authored-by: Carter Snook <cartersnook04@gmail.com>

* fix(types): add notes to some buffer methods

* fix(types): remove since jsdoc comments from buffer

* chore(types): fix bundle script and build types

* fix(types): update bundle script

This really shouldn't do anything differently, but it no longer hangs whenever I bundle types. Not sure if anyone else has this problem but, ehhhh...

* fix(types): remove unused types in buffer

* feat(types): add assert module types

* feat(types): add events module types

* feat(types): add os module types

* feat(types): add domain module types

* fix(types): add process.isBun type

* feat(types): add util module types

* feat(types): add querystring module types

* feat(types): add process module types

* feat(types): add string_decoder module types

* feat(types): add sys module types

* feat(types): add timers module types

* feat(types): add stream module types

* feat(types): add crypto module types

fix(types): fix types for stream, timers and util modules

* feat(types): add constants module types

* feat(types): add url module types

* feat(types): add tty module types

* feat(types): add http module types

* feat(types): add https module types

* feat(types): add punycode module types

* feat(types): add zlib module types

* feat(types): add supports-color module types

Co-authored-by: Carter Snook <cartersnook04@gmail.com>
2022-07-11 05:40:07 -07:00
Carlos Gabriel Vilas Novas Soares
6e5665de4e fix: environment typo (#568) 2022-07-11 05:39:03 -07:00
CharlieS1103
ea6d96f409 Cleanup discord-interactions readme (#451) 2022-07-11 05:34:21 -07:00
Aditya Gupta
2659febd1b Fix: NotSameFileSystem at clonefile (#546)
Fixes issue #531

Before this, using 'bun install' on a directory in different filesystem
such as tmpfs (/tmp) would have caused "Error: NotSameFileSystem".

This commit fixes that by handling this error, and at end of function it
will fall back to use copyfile (same as --backend=copyfile)
2022-07-11 05:31:00 -07:00
rml1997
1405158dfb Updated typo in example (#573)
Changed deocder to decoder
2022-07-11 05:26:45 -07:00
Jarred Sumner
d6d8c0b80d Fixes https://github.com/oven-sh/bun/issues/561 2022-07-11 04:34:38 -07:00
Jarred Sumner
d9491fe022 [js] Include TypedArray type name for empty arrays 2022-07-11 04:24:11 -07:00
Jarred Sumner
3609063d81 [js] When console.log typed arrays, include the type name and limit printed count to 512 2022-07-11 04:20:28 -07:00
Jarred Sumner
7904f49b5d Fixes https://github.com/oven-sh/bun/issues/229 2022-07-11 03:41:03 -07:00
Jarred Sumner
d35ca945c2 Bump zig build 2022-07-11 03:08:07 -07:00
Jarred Sumner
a20a341729 Move symbol 2022-07-11 02:12:23 -07:00
Jarred Sumner
7381c33f76 Run prettier 2022-07-11 02:10:32 -07:00
Jarred Sumner
1091ee2318 Fix broken build 2022-07-11 02:10:23 -07:00
Jarred Sumner
b79dd18ca5 [bun wiptest] Fix copy 2022-07-11 02:03:46 -07:00
evan
3abfc3566b add depd browser polyfill (#517) 2022-07-11 01:53:45 -07:00
thislooksfun
71992634a6 Fix macOS build (#525)
* style: remove some trailing whitespace

* docs: make `identifier-cache` _before_ `jsc`

Running them the other way around results in a failed build.

* docs: `npm i` in both `test/snippets` _and_ `test/scripts`

`test/scripts` has node packages as well. If they aren't installed, then
some of the tests fail to start.

* docs: add `rust` to list of homebrew packages

One of the dependencies tries to run `cargo`, and will fail the build if
it can't. The `cargo` command is provided by the `rust` brew package.

* docs: clean up section on macOS code signing

This requirement applies to _all_ macOS builds, not just those on Apple
Silicon, and also had some slightly confusing wording.

* build: remove leading whitespace from flags

This leading whitespace was making my system treat the argument as a
file with name ` -L$(LLVM_PREFIX)/lib` (leading whitespace included),
instead of as a library path argument.

* build: try llvm@13 first, then fall back on bare llvm

The macOS instructions say to install `llvm@13`, which has a different
path than the bare `llvm` install (`brew --prefix llvm@13` != `brew
--prefix llvm`). This patch takes a slightly smarter approach:

1. If the user defined `LLVM_PREFIX` and it points to a valid path on
   disk, use that.
2. If `LLVM_PREFIX` is NOT a valid path, try setting it to the `llvm@13`
   path.
3. If it's STILL not a valid path, try the plain `llvm` path
4. If it's STILL not valid, set it to a user-friendly error.

There might be a better solution for doing this, I'm not well-versed in
Makefile syntax, but it's at least slightly better than it was before.

* fix(build): update cast signature

`std.math.cast` was changed in 0e6285c8fc31ff866df96847fe34e660da38b4a9.
It used to throw if the cast would overflow, but now it returns `null`
instead.
2022-07-11 01:52:30 -07:00
Michell Brito
90ff529b55 Merge pull request #544 from xHyroM/chore/update-templates 2022-07-10 23:46:30 -04:00
Michell Brito
5a8b3b8ad7 Merge pull request #464 from dkarter/main
fix: remove unnecessary quotes in commit message
2022-07-10 23:42:44 -04:00
Aurora Luna Takemi
418972b423 Update GitHub URL to match new repo URL (#547)
* Update repo URLs

* GitHub URL update

* Revert accidental URL changes
2022-07-10 19:37:30 -07:00
Hyro
c1d4917593 chore(feature-request): change feature request to enhancement 2022-07-10 19:04:33 +02:00
Hyro
65d6e28b4f chore(api-ref-docs): change doc to documentation 2022-07-10 19:03:45 +02:00
Hyro
3c435f7856 chore(bug-report): add label bug, need repro 2022-07-10 19:01:20 +02:00
Hyro
659c3e0e12 chore: disable blank issues, add discord contact link 2022-07-10 19:00:27 +02:00
Giorgio Bellisario
1e9cba9972 Fix "operations" word spelling (#543) 2022-07-10 09:21:50 -07:00
Jacob
c3bf97002d clarify launch step (#534) 2022-07-10 07:23:09 -07:00
r00ster91
16452c16da Remove unnecessary Output.flushs before Global.exit and Global.crash (#535)
* fix: add missing newline

* refactor: std.process.exit -> Global.exit

* fix: std.os.abort -> Global.exit

I'm not sure about this one. Please verify.

* cleanup: remove unnecessary `Output.flush`s
2022-07-10 06:44:57 -07:00
Snazzah
05970fe1fb fix(bun-error): fix line endings 2022-07-10 06:42:09 -07:00
Snazzah
0f20d5913d feat(bun-error): update "powered by" logo to use new bun wordmark 2022-07-10 06:42:09 -07:00
Ryan Russell
0acf8a6618 refactor(websockets): Rename connectedWebSocketContext()
Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-07-09 18:34:46 -07:00
Hisam Fahri
547ac721fa fix: add grammar fix on templates 2022-07-09 18:34:20 -07:00
Hisam Fahri
8ff70a6224 feat: add bun docs report template 2022-07-09 18:34:20 -07:00
Hisam Fahri
b880c6663c feat: add feature request template 2022-07-09 18:34:20 -07:00
Hisam Fahri
66e52396dc feat: add bug report template 2022-07-09 18:34:20 -07:00
Laurens Lavaert
92225faa82 fix: actuality return result instead of ns time 2022-07-09 18:33:51 -07:00
Laurens Lavaert
36718c45fc bugfix: performance.now function should return MS instead of nano 2022-07-09 18:33:51 -07:00
lucasew
118c134918 update bash references to work in non-fhs compliant distros
Signed-off-by: lucasew <lucas59356@gmail.com>
2022-07-09 18:28:32 -07:00
b0iq
85dbb9cc92 using {process.version} instead of hardcoding 2022-07-09 18:27:56 -07:00
b0iq
e11f1476af Update Bun CLI version typo to v0.1.2 2022-07-09 18:27:56 -07:00
sno2
f5d896542a fix: update build files to latest Zig version 2022-07-09 18:25:25 -07:00
evanwashere
961d0a159a add partial node:net polyfill 2022-07-09 16:29:57 -07:00
JolteonYellow
1597424d17 fix dotenv package example on landing page (#436) 2022-07-09 15:49:37 -04:00
Jordan Lees
465e185a74 fix typo in readme (#449) 2022-07-09 15:39:01 -04:00
Michell Brito
5abee04991 Merge pull request #483 from pvinis/patch-1 2022-07-09 14:29:16 -04:00
Michell Brito
a884ca155e Merge pull request #476 from jakemcf22/main 2022-07-09 14:29:04 -04:00
Finn R. Gärtner
d3f912a79e fix: Append n when printing a BigInt 2022-07-09 20:23:56 +02:00
FinnRG
5d7aabb38a fix: Append n when printing a BigInt 2022-07-09 20:19:35 +02:00
Finn R. Gärtner
adda6f6dd1 fix: Remove unnecessary n while formatting 2022-07-09 20:05:32 +02:00
FinnRG
5191a57037 fix: Remove unnecessary n while formatting 2022-07-09 20:02:21 +02:00
Alexander
7d1c9fa1a4 Migrate to Zig v0.10.0 2022-07-09 05:09:16 -07:00
Ziloka
dd5996379d Update README.md 2022-07-09 04:51:23 -07:00
Pavlos Vinieratos
a0d471eda5 typo 2022-07-09 10:40:17 +01:00
Snazzah
f58501fc62 feat(landing): add favicon.ico 2022-07-09 00:57:52 -07:00
Snazzah
80dc9b97f2 chore(landing): build changes 2022-07-09 00:57:52 -07:00
Snazzah
d018b08082 feat(landing): add og:locale and twitter:site metadata 2022-07-09 00:57:52 -07:00
Snazzah
576ee66f20 feat(landing): add 256x icon 2022-07-09 00:57:52 -07:00
Snazzah
b55b49ac4e feat(landing): remove space between zig and "'s" 2022-07-09 00:57:52 -07:00
Snazzah
712f4a7f5d feat(landing): add SVG logo, manifest, and meta tags 2022-07-09 00:57:52 -07:00
Snazzah
528972ef8b feat: update default favicon to new logo 2022-07-09 00:57:08 -07:00
jakemcf22
8b4c7434c3 Fix grammar erros in README.md 2022-07-08 23:44:51 -07:00
Dorian Karter
b0760bbab5 fix: remove unnecessary quotes in commit message
These quotes are not necessary and appear literally in the commit
2022-07-08 18:46:53 -05:00
Hyro
ac8bcb5edb remove comments 2022-07-08 14:09:14 -07:00
Michell Brito
2b98ffd776 Merge pull request #433 from keidarcy/patch-1 2022-07-08 09:24:25 -04:00
Michell Brito
b373126927 Merge pull request #330 from Tropix126/a11y 2022-07-08 09:13:49 -04:00
Xing Yahao
34bb627a54 Fix react example README typo. 2022-07-08 19:37:06 +09:00
FinnRG
92584630c3 fix(templates/react): Add a SVG type definition 2022-07-08 02:59:52 -07:00
Hyro
6035ef353a use tsconfig from readme 2022-07-08 02:32:55 -07:00
xhyrom
4bd42e1cf0 add tsconfig 2022-07-08 02:32:55 -07:00
Hyro
f95919b5a3 update hello world 2022-07-08 02:32:55 -07:00
xhyrom
43657c4dd8 new template blank 2022-07-08 02:32:55 -07:00
Tropical
e158ee542d Slightly darken pink link color for contrast requirements. 2022-07-08 04:48:58 +00:00
Tropical
6256b88768 Pink chip contrast 2022-07-08 04:46:17 +00:00
Jarred Sumner
57d9c500a8 Update bun-types 2022-07-07 20:22:51 -07:00
Michell Brito
35d1f51d75 Merge pull request #305 from MoritzLoewenstein/main 2022-07-07 21:36:41 -04:00
Jarred Sumner
1ee94d5bd2 Bump examples 2022-07-07 16:02:04 -07:00
Hassan El Mghari
d513a62862 Updating format of Next.js example app README to match the rest 2022-07-07 15:58:05 -07:00
Hassan El Mghari
76ef4fc976 Deleted installing dependencies from Discord README since it's done automatically when cloning 2022-07-07 15:58:05 -07:00
Hassan El Mghari
fe858a9196 Updating README for React example to match Discord 2022-07-07 15:58:05 -07:00
Hassan El Mghari
6770356c5b Clean up README for React example 2022-07-07 15:58:05 -07:00
Hassan El Mghari
ebccbaeee9 Update command to run react app to bun dev 2022-07-07 15:58:05 -07:00
K.J. Valencik
b64c71eece fix: napi_get_version should return the Node-API version and not the bun version 2022-07-07 14:18:44 -07:00
CoffeeMovedCoder
4b4bc8a380 Add troubleshooting for old intel CPUs 2022-07-07 14:15:45 -07:00
Hassan El Mghari
485ef8c4fc Delete second.tsx page as it's not being used 2022-07-07 14:14:57 -07:00
Hassan El Mghari
5b880512fb Removed unused parts of index.tsx 2022-07-07 14:14:57 -07:00
Hassan El Mghari
3b43a192f1 Cleaned up the Next.js example README 2022-07-07 14:14:57 -07:00
Tropical
911f74496d Merge branch 'main' into a11y 2022-07-07 15:29:44 -05:00
michell brito
7118df32bb Fix: long numbers + unused css 2022-07-07 11:52:26 -07:00
Michell Brito
73c0300d63 Merge pull request #370 from PyBaker/patch-1 2022-07-07 12:57:41 -04:00
PyBaker
0cf76f628e Update README.md 2022-07-07 18:38:12 +03:00
Jarred Sumner
ee83e25120 [install] Use an identifier for the accept header value 2022-07-07 05:36:37 -07:00
Jarred Sumner
d6fb068230 Fixes https://github.com/Jarred-Sumner/bun/issues/341 2022-07-07 04:50:37 -07:00
Jarred Sumner
e1e3cee16a Outdated type 2022-07-07 03:44:11 -07:00
Jarred Sumner
fb6d438485 Fix copy 2022-07-07 03:33:05 -07:00
shanehsi
f84f7f8acb fix devcontainer starship installation 2022-07-07 02:49:04 -07:00
Hiroaki Nakamura
8e912b4a20 Use Node.js v18.x from NodeSource to use string.replaceAll method
Node.js in Ubuntu focal does not have string.replaceAll method.
```
root@focal:~# node --version
v10.19.0
root@focal:~# echo "console.log(''.replace)" | node
[Function: replace]
root@focal:~# echo "console.log(''.replaceAll)" | node
undefined
```

And it gives the following error at
f0c283c632/Makefile (L722)

```
/build/bun/misctools/headers-cleaner.js:33
input = input.replaceAll("*WebCore__", "*bindings.");
              ^

TypeError: input.replaceAll is not a function
    at Object.<anonymous>
(/build/bun/misctools/headers-cleaner.js:33:15)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js
(internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
make: *** [Makefile:722: jsc-bindings-headers] Error 1
```
2022-07-07 02:47:57 -07:00
Ikko Ashimine
6c5472a84c [strings] Fix typo in string_immutable.zig
occurences -> occurrences
2022-07-07 02:46:32 -07:00
Jarred Sumner
1f887bb863 Bump build-id 2022-07-07 01:05:39 -07:00
Hassan El Mghari
1739513095 Update list of unsupported bun Next.js features 2022-07-07 00:44:31 -07:00
Jarred Sumner
621fe3f5d2 [next] Fix @types/react error 2022-07-06 23:57:47 -07:00
Jarred Sumner
0196bbee21 [cli] Clarify 2022-07-06 23:40:22 -07:00
Jarred Sumner
e4670b7513 Improve error message for outdated linux kernel 2022-07-06 23:30:19 -07:00
Jarred Sumner
4601531bf0 [tsconfig] Fix crash affecting preact 2022-07-06 23:16:18 -07:00
Jarred Sumner
520f7e78ac [internal] Fix failing build 2022-07-06 23:16:05 -07:00
Jarred Sumner
9962df69d6 [bun install] Fix NotSameFileSystem error 2022-07-06 22:29:30 -07:00
Tropical
47498eb375 properly style inner navigation ulist 2022-07-07 05:26:01 +00:00
Tropical
c78c810294 Refactor InstallBox 2022-07-07 05:19:30 +00:00
Michell Brito
8dc6f839a9 Merge pull request #264 from eyalcohen4/main 2022-07-07 01:03:06 -04:00
Tropical
c8d51cc05a Improve link contrast, refactor tabbar 2022-07-07 04:59:58 +00:00
mrowles
c99a9a6cb7 chore(examples): Updates start doco 2022-07-06 21:18:03 -07:00
Isaac McFadyen
fb95f6b225 Updated CPU in benchmarks 2022-07-06 20:07:13 -07:00
josefaidt
c747a08649 docs: add callout for typedefs with TypeScript 2022-07-06 19:22:53 -07:00
Egor
ee5144924b fix: spawn thread on linux 2022-07-06 19:22:29 -07:00
Moritz Löwenstein
ba9c64dc14 fix: add unzip is required information 2022-07-07 00:25:08 +02:00
Jarred Sumner
57f2208bdf Update Deno number for React SSR after 8c1157be22
This is the best of 3 runs

jarred in jarred-desktop in ~
❯ oha -z 5s http://localhost:8080
Summary:
  Success rate:	1.0000
  Total:	5.0006 secs
  Slowest:	0.0504 secs
  Fastest:	0.0001 secs
  Average:	0.0037 secs
  Requests/sec:	13533.1616

  Total data:	3.94 MiB
  Size/request:	61 B
  Size/sec:	806.17 KiB

Response time histogram:
  0.001 [51666] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.002 [9726]  |■■■■■■
  0.003 [1369]  |
  0.004 [185]   |
  0.005 [34]    |
  0.006 [0]     |
  0.007 [4]     |
  0.008 [1]     |
  0.009 [2]     |
  0.010 [2]     |
  0.011 [4685]  |■■

Latency distribution:
  10% in 0.0001 secs
  25% in 0.0002 secs
  50% in 0.0006 secs
  75% in 0.0010 secs
  90% in 0.0019 secs
  95% in 0.0434 secs
  99% in 0.0473 secs

Details (average, fastest, slowest):
  DNS+dialup:	0.0002 secs, 0.0001 secs, 0.0006 secs
  DNS-lookup:	0.0000 secs, 0.0000 secs, 0.0000 secs

Status code distribution:
  [200] 67674 responses

jarred in jarred-desktop in ~ took 5s
❯ oha -z 5s http://localhost:8080
Summary:
  Success rate:	1.0000
  Total:	5.0005 secs
  Slowest:	0.0492 secs
  Fastest:	0.0001 secs
  Average:	0.0032 secs
  Requests/sec:	15328.8994

  Total data:	4.46 MiB
  Size/request:	61 B
  Size/sec:	913.15 KiB

Response time histogram:
  0.001 [63524] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.002 [7172]  |■■■
  0.003 [1155]  |
  0.004 [52]    |
  0.004 [3]     |
  0.005 [9]     |
  0.006 [4]     |
  0.007 [26]    |
  0.008 [2]     |
  0.009 [3]     |
  0.010 [4702]  |■■

Latency distribution:
  10% in 0.0002 secs
  25% in 0.0003 secs
  50% in 0.0005 secs
  75% in 0.0008 secs
  90% in 0.0013 secs
  95% in 0.0434 secs
  99% in 0.0440 secs

Details (average, fastest, slowest):
  DNS+dialup:	0.0003 secs, 0.0001 secs, 0.0006 secs
  DNS-lookup:	0.0000 secs, 0.0000 secs, 0.0000 secs

Status code distribution:
  [200] 76652 responses

jarred in jarred-desktop in ~ took 5s
❯ oha -z 5s http://localhost:8080
Summary:
  Success rate:	1.0000
  Total:	5.0006 secs
  Slowest:	0.0518 secs
  Fastest:	0.0001 secs
  Average:	0.0032 secs
  Requests/sec:	15786.6566

  Total data:	4.59 MiB
  Size/request:	61 B
  Size/sec:	940.42 KiB

Response time histogram:
  0.001 [66905] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.002 [6834]  |■■■
  0.003 [409]   |
  0.003 [18]    |
  0.004 [17]    |
  0.005 [17]    |
  0.006 [3]     |
  0.007 [3]     |
  0.008 [2]     |
  0.009 [2]     |
  0.009 [4733]  |■■

Latency distribution:
  10% in 0.0002 secs
  25% in 0.0004 secs
  50% in 0.0005 secs
  75% in 0.0008 secs
  90% in 0.0012 secs
  95% in 0.0434 secs
  99% in 0.0440 secs

Details (average, fastest, slowest):
  DNS+dialup:	0.0003 secs, 0.0001 secs, 0.0007 secs
  DNS-lookup:	0.0000 secs, 0.0000 secs, 0.0000 secs

Status code distribution:
  [200] 78943 responses
2022-07-06 14:50:57 -07:00
Hiroaki Nakamura
a2313cede3 Add needed dependencies to Makefile devcontainer target 2022-07-06 14:41:39 -07:00
Alexander
996a7ade9f fix tabpanel a11y 2022-07-06 14:04:35 -07:00
Alexander
024233feeb fix a11y issues on landing 2022-07-06 14:04:35 -07:00
Yongwook Choi
48058fac99 docs: Fix broken toc link 2022-07-06 14:03:20 -07:00
Joe Previte
9a9bb823f6 fixup!: add newline to end of file 2022-07-06 14:00:47 -07:00
Joe Previte
73ab469102 refactor: wrap BigInt tests in describe block
Place BigInt tests inside of describe block to match test structure of
the rest of the codebase.
2022-07-06 14:00:47 -07:00
Eyal Cohen
c6967634c9 Add a space in page.tsx 2022-07-06 16:34:07 +03:00
Daniel Tolentino
f0c283c632 Add Bun logo 2022-07-06 04:12:45 -07:00
ManiTheDev
4654de7ee5 adding a template .gitignore 2022-07-06 04:11:31 -07:00
Andrea Giammarchi
b59908d291 Fix #253 - Explicitly exported randomUUID from global crypto 2022-07-06 04:08:53 -07:00
Feng Yu
a22b333f2a Fix Safari's implementation broken link 2022-07-06 04:06:51 -07:00
Kayla Washburn
636e71d54e Allow setting MIN_MACOS_VERSION as an environment variable 2022-07-06 01:17:31 -07:00
Kayla Washburn
6ea9332c87 Allow setting LLVM_PREFIX as an environment variable 2022-07-06 01:17:31 -07:00
Nishan
72184748d8 fix: home page links 2022-07-06 01:17:09 -07:00
Jay Baker
797d52beb5 fix: typo in the word enormous. fixes #214 2022-07-06 01:16:18 -07:00
Jarred Sumner
d875c9988a [bench] Add comparison for react-dom builds 2022-07-06 00:07:59 -07:00
Luca Casonato
8c1157be22 Disable response body auto compression in Deno
Allows for a more apples to apples comparison between runtimes
2022-07-05 17:13:52 -07:00
Steven
f32153754c fix: missing space in docs on homepage 2022-07-05 15:50:04 -07:00
addy
44ee4caf6f Change fish path addition command 2022-07-05 14:39:04 -07:00
Jarred Sumner
e4fb842757 Update build-id 2022-07-05 13:03:02 -07:00
Jarred Sumner
780b919e26 delete this 2022-07-05 13:03:02 -07:00
Jarred Sumner
f7c32745e0 update 2022-07-05 13:03:02 -07:00
evanwashere
bd8c7915b9 add invite url guide 2022-07-05 11:45:28 -07:00
evanwashere
91cff94739 add creating discord bots to readme 2022-07-05 11:45:28 -07:00
Kirk Scheibelhut
0c9fb7e063 nitpick README
- modify wording of example which implies there are two blobs beings passed when only one is
- styling Bun.js -> bun.js for consistency
- correct 63 bits -> 53 bits
2022-07-05 11:40:27 -07:00
Jarred Sumner
70e2bda971 Fix tests 2022-07-05 11:04:59 -07:00
Jarred Sumner
0d54275314 [create] Don't print timestamp because it formats weird 2022-07-05 10:29:03 -07:00
Jarred Sumner
b64bfc0153 mitigate HMR bug 2022-07-05 10:28:34 -07:00
Jarred Sumner
9afed496a8 Bump discord-interactions template 2022-07-05 10:28:14 -07:00
Jarred Sumner
3bf467375b latest 2022-07-05 09:40:37 -07:00
evanwashere
aaffcb410f nitpicks 2022-07-05 09:26:58 -07:00
evanwashere
d3e0955ddc more examples 2022-07-05 09:26:58 -07:00
evanwashere
5d4fbf7f02 TLA & typescript 2022-07-05 09:26:58 -07:00
evanwashere
4a927e09b7 discord interactions template 2022-07-05 09:26:58 -07:00
Jarred Sumner
a577e3507f latest 2022-07-05 08:55:20 -07:00
Jarred Sumner
cb67add26a Fix copy button 2022-07-05 02:53:25 -07:00
Jarred Sumner
2470c0d090 Current landing 2022-07-05 02:25:33 -07:00
Jarred Sumner
2d8dfeff49 [breaking] bun now prints the help menu instead of the dev server 2022-07-05 00:56:39 -07:00
Jarred Sumner
18290dee8b [jsc] More careful code in dynamic require 2022-07-05 00:55:43 -07:00
Jarred Sumner
9137862bc7 Fix crash in dynamic import? 2022-07-05 00:55:24 -07:00
Jarred Sumner
288178e94c Fix bug in ffi 2022-07-05 00:55:07 -07:00
Jarred Sumner
ebb4f85feb [bun-framework-next] Bump 2022-07-05 00:54:56 -07:00
Jarred Sumner
f5527c976e Clean up some benchmarks 2022-07-05 00:54:42 -07:00
Jarred Sumner
ab7f57239d [bench] react hello world 2022-07-04 18:06:30 -07:00
Jarred Sumner
a822135603 Update Dockerfile 2022-07-04 17:36:20 -07:00
Jarred Sumner
6190dc5da5 [internal] Don't need to run jsc-bindings-headers in CI 2022-07-04 17:32:19 -07:00
Jarred Sumner
090a913660 once more 2022-07-04 17:26:46 -07:00
Jarred Sumner
db2f101971 [internal] Fix build script on old node 2022-07-04 17:23:43 -07:00
Jarred Sumner
41f4302d39 Handle global require("string") 2022-07-04 17:17:29 -07:00
Jarred Sumner
91cada219b Fix case in dynamic require() 2022-07-04 17:17:11 -07:00
Jarred Sumner
7d3459f53d [internal] Fix duplicate symbol issue 2022-07-04 16:47:34 -07:00
Jarred Sumner
cf4c9912c3 Fix npm peer dep issue 2022-07-04 16:46:17 -07:00
Jarred Sumner
b685cd49a6 [bench] Add a react ssr hello world 2022-07-04 16:41:16 -07:00
Jarred Sumner
9c960fcafd Update bun.lockb 2022-07-04 16:39:55 -07:00
Jarred Sumner
4acc0351cf Update README.md 2022-07-04 16:39:48 -07:00
Jarred Sumner
2f212d1386 [resolver] Add a test for self-referencing package.json exports 2022-07-04 16:39:33 -07:00
Jarred Sumner
1e54e94cc2 Bump docker build of webkit 2022-07-04 16:39:05 -07:00
Jarred Sumner
48f64bc6e5 [itnernal] Cleanup some of the streams code 2022-07-04 16:38:45 -07:00
Jarred Sumner
667303fc86 [internal] Add a note explaining what to do if this fails 2022-07-04 16:36:51 -07:00
Jarred Sumner
6768db9a6e [jsc] Handle promise ownership (might revert this) 2022-07-04 16:36:28 -07:00
Jarred Sumner
d516e3523b [jsc] Run JSC's deferredWorkTimer sometimes 2022-07-04 16:35:11 -07:00
Jarred Sumner
a6d4283986 [jsc] Attempt to make detecting ArrayBuffer/Uint8Array faster 2022-07-04 16:34:42 -07:00
Jarred Sumner
abd9d8bcab [server] Clean up some of the logic for freeing ReadableStream 2022-07-04 16:34:08 -07:00
Jarred Sumner
430532feec Update __global.zig 2022-07-04 16:33:39 -07:00
Jarred Sumner
cf5939c425 [jsc] Make JSC own the memory for source code strings 2022-07-04 08:42:29 -07:00
Jarred Sumner
bbcc08dbb4 Merge branch 'jarred/landing' 2022-07-04 08:41:03 -07:00
Jarred Sumner
77b5999b73 [bench] Add a performance.now bench 2022-07-04 08:39:27 -07:00
Jarred Sumner
2f553df8be [bench] Add an async overhead bench 2022-07-04 08:39:18 -07:00
Jarred Sumner
17045601e7 [bench] Add an ffi data overhead bench 2022-07-04 08:39:07 -07:00
Jarred Sumner
0f987a5601 [strings] Minor performance optimizations to SourceMaps 2022-07-04 08:05:21 -07:00
Jarred Sumner
fb48557154 Export Bun__readOriginTimer 2022-07-04 08:04:54 -07:00
Jarred Sumner
14846710c5 Make log_protection dev_only 2022-07-04 08:04:31 -07:00
Jarred Sumner
2ba3a6fbbc Improve the performance of performance 2022-07-04 08:04:21 -07:00
Jarred Sumner
027d64c78f 0.1 2022-07-04 08:03:34 -07:00
Jarred Sumner
d653341e03 0! 2022-07-04 08:03:24 -07:00
Jarred Sumner
fd09b30538 [sourcemaps] Add an assertion 2022-07-04 06:03:31 -07:00
Jarred Sumner
eea02d9500 [misc] Make that test work 2022-07-04 06:03:19 -07:00
Jarred Sumner
c7e0ed8e21 Update page.tsx 2022-07-04 02:02:43 -07:00
Jarred Sumner
c34e9ced81 Add a getting started section 2022-07-04 01:26:09 -07:00
Jarred Sumner
344998a873 Fix WebAssembly.instantiate 2022-07-04 01:25:41 -07:00
Jarred Sumner
6f7af725ff Export fs.promises 2022-07-04 00:16:29 -07:00
Jarred Sumner
e553e82acc wip 2022-07-03 23:55:11 -07:00
Jarred Sumner
78d5a0f201 Update README.md 2022-07-03 23:54:44 -07:00
Jarred Sumner
53a8ab5715 Re-enable buffer pooling 2022-07-03 23:17:27 -07:00
Jarred Sumner
544ab558dc wip 2022-07-02 23:33:24 -07:00
Jarred Sumner
edd550a5ee wip 2022-07-02 23:33:20 -07:00
Jarred Sumner
c3ea15f4bc Backport https://github.com/WebKit/WebKit/pull/2024 2022-07-02 04:05:21 -07:00
Jarred Sumner
efdc60372f [bun:jsc] Add generateHeapSnapshotForDebugging 2022-07-02 04:05:04 -07:00
Jarred Sumner
6f3a092564 [bun:jsc] Add protectedObjectTypeCounts, disallow gc 2022-07-02 02:35:43 -07:00
Jarred Sumner
d1ad1089bc Update README.md 2022-07-02 01:37:13 -07:00
Jarred Sumner
29af6560d3 [internal] Add react-dom as a dev dependency for the tests 2022-07-02 01:36:04 -07:00
Jarred Sumner
ef742f2fa8 [internal] Clean up launch.json 2022-07-02 01:36:04 -07:00
Jarred Sumner
2c70badad6 Update WebKit 2022-07-02 01:36:04 -07:00
Jarred Sumner
0d9ebb1fd2 [internal] Make make jsc-bindings-headers more reliable 2022-07-02 01:36:04 -07:00
Jarred Sumner
ba2c24e77c [bindings] Mark more stuff as unreachable 2022-07-02 01:36:04 -07:00
Jarred Sumner
d1cc2b85cb Update reactdom-bun.js 2022-07-02 01:36:04 -07:00
Jarred Sumner
7c996fe2e6 [bun:jsc] Add a test for getProtectedObjects 2022-07-02 01:36:04 -07:00
Jarred Sumner
f9f573ebb4 [strings] Optimize TextEncoder a little more 2022-07-02 01:36:04 -07:00
Jarred Sumner
476b3c7404 [bun http] Attempt to fix a crash 2022-07-02 01:36:04 -07:00
Jarred Sumner
500e5ed949 [streams] Rename drain() -> flush() 2022-07-02 01:36:04 -07:00
Jarred Sumner
b995e7797d [bun:jsc] Add export for getProtectedObjects 2022-07-02 01:36:04 -07:00
Jarred Sumner
69b32a01c4 Update html_rewriter.zig 2022-07-02 01:36:04 -07:00
Jarred Sumner
d3ba6f0f12 Rename defaultErrorHandler to runErrorHandler 2022-07-02 01:36:04 -07:00
Jarred Sumner
f6002b799b Delete BunStream 2022-07-02 01:36:04 -07:00
Jarred Sumner
874344eead [bun:jsc] expose getProtectedObjects gc hook 2022-07-02 01:36:04 -07:00
Jarred Sumner
6567224125 wip 2022-07-02 01:36:04 -07:00
Koka Easwarendra
7907de58be update cli comment to match the create next app instructions 2022-07-01 19:12:01 -07:00
Jarred Sumner
b686003710 [stremas] Regenerate JSSInk 2022-07-01 04:03:32 -07:00
Jarred Sumner
cd7dd0f007 [streams] Add an integer tag identifying what the stream type is 2022-07-01 04:02:09 -07:00
Jarred Sumner
6ecf7ec138 [Bun.serve] Add explicit function for clearing the abort callback 2022-07-01 04:01:27 -07:00
Jarred Sumner
0ab0d35542 [Bun.serve] Clean up lifetimes & error handling somewhat 2022-07-01 04:01:00 -07:00
Jarred Sumner
460ee12906 [Bun.serve] Don't run error recursively 2022-07-01 03:27:27 -07:00
Jarred Sumner
13e2ac08bd Add some tests for error handling 2022-07-01 03:25:17 -07:00
Jarred Sumner
589993192a Improve test coverage for streams 2022-07-01 03:24:58 -07:00
Jarred Sumner
4812fb8faf Fix failing tests for ReadableStream -> {text, arrayBuffer, blob} 2022-07-01 03:24:16 -07:00
Jarred Sumner
e105cfcca8 Zig::ImportMeta 2022-07-01 03:22:23 -07:00
Jarred Sumner
f2569c8c6e Move ImportMeta into it's own object 2022-07-01 03:21:55 -07:00
Jarred Sumner
4aec5151e5 [TextEncoder] Use JSC heap for small buffers 2022-06-30 20:40:05 -07:00
Jarred Sumner
ac8dd5e59b Create process object lazily 2022-06-30 19:27:30 -07:00
Jarred Sumner
c9f1d146c2 Fix incorrect type 2022-06-30 19:25:56 -07:00
Jarred Sumner
180068e46c Improve test coverage for react ssr 2022-06-30 19:25:46 -07:00
Jarred Sumner
6e59b996ba Fix memory leak 2022-06-30 19:24:15 -07:00
Jarred Sumner
39d111fa63 Document failed experiment 2022-06-30 19:23:36 -07:00
Jarred Sumner
4821b9c10b Fix promise memory leak 2022-06-30 19:23:27 -07:00
Jarred Sumner
457a13e238 [strings] Faster latin1 -> UTF8 length count 2022-06-29 20:53:50 -07:00
Jarred Sumner
6bc0bc2f63 [misc] Helper functions to ObjectPool 2022-06-29 20:52:58 -07:00
Jarred Sumner
856589bd98 [misc] Add generate-sink 2022-06-29 07:12:13 -07:00
Jarred Sumner
2fa51493c5 [http server] Fix a segfault when aborting 2022-06-29 07:10:30 -07:00
Jarred Sumner
4d3698e842 Correctly handle latin1 rope strings with non-ascii characters 2022-06-29 07:09:55 -07:00
Jarred Sumner
647110d513 [React SSR] Avoid getById slow path
thanks @Constellation
2022-06-29 07:09:25 -07:00
Jarred Sumner
425846f868 Regenerate builtins 2022-06-29 07:08:44 -07:00
Jarred Sumner
013dfb0498 [web streams] Handle direct streams in readableStreamToArray 2022-06-29 07:08:37 -07:00
Jarred Sumner
7168a40328 Make HTTP web streams faster 2022-06-29 07:07:52 -07:00
Jarred Sumner
66a297888f Remove incorrect assertion 2022-06-29 04:29:42 -07:00
Jarred Sumner
a02f42f84c Fix bug with printer 2022-06-29 04:29:32 -07:00
Jarred Sumner
7d5464adbe [encoder] Fix non-ascii latin1 characters 2022-06-29 04:29:01 -07:00
Jarred Sumner
95c1785271 begin adding react-ssr tests 2022-06-27 06:44:39 -07:00
Jarred Sumner
292f60a8a8 [http server] couple more tests 2022-06-27 05:46:26 -07:00
Jarred Sumner
cfcd8a1531 [uws] Add helper for corking 2022-06-27 05:33:44 -07:00
Jarred Sumner
cf4ec2b109 Handle when there are no headers to send 2022-06-27 05:33:27 -07:00
Jarred Sumner
628cbc8eb3 Cork streams when possible 2022-06-27 05:32:46 -07:00
Jarred Sumner
f66c277e54 Fix memory issue with error messages 2022-06-27 05:32:07 -07:00
Jarred Sumner
6544b2b57e Faster web streams 2022-06-27 05:31:58 -07:00
Jarred Sumner
3943ce5ac5 [web streams] Add more tests 2022-06-27 05:30:45 -07:00
Jarred Sumner
e93bdc79c7 Use less undefined 2022-06-27 05:30:16 -07:00
Jarred Sumner
3059d0fbb3 Add scoped logger functions for debug builds 2022-06-27 05:30:07 -07:00
Jarred Sumner
dc3a1170d4 use less undefined 2022-06-27 05:29:53 -07:00
Jarred Sumner
07050901a6 [fetch] Fix data corruption bug 2022-06-27 05:29:25 -07:00
Jarred Sumner
f70784a6d1 Fix data corruption bug in HTTP server 2022-06-27 05:28:45 -07:00
Jarred Sumner
77a0f335cb wip ReadableStream for HTTP(s) Server 2022-06-26 06:01:22 -07:00
Jarred Sumner
31cfcf2c9f Better node:url polyfill 2022-06-25 04:59:49 -07:00
Jarred Sumner
5bd5678ba3 Implement Bun.pathToFileURL & Bun.pathToFileURL 2022-06-25 04:42:56 -07:00
Jarred Sumner
1c04073e5e Update transpiler.zig 2022-06-25 04:42:11 -07:00
Jarred Sumner
8fbd92e37d Cleanup some of the require code 2022-06-25 04:41:20 -07:00
Jarred Sumner
7bb75f5553 Add dynamic require support 2022-06-24 06:59:47 -07:00
Jarred Sumner
6d6a89780b Update Makefile 2022-06-23 14:26:37 -07:00
Jarred Sumner
3decfcc442 Update Makefile 2022-06-23 14:25:35 -07:00
Jarred Sumner
32185fe791 Update Makefile 2022-06-23 14:24:37 -07:00
Jarred Sumner
3739816ce2 Update Makefile 2022-06-23 14:21:30 -07:00
Jarred Sumner
874692c9c9 Update Dockerfile 2022-06-23 14:17:57 -07:00
Jarred Sumner
a589153d89 Update Makefile 2022-06-23 02:49:46 -07:00
Jarred Sumner
252f8a0eec give up on emit-llvm for sqlite3 2022-06-23 01:52:28 -07:00
Jarred Sumner
86173f355a maybe that fixes it? 2022-06-23 01:41:06 -07:00
Jarred Sumner
b15d862275 Fix buffer test which was failing for correct reasons 2022-06-23 01:35:48 -07:00
Jarred Sumner
729e55a357 Update Makefile 2022-06-23 01:35:32 -07:00
Jarred Sumner
da616966a8 Update Makefile 2022-06-23 01:31:13 -07:00
Jarred Sumner
92c6837460 Delete some files 2022-06-22 23:39:07 -07:00
Jarred Sumner
d8a3c0f841 Update libbacktrace 2022-06-22 23:38:57 -07:00
Jarred Sumner
729d445b68 change the directory structure 2022-06-22 23:21:48 -07:00
Jarred Sumner
25f820c6bf maybe improve CPP build time 2022-06-22 22:52:24 -07:00
Jarred Sumner
a77825799e Move builtins to src/javascript/jsc/builtins 2022-06-22 22:52:03 -07:00
Jarred Sumner
7db88ca6b5 Tweak test runner output 2022-06-22 21:25:20 -07:00
Jarred Sumner
9843a9de53 Cleanup some tests 2022-06-22 21:25:07 -07:00
Jarred Sumner
aa97c1da2f Update Dockerfile.base 2022-06-22 21:25:01 -07:00
Jarred Sumner
dce542a623 Update WebKit 2022-06-22 21:11:34 -07:00
Jarred Sumner
e4e915d2ec cleanup websocket test 2022-06-22 21:11:28 -07:00
Jarred Sumner
f05428e4f3 Fix WebSocket when HTTP server is not running 2022-06-22 21:11:10 -07:00
Jarred Sumner
20249b9f80 Update build-id 2022-06-22 16:49:51 -07:00
Jarred Sumner
41575b982c cleanup 2022-06-22 16:48:03 -07:00
Jarred Sumner
b4feb33df9 Update index.d.ts 2022-06-22 06:56:47 -07:00
Jarred Sumner
d8dfddffe2 types for bun:jsc 2022-06-22 06:56:47 -07:00
Jarred Sumner
8c81fd5fc0 Slightly customize the events polyfill so it uses ESM 2022-06-22 06:56:47 -07:00
Jarred Sumner
0aa0eefd4e Fix memory bugs in escapeHTML & arrayBufferToString 2022-06-22 06:56:47 -07:00
Jarred Sumner
fa2d6a0d40 Add a simple test for EventEmitter 2022-06-22 06:56:47 -07:00
Jarred Sumner
d1ae1771eb Add a simple test for websockets 2022-06-22 06:56:47 -07:00
Jarred Sumner
08314c328e Handle integer overflow in logs better 2022-06-22 06:56:47 -07:00
Jarred Sumner
d450c4cdee [JS Printer] Fix bug with printing re-exported functions that are from an object binding 2022-06-22 06:56:47 -07:00
Jarred Sumner
659d4497d0 Fix bug with browser disabled modules 2022-06-22 06:56:47 -07:00
Jarred Sumner
772350a309 Disable modules in the linker 2022-06-22 06:56:47 -07:00
Jarred Sumner
cf0ee82926 this assertion isn't good enough 2022-06-22 06:56:47 -07:00
Jarred Sumner
150f33c6fa Disable modules constently for bun inbun bun 2022-06-22 06:56:47 -07:00
Jarred Sumner
56aec17b9b Fix bug with exceptions inside EventTarget 2022-06-22 06:56:47 -07:00
Jarred Sumner
92aeb0af55 Add a way to schedule microtasks from C++ 2022-06-22 06:56:47 -07:00
Jarred Sumner
759bfadb93 Update javascript.zig 2022-06-22 06:56:47 -07:00
Jarred Sumner
93d03e5147 Clean up perf hooks a little 2022-06-22 06:56:47 -07:00
Jarred Sumner
e3a00268eb use JSValue for bun test 2022-06-22 06:56:47 -07:00
Jarred Sumner
527eb40a2c ws polyfil 2022-06-22 06:56:47 -07:00
Jarred Sumner
2cdbd2de83 Polyfills for undici, streams/web, streams/consumer timers timers/promises, fs/promises, ws 2022-06-22 06:56:47 -07:00
Jarred Sumner
d9f6a3f2d2 Fix close 2022-06-22 06:56:47 -07:00
Jarred Sumner
6db9e10ff1 Explicitly tag memory ownership for escapeHTML 2022-06-22 06:56:47 -07:00
Jarred Sumner
1947c62539 Fix assertion that checks globally allocated memory pointers 2022-06-22 06:56:47 -07:00
Jarred Sumner
0843e383b2 Fix error messages sometimes printing undefined memory 2022-06-22 06:56:47 -07:00
Jarred Sumner
624bebd20f Add a way to assert memory is not undefined in debug builds 2022-06-22 06:56:47 -07:00
Jarred Sumner
41b03b5c4c Cleanup tests 2022-06-22 06:56:47 -07:00
Jarred Sumner
bfa5b29555 Add checks in debug mode that strings being built via counting were actually counted 2022-06-22 06:56:47 -07:00
Jarred Sumner
13693b7b63 [JS Parser] Improve memory safety of error messages & logs 2022-06-22 06:56:47 -07:00
Jarred Sumner
1bc3747042 [JS Parser] Fix undefined memory bug when printing an "cannot be used in strict mode" error message 2022-06-22 06:56:47 -07:00
Jarred Sumner
689666f17c [bun wiptest] Implement beforeEach, afterEach, beforeAll, afterAll 2022-06-22 06:56:47 -07:00
Jarred Sumner
0c12f1684f [websockets] Support receiving data of length 128 - 65354, bigger not supported yet 2022-06-22 06:56:47 -07:00
Jarred Sumner
07c010a377 Better error for undefined memory here 2022-06-22 06:56:47 -07:00
Jarred Sumner
9e4c11e280 Preallocate some event loop tasks 2022-06-22 06:56:47 -07:00
Jarred Sumner
7f836f2d73 Fix bugs with fifo tweaks 2022-06-22 06:56:47 -07:00
Jarred Sumner
abd042ea4a Update test_command.zig 2022-06-22 06:56:47 -07:00
Jarred Sumner
f004115dae bun wiptest improve test runner output 2022-06-22 06:56:47 -07:00
Jarred Sumner
d057b89a33 Sending works 2022-06-22 06:56:47 -07:00
Jarred Sumner
dda85d92c9 implement a custom websocket client 2022-06-22 06:56:47 -07:00
Jarred Sumner
ab888d2ebe It connects! but the frames are corrupt 2022-06-22 06:56:47 -07:00
Jarred Sumner
be9efacf1b WebSocket is a global 2022-06-22 06:56:47 -07:00
Jarred Sumner
71025c8bcc Fix most of the errors 2022-06-22 06:56:47 -07:00
Jarred Sumner
89f08aae27 more code 2022-06-22 06:56:47 -07:00
Jarred Sumner
38cc869104 WIP WebSocket 2022-06-22 06:56:47 -07:00
Alexander Kuznetsov
5d8a99e1d4 Group zsh completion options by type (#194) 2022-06-20 06:30:32 -07:00
Jarred Sumner
5eaf6d713e Import most of MessageEvent from WebKit 2022-06-17 04:10:21 -07:00
Jarred Sumner
b4049016ca some more tests 2022-06-15 22:12:04 -07:00
Jarred Sumner
9eaa427ec9 Update WebKit 2022-06-15 22:11:09 -07:00
Jarred Sumner
5b1eaa7719 [web standards] Add CloseEvent from WebKit 2022-06-15 22:10:57 -07:00
Jarred Sumner
e6fbbd48db Fix lazy loading internal streams 2022-06-15 22:10:12 -07:00
Jarred Sumner
56e88fb4dd direct streams mostly work 2022-06-15 07:17:42 -07:00
Jarred Sumner
d93f093313 wip direct streams 2022-06-15 02:00:45 -07:00
Jarred Sumner
dbde52504d ArrayBufferSink works and it's good. 2022-06-12 21:40:45 -07:00
Jarred Sumner
6d88a3d9c0 Fix build issue 2022-06-12 03:26:03 -07:00
Jarred Sumner
fddf8f8163 Delete broken submodule 2022-06-12 03:16:50 -07:00
Jarred Sumner
f4e578b598 Update Dockerfile.base 2022-06-10 19:54:22 -07:00
Jarred Sumner
a5d0706c78 Update WebKit 2022-06-10 19:12:37 -07:00
Jarred Sumner
0740cecbfb Update event_loop.zig 2022-06-10 18:59:09 -07:00
Jarred Sumner
b86ca5f67b Missing errno on linux 2022-06-10 18:58:15 -07:00
Jarred Sumner
cc4a164f20 Update js_parser.zig 2022-06-10 18:55:16 -07:00
Jarred Sumner
40184a9511 Update Makefile 2022-06-10 18:53:20 -07:00
Jarred Sumner
8859815d7b wip fix linux build 2022-06-10 18:52:31 -07:00
Jarred Sumner
60a0b10174 Don't show generic crash info when given invalid bunfig.toml 2022-06-10 02:28:36 -07:00
Jarred Sumner
9d54e2ca92 Update logger.zig 2022-06-10 02:27:37 -07:00
Jarred Sumner
89c182e9c5 Show tracing 2022-06-10 02:27:13 -07:00
Jarred Sumner
e441360ca7 Update bunfig.zig 2022-06-10 02:27:03 -07:00
Jarred Sumner
fc26e92b3e Update jest.zig 2022-06-10 02:26:45 -07:00
Jarred Sumner
3e70df3fb3 Update bun.d.ts 2022-06-09 21:40:13 -07:00
Jarred Sumner
7cda36c601 Add types 2022-06-09 21:36:43 -07:00
Jarred Sumner
5ccf606107 new Response(stream).arrayBuffer() + 3 more
- `new Response(stream).arrayBuffer()`
- `new Response(stream).json()`
- `new Response(stream).text()`
- `new Response(stream).blob()`
2022-06-09 21:29:57 -07:00
Jarred Sumner
b8eea5cc4a fix some memory leaks with strings 2022-06-09 05:09:48 -07:00
Jarred Sumner
c88dd2c52c Support console.log(myBigInt) 2022-06-09 05:09:22 -07:00
Jarred Sumner
78bf1150ff Fix defaultProps with JSX optimization 2022-06-09 05:09:00 -07:00
Jarred Sumner
7a20836a1b small perf improvements to encoding 2022-06-09 05:02:46 -07:00
Jarred Sumner
1467ec137a Update event_loop.zig 2022-06-07 22:47:28 -07:00
Jarred Sumner
552e93bfba Add fixture used in benchmark snippet 2022-06-07 22:46:05 -07:00
Jarred Sumner
e617dee621 Update bundler.zig 2022-06-07 22:42:50 -07:00
Jarred Sumner
609edc368f wip ReadableStream <> zig 2022-06-07 22:42:47 -07:00
Jarred Sumner
5b4dcb8d16 log esm import order 2022-06-07 22:42:12 -07:00
Jarred Sumner
cdd1a2bdc0 Implement hashCode 2022-06-07 22:41:27 -07:00
Jarred Sumner
43de33afc7 Web Streams API (#176)
* [bun.js] `WritableStream`, `ReadableStream`, `TransformStream`, `WritableStreamDefaultController`, `ReadableStreamDefaultController` & more

* Implement `Blob.stream()`

* Update streams.test.js

* Fix sourcemaps crash

* [TextEncoder] 3x faster in hot loops

* reading almost works

* start to implement native streams

* Implement `Blob.stream()`

* Implement `Bun.file(pathOrFd).stream()`

* Add an extra function

* [fs.readFile] Improve performance

* make jsc bindings a little easier to work with

* fix segfault

* faster async/await + readablestream optimizations

* WebKit updates

* More WebKit updates

* Add releaseWEakrefs binding

* `bun:jsc`

* More streams

* Update streams.test.js

* Update Makefile

* Update mimalloc

* Update WebKit

* Create bun-jsc.test.js

* Faster ReadableStream

* Fix off by one & exceptions

* Handle empty files/blobs

* Update streams.test.js

* Move streams to it's own file

* temp

* impl #1

* take two

* good enough for now

* Implement `readableStreamToArray`, `readableStreamToArrayBuffer`, `concatArrayBuffers`

* jsxOptimizationInlining

* Fix crash

* Add `jsxOptimizationInline` to Bun.Transpiler

* Update Transpiler types

* Update js_ast.zig

* Automatically choose production mode when NODE_ENV="production"

* Update cli.zig

* [jsx] Handle defaultProps when inlining

* Update transpiler.test.js

* uncomment some tests

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-06-07 22:32:46 -07:00
Jarred Sumner
958fc3d4f5 Update .gitignore 2022-05-30 03:50:35 -07:00
Jarred Sumner
aecc849692 Improve error messages when you mistype commands/files/scripts 2022-05-30 03:50:24 -07:00
Jarred Sumner
882559f0b9 Load bunfig.toml by default if bun or bun {file}\.[cjt]sx?
Fixes https://github.com/Jarred-Sumner/bun/issues/183
2022-05-30 03:50:24 -07:00
Alexander Kuznetsov
ca21c00f86 Remove generated files from git index (#182) 2022-05-30 01:13:12 -07:00
M Javad
960cb1a8d5 docs: fix typo in readme (#179) 2022-05-20 12:26:15 -07:00
Jarred Sumner
8a3a5c3b74 Update string_mutable.zig 2022-05-20 00:59:50 -07:00
Jarred Sumner
99d61877d6 [solid] more progress, no fragments, but still not right 2022-05-20 00:45:51 -07:00
Jarred Sumner
224cfa91fb [TSConfig] Propagate runtime from tsconfig.json 2022-05-19 21:10:11 -07:00
Jarred Sumner
1af67dbe15 woops 2022-05-19 19:44:19 -07:00
Jarred Sumner
55bfa6cd02 Update cache.zig 2022-05-19 19:27:25 -07:00
Jarred Sumner
1d0124093c [solid] Move the post-process JSX step 2022-05-19 19:27:23 -07:00
Jarred Sumner
70078f48c0 [bun de] Fix crash when printing source maps 2022-05-19 19:26:45 -07:00
Jarred Sumner
44d1b217ac move js_parser to src/ 2022-05-19 17:52:40 -07:00
Jarred Sumner
3672bb85eb [solid] wip make nested components work 2022-05-19 17:52:07 -07:00
Jarred Sumner
6f741e8c10 Symbols 2022-05-19 05:37:30 -07:00
Jarred Sumner
d4767ca763 [wip] Solid.js support for Bun! 2022-05-19 05:37:18 -07:00
Jarred Sumner
07e695da03 add a test 2022-05-16 23:05:21 -07:00
Jarred Sumner
4f72021007 Update README.md 2022-05-16 21:14:34 -07:00
Jarred Sumner
bc73d21917 Update types.d.ts 2022-05-16 20:54:01 -07:00
Jarred Sumner
7ca297a5cc Update download-northwind.sh 2022-05-16 19:51:30 -07:00
Jarred Sumner
e114fca5ee Still not correct! 2022-05-16 19:33:19 -07:00
Jarred Sumner
d0ca9f2499 Update README.md 2022-05-16 19:28:29 -07:00
Jarred Sumner
95daafee0f Update serve.test.ts 2022-05-16 19:26:57 -07:00
Jarred Sumner
37e4848c6f work around test failure 2022-05-16 19:25:49 -07:00
Jarred Sumner
78cd9e89f3 Update sqlite3.c 2022-05-16 19:15:10 -07:00
Jarred Sumner
15c40f5ea3 Fix build error on linux 2022-05-16 19:12:22 -07:00
Jarred Sumner
5f3256d939 Update Makefile 2022-05-16 19:06:01 -07:00
Jarred Sumner
a2b22c339e Update sqlite.d.ts 2022-05-16 19:03:30 -07:00
Jarred Sumner
aed5e39f4d remove bad examples 2022-05-16 19:02:38 -07:00
Jarred Sumner
bd1e64b9b1 Fix type errors 2022-05-16 18:58:11 -07:00
Jarred Sumner
31f3050356 Bump 2022-05-16 18:53:33 -07:00
Jarred Sumner
ba36f5db7e prepare for release 2022-05-16 18:45:46 -07:00
Jarred Sumner
a372a0dd6d Update JSSQLStatement.cpp 2022-05-16 18:24:55 -07:00
Jarred Sumner
aba032e176 Copy strings when binding to sqlite 2022-05-16 18:19:08 -07:00
Jarred Sumner
e31f44c3d1 Update README.md 2022-05-16 17:40:33 -07:00
Jarred Sumner
0d12a1f9ee reset on stmt on error 2022-05-16 17:18:50 -07:00
Jarred Sumner
036eb2a9ed Update README.md 2022-05-16 16:34:05 -07:00
Jarred Sumner
2eb889be89 Update README.md 2022-05-16 16:33:13 -07:00
Jarred Sumner
dd07717b80 Update README.md 2022-05-16 16:28:48 -07:00
Jarred Sumner
36a82cfb93 Update README.md 2022-05-16 16:26:32 -07:00
Jarred Sumner
6fce02bd85 Update sqlite.d.ts 2022-05-16 16:25:54 -07:00
Jarred Sumner
93767bf78f Update .gitattributes 2022-05-16 16:24:42 -07:00
Jarred Sumner
a779fc180f Update README.md 2022-05-16 16:07:59 -07:00
Jarred Sumner
223ce6b22d Update README.md 2022-05-16 16:00:30 -07:00
Jarred Sumner
5d4673742e Update README.md 2022-05-16 15:59:57 -07:00
Jarred Sumner
05eb1e5684 Update README.md 2022-05-16 15:57:45 -07:00
Jarred Sumner
b4ac7697ac Update README.md 2022-05-16 15:55:35 -07:00
Jarred Sumner
2cfc1d42a3 Update README.md 2022-05-16 15:52:05 -07:00
Jarred Sumner
be1f469ec5 Update README.md 2022-05-16 15:48:56 -07:00
Jarred Sumner
a37f86e89d bun:sqlite (#167)
* ✂️

* Add the slow version

* draw the rest of the owl

* Fix crash when allocating lots of memory

* [Bun.Transipiler] Support passing objects

* [JS Parser] Support passing objects to macros via Bun.Transpiler

* Update JSSQLStatement.cpp

* Embed SQLite

* Add SQLite to Dockerfile

* [sqlite] Add quick one-off queries without creating a whole object

* [sqlite] Add `columnsCount`, rename raw() to `values()`, remove `rebind`

* Implement `bun:sqlite`

* return null

* Fix updating query

* Update bun.d.ts

* more tests

* Support variadic arguments, write tests and add types

* Update sqlite.d.ts

* Update sqlite.d.ts

* latest

* Implement `Database.loadExtension` and `Database.setCustomSQLite`

* Support `require.resolve`

* [napi] Improve string performance

* [bun.js] Support some of `node:module`

* another test

* [sqlite] Support serialize & deserialize

* [`bun:ffi`] Implement `CFunction` and `linkSymbols`

* [bun.js] Fix crash in `Buffer.from`

* Update sqlite.test.js

* Document linkSymbols

* docs

* Update README.md
2022-05-16 15:46:20 -07:00
Divy Srivastava
2bd0dcfdfa Add go and esbuild to build instructions (#169) 2022-05-16 13:55:14 -07:00
Hugo Romano
e75535d14c wrangler 2 released (#166) 2022-05-12 14:43:44 -07:00
Jarred Sumner
1d6923bead Update README.md 2022-05-11 19:12:00 -07:00
Jarred Sumner
732124e3dd Update README.md 2022-05-11 19:11:17 -07:00
Jarred Sumner
a15e66cc7b Add section about napi 2022-05-11 19:08:46 -07:00
Jarred Sumner
3eacfe2314 Update README.md 2022-05-11 18:29:05 -07:00
Jarred Sumner
89c0d9dd56 Update build-id 2022-05-11 17:57:55 -07:00
Jarred Sumner
b21d0f0b22 Fix several bugs in napi
Closes https://github.com/Jarred-Sumner/bun/issues/163
Closes https://github.com/Jarred-Sumner/bun/issues/162
Closes https://github.com/Jarred-Sumner/bun/issues/161
2022-05-11 17:49:18 -07:00
Jarred Sumner
61b2821472 Make the napi mjs file runnable in both bun & node 2022-05-11 15:12:17 -07:00
Jarred Sumner
1f86e0c87e Update build-id 2022-05-11 04:47:34 -07:00
Jarred Sumner
d1ea51e9f2 disable the new target allowed error 2022-05-11 04:45:47 -07:00
Jarred Sumner
5de2e2c71e Update Makefile 2022-05-11 04:05:08 -07:00
Jarred Sumner
2c1051f539 Update Makefile 2022-05-11 03:46:00 -07:00
Jarred Sumner
247f4810c5 Fix export symbols on Linux 2022-05-11 03:45:00 -07:00
Jarred Sumner
47b6dc9eea Add test for import.meta.require 2022-05-11 03:19:29 -07:00
Jarred Sumner
aea3b4e280 [napi] Add a couple more symbols 2022-05-11 02:59:46 -07:00
Jarred Sumner
12e0496a79 [napi] Fix panic inside napi_fatal_error 2022-05-11 02:59:38 -07:00
Jarred Sumner
aa87d40f4b [napi] Stub a couple more 2022-05-11 02:59:22 -07:00
Jarred Sumner
7d1eced8c6 [bun.js] eagerly convert to import.meta.require 2022-05-11 02:57:51 -07:00
Jarred Sumner
123267685f [json] Fix bug with negative integers in json parser 2022-05-11 02:56:46 -07:00
Jarred Sumner
0bec7001ba [bun.js] Implement a polyfill for the detect-libc npm package 2022-05-11 00:57:06 -07:00
Jarred Sumner
3c87fbfd37 [bun.js] Implement import.meta.require
This allows synchronous dynamic loading of `.node`, `.json`, and `.toml` files.

It is not a CommonJS require, but it can be used that way so long as the content is not JavaScript.
2022-05-11 00:56:35 -07:00
Jarred Sumner
fd00950852 [bun.js] Implement import.meta.resolveSync 2022-05-11 00:54:42 -07:00
Jarred Sumner
eb2a6aee4d Include napi in plus100 2022-05-10 20:50:38 -07:00
Jarred Sumner
84e8d08ec6 Add test for Buffer.byteLength 2022-05-10 20:47:51 -07:00
Jarred Sumner
92e8eaf581 [napi] Error on import .node 2022-05-10 20:47:38 -07:00
Jarred Sumner
e8e58a511f Update napi.cpp 2022-05-10 20:44:25 -07:00
Jarred Sumner
08e40efe11 [napi] Fix string bug 2022-05-10 20:24:07 -07:00
Jarred Sumner
01a0aee1e8 [napi] transpile require(*.node) into process.dlopen 2022-05-10 19:12:15 -07:00
Jarred Sumner
8def37c14e [bun.js] Implement Buffer.byteLength 2022-05-10 19:09:28 -07:00
Jarred Sumner
b3760cd723 Fix extra quote in bundled require errors 2022-05-09 23:01:05 -07:00
Jarred Sumner
1cb870be16 few more napi functions 2022-05-09 22:39:22 -07:00
Jarred Sumner
35232fa422 Update Makefile 2022-05-09 22:07:47 -07:00
Jarred Sumner
77342a2268 Update Dockerfile.base 2022-05-09 22:01:56 -07:00
Jarred Sumner
b834e21192 [napi] getters & setters work 2022-05-09 21:58:41 -07:00
Jarred Sumner
f4188b3ddc Add test for __dirname 2022-05-09 21:54:08 -07:00
Jarred Sumner
963c08d472 Update symbols.txt 2022-05-09 21:54:00 -07:00
Jarred Sumner
29b9ced11a Update bindings.cpp 2022-05-09 21:53:44 -07:00
Jarred Sumner
8ac108ba06 [napi] Move some code to C++ for perf 2022-05-09 04:11:48 -07:00
Jarred Sumner
8014a0b8d8 [napi] Support import and require of .node modules 2022-05-09 00:24:25 -07:00
Jarred Sumner
3bd83eb134 [napi] Fix strings 2022-05-09 00:23:51 -07:00
Jarred Sumner
a5ebcefeeb fixup 2022-05-09 00:23:35 -07:00
Jarred Sumner
c806e778d6 [JS Parser] Support __dirname and __filename 2022-05-09 00:00:01 -07:00
Jarred Sumner
3850fc5b0b Make a lot more stuff work 2022-05-08 17:37:58 -07:00
Jarred Sumner
6bac11f066 Create change-array-by-copy.js 2022-05-08 17:37:36 -07:00
Jarred Sumner
bc2ca8afbd Update WebKit 2022-05-08 01:34:53 -07:00
Jarred Sumner
e403b6111f more napi 2022-05-08 01:32:20 -07:00
Jarred Sumner
d613ba5fcd Update serve.test.ts 2022-05-08 01:14:21 -07:00
Jarred Sumner
4dee9be3eb Update http-file.ts 2022-05-08 01:13:03 -07:00
Jarred Sumner
61afb8955c Update build-id 2022-05-08 01:12:56 -07:00
Jarred Sumner
61d548c7bf [bun.js] Fix bug with headers not being sent in fetch 2022-05-08 01:12:46 -07:00
Jarred Sumner
c1efeefb8a Ugprade webkit 2022-05-08 01:12:27 -07:00
Jarred Sumner
3b6c3d8196 Update wtf-bindings.cpp 2022-05-08 01:12:20 -07:00
Jarred Sumner
97cceb47b9 Upgrade WebKit 2022-05-08 01:12:13 -07:00
Jarred Sumner
94637711b9 Update zlib.test.js 2022-05-07 13:27:23 -07:00
Jarred Sumner
bdf28e42f6 [bun.js] Support gzipSync, gunzipSync, inflateSync, deflateSync 2022-05-07 01:38:26 -07:00
Jarred Sumner
1687455a3f [napi] Fix function arguments 2022-05-06 06:43:49 -07:00
Jarred Sumner
84e40a4f74 symbols list 2022-05-06 00:37:23 -07:00
Jarred Sumner
bce60a5a86 more napi 2022-05-06 00:05:31 -07:00
Jarred Sumner
a7b0bc8790 it can call functions 2022-05-05 21:35:08 -07:00
Jarred Sumner
30ca112260 napi_threadsafe_function 2022-05-05 21:35:08 -07:00
Jarred Sumner
b487eb7e13 Update napi.zig 2022-05-05 21:35:08 -07:00
Jarred Sumner
5d24f45ac1 Update napi.zig 2022-05-05 21:35:08 -07:00
Jarred Sumner
c1f65ef975 napi_get_dataview_info? 2022-05-05 21:35:08 -07:00
Jarred Sumner
d6ce585ef3 cleanup hook 2022-05-05 21:35:08 -07:00
Jarred Sumner
c80e048ab3 implement napi_async_work 2022-05-05 21:35:08 -07:00
Jarred Sumner
b6a8675658 typeof 2022-05-05 21:35:08 -07:00
Jarred Sumner
2c0c91e2d0 more 2022-05-05 21:35:08 -07:00
Jarred Sumner
6b97680224 Update napi.zig 2022-05-05 21:35:08 -07:00
Jarred Sumner
c76bebca0b more 2022-05-05 21:35:08 -07:00
Jarred Sumner
b534c4d661 More 2022-05-05 21:35:08 -07:00
Jarred Sumner
170d09b6bd More 2022-05-05 21:35:08 -07:00
Jarred Sumner
b4fc584d18 Even More NAPI 2022-05-05 21:35:08 -07:00
Jarred Sumner
5b2d9f8128 Begin napi 2022-05-05 21:35:08 -07:00
Jarred Sumner
d629cfafd6 E.String gets a Rope 2022-05-05 21:32:19 -07:00
Jarred Sumner
7b125c9731 Update README.md 2022-05-04 09:02:25 -07:00
Jarred Sumner
0e3df25526 specifically check utf8 2022-05-04 07:03:55 -07:00
Jarred Sumner
66e8d7346f make our http test run more 2022-05-04 07:03:46 -07:00
Jarred Sumner
d29dcf3680 Document FFIType.i64_fast 2022-05-04 07:03:38 -07:00
Jarred Sumner
164483c137 Update buffer.js 2022-05-04 07:03:22 -07:00
Jarred Sumner
6ab5ae8a7a Fix type errors 2022-05-04 00:33:42 -07:00
Jarred Sumner
5b760fe7c4 Safer i64/u64 2022-05-04 00:16:36 -07:00
Jarred Sumner
162e8911db Fix x64 build 2022-05-03 22:36:44 -07:00
Jarred Sumner
bea2cc9cbc Update Makefile 2022-05-03 21:36:22 -07:00
Jarred Sumner
ce2261dffa don't automatically run clang-format because it ignores the disable flag 2022-05-03 21:34:45 -07:00
Jarred Sumner
fa562fa56d Handle missing x64 symbols 2022-05-03 21:30:29 -07:00
Jarred Sumner
5bfd241167 Update tinycc 2022-05-03 20:49:57 -07:00
Jarred Sumner
5a85cc4386 [bun:ffi] fix panic in lib.close() 2022-05-03 20:19:33 -07:00
Jarred Sumner
ed4a021f85 Bump WebKit 2022-05-03 19:50:05 -07:00
Jarred Sumner
83c1d7c9ef Update add.rs 2022-05-03 08:03:06 -07:00
Jarred Sumner
de6aed65fb Forgot about base64 2022-05-03 04:42:17 -07:00
Jarred Sumner
57ce49654c wrong dir 2022-05-03 04:35:49 -07:00
Jarred Sumner
00bc2638ce Fix tinycc build on linux 2022-05-03 04:10:06 -07:00
Jarred Sumner
4605aff04a Fix webkit linux build 2022-05-03 04:09:23 -07:00
Jarred Sumner
d104c286c8 Update README.md 2022-05-03 03:41:43 -07:00
Jarred Sumner
16d5325874 Add tinycc dependency 2022-05-03 03:38:59 -07:00
Jarred Sumner
e3362a0fda clarify 2022-05-03 02:35:05 -07:00
Jarred Sumner
f0fdda5678 Update README.md 2022-05-03 02:28:26 -07:00
Jarred Sumner
bb2d67e361 Update README.md 2022-05-03 02:21:45 -07:00
Jarred Sumner
91e96a8da8 ffi overhead bench 2022-05-03 02:11:59 -07:00
Jarred Sumner
8b1924f6c2 Add docs for FFI 2022-05-03 01:25:46 -07:00
Jarred Sumner
c6d732eee2 [bun:ffi] Improve uint64_t and int64_t performance 2022-05-02 20:26:18 -07:00
Jarred Sumner
21ab47d9fe [bun:ffi] Support i64 and u64 2022-05-02 06:26:03 -07:00
Jarred Sumner
d70e92e79f [bun:ffi] Support double and float 2022-05-02 04:37:24 -07:00
Jarred Sumner
15466865e0 add a comment 2022-05-02 03:46:57 -07:00
Jarred Sumner
125a4c747b [bun:ffi] cleanup 2022-05-02 03:40:14 -07:00
Jarred Sumner
69668d49e5 [bun.js] Add Bun.nanoseconds() to report time in nanos 2022-05-02 03:36:26 -07:00
Jarred Sumner
5cee316d8c [bun:ffi] ~20% faster FFI bindings for functions with arguments 2022-05-02 03:23:42 -07:00
Jarred Sumner
98393ca849 Automatic CString support 2022-05-02 03:11:43 -07:00
Jarred Sumner
012564d738 [bun:ffi] Add wrapper for type coercion 2022-05-01 07:41:51 -07:00
Jarred Sumner
3403621fc2 wip Buffer.fill 2022-05-01 07:41:26 -07:00
Jarred Sumner
de23f2f8aa Buffer.compare & Buffer.equal 2022-05-01 04:36:17 -07:00
Jarred Sumner
b6aa988716 [bun.js] Improve Buffer creation perf a little 2022-05-01 03:43:52 -07:00
Jarred Sumner
a3b48b3229 [bun.js] Implement Buffer.concat 2022-05-01 02:22:13 -07:00
Jarred Sumner
d7ef268e18 Bump WebKit 2022-04-30 23:58:56 -07:00
Jarred Sumner
ba999c9ac3 cleanup 2022-04-30 23:58:46 -07:00
Jarred Sumner
92b27b338d [bun.js] Implement Buffer.from and Buffer.copy 2022-04-30 23:58:27 -07:00
Jarred Sumner
eb129d9f90 [bun ffi] Fix missing "void" 2022-04-30 23:56:41 -07:00
Jarred Sumner
5e270f9d77 [bun ffi] Remove dependency on libtcc1.a and improve error messages 2022-04-30 23:56:31 -07:00
Jarred Sumner
7e13d6cbfe wip 2022-04-30 08:35:48 -07:00
Jarred Sumner
7e6fe52c46 Update ffi-test.c 2022-04-30 05:57:25 -07:00
Jarred Sumner
893d245dca a 2022-04-30 05:56:46 -07:00
Jarred Sumner
516b54578d [bun:ffi] it works 2022-04-29 23:21:14 -07:00
Jarred Sumner
d49ba50289 [bun.js] Implement unsafe.{arrayBufferToPtr, arrayBufferFromPtr, bufferFromPtr} 2022-04-29 07:49:48 -07:00
Jarred Sumner
22f74756b4 [bun ffi] Support pointers 2022-04-29 06:08:36 -07:00
Jarred Sumner
f07463bdfd [bun ffi] support i32, i8, u8, u16, i16, u32, bool 2022-04-29 05:02:01 -07:00
Jarred Sumner
75374fdc32 more tests for buffer 2022-04-29 00:47:26 -07:00
Jarred Sumner
0332d47424 add more to buffer implementation 2022-04-29 00:47:26 -07:00
Jarred Sumner
d531d0851f ffi test code 2022-04-29 00:47:26 -07:00
Jarred Sumner
e26f96b748 wip 2022-04-29 00:47:26 -07:00
Jarred Sumner
8fa1c5ebf1 commit more 2022-04-29 00:47:26 -07:00
Jarred Sumner
ef18443b6e some tests but need more 2022-04-29 00:47:26 -07:00
Jarred Sumner
d066c7de30 Add JIT FFI 2022-04-29 00:47:26 -07:00
Jarred Sumner
fd56d0f116 more work on buffer 2022-04-28 06:56:28 -07:00
Jarred Sumner
77fbfb3fbb Most of Buffer.toString 2022-04-26 01:12:28 -07:00
Jarred Sumner
6590d1f8bf 2x - 10x faster TextEncoder & TextDecoder 2022-04-25 19:58:57 -07:00
Jarred Sumner
2d39e44520 Update .gitignore 2022-04-25 16:47:33 -07:00
Jarred Sumner
2c6e5c3fc4 some of buffer 2022-04-25 07:09:18 -07:00
Jarred Sumner
4b4df5095e Update Makefile 2022-04-23 04:12:39 -07:00
Jarred Sumner
1c11dc6630 Update Dockerfile.base 2022-04-23 03:33:21 -07:00
Jarred Sumner
2eb3319351 Bump build 2022-04-23 03:15:35 -07:00
Jarred Sumner
683b171c3f 📷 2022-04-23 03:15:27 -07:00
Jarred Sumner
ea241fcec7 [JS Parser] Fix overly-eager CJS -> ESM transform 2022-04-23 03:15:13 -07:00
Lawrence Chen
ab1d83fe8d Add bun run ${script-name} clarification (#151) 2022-04-21 00:55:15 -07:00
Jarred Sumner
5e739acfbb [misc] Fix broken build on macOS 2022-04-20 23:46:11 -07:00
Jarred Sumner
a4b8fccfa7 [misc] explain why wasm isn't released yet 2022-04-18 21:56:20 -07:00
Jarred Sumner
9822ea96b8 [misc] Recommend VSCode extensions 2022-04-18 21:44:31 -07:00
Jarred Sumner
94db83040e [misc] Set editor.formatOnSave 2022-04-18 21:44:31 -07:00
wangao
12f97f1364 [node] Remove constants definition in (#146)
... fs.exports.js

Bug: #130
2022-04-18 21:26:06 -07:00
wangao
0aacddb971 [timer] Remove timer.zig and use system_timer.zig (#149) 2022-04-18 21:25:53 -07:00
wangao
7e866bb441 [build] Fix Dockerfile COPY slash (#147) 2022-04-18 21:19:03 -07:00
Jarred Sumner
c2cf1d6493 not sure yet 2022-04-18 21:18:37 -07:00
Jarred Sumner
612fad706f fix wasm build take 2 (one more thing is broken) 2022-04-18 20:51:10 -07:00
Jarred Sumner
6728551dc4 Fix wasm build 2022-04-18 17:41:58 -07:00
wangao
64a2dda02f [node] Add more fs constants (#144)
Move fs constants to node_fs_constants.zig,
and we static append the constants definition
to fs.export.js.

Issue: #130
2022-04-18 06:14:21 -07:00
Jarred Sumner
8d28e72e8a Move some code around + delete dead code 2022-04-16 17:33:16 -07:00
Jarred Sumner
0137e5cf94 [JS Parser] Support explicit removing 2022-04-16 09:29:10 -07:00
Jarred Sumner
89ca887ea0 Workaround C ABI bug 2022-04-16 05:32:57 -07:00
Jarred Sumner
42414d5667 [JS Parser] API for removing & replacing exports 2022-04-16 04:36:00 -07:00
Jarred Sumner
8bb283e616 Update README.md 2022-04-15 16:54:58 -07:00
Jarred Sumner
32e2345e53 Document how tests work 2022-04-15 16:50:38 -07:00
Jarred Sumner
9e31602a20 Update css_scanner.zig 2022-04-14 00:39:55 -07:00
Jarred Sumner
5d0be616b7 add some more assertions 2022-04-13 21:58:28 -07:00
Jarred Sumner
e7251c0d55 [css] Fix crash on empty files in some cases 2022-04-13 21:55:42 -07:00
Jarred Sumner
1871bbc6a4 Add sha hashing example 2022-04-13 21:46:02 -07:00
Jarred Sumner
add1c91425 Warn about moduleSuffixes 2022-04-13 21:46:02 -07:00
Jarred Sumner
1788503892 [bun dev] Fix CSS HMR bug 2022-04-13 21:46:02 -07:00
evan
95aa76b9fa expose mmap size and offset option (#141)
* expose mmap size and offset option

* fix panics
2022-04-13 19:08:56 -07:00
Jarred Sumner
95101870e4 better to fix it there 2022-04-13 18:53:53 -07:00
Jarred Sumner
f2c21b7733 [bun.js] Fix bug with readdirSync on folders with less than 32 files
Closes https://github.com/Jarred-Sumner/bun/issues/143
2022-04-13 18:48:09 -07:00
Jarred Sumner
d273948f16 Update bun.d.ts 2022-04-13 05:07:33 -07:00
Jarred Sumner
bb79687f8e Even More Comments 2022-04-13 04:44:05 -07:00
Jarred Sumner
3db3057d42 Support digest("base64" | "hex") in the hashings 2022-04-13 04:20:05 -07:00
Jarred Sumner
f6d73cb06e [bun.js] Implement Bun.sha1, Bun.sha256, Bun.sha384, Bun.sha512, Bun.sha512_384 2022-04-12 22:59:52 -07:00
evan
b3522b2feb add depth limit to .gitmodules (#142)
fixes situations where git client automatically downloads all submodules without depth limit
2022-04-12 18:30:03 -07:00
Jarred Sumner
710edd34d2 maybe this fixes it? 2022-04-12 04:53:47 -07:00
Jarred Sumner
743ad44c0a Make sendfile more reliable 2022-04-12 03:46:21 -07:00
Jarred Sumner
9db701ab41 wip fixes to sendfile() blocking 2022-04-12 00:43:23 -07:00
Jarred Sumner
a0f9a6ed60 Add a very simple http server test 2022-04-11 19:10:06 -07:00
Jarred Sumner
1d79703d24 slight perf improvement to concurrently queueing tasks 2022-04-11 19:09:14 -07:00
Jarred Sumner
f357377de9 always tick the event loop 2022-04-11 19:08:51 -07:00
Jarred Sumner
87adeb61c5 isize is a little faster normally 2022-04-11 19:05:09 -07:00
Jarred Sumner
e6a5cab1d2 Fix readme link 2022-04-11 16:53:30 -07:00
Jarred Sumner
9884a5fe14 Update http-stop.ts 2022-04-11 05:59:39 -07:00
Jarred Sumner
55ff561429 Add example for stopping HTTP server 2022-04-11 05:20:44 -07:00
Jarred Sumner
4708dd26ca work around fetch("localhost") bug 2022-04-11 05:17:02 -07:00
Jarred Sumner
3e969244ac [bun.js] Add a Server.stop function 2022-04-11 04:58:29 -07:00
Jarred Sumner
ac3835227e Update comptime_string_map.zig 2022-04-11 01:44:25 -07:00
Jarred Sumner
c6393bcd27 ✂️ dead code 2022-04-11 01:44:22 -07:00
Jarred Sumner
7d164ad8c7 Update globals.d.ts 2022-04-10 19:48:44 -07:00
Jarred Sumner
3abb72037b [bun-types] Document JavaScriptCore's ES Module loader 2022-04-10 19:46:05 -07:00
Jarred Sumner
34c478a4c4 make checking for bun modules a compile time step 2022-04-10 19:45:43 -07:00
Jarred Sumner
98592fb85d [TOML] Fix toml parsing with multiple keys in object literal
Fixes https://github.com/Jarred-Sumner/bun/issues/140
2022-04-10 17:41:48 -07:00
Jarred Sumner
6edf0289ed Fix type errors 2022-04-10 05:23:02 -07:00
Jarred Sumner
faedbf0a61 Update bun.d.ts 2022-04-10 05:16:06 -07:00
Jarred Sumner
b08d3b2cd6 Update linker.zig 2022-04-10 05:02:14 -07:00
Jarred Sumner
1e810d229e Fix tests 2022-04-10 04:57:51 -07:00
Jarred Sumner
a82c486878 fix linux build 2022-04-10 04:35:40 -07:00
Jarred Sumner
d42ae4824b Update Makefile 2022-04-10 04:34:06 -07:00
Jarred Sumner
b1ebe54456 [bun.js] Support a "bun" import 2022-04-10 04:30:31 -07:00
Jarred Sumner
ac76e3b004 Move some types around 2022-04-10 04:30:09 -07:00
Jarred Sumner
43b18663fd [bun] fix bun bun --platform=bun 2022-04-10 04:24:53 -07:00
Jarred Sumner
45e1fc946d [bun-types] Make it bundle the types 2022-04-10 04:24:24 -07:00
Jarred Sumner
65eb232028 Bump 2022-04-09 22:18:32 -07:00
Jarred Sumner
7cd3d13011 [fs] Add missing isFile and isDirectory functions to stat() 2022-04-09 21:45:46 -07:00
Jarred Sumner
764fb63617 Update transpiler.test.js 2022-04-09 20:26:02 -07:00
Jarred Sumner
4de7978b27 [JS Parser] Fix code simplification bug with ! and unary expressions 2022-04-09 20:23:36 -07:00
Jarred Sumner
696bb3b026 stricter boolean check 2022-04-09 20:06:58 -07:00
Jarred Sumner
fb82e2bf86 Update build-id 2022-04-08 23:47:10 -07:00
Jarred Sumner
403a916bd5 [bun-framework-next] Fix missing scripts 2022-04-08 23:43:41 -07:00
Jarred Sumner
20cdb197e2 Fix Next.js stylesheet bug 2022-04-08 23:16:13 -07:00
Jarred Sumner
1f68b8ada0 remove some code bloat 2022-04-08 16:55:58 -07:00
Jarred Sumner
fdfbf16940 Update watcher.zig 2022-04-08 16:54:20 -07:00
Jarred Sumner
12c2659765 [bun dev] Fix race condition in file watcher 2022-04-08 16:45:24 -07:00
Jarred Sumner
8561dcdee4 Immediately inject fast refresh once 2022-04-08 16:44:08 -07:00
Jarred Sumner
ded2bcfda5 Update README.md 2022-04-08 06:32:34 -07:00
Jarred Sumner
d5173f71d4 Update README.md 2022-04-08 06:32:29 -07:00
Jarred Sumner
61ca99cfd9 Update README.md 2022-04-08 06:32:24 -07:00
Jarred Sumner
862155fa5e I think fix hmr regression? 2022-04-08 06:32:12 -07:00
Jarred Sumner
74309a1f9e Fix hardlink fallback 2022-04-08 06:32:03 -07:00
Jarred Sumner
8cdb55d94f partial fix for the sendfile() bug 2022-04-08 06:31:14 -07:00
Jarred Sumner
489299cdcc Update README.md 2022-04-08 04:36:51 -07:00
Jarred Sumner
b744634141 Update README.md 2022-04-08 04:35:20 -07:00
Jarred Sumner
a8789fc858 Update README.md 2022-04-08 04:25:52 -07:00
Jarred Sumner
14def643f7 Outdated 2022-04-07 22:39:46 -07:00
Jarred Sumner
a3398650b5 Update README.md 2022-04-07 22:14:15 -07:00
Jarred Sumner
65daaf332d Update README.md 2022-04-07 22:09:17 -07:00
Jarred Sumner
63995da2c2 example 2022-04-07 22:07:24 -07:00
Jarred Sumner
f3b118d0ad Update README.md 2022-04-07 21:48:00 -07:00
Jarred Sumner
f01a2a3360 Fix some mime types to match expectations 2022-04-07 21:47:27 -07:00
Jarred Sumner
a0566f0fbe Update README.md 2022-04-07 21:44:40 -07:00
Jarred Sumner
4b8425938a Update README.md 2022-04-07 21:37:44 -07:00
Jarred Sumner
8fa3536aba Update README.md 2022-04-07 21:34:02 -07:00
Jarred Sumner
10712a790a Update README.md 2022-04-07 21:18:26 -07:00
Jarred Sumner
9cd148de7d Update README.md 2022-04-07 20:35:05 -07:00
Jarred Sumner
9b1d4e1a45 Update README.md 2022-04-07 20:34:35 -07:00
Jarred Sumner
b089f1adae Update README.md 2022-04-07 20:32:44 -07:00
Jarred Sumner
76d54c572a Update README.md 2022-04-07 20:25:57 -07:00
Jarred Sumner
7d25dae75e Update package.json 2022-04-07 20:24:05 -07:00
Jarred Sumner
282eaef435 Update README.md 2022-04-07 20:24:02 -07:00
Jarred Sumner
80dcd30b48 Update README.md 2022-04-07 20:04:35 -07:00
Jarred Sumner
76e04ad82b Update README.md 2022-04-07 20:04:20 -07:00
Jarred Sumner
afa0d4f3a3 Update README.md 2022-04-07 20:00:51 -07:00
Jarred Sumner
e21a65fd05 Update README.md 2022-04-07 19:31:59 -07:00
Jarred Sumner
295249cf08 📷 2022-04-07 19:29:18 -07:00
Jarred Sumner
91fb170c4a Update html-rewriter.ts 2022-04-07 19:29:01 -07:00
Jarred Sumner
0878659513 Update runtime.version 2022-04-07 06:27:50 -07:00
Jarred Sumner
69cebbfca2 Update http-file.ts 2022-04-07 06:26:28 -07:00
Jarred Sumner
3c4510573e Update build-id 2022-04-07 06:26:15 -07:00
Jarred Sumner
4285d8ec0b Update ZigGlobalObject.cpp 2022-04-07 06:25:58 -07:00
Jarred Sumner
c2a8c10834 Update mimalloc 2022-04-07 06:22:51 -07:00
Jarred Sumner
4e05fd0541 [bun.js] Add baseURI support to HTTP server 2022-04-07 06:22:42 -07:00
Jarred Sumner
b97e81b27f More types 2022-04-07 06:08:48 -07:00
Jarred Sumner
e08cc968cb add GC output constraints
I don't fully understand what this does

but it sounds good!
2022-04-07 01:57:45 -07:00
Jarred Sumner
9bee40813f Update Makefile 2022-04-06 23:38:41 -07:00
Jarred Sumner
5ac6920591 7 hrs 2022-04-06 23:38:37 -07:00
Jarred Sumner
70b1beb18b Update hmr.ts 2022-04-06 23:38:32 -07:00
Jarred Sumner
964aa40612 Update runtime.zig 2022-04-06 23:36:30 -07:00
Jarred Sumner
7e58c7e89a Make Bun.activate run earlier so we catch errors sooner 2022-04-06 23:36:26 -07:00
Jarred Sumner
3db549fdb5 Update build-id 2022-04-06 06:17:24 -07:00
Jarred Sumner
87401392ba Update client.development.tsx 2022-04-06 06:15:21 -07:00
Jarred Sumner
795c172d9e Support newer next 2022-04-06 06:15:18 -07:00
Jarred Sumner
cfe60996c2 [bun.js] Support React Refresh 0.12.0 2022-04-06 06:14:49 -07:00
Jarred Sumner
da3f131185 Update javascript.zig 2022-04-06 06:14:36 -07:00
Jarred Sumner
ac06ce2160 [bun.js][breaking] import.meta.url is now a file:// url 2022-04-06 06:14:29 -07:00
Jarred Sumner
69653729f0 tweak examples 2022-04-06 06:14:04 -07:00
Jarred SUmner
81eb47de0e [bun.js] Add stdout, stderr, stdin to Bun and support sendfile() + splice() 2022-04-06 01:53:05 -07:00
Jarred Sumner
57cf035a73 Fix ssl example 2022-04-05 19:32:52 -07:00
Jarred Sumner
ddaab5a836 fix example 2022-04-05 19:15:58 -07:00
Jarred Sumner
f97e6d04a7 wip 2022-04-05 06:51:45 -07:00
Jarred Sumner
daeede28db [bun dev] Fix segfaults 2022-04-05 06:38:36 -07:00
Jarred Sumner
70f9294e15 [bun:error] Fix exception 2022-04-05 06:36:19 -07:00
Jarred Sumner
2c0e8e0a99 Add update message 2022-04-05 03:51:24 -07:00
Jarred Sumner
7f4b1a5797 cmake does not like emit-llvm 2022-04-05 03:39:52 -07:00
Jarred Sumner
138ee2803d Update Makefile 2022-04-05 03:37:38 -07:00
Jarred Sumner
c9fee3bd04 tweak some flags 2022-04-05 03:35:59 -07:00
Jarred Sumner
db5951337e Fix stat() on x64 2022-04-05 01:52:48 -07:00
Jarred Sumner
d652e87473 fix binary size regression on linux 2022-04-05 00:40:49 -07:00
Zakiego
57eac42a91 docs: fix wrong #bun-create reference in readme (#136) 2022-04-05 00:24:14 -07:00
Jarred Sumner
d61f877a94 Update response.zig 2022-04-05 00:20:43 -07:00
Jarred Sumner
7eb575d7f8 Update response.zig 2022-04-05 00:19:54 -07:00
Jarred Sumner
8e5eda79de Update Makefile 2022-04-05 00:18:58 -07:00
Jarred Sumner
82051a5f22 Update http-file.ts 2022-04-05 00:17:57 -07:00
Jarred SUmner
17b9167e52 Fix linking bug? 2022-04-05 00:01:54 -07:00
Jarred SUmner
30542225c6 fix bug with io sometimes sleeping permanetly 2022-04-04 23:25:54 -07:00
Jarred Sumner
759b6c18fd Update Makefile 2022-04-04 08:45:49 -07:00
Jarred Sumner
0e1941ce21 ughh 2022-04-04 08:44:44 -07:00
Jarred Sumner
039fb0732c Update syscall.zig 2022-04-04 08:31:02 -07:00
Jarred Sumner
6c91aa6e51 Update syscall.zig 2022-04-04 08:22:51 -07:00
Jarred Sumner
2eed081b50 hm 2022-04-04 08:14:52 -07:00
Jarred Sumner
7551041fa1 Update Dockerfile.base 2022-04-04 07:57:58 -07:00
Jarred Sumner
41a97c5bf9 fixup 2022-04-04 07:39:39 -07:00
Jarred Sumner
20ed1c32d3 Update Makefile 2022-04-04 07:33:38 -07:00
Jarred Sumner
969cf9fd48 Update Makefile 2022-04-04 07:28:49 -07:00
Jarred Sumner
d29930db3a Update Makefile 2022-04-04 07:24:20 -07:00
Jarred Sumner
015333de8c Update Makefile 2022-04-04 07:22:29 -07:00
Jarred Sumner
89b9d167d1 Update Makefile 2022-04-04 07:17:40 -07:00
Jarred Sumner
2693a3beff Remove unused function 2022-04-04 07:15:03 -07:00
Jarred Sumner
feb315cf9c Update Dockerfile 2022-04-04 07:10:39 -07:00
Jarred Sumner
779e5ccc16 Add zlib for uws 2022-04-04 07:07:39 -07:00
Jarred Sumner
7b19de97d4 Update Dockerfile 2022-04-04 07:05:33 -07:00
Jarred Sumner
5d71d0a0b4 Update Makefile 2022-04-04 07:02:43 -07:00
Jarred Sumner
42b47fe4d9 Update Dockerfile 2022-04-04 07:01:26 -07:00
Jarred Sumner
5a9e381d84 Fix missing 2022-04-04 06:59:34 -07:00
Jarred Sumner
f4e118e40a Update response.zig 2022-04-04 06:54:10 -07:00
Jarred Sumner
071d4c155b Update Dockerfile 2022-04-04 06:51:53 -07:00
Jarred Sumner
044f23739c Update tsconfig.json 2022-04-04 06:38:12 -07:00
Jarred Sumner
05a4991a5f Update launch.json 2022-04-04 06:38:09 -07:00
Jarred Sumner
078ceb7168 Update http-file.ts 2022-04-04 06:37:46 -07:00
Jarred Sumner
9554dd1c33 fix https 2022-04-04 06:37:39 -07:00
Jarred Sumner
7fd12ca3ae Update bun.d.ts 2022-04-04 06:29:46 -07:00
Jarred Sumner
e84494b0e0 Fix error in bun:error 2022-04-04 06:22:48 -07:00
Jarred Sumner
afc7da33c9 Add a couple more tests 2022-04-04 01:07:38 -07:00
Jarred Sumner
d820a9890f Make Bun.file() -> HTMLRewriter -> HTTP response work 2022-04-04 01:04:14 -07:00
Jarred Sumner
a9f0d334bb [bun] Don't allow Transfer-Encoding header 2022-04-04 00:58:26 -07:00
Jarred Sumner
cee3783e58 [bun.js] Improve error message for HTTP server 2022-04-04 00:58:12 -07:00
Jarred Sumner
fceb88005d [bun.js] Support truncating file length up to u52 2022-04-04 00:34:57 -07:00
Jarred Sumner
e3c888a7cc Add HTMLRewriter proxy example 2022-04-03 22:24:59 -07:00
Jarred Sumner
25267397f6 pico headers are now mutable 2022-04-03 22:24:09 -07:00
Jarred Sumner
931e461c87 deref after null 2022-04-03 22:24:02 -07:00
Jarred Sumner
409758dd11 [bun.js] If no Content-Type is available and the content is all ascii text, assume it is text/plain 2022-04-03 22:23:22 -07:00
Jarred Sumner
cd28c3ca83 Omit the Content-Encoding header when it was auto decompressed 2022-04-03 22:22:22 -07:00
Jarred Sumner
25533b9e08 Don't track gzip timing unless verbose mode 2022-04-03 22:21:34 -07:00
Jarred Sumner
be70e08671 [bun error] Handle error messages with missing name/message better 2022-04-03 21:28:45 -07:00
Jarred Sumner
480d4b98c7 Update server.zig 2022-04-03 21:26:07 -07:00
Jarred Sumner
3b7e421eaf Support HTMLRewriter in http server 2022-04-03 21:25:16 -07:00
Jarred Sumner
b069ff253e Handle when unable to use sendfile() with Bun.file 2022-04-03 21:23:10 -07:00
Jarred Sumner
abc15f4d30 Add ShadowRealm and Bun.hash 2022-04-03 17:40:24 -07:00
Jarred Sumner
70bb8bda23 Fix the types 2022-04-03 17:24:26 -07:00
Jarred Sumner
665acdb170 Update runtime.version 2022-04-03 16:35:12 -07:00
Jarred Sumner
27ad502119 cleanup a few things 2022-04-03 16:35:09 -07:00
Jarred Sumner
e8b2af1eae doesn't fix the bug but helps a little 2022-04-03 16:34:38 -07:00
Jarred Sumner
4d718931be More types 2022-04-02 21:56:21 -07:00
Jarred Sumner
290166adb0 Add more typings 2022-04-02 18:54:31 -07:00
Jarred Sumner
c2ed8d0240 Add more tests for Node FS 2022-04-02 05:14:13 -07:00
Jarred Sumner
51e5d3ea70 [bun.js] fs.readSync & fs.writeSync should return just the number 2022-04-02 05:13:42 -07:00
Jarred Sumner
c73fcb0731 [bun.js] Support mode and flags as integer args in fs.openSync (instead of only object) 2022-04-02 05:12:43 -07:00
Jarred Sumner
e6b70c3e01 Update base.zig 2022-04-02 05:12:01 -07:00
Jarred Sumner
614f64ba82 Fix GC bug when reading TypedArray from user input 2022-04-02 05:11:57 -07:00
Jarred Sumner
b8263d0975 s/Buffer/TypedArray 2022-04-02 05:11:16 -07:00
Jarred Sumner
95d68b26a6 Fix mmap on macOS x64 2022-04-02 02:17:22 -07:00
Jarred Sumner
db39c8e109 Create gc.js 2022-04-02 00:49:27 -07:00
Jarred Sumner
449c248f08 Fix test failures 2022-04-02 00:29:48 -07:00
Jarred Sumner
66c5a941b3 More aggressive GC 2022-04-02 00:29:26 -07:00
Jarred Sumner
4592b1ccb5 [bun.js] Bring back file resolution 2022-04-01 23:39:05 -07:00
Jarred Sumner
9bfd1801aa [bun.js] slightly more careful write() 2022-04-01 23:38:35 -07:00
Jarred Sumner
b099e7232f Decrement task counter 2022-04-01 23:36:48 -07:00
Jarred Sumner
c657c7b846 Add helper for checking if value is an exception 2022-04-01 23:36:14 -07:00
Jarred Sumner
eaf09310cd deinit 2022-04-01 23:35:57 -07:00
Jarred Sumner
fffb69ce61 [bun.js] Fix double free in Blob 2022-04-01 22:54:22 -07:00
Jarred Sumner
5c989c957a Add abstraction for protecting values we're iterating on 2022-04-01 19:54:02 -07:00
Jarred Sumner
8af0764b3b Update response.zig 2022-04-01 19:53:41 -07:00
Jarred Sumner
c7727b136b [bun.js] Fix use-after-free in Bun.write 2022-04-01 19:53:37 -07:00
Jarred Sumner
7a6b6639bc Test written length 2022-04-01 19:53:17 -07:00
Jarred Sumner
08bf4694ca http file example 2022-04-01 19:53:02 -07:00
Jarred Sumner
60cc51379d Fix sendfile() after changes to blob 2022-04-01 19:52:53 -07:00
Jarred Sumner
e035084e49 Fix mimetype value 2022-04-01 19:50:38 -07:00
Jarred Sumner
bed878f290 Make FetchHeaders work 2022-04-01 17:08:15 -07:00
Jarred Sumner
0066d162cb [bun.js] Expose ErrorEvent 2022-04-01 04:04:14 -07:00
Jarred Sumner
e0011fd6ba [bun.js] Use Headers from WebKit instead of custom 2022-04-01 01:17:36 -07:00
Jarred Sumner
8e0ee052eb Update WebKit 2022-03-31 05:20:30 -07:00
Jarred Sumner
3207ae5570 Delete unused 2022-03-31 05:10:05 -07:00
Jarred Sumner
996c1468fa Allow a little leeway when HMR 2022-03-31 05:08:40 -07:00
Jarred Sumner
fe973a5ab0 Fix more infinite loops 2022-03-31 05:08:21 -07:00
Jarred Sumner
4f13208547 Bugfixes to how we build WebCore code 2022-03-31 05:07:18 -07:00
Jarred Sumner
5fa5df02f5 [bun dev] Re-create the shared buffer for each websocket 2022-03-31 04:57:03 -07:00
Jarred Sumner
89cd35f07f [bun dev] Improve HMR reliability when filesystem is slow or reading large files 2022-03-31 04:55:47 -07:00
Jarred Sumner
7b2ab994e5 Fix possible infinite loops 2022-03-31 04:29:40 -07:00
Jarred Sumner
1f77f2102e Update bindings.cpp 2022-03-30 20:50:19 -07:00
Jarred Sumner
ab7183217a [bun.js] Support file:// URLs in node fs 2022-03-30 20:50:12 -07:00
Jarred Sumner
47a9a452d8 Bump target next version to 12.1.3 2022-03-30 18:58:07 -07:00
Jarred Sumner
b3fa316c5e Add test for Bun.hash that runs it with a Uint8Array 2022-03-30 18:57:34 -07:00
Jarred Sumner
b09a22aaf5 Add bun.hash example 2022-03-30 18:57:08 -07:00
Jarred Sumner
ba3a7c2bcf don't append null bytes 2022-03-30 18:56:30 -07:00
Jarred Sumner
7539e5b72c remove empty files 2022-03-30 18:56:18 -07:00
Jarred Sumner
4dedb51a23 [bun.js] Fix import.meta.resolve when the path points to a bundled file 2022-03-30 18:56:07 -07:00
Jarred Sumner
3e8d669398 [Bun.js] fixup Bun.hash 2022-03-30 18:55:49 -07:00
Jarred Sumner
c4c94731e1 [bun-framework-next] Support Next 12.1.3 & React 18 2022-03-30 18:54:52 -07:00
Jarred Sumner
e2f5a742ca [bun-framework-next] Remove unnecessary polyfills 2022-03-30 18:54:24 -07:00
Jarred Sumner
c5538cfe10 Don't need to import react here 2022-03-30 15:46:12 -07:00
Jarred Sumner
d96dcfc398 Delete url.zig 2022-03-28 20:43:58 -07:00
Jarred Sumner
88ea61cfca [bun.js] Add Bun.hash 2022-03-28 20:43:53 -07:00
Jarred Sumner
2e4b5f3037 CustomEvent 2022-03-28 07:19:34 -07:00
Jarred Sumner
e577e753a5 ScriptExecutionContext 2022-03-28 06:35:28 -07:00
Jarred Sumner
04b5e87f42 [bun.js] Add Event, EventTarget, AbortController, AbortSignal
`AbortController` is not yet aware of `fetch`
2022-03-28 06:35:14 -07:00
Jarred Sumner
7a97f62c72 Safer error handling 2022-03-27 23:48:22 -07:00
Jarred Sumner
8bbcb5006e [Bun.js] Add DOMException 2022-03-27 23:44:21 -07:00
Jarred Sumner
4f4c446bc4 No to FormData for now 2022-03-27 23:44:10 -07:00
Jarred Sumner
b5bf409384 Update WebKit 2022-03-27 22:38:08 -07:00
Jarred Sumner
3fb96b9039 Update base.zig 2022-03-27 22:38:06 -07:00
Jarred Sumner
e3866b77fe Update .clang-format 2022-03-27 22:38:01 -07:00
Jarred Sumner
c321ddfa9b Update Makefile 2022-03-27 22:37:59 -07:00
Jarred Sumner
ed4f4ae4e2 Begin adding WebCore classes to bun 2022-03-27 22:37:55 -07:00
Jarred Sumner
4bf5dc1df9 Add Bun.mmap example 2022-03-27 16:21:59 -07:00
Jarred Sumner
b6a3a655ae Create tsconfig.json 2022-03-27 02:45:30 -07:00
Jarred Sumner
4df62a67e7 Create url.test.ts 2022-03-27 02:45:30 -07:00
Jarred Sumner
3cfafb6dc4 Update segfault.js 2022-03-27 02:45:30 -07:00
Jarred Sumner
0651f195dd Fix broken debugger in C++ code 2022-03-27 02:45:30 -07:00
Jarred Sumner
309350e74c [bun.js] begin the webkit-ing 2022-03-27 02:45:30 -07:00
evan
0132b7164e Bun.mmap() (#134)
* Bun.mmap()

* nitpicks
2022-03-27 02:38:39 -07:00
Jarred Sumner
2fc881540b Add a function for moving slices from a type 2022-03-26 20:35:56 -07:00
Jarred Sumner
29a759a655 improve performance of accessing Bun.Transpiler and Bun.unsafe 2022-03-26 20:35:37 -07:00
Jarred Sumner
b54a51adb9 fix instanceof checks for classes 2022-03-26 15:12:10 -07:00
Jarred Sumner
0b222c2bb0 Update syscall.zig 2022-03-26 15:11:15 -07:00
Jarred Sumner
c49d46b6af clarify 2022-03-26 14:14:10 -07:00
Jarred Sumner
ceefcfcbb7 Update uws 2022-03-26 14:05:58 -07:00
Jarred Sumner
75138577cd Create htttp.ts 2022-03-26 03:49:44 -07:00
Jarred Sumner
889ce65974 Fix the entry point for Bun.serve 2022-03-26 03:40:54 -07:00
Jarred Sumner
42bda98db7 slightly optimize how we create the process object 2022-03-26 03:40:17 -07:00
Jarred Sumner
5f482b4565 Auto-set content-type 2022-03-26 03:39:32 -07:00
Jarred Sumner
89af1474d8 Fix clonefile() so it actually does run 2022-03-26 03:39:25 -07:00
Jarred Sumner
690d22c8b6 Remove imports of <WTF/FileSystem.h> 2022-03-26 03:39:04 -07:00
Jarred Sumner
dc4cc070fc Move .d.ts into a better folder 2022-03-26 03:38:51 -07:00
Jarred Sumner
7d84dca254 Update response.file.test.js 2022-03-25 07:27:15 -07:00
Jarred Sumner
322780f649 fix error hanlding 2022-03-25 07:27:12 -07:00
Jarred Sumner
e3fb88b06a [bun.js] configuration and error handling for HTTP server 2022-03-25 07:12:02 -07:00
Jarred Sumner
be5789fe01 Auto-detect MimeType based on file extension 2022-03-24 22:29:05 -07:00
Jarred Sumner
120b2670da Bun.openInEditor 2022-03-24 21:10:53 -07:00
Jarred Sumner
a5027d46ae Update Makefile 2022-03-24 19:08:22 -07:00
Jarred Sumner
3434b9ecf3 Implement error page for HTTP server 2022-03-24 19:08:20 -07:00
Jarred Sumner
92a46c292f clang-format 2022-03-24 19:06:27 -07:00
Jarred Sumner
142cce2f29 Update response.zig 2022-03-24 18:23:01 -07:00
Jarred Sumner
d83aa176a3 [bun.js] Enable SharedArrayBuffer and expose internal Loader 2022-03-24 18:22:52 -07:00
Jarred Sumner
f105a2fea7 handle bodies of 0 length better 2022-03-23 22:53:22 -07:00
Jarred Sumner
6d230fc93e Update server.zig 2022-03-23 21:55:24 -07:00
Jarred Sumner
b5cc5ca669 Implement Request body support! 2022-03-23 21:53:29 -07:00
Jarred Sumner
dead6e3afc Support Request.headers and Request.url in http server 2022-03-23 19:54:13 -07:00
Jarred Sumner
dc3d0c41fe Update Makefile 2022-03-23 17:22:37 -07:00
Jarred Sumner
30bdaf80ef ✂️ test 2022-03-23 04:26:56 -07:00
Jarred Sumner
07d77c1e00 [bun.js] Bun.write for macOS 2022-03-23 04:26:49 -07:00
Jarred SUmner
5e5f0bd293 [bun.js] Implement Bun.write() 2022-03-23 01:46:47 -07:00
Jarred SUmner
9974142eef Handle integer sizes greater than i32 2022-03-22 04:44:39 -07:00
Jarred SUmner
6e9be9f1cc Linux-specific tweaks 2022-03-22 02:55:28 -07:00
Jarred Sumner
b1389f1b02 Response.file -> Bun.file 2022-03-22 00:24:34 -07:00
Jarred Sumner
b3bd413c3b sendfile works 2022-03-21 21:31:47 -07:00
Jarred Sumner
7cd93e6670 [bun.js] 2/? Implement Response.file, sendfile edition 2022-03-21 06:32:14 -07:00
Jarred Sumner
fa343fa8ad [bun.js] 1/? Implement Response.file 2022-03-21 02:21:51 -07:00
Jarred Sumner
1f93de264f Create uws 2022-03-20 06:36:26 -07:00
Jarred Sumner
735f4b5c38 Update fetch.test.js 2022-03-20 06:34:13 -07:00
Jarred Sumner
2509613bbe microptimize 2022-03-20 06:34:05 -07:00
Jarred Sumner
0b5a8057f2 add new module 2022-03-20 04:38:41 -07:00
Jarred Sumner
b0a397280e it's status, not statusCode 2022-03-20 04:38:18 -07:00
Jarred Sumner
bc85dd2330 the events, they loop 2022-03-20 04:38:04 -07:00
Jarred Sumner
a6b128590d 📷 2022-03-20 04:31:35 -07:00
Jarred Sumner
8313f19eb8 Bun.allocUnsafe 2022-03-19 07:47:30 -07:00
Jarred Sumner
be99967d67 no lazy 2022-03-19 00:49:14 -07:00
Jarred Sumner
f787976bca [bun.js] Improve support for bundling for node.js 2022-03-19 00:49:01 -07:00
Jarred Sumner
af327cc4f1 [bun bun] Fix race condition 2022-03-19 00:48:37 -07:00
Jarred Sumner
ce742f665a generate separate interop code for bun 2022-03-19 00:46:24 -07:00
Jarred Sumner
521ccba387 recommend bun install 2022-03-19 00:45:40 -07:00
Jarred Sumner
b8c50936a6 [JS Printer] Fix bug with printing imports for bundled code 2022-03-19 00:45:17 -07:00
Jarred Sumner
c1e8f3b593 [bun bun] don't load the bundle when bundling 2022-03-19 00:44:53 -07:00
Jarred Sumner
0134c14ebf Remove relative_nodejs import path format 2022-03-19 00:12:55 -07:00
Jarred Sumner
d87ea9c88a Fix JSON parsing failure 2022-03-18 20:54:09 -07:00
Jarred Sumner
7dc76bf709 Set charset=utf-8 for better consistentcy 2022-03-18 20:18:58 -07:00
Jarred Sumner
20ec3d9bbd Update bindings.zig 2022-03-18 20:06:25 -07:00
Jarred Sumner
0ed0fd2db0 add an extra gcTrace 2022-03-18 20:06:14 -07:00
Jarred Sumner
f4eecd3782 Add tests for Response.json, Response.error, and Response.redirect 2022-03-18 20:05:56 -07:00
Jarred Sumner
2e920aaac3 [bun.js] Implement Response.error 2022-03-18 20:05:38 -07:00
Jarred Sumner
216300f2b5 [bun.js] Implement Response.redirect 2022-03-18 20:05:31 -07:00
Jarred Sumner
394ec8dcbc [bun.js] Implement Response.json 2022-03-18 20:05:21 -07:00
Jarred Sumner
dcb437b1ad [bun.js] Response.prototype.type 2022-03-18 20:04:57 -07:00
Jarred Sumner
1be9e3cf2d handle ShadowRealm 2022-03-18 20:04:33 -07:00
Jarred Sumner
6b82b67065 var -> const 2022-03-18 20:04:24 -07:00
Jarred Sumner
d21cfe6202 [bun install] Do not set an $npm_config_prefix 2022-03-18 16:04:23 -07:00
Jarred Sumner
88698bc998 Be consistent about reported node version 2022-03-18 15:56:18 -07:00
Jarred Sumner
475304c3f5 [bun run] fix missing space 2022-03-18 15:55:33 -07:00
Jarred Sumner
5d39d3a3b2 [resolver] Fix edgecase where remapping a tsx -> js import path produced an invalid file path 2022-03-18 04:38:49 -07:00
Jarred Sumner
07379ecb4e [bun.js] Fix missing .prototype on builtins 2022-03-18 04:37:46 -07:00
Aiello
257f3f997a fix(readme): Fix hash link in README.md (#128) 2022-03-18 01:26:49 -07:00
Jarred Sumner
d1aea89c7d celanup 2022-03-17 20:52:31 -07:00
Jarred Sumner
6b33912f42 Fix crash when printing errors that are an unexpected type 2022-03-17 20:52:10 -07:00
Jarred Sumner
e4f67a7fc9 [bun.js] Return empty array instead of null when no router is defined 2022-03-17 20:42:40 -07:00
Jarred Sumner
9737c01058 [bun.js] Implement self.reportError 2022-03-17 20:42:28 -07:00
Jarred Sumner
2a3438186a Fix missing sentinel in mkdir 2022-03-17 19:18:15 -07:00
Jarred Sumner
881a3b28a7 [bun.js] Implement import.meta.resolve 2022-03-17 19:18:08 -07:00
Jarred Sumner
b3f4f8db24 [bun.js] Add some of the fs constants 2022-03-17 18:29:31 -07:00
Jarred Sumner
7175422a2b Ensure we handle unicode correctly when returning strings for node fs 2022-03-17 18:29:23 -07:00
Jarred Sumner
8fad34a29b [JS Transpiler] Always print escape unicode identifiers, for now 2022-03-17 18:29:02 -07:00
Jarred Sumner
8526f77c70 Update lockfile.zig 2022-03-17 18:28:40 -07:00
Jarred Sumner
86a4ab704d Move Bun to JSC.API 2022-03-17 18:28:24 -07:00
Jarred Sumner
d5613308f9 lil helper method 2022-03-17 18:27:44 -07:00
Jarred Sumner
3d1259ea36 Update build-id 2022-03-17 18:27:21 -07:00
Jarred Sumner
a82eac2195 only check once 2022-03-17 02:40:32 -07:00
Jarred Sumner
312ea407a2 Add test coverage for emoji in blobs 2022-03-17 01:47:33 -07:00
Jarred Sumner
695162e9fa Prevent segfault 2022-03-17 01:29:17 -07:00
Jarred Sumner
7a978f9381 move some code around 2022-03-17 01:28:56 -07:00
Jarred Sumner
c78556048c Update build-id 2022-03-17 01:28:45 -07:00
Jarred Sumner
3e68ead0fa optimize blob.text() 2022-03-17 01:28:36 -07:00
Jarred Sumner
74f4c8bcab query_string_map -> url 2022-03-17 01:27:35 -07:00
Jarred Sumner
89fb624c5b Fix crash from checking if something is an object when it is undefined 2022-03-16 08:49:16 -07:00
Jarred SUmner
6bcaa33751 Fix setTimeout on Linux 2022-03-16 08:02:15 -07:00
Jarred SUmner
8b73afad95 Increase from 4ms -> 40ms for timeout 2022-03-16 08:02:15 -07:00
Jarred Sumner
f63ddac287 Update README.md 2022-03-16 06:39:14 -07:00
Jarred Sumner
21ac71f740 llvm-stirp not working 2022-03-16 06:35:23 -07:00
Jarred Sumner
7df84b38b7 Update Makefile 2022-03-16 06:24:40 -07:00
Jarred Sumner
8ce7c83779 Update Dockerfile.base 2022-03-16 06:03:05 -07:00
Jarred Sumner
5de13e0038 Update Makefile 2022-03-16 05:51:19 -07:00
Jarred Sumner
09a7b01ee7 cleanup error printing 2022-03-16 05:50:52 -07:00
Jarred Sumner
fe89fc8a64 Revert "Unlimited arguments in process.nextTick"
This reverts commit aff9d232b1.
2022-03-16 05:24:06 -07:00
Jarred Sumner
1a7b546055 bun.lockb 2022-03-16 05:06:42 -07:00
Jarred Sumner
e92c832697 Update feature_flags.zig 2022-03-16 05:06:22 -07:00
Jarred Sumner
b633573ad0 [bun.js] Bun.unsafe test should check the gc 2022-03-16 05:05:37 -07:00
Jarred Sumner
c97ca4830e Update work_pool.zig 2022-03-16 05:04:45 -07:00
Jarred Sumner
3b78cfe71a Add a way to run serial tasks on a different thread 2022-03-16 05:04:23 -07:00
Jarred Sumner
422bdf692a fix crash when SyntaxError is thrown and we did not receive an ErrorInstance? 2022-03-16 05:03:29 -07:00
Jarred Sumner
fa1d4c2d7f [bun.js] Fix release-mode test failures in Headers 2022-03-16 05:02:08 -07:00
Jarred Sumner
942c70c795 Update ref_count.zig 2022-03-16 05:00:47 -07:00
Jarred Sumner
75fa87482d file is too big 2022-03-15 20:17:53 -07:00
Jarred Sumner
1fc9b93ed6 Update Dockerfile.base 2022-03-15 06:36:46 -07:00
Jarred Sumner
38430fbf0e Add rust and lolhtml to dockerfile 2022-03-15 06:21:57 -07:00
Jarred Sumner
64466e3259 bump webkit 2022-03-15 06:03:29 -07:00
Jarred Sumner
6918e20f22 Update WebKit 2022-03-15 06:02:50 -07:00
Jarred Sumner
6b903de12c 📷 2022-03-15 05:48:04 -07:00
Jarred Sumner
f1f3501628 Fix test failure 2022-03-15 05:47:53 -07:00
Jarred Sumner
e866fa1203 [bun:error] handle errors without a name or message 2022-03-15 05:19:54 -07:00
Jarred Sumner
90940ec240 Update pool.zig 2022-03-15 05:19:18 -07:00
Jarred Sumner
79caba9506 Load .env by default 2022-03-15 05:19:15 -07:00
Jarred Sumner
7083ef47bb mimalloc interpose is buggy 2022-03-15 05:00:22 -07:00
Jarred Sumner
234dd04c86 higher max http requests for bun.js 2022-03-15 05:00:06 -07:00
Jarred Sumner
6f095a6394 zero copy 2022-03-15 04:59:53 -07:00
Jarred Sumner
8a52e09e8b Update javascript.zig 2022-03-15 04:49:52 -07:00
Jarred Sumner
2ea7970a82 [bun.js] utf8 console.{time, count, timeEnd, profile, profileEnd, count, countReset} 2022-03-15 04:49:48 -07:00
Jarred Sumner
069fce0033 Create unsafe.test.js 2022-03-15 00:48:28 -07:00
Jarred Sumner
57e42cc538 Fix crash when Headers.delete 2022-03-15 00:38:28 -07:00
Jarred Sumner
2498784d14 more tests 2022-03-15 00:38:12 -07:00
Jarred Sumner
ec14a2ef5d Add a fast path to TextDecoder UTF-16 for when you pass a Uint16Array 2022-03-14 23:47:01 -07:00
Jarred Sumner
8f93cc37d2 handle min ascii 16 2022-03-14 23:44:24 -07:00
Jarred Sumner
9a43eb903d cleanup some code 2022-03-14 23:44:07 -07:00
Jarred Sumner
5a6010deda FetchEvent's request will be disconnected from the real request after the request is sent 2022-03-14 23:43:59 -07:00
Jarred Sumner
a168c51395 Fix a couple memory leaks in bun dev 2022-03-14 23:43:20 -07:00
Jarred Sumner
5aae8726ef Switch to std.HashMap for DirEntry store 2022-03-14 23:40:17 -07:00
Jarred Sumner
aff9d232b1 Unlimited arguments in process.nextTick 2022-03-14 23:37:56 -07:00
Jarred Sumner
d0a9b404c3 [bun.js] Fix a memory leak with microtasks 2022-03-14 23:37:43 -07:00
Jarred Sumner
e3b3631634 Handle segfault when console.log'ing stuff that should never make it to console.log in the first place 2022-03-14 23:37:08 -07:00
Jarred Sumner
7b8113c7c7 Fix bug causing GC to sometimes never run 2022-03-14 23:36:45 -07:00
Jarred Sumner
2d1538e698 fix crash in bun create 2022-03-14 21:10:25 -07:00
Jarred Sumner
1316dd1a4f Fix crash when HTTP thread goes to sleep 2022-03-14 05:39:45 -07:00
Jarred Sumner
13f1cdca7b add another assertion 2022-03-14 05:39:22 -07:00
Jarred Sumner
00977c75ba fix crash when upgrade checker ends 2022-03-14 05:39:09 -07:00
Jarred Sumner
0e9056eca5 [bun.js] Implement console.trace() 2022-03-14 01:32:13 -07:00
Jarred Sumner
4ab4ae77ac Reference-counting for Blob and Headers 2022-03-14 01:31:56 -07:00
Jarred Sumner
4638871050 [bun dev] Fix crash on macOS 2022-03-14 01:26:39 -07:00
Jarred Sumner
13cd18e614 make headers a ptr 2022-03-13 16:16:27 -07:00
Jarred Sumner
0a8976c1e0 Update .gitmodules 2022-03-13 16:03:12 -07:00
Jarred Sumner
19515ca63a Add finalizers 2022-03-13 06:08:38 -07:00
Jarred Sumner
f4504292cf [bun.js] Implement Blob 2022-03-13 06:08:10 -07:00
Jarred Sumner
6d71749c70 Update string-handling.zig 2022-03-12 05:56:11 -08:00
Jarred Sumner
777e5f47be [Bun.js] Support async HTMLRewriter 2022-03-12 05:55:53 -08:00
Jarred Sumner
e97934a225 Expose Response.prototype.headers and Response.prototype.clone 2022-03-12 05:55:23 -08:00
Jarred Sumner
e65c82a032 Headers.clone 2022-03-12 05:54:56 -08:00
Jarred Sumner
6f39b8f576 Response.clone() 2022-03-12 05:54:34 -08:00
Jarred Sumner
7b93123133 Implement iterator 2022-03-12 02:59:10 -08:00
Jarred Sumner
d6831cf801 [Bun.js] Implement HTMLRewriter
https://developers.cloudflare.com/workers/runtime-apis/html-rewriter
2022-03-12 01:14:45 -08:00
Jarred Sumner
64f1af0aa6 skeleton 2022-03-11 04:49:25 -08:00
Jarred Sumner
313ad01e42 fix bug with freeing typed arrays 2022-03-11 03:09:57 -08:00
Jarred Sumner
44b0c8153a Source Maps for client-side errors & columns 2022-03-11 00:03:09 -08:00
Jarred Sumner
c8f6337f1f twiddle with formatting 2022-03-10 06:55:43 -08:00
Jarred Sumner
7998a43b04 [bun.js] Map the sources when handling the error 2022-03-10 05:41:52 -08:00
Jarred Sumner
17c1f403c1 Update comptime_string_map.zig 2022-03-10 05:40:51 -08:00
Jarred Sumner
1422055304 [bun.js] Support sourcemaps! 2022-03-10 05:39:46 -08:00
Jarred Sumner
3ca113059d Update js_printer.zig 2022-03-10 00:46:00 -08:00
Jarred Sumner
f4f07f8993 WIP sourcemap parsing 2022-03-10 00:44:27 -08:00
Jarred Sumner
187fd9f61f woops 2022-03-10 00:44:13 -08:00
Jarred Sumner
69eeff1f76 console.log(<JSX>) support 2022-03-10 00:44:01 -08:00
Jarred Sumner
4204baabe6 Update linker.zig 2022-03-09 04:00:36 -08:00
Jarred Sumner
01b1fee284 69% perf improvement for long string literals 2022-03-09 04:00:19 -08:00
Jarred Sumner
bdb5e4aa56 Update options.zig 2022-03-09 03:58:35 -08:00
Jarred Sumner
026657d83b make the map slightly smaller 2022-03-09 03:58:32 -08:00
Jarred Sumner
e35895888e [JS Printer] Add function for printing a string as JSON 2022-03-09 02:37:42 -08:00
Jarred Sumner
90ead2d992 10% perf improvement to JSX entity code parsing in microbenchmark 2022-03-09 02:36:55 -08:00
Jarred Sumner
43622a8eb7 fix bug with UTF-16 template literal escape codes 2022-03-09 02:36:20 -08:00
Jarred Sumner
eeff004ec2 Fix quoting console.log 2022-03-08 23:37:54 -08:00
Jarred Sumner
1bf898828b print size of headers 2022-03-08 19:33:45 -08:00
Jarred Sumner
0a742506ff sourcemappings 2022-03-08 18:56:12 -08:00
Jarred Sumner
701d6ec45d rename _global -> bun 2022-03-08 18:54:54 -08:00
Jarred Sumner
787769ac39 [bun.js] Support logging Headers, Response, and Request 2022-03-08 18:15:21 -08:00
Jarred Sumner
33950c0ae7 Fix https://github.com/Jarred-Sumner/bun/issues/122 2022-03-08 18:14:26 -08:00
Jarred Sumner
99ebef0b2f Update sourcemap.zig 2022-03-08 04:55:25 -08:00
Jarred Sumner
880f6a17b8 [bun.js] WIP sourcemap support 2022-03-08 04:46:25 -08:00
Jarred Sumner
0456845256 Add VLQ bench, improve decodeVLQ perf 2022-03-07 21:02:29 -08:00
Jarred Sumner
ce081f15e9 Optimize sourcemaps 2022-03-07 19:11:12 -08:00
Jarred Sumner
da9a19037f Update options.zig 2022-03-07 00:34:07 -08:00
Jarred Sumner
d43a645535 source maps optimizations 2022-03-07 00:33:49 -08:00
Jarred Sumner
50d5b872f9 [JS] Don't make this inline 2022-03-07 00:32:04 -08:00
Jarred Sumner
ccf57c7f3e [JS] Slight optimization for newlines 2022-03-07 00:31:48 -08:00
Jarred Sumner
2cc265361d [JS Parser] Fix bug with decoding escape sequences 2022-03-07 00:31:10 -08:00
Jarred Sumner
5ee063f6b2 [JS/JSON] Optimize parsing long strings 2022-03-07 00:30:51 -08:00
Jarred Sumner
50c8747c97 [JS Parser] Add optimization for JSX spread 2022-03-07 00:29:50 -08:00
Jarred Sumner
3598f0ed8a 1.7x faster sourcemap printing 2022-03-06 17:54:12 -08:00
Jarred Sumner
7c5c6cd519 source maps work for app code in bun dev! 2022-03-06 07:35:16 -08:00
Jarred Sumner
093807391a [JS Parser] dot property shorthand for JSX
This is a non-standard backwards-compatible feature that I suspect other tooling will soon adopt (and expect to help other tooling adopt it)

```jsx
var hello = {hi: 'yo'};
export const Foo = () => <Bar {hello.hi} />
```

Desugars into:
```jsx
var hello = {hi: 'yo'};
export const Foo = () => <Bar hi={hello.hi} />
```

This works with defines and macros too.

```jsx
export const Foo = () => <Bar {process.env.NODE_ENV} />
```

```jsx
export const Foo = () => <Bar NODE_ENV="development" />
```
2022-03-05 19:33:25 -08:00
Jarred Sumner
18c923596a Update README.md 2022-03-05 03:15:05 -08:00
Jarred Sumner
d3de5ff017 Update README.md 2022-03-05 03:14:25 -08:00
Jarred Sumner
f8f2ec8f35 Update README.md 2022-03-05 03:00:13 -08:00
Jarred Sumner
af6c18ccc5 Begin implementing sourcemaps 2022-03-05 02:56:29 -08:00
Jarred Sumner
4f5aa438d6 [JS Parser] Support JSX prop punning 2022-03-04 17:51:22 -08:00
Jarred Sumner
bd2f818500 Delete peechy.js 2022-03-04 05:03:33 -08:00
Jarred Sumner
29f240ac79 [bun.js] Add atob and btoa 2022-03-04 03:30:29 -08:00
Jarred Sumner
c53dc308be Update release.sh 2022-03-04 00:27:22 -08:00
Jarred Sumner
cb8e5d2cd9 Bump zig in docker 2022-03-04 00:26:21 -08:00
Jarred Sumner
d8d5b1a071 more tests 2022-03-04 00:26:13 -08:00
Jarred Sumner
bb64920cf0 add datetime package 2022-03-04 00:21:08 -08:00
Jarred Sumner
427c39b858 Update analytics_thread.zig 2022-03-04 00:20:59 -08:00
Jarred Sumner
b0d5903aba reduce number of global symbols 2022-03-04 00:20:54 -08:00
Jarred Sumner
dbc28a24ac more 2022-03-04 00:20:39 -08:00
Jarred Sumner
51fbbea1d3 upgrade zig 2022-03-04 00:20:22 -08:00
Jarred Sumner
696710fd7a mark more things as unreachable 2022-03-02 22:17:20 -08:00
Jarred Sumner
5ace39e4cb Add context ptr to forEach in iterable 2022-03-02 22:16:04 -08:00
Jarred Sumner
b878f9054c [bun.js] Add Bun.inspect – like util.inspect() 2022-03-02 22:14:35 -08:00
Jarred Sumner
871780fd28 Make http requests a little faster 2022-03-02 21:17:50 -08:00
Jarred Sumner
4c5eb4b4db [bun dev] Improve HMR performance by pooling websocket threads
Previously, bun would create a new thread for each websocket connection. Now, it re-uses them

Eventually, this should use evented i/o but other changes need to be made to support that
2022-03-02 21:17:38 -08:00
Jarred Sumner
117ca5355d Send Date header in bun dev 2022-03-02 21:15:55 -08:00
Jarred Sumner
1a02782539 [internal] log memory allocations in mimalloc arenas 2022-03-02 21:13:34 -08:00
Jarred Sumner
c7941bfab0 Reduce stack size usage by about 120 KB 2022-03-02 21:12:31 -08:00
Jarred Sumner
88b60e6f10 add is_bindgen stub 2022-03-02 21:12:02 -08:00
Jarred Sumner
c5a2172c7b reduce number of global constants 2022-03-02 21:11:37 -08:00
Jarred Sumner
b2d847a273 reduce number of global variables 2022-03-02 21:11:19 -08:00
Jarred Sumner
4fb5e068bc Update bindings.zig 2022-03-02 17:50:29 -08:00
Jarred Sumner
4be4540acf Remove function from bindings 2022-03-02 17:50:25 -08:00
Jarred Sumner
a9d99dc0e5 DELETE header 2022-03-02 17:49:55 -08:00
Jarred Sumner
d1922d4742 [bun.js] fix unicode handling in Router 2022-03-02 17:49:23 -08:00
Jarred Sumner
d85c59208c [bun.js] Fix crash due to incorrectly creating string 2022-03-02 17:49:09 -08:00
Jarred Sumner
17d625a735 remove a threadlocal 2022-03-02 15:34:26 -08:00
Jarred Sumner
42f61ebf8a cleanup error printing 2022-03-02 03:07:28 -08:00
Jarred Sumner
5e55c02bc6 Update global.zig 2022-03-02 03:07:08 -08:00
Jarred Sumner
ea7d38cea7 Update fs.zig 2022-03-02 03:07:04 -08:00
Jarred Sumner
4b36efd50a [bun run] Set more environment variables 2022-03-02 03:06:59 -08:00
Jarred Sumner
c3b96c90d3 clean up error message when CLI flag is invalid 2022-03-02 03:06:30 -08:00
Jarred Sumner
c0584c5102 add bun pm cache and bun pm cache rm commands 2022-03-02 03:06:11 -08:00
Jarred Sumner
87c71207e3 [bun.js] ResolveError.prototype.toString() BuildError.prototype.toString() 2022-03-01 22:21:39 -08:00
Jarred Sumner
149bbc12b5 add allowBunRuntime and autoImportJSX flags to Bun.Transpiler 2022-03-01 22:21:03 -08:00
Jarred Sumner
78cae049d2 cleanup code that checks if it should send an HTTP body 2022-03-01 22:19:15 -08:00
Jarred Sumner
7b4f239d33 [JS Parser] Fix bug with super from adding class static blocks 2022-03-01 22:18:16 -08:00
Jarred Sumner
80d4faa8ab Update bundler.zig 2022-03-01 22:17:43 -08:00
Jarred Sumner
4bb3f207ed Remove unused bool 2022-03-01 22:16:17 -08:00
Jarred Sumner
2ccb063d20 [bun.js] Allow disabling runtime imports so bun can build for node 2022-03-01 22:16:09 -08:00
Jarred Sumner
710303be7a [JS Parser] Make auto importing JSX a flag so the API is easier 2022-03-01 22:14:04 -08:00
Jarred Sumner
f337082c82 cleanup 2022-03-01 22:12:51 -08:00
Jarred Sumner
a306d4ae40 Update javascript.zig 2022-03-01 03:57:18 -08:00
Jarred Sumner
ea80cd1cd8 [bun.js] shim async fs 2022-03-01 00:50:30 -08:00
Jarred Sumner
114c0e8ed2 [bun.js] Implement setTimeout, setInterval, clearTimeout, clearInterval 2022-03-01 00:47:31 -08:00
Jarred Sumner
9ccb520e9e Update transpiler.test.js 2022-02-27 23:20:46 -08:00
Jarred Sumner
fb3a262f4b [TS] Make export {type foo} output consistent with TS parser 2022-02-27 23:20:38 -08:00
Jarred Sumner
50560e169c WASM 2022-02-27 23:20:10 -08:00
Jarred Sumner
36c249e9c1 begin writing types 2022-02-27 04:56:12 -08:00
Jarred Sumner
608b906bd5 [JSON] Use UTF-8 JSON parser when it's not for JavaScript 2022-02-27 04:55:20 -08:00
Jarred Sumner
09146d1c11 Update json_parser.zig 2022-02-27 04:54:48 -08:00
Jarred Sumner
3f9c5edbf5 📷 2022-02-27 04:54:41 -08:00
Jarred Sumner
1ed74ab59b mark as comptime 2022-02-27 04:26:45 -08:00
Jarred Sumner
0d4a2539a8 Fix typo
Thanks @danielweck
2022-02-27 04:26:21 -08:00
Jarred Sumner
4cedceaae2 Update build.zig 2022-02-27 04:15:42 -08:00
Jarred Sumner
7eeacfe672 Bump 2022-02-27 04:15:39 -08:00
Jarred Sumner
0a86a4ea80 Fix https://github.com/Jarred-Sumner/bun/issues/115 2022-02-27 04:14:55 -08:00
Jarred Sumner
d91e897413 [TS Parser] Implement constructor(private foo)
Input:
```
class Foo {
  constructor(public bar: string = "baz") {}
  bar: number;
}
```

Output:
```
class Foo {
  bar;
  constructor(bar = "baz") {
    this.bar = bar;
  }
  baz;
}
```
2022-02-27 03:37:31 -08:00
Jarred Sumner
953ddef482 Update README.md 2022-02-27 02:03:13 -08:00
Jarred Sumner
effcad912d Update README.md 2022-02-27 01:57:06 -08:00
Jarred Sumner
26a9c1c47b Update README.md 2022-02-27 01:56:59 -08:00
Jarred Sumner
e9b4e5a374 [JS Parser] Improve test coverage 2022-02-27 01:53:51 -08:00
Jarred Sumner
7576caa54a typegenerator 2022-02-27 01:53:34 -08:00
Jarred Sumner
a6901fdac1 Update jsc.zig 2022-02-27 01:53:01 -08:00
Jarred Sumner
8c271e5640 [JS Printer] Fix edgecase with optional chaining, class static block initialization and private identifiers 2022-02-27 01:52:56 -08:00
Jarred Sumner
7600e94ddc [JS Parser] AST changes for class static block & private identifiers 2022-02-27 01:50:13 -08:00
Jarred Sumner
c5804cd6ff [JS Parser] Fix bug with unicode identifiers 2022-02-27 01:49:56 -08:00
Jarred Sumner
5e4b50dc6c [JS Parser] #privateIdentifiers 2022-02-27 01:49:30 -08:00
Jarred Sumner
152f63b019 [JS Parser] Class Static Initialization Blocks
https://github.com/tc39/proposal-class-static-block
2022-02-27 01:48:10 -08:00
Jarred Sumner
1958f7adb5 [TS Parser] Support export {type Foo} 2022-02-27 01:46:51 -08:00
Jarred Sumner
789b17d333 be more careful 2022-02-25 04:59:41 -08:00
Jarred Sumner
d08aa46381 Update cli.zig 2022-02-25 02:18:10 -08:00
Jarred Sumner
f90ea81d58 bump target nextjs version 2022-02-25 02:18:07 -08:00
Jarred Sumner
7e96e82cad [bun pm] add help menu 2022-02-25 02:04:08 -08:00
Jarred Sumner
64b0087e84 Fix alignment bug with bun --help 2022-02-25 02:03:54 -08:00
Jarred Sumner
fe5ef864f1 hopefully no more unnecessary git status 2022-02-25 00:54:59 -08:00
Jarred Sumner
0d56e91e00 Update bun-install-lockfile-status.sh 2022-02-25 00:48:36 -08:00
Jarred Sumner
293a9bc811 [bun install] Add metadata hash 2022-02-25 00:48:36 -08:00
Evan Boehs
b8c6865ce0 Update README.md (#119) 2022-02-25 00:24:22 -08:00
Jarred Sumner
1795b6570c [bun install] Skip saving the lockfile if there are no changes 2022-02-24 22:01:37 -08:00
Jarred Sumner
152e3cb7bf Update Makefile 2022-02-24 21:08:21 -08:00
Jarred Sumner
2bc873d8b6 Update Makefile 2022-02-24 21:08:15 -08:00
Jarred Sumner
2e817195d2 Update WebKit 2022-02-24 21:01:48 -08:00
Jarred Sumner
12dbc5dfa4 Update generated versions 2022-02-24 21:00:42 -08:00
Jarred Sumner
026e75c46b Update Makefile 2022-02-24 20:47:31 -08:00
Jarred Sumner
f6ea59dbd9 misc 2022-02-24 20:43:13 -08:00
Jarred Sumner
986895f8c1 [bun dev] Don't log errors twice 2022-02-24 20:34:23 -08:00
Jarred Sumner
0694bbce00 Add a simple HMR test 2022-02-24 20:34:09 -08:00
Jarred Sumner
3bd12180de Make alignment more consitent 2022-02-24 20:33:45 -08:00
Jarred Sumner
208885e3d2 [bun dev] Fix bug with not transpiling files at the root 2022-02-24 20:32:57 -08:00
Jarred Sumner
896195f5e3 slightly clean up react example 2022-02-24 19:25:03 -08:00
Jarred Sumner
23596b48ca [bun-framework-next] Support Next.js 12.1 2022-02-24 19:24:48 -08:00
Jarred Sumner
0b7897f26c [bun.js] Implement process.exit (no callbacks yet) 2022-02-24 19:17:21 -08:00
Jarred Sumner
08c4f8b103 [bun install] Print correct bin name 2022-02-24 19:16:58 -08:00
Jarred Sumner
a9b32275f1 [bun install] Add integration test for bin links 2022-02-24 19:16:48 -08:00
Jarred Sumner
d1eba784b9 Add WASM modules but disable it for now 2022-02-24 19:09:55 -08:00
Jarred Sumner
ead77e074d bump build id 2022-02-24 01:46:27 -08:00
Jarred Sumner
a3ee0bb291 fix test failure in path.resolve 2022-02-24 01:46:18 -08:00
Jarred Sumner
a71c1288a6 Ensure we run the process test 2022-02-24 01:46:02 -08:00
Jarred Sumner
3182c5d304 Update javascript.zig 2022-02-24 00:59:27 -08:00
Jarred Sumner
8effa39410 [bun.js] Add ShadowRealm 2022-02-24 00:59:19 -08:00
Jarred Sumner
5f50de2b39 [bun-framework-next] Remove TextEncoder & TextDecoder polyfills 2022-02-24 00:16:45 -08:00
Jarred Sumner
b37cb73802 Use a JSFinalobject for Path 2022-02-24 00:15:44 -08:00
Jarred Sumner
806e406b67 Expose TextEncoder & TextDecoder globally 2022-02-24 00:15:17 -08:00
Jarred Sumner
3ad7c23221 [Web Platform] Implement TextEncoder & TextDecoder 2022-02-24 00:14:38 -08:00
Jarred Sumner
5b9d5d55e8 move GCDeferralContext 2022-02-24 00:13:29 -08:00
Jarred Sumner
5c9859e7f2 [JS Parser] ensure assertions are never run at runtime 2022-02-24 00:13:04 -08:00
Jarred Sumner
2e1e50486f misc cleanup 2022-02-24 00:12:40 -08:00
Jarred Sumner
27be64cf12 Make format consistent with WebKit 2022-02-22 15:51:41 -08:00
Jarred Sumner
4dd6472908 import assertion test 2022-02-22 15:47:26 -08:00
Jarred Sumner
dfa3e19cbf snaspshots 2022-02-22 15:47:11 -08:00
Jarred Sumner
fbac824975 tests for text-encoder 2022-02-22 15:45:08 -08:00
Jarred Sumner
e77a8db546 Fix assertion in JSPrinter 2022-02-22 15:27:09 -08:00
Jarred Sumner
77a3d791b1 Use clang-format from webkit so it's consistent 2022-02-22 15:26:50 -08:00
Jarred Sumner
bb8626e120 Move lockfile into separate file 2022-02-21 16:28:13 -08:00
Jarred Sumner
931670b7cb Wrap some usages of assert in a conditional
See https://github.com/ziglang/zig/issues/10942
2022-02-21 16:27:44 -08:00
Jarred Sumner
427de61702 Bump webkit in base image 2022-02-21 15:38:38 -08:00
Jarred Sumner
1d58a7aadd Update javascript.zig 2022-02-21 15:10:26 -08:00
Jarred Sumner
f49c3416d5 upgrade to latest JSC 2022-02-21 05:00:14 -08:00
Jarred Sumner
4f2fc299a9 upgrade JSC 2022-02-21 04:13:37 -08:00
Jarred Sumner
efb4baacdf [bun dev] Implement copy as markdown 2022-02-20 23:12:15 -08:00
Jarred Sumner
59109a309f add version to Framework struct 2022-02-20 16:24:36 -08:00
Jarred Sumner
8f1b2b2350 [JSON] Implement a way to convert any Zig type to a JSON object 2022-02-20 16:24:11 -08:00
Jarred Sumner
1ecd66e55d Update mime_type.zig 2022-02-20 16:23:41 -08:00
Jarred Sumner
06ac065d4d [bun dev] Implement /bun:info endpoint
This returns metadata for bun
2022-02-20 16:23:19 -08:00
Jarred Sumner
946404a365 [bun dev] Implement open in editor for transpiled files 2022-02-20 16:21:45 -08:00
Jarred Sumner
ab871d771a Mention behavior 2022-02-18 20:50:03 -08:00
Jarred Sumner
e11f44e039 Add a way to specify an editor in bunfig.toml 2022-02-18 20:47:10 -08:00
Jarred Sumner
c27577147c Update base.zig 2022-02-18 20:46:57 -08:00
Jarred Sumner
79974e4d81 [bun dev] Errors with file names can be opened in editor now 2022-02-18 20:46:55 -08:00
Jarred Sumner
eeab75998d Update javascript.zig 2022-02-18 20:33:18 -08:00
Jarred Sumner
3a0577ba96 Use an enum for Ref instead of a buggy packed struct
Fixes a printing bug with `Symbol`
2022-02-18 20:33:04 -08:00
Jarred Sumner
37aafb61be Update bundler.zig 2022-02-18 15:25:09 -08:00
Jarred Sumner
ad9ced2cc7 Create entitlements.debug.plist 2022-02-18 15:24:19 -08:00
Jarred Sumner
a0717e6fa7 Simple dead code elimination 2022-02-18 15:24:09 -08:00
Jarred Sumner
9cecbf42a6 Update javascript.zig 2022-02-18 14:43:12 -08:00
Jarred Sumner
cafa9cc3e4 [bun.js] Fix bug with getPublicPath when encountering URLs above the root 2022-02-18 14:42:56 -08:00
Jarred Sumner
a7181cb222 Update onThreadStart 2022-02-18 14:42:32 -08:00
Jarred Sumner
aa8080f441 more mimalloc 2022-02-18 14:42:28 -08:00
Jarred Sumner
65aae0ddad [bun.js] Make typeof window return "undefined" by default 2022-02-18 02:49:10 -08:00
Jarred Sumner
90f1f326ca [bun dev] Fix bug with importing node: namespace 2022-02-18 02:48:20 -08:00
Jarred Sumner
8383544bb5 onSpawn handler for thread 2022-02-18 02:47:59 -08:00
Jarred Sumner
65f1733d6f [Bundler] Fix race condition, 5% faster bundling
cc @hanford
2022-02-18 02:45:30 -08:00
Jarred Sumner
37e63eff22 [JS Parser] fix bugs found from tests 2022-02-18 02:43:45 -08:00
Jarred Sumner
24dd80e69a [JS Parser] Strip import assertions
Closes #4
2022-02-18 02:42:20 -08:00
Jarred Sumner
7b8de76267 [Bun.js] Implement crypto.randomBytes() and crypto.randomUUID() 2022-02-18 02:37:18 -08:00
Jarred Sumner
17ab2c18eb [Bun.js] Add a stub for setTimeout, setInterval, clearTImeout, clearInterval 2022-02-18 02:33:49 -08:00
Jarred Sumner
3db3413929 [JS Printer] fix edgecase with printing empty export 2022-02-18 02:32:57 -08:00
Jarred Sumner
32eb20702e improve test coverage 2022-02-17 03:49:28 -08:00
Jarred Sumner
17a7e2b241 constant folding and some cleanup 2022-02-17 03:46:57 -08:00
Jarred Sumner
83c0ad11ac [JS Printer] Print {\n} instead of ; for empty blocks 2022-02-17 03:46:04 -08:00
Jarred Sumner
6db46c6d00 Update js_printer.zig 2022-02-16 20:34:00 -08:00
Jarred Sumner
4ba0e7b7d8 [JS Printer] Fix missing space at end of object bindings
See also https://github.com/evanw/esbuild/pull/2025
2022-02-16 20:15:35 -08:00
Jarred Sumner
7637cfb0a6 [JS Parser] Fix several bugs with bindings and improve some errors 2022-02-16 17:02:39 -08:00
Jarred Sumner
f5c7c81780 Update js_parser.zig 2022-02-16 04:05:44 -08:00
Jarred Sumner
44bad4b8e6 [js parser] pool allocated names (perf) 2022-02-16 04:05:30 -08:00
Jarred Sumner
906a4bd75a [JS Transpiler] Begin porting esbuild parser tests to bun 2022-02-16 04:04:11 -08:00
Jarred Sumner
f8b48ebec6 Save LLVM IR in debug build 2022-02-16 04:03:35 -08:00
Jarred Sumner
a7bfc48bcc mimalloc flag 2022-02-16 04:02:48 -08:00
Jarred Sumner
6f1891462d [bun.js] Handle UTF-16 strings in Bun.Transpiler 2022-02-16 04:02:36 -08:00
Jarred Sumner
d00fe1f8af [bun.js] Handle UTF-16 strings in StringOrBuffer 2022-02-16 04:01:42 -08:00
Jarred Sumner
5a80a2e216 [bun.js] Fix segfault when running many bun.js instances 2022-02-16 04:01:13 -08:00
Jarred Sumner
3ab56cee8a symbol pool remnants 2022-02-16 03:45:48 -08:00
Jarred Sumner
6f78decf44 Handle empty array when joining expr 2022-02-16 03:41:57 -08:00
Jarred Sumner
68e5b0d842 [js printer] slightly optimize indent / unindent 2022-02-16 03:41:35 -08:00
Jarred Sumner
fa6bb0fc7c [js printer] Remove symbol pool 2022-02-16 03:41:11 -08:00
Jarred Sumner
103a527128 bump mimalloc 2022-02-16 03:18:38 -08:00
Jarred Sumner
054d873936 [bun test] Implement it.only 2022-02-16 00:40:38 -08:00
Jarred Sumner
9f2f33e4e6 Update mimalloc_arena.zig 2022-02-16 00:36:16 -08:00
Jarred Sumner
acb7439232 Add assert 2022-02-16 00:36:12 -08:00
Jarred Sumner
635d553b64 [JS Lexer] Fix incorrect assertion 2022-02-16 00:32:44 -08:00
Jarred Sumner
fe55720c6c [JS Parser] Add error when RegExp has duplicate flag 2022-02-16 00:32:29 -08:00
Jarred Sumner
08e8eabc6f Revert "Remove usage of packed struct in Ref because packed is buggy in zig"
This reverts commit 2578f426b6.
2022-02-15 20:08:35 -08:00
Jarred Sumner
665a359413 [internal] workaround https://github.com/ziglang/zig/issues/10903 2022-02-15 20:07:28 -08:00
Jarred Sumner
022e399bff Update test_command.zig 2022-02-15 13:47:23 -08:00
Jarred Sumner
2578f426b6 Remove usage of packed struct in Ref because packed is buggy in zig 2022-02-15 13:47:18 -08:00
Jarred Sumner
37bc3c8872 [bun test] Auto rewrite @jest/globals and vitest to bun:test 2022-02-15 13:44:34 -08:00
Jarred Sumner
55825c0e33 assert we aren't freeing statically allocated memory 2022-02-15 13:44:15 -08:00
Jarred Sumner
6e735b710a move import processing into a separate function 2022-02-14 20:21:01 -08:00
Jarred Sumner
8ec958ec01 Update bindings.zig 2022-02-14 20:20:38 -08:00
Jarred Sumner
e5a71462b8 remove a clone 2022-02-14 20:20:28 -08:00
Jarred Sumner
423d208790 [bun.js] Handle recursive macros and handle stack overflow 2022-02-14 19:03:25 -08:00
Jarred Sumner
83659b898d Path.join 2022-02-14 05:43:11 -08:00
Jarred Sumner
7653a2338e [bun.js] formatter 2022-02-14 04:28:25 -08:00
Jarred Sumner
8325db48ab MimeType from string 2022-02-14 04:28:13 -08:00
Jarred Sumner
eadca53e7b cleanup 2022-02-14 04:27:53 -08:00
Jarred Sumner
8cb9391534 [bun test] Slightly better test output 2022-02-14 04:27:39 -08:00
Jarred Sumner
106979876e [bun.js] Auto type coerction for macros! 2022-02-14 04:27:27 -08:00
Jarred Sumner
b9d82ee402 [JS parser] Slightly better dead code elimination & optimize AST string comparison 2022-02-13 20:44:55 -08:00
Jarred Sumner
776909a72d [js parser] Fix test failure with import {type foo} 2022-02-13 20:43:23 -08:00
Jarred Sumner
91026d4d1d Update install.zig 2022-02-13 16:09:27 -08:00
Jarred Sumner
4749df7c51 [bun install] Resolve nested folder: dependencies and tweak lockfile format for better determinism 2022-02-13 16:08:54 -08:00
Jarred Sumner
6bf3ae5a18 [bun test] Ensure throw doesn't get hidden 2022-02-13 16:05:47 -08:00
Jarred Sumner
a6de6d630a Tweak how strings are created 2022-02-12 22:11:36 -08:00
Jarred Sumner
b1e7d38f72 Add a memory allocator that always zeroes 2022-02-12 21:55:55 -08:00
Jarred Sumner
cf566ab785 [bun install] Move unnecessary data out of the lockfile 2022-02-12 21:55:26 -08:00
Jarred Sumner
9c54b0605d [bun install] Reduce noise in printed yarn.lock 2022-02-12 17:54:41 -08:00
Jarred Sumner
ff38312b7d [bun install] When --production, fail the build if symlinking fails 2022-02-12 16:46:48 -08:00
Jarred Sumner
b06e520ae4 [bun install] Handle multiple files in directory bins to link 2022-02-12 16:32:49 -08:00
Jarred Sumner
f33d23c0b4 [bun install] When both directories and bin is specified, prefer bin
This is for performance.
2022-02-12 16:05:57 -08:00
Jarred Sumner
b9567eb193 [bun install] Fix directory bin link bug 2022-02-12 16:02:54 -08:00
Jarred Sumner
7139316ef5 Implement multiple bin links for bun install -g 2022-02-12 15:43:04 -08:00
Jarred Sumner
6b215dcbbf Update README.md 2022-02-12 05:42:09 -08:00
Jarred Sumner
d7c75937a1 Update README.md 2022-02-12 05:41:45 -08:00
Jarred Sumner
272f1dea33 Update README.md 2022-02-12 05:41:35 -08:00
Jarred Sumner
b4c50d1d28 Update README.md 2022-02-12 05:40:12 -08:00
Jarred Sumner
4244e74d96 Update README.md 2022-02-12 05:39:02 -08:00
Jarred Sumner
f71c4bb8a4 Update README.md 2022-02-12 05:37:07 -08:00
Jarred Sumner
3141b928f8 Update README.md 2022-02-12 05:28:52 -08:00
Jarred Sumner
614d810ef4 Make bun install fast by default on linux 2022-02-12 05:00:58 -08:00
Jarred Sumner
ac91f98528 fix linux build error 2022-02-12 04:31:41 -08:00
Jarred Sumner
1252b6b7df Update README.md 2022-02-12 03:28:11 -08:00
Jarred Sumner
7842da78bc hm 2022-02-12 03:27:27 -08:00
Jarred Sumner
dad8b16878 hm 2022-02-12 03:26:51 -08:00
Jarred Sumner
3881b7a69c hm 2022-02-12 03:26:40 -08:00
Jarred Sumner
0471fae54a Update README.md 2022-02-12 03:26:20 -08:00
Jarred Sumner
a3d0b45cc0 readme 2022-02-12 03:21:52 -08:00
Jarred Sumner
e72264608b Fix crash that wasn't a crash 2022-02-12 02:42:39 -08:00
Jarred Sumner
eb93ae0d26 Trim leading double slashes in URL pathnames 2022-02-12 02:32:15 -08:00
Jarred Sumner
73836e19b7 Load config 2022-02-12 02:32:01 -08:00
Jarred Sumner
4257373654 Update install.zig 2022-02-12 02:00:14 -08:00
Jarred Sumner
297ddfd972 [bun install] Improve error handling when package is not found 2022-02-12 01:59:32 -08:00
Jarred Sumner
969fcd2213 Update package_manager_command.zig 2022-02-12 01:25:47 -08:00
Jarred Sumner
18b1a36d84 [bun install] Make global bin dir configurable 2022-02-12 01:23:32 -08:00
Jarred Sumner
89c99700f6 [bun install] Print linked bin names and improve output 2022-02-12 01:23:19 -08:00
Jarred Sumner
7c6386d81e [bun install] bun pm bin prints the bin directory 2022-02-12 01:22:07 -08:00
Jarred Sumner
757a1686f0 Add bun r as an alias for bun remove 2022-02-12 01:21:53 -08:00
Jarred Sumner
611cdd69b1 Add bun -g to completions 2022-02-12 01:21:44 -08:00
Jarred Sumner
90c573cd42 [bun install] Implement global installs 2022-02-11 21:15:20 -08:00
Jarred Sumner
71ca909008 another assertion 2022-02-11 19:04:05 -08:00
Jarred Sumner
8570b4a9d7 [bun install] Implement private registry support & scoped packages
Fixes https://github.com/Jarred-Sumner/bun/issues/112
2022-02-11 19:02:03 -08:00
Jarred Sumner
d67c95d8eb [bun install] Implement bunfig.toml config 2022-02-11 19:01:00 -08:00
Jarred Sumner
bfd7f3398c Update report.zig 2022-02-11 14:59:15 -08:00
Jarred Sumner
fce94e29a0 [bun install] Fix bun add multiple packages writing malformed package.json 2022-02-11 14:59:10 -08:00
Jarred Sumner
5d51b4c397 [bun install] Fix lockfile corruption 2022-02-11 14:58:46 -08:00
Jarred Sumner
5ec5b657be use platform-independent file preallocation 2022-02-11 14:57:11 -08:00
Jarred Sumner
3d057950b9 std.os.exit -> Global.exit so stderr is always flushed 2022-02-11 14:56:28 -08:00
Jarred Sumner
29f0159eae Update install.zig 2022-02-10 18:12:43 -08:00
Jarred Sumner
95c0f28dee [bun install] Continue linking bins if one fails 2022-02-10 17:07:01 -08:00
Jarred Sumner
185f74dfae [bun install] More reliably set permissions on bin links 2022-02-10 17:04:42 -08:00
Jarred Sumner
9369663317 [bun run] Fix exit code when running a bin 2022-02-10 16:46:14 -08:00
Jarred Sumner
e7626b6e04 Update linux_c.zig 2022-02-10 16:43:35 -08:00
Jarred Sumner
29a718e25d [bun run] Fix exit code when script fails 2022-02-10 16:43:28 -08:00
Jarred Sumner
8fca3f2487 [bun install] Improve reliability of extracting files 2022-02-10 16:43:07 -08:00
Jarred Sumner
ce442aa3e1 [bun install] Fix bug when linking bins from scoped packages (e.g. @babel/parser) 2022-02-10 16:42:16 -08:00
Jarred Sumner
6470f26be2 [bun install] Print more descriptive errors 2022-02-10 16:41:48 -08:00
Jarred Sumner
9018986600 [bun install] Fix bug when packages with long names 2022-02-10 16:41:33 -08:00
Jarred Sumner
25f15688f0 [bun dev] Add test for checking that js files are transpiled at the root when there is no static folder 2022-02-10 03:30:30 -08:00
Jarred Sumner
078a7c4c55 Cleanup test output 2022-02-10 03:21:26 -08:00
Jarred Sumner
cc1e19ade0 [bun dev] Use a Mimalloc Arena to attempt to resolve a crash when bun dev has been running for awhile 2022-02-10 01:46:49 -08:00
Jarred Sumner
27501a0576 [bun dev][css] Fix loading external assets 2022-02-10 01:40:36 -08:00
Jarred Sumner
2e2521c638 [bun dev] Implement hash: namespace for file loader to improve browser cache invalidation
This appends a hash to URLs and import paths

In `bun dev`, this means:
  `/foo.woff2` => `/hash:/foo.woff2`

`bun dev` simply ignores this.
2022-02-10 01:37:23 -08:00
Jarred Sumner
bcdd2cf220 [tree shaking] Trim unused values in var when possible 2022-02-10 01:28:41 -08:00
Jarred Sumner
e8394905d4 [tree shaking] Fix bug with removing unused const / let 2022-02-10 01:28:29 -08:00
Jarred Sumner
afe42bc327 Update readme for bun-macro-relay, bump 2022-02-09 13:50:33 -08:00
Jarred Sumner
86f6e30cca Update runtime.version 2022-02-08 01:37:30 -08:00
Jarred Sumner
4a24240d9f Possibly fix #98 2022-02-08 01:24:05 -08:00
Jarred Sumner
347b348865 📷 2022-02-08 01:05:13 -08:00
Jarred Sumner
d4afa5477d Move __exportDefault transform to parser 2022-02-08 01:00:46 -08:00
Jarred Sumner
7792ef1bde Update build-id 2022-02-07 23:51:19 -08:00
Jarred Sumner
5dce6f63d0 Add test for #117 2022-02-07 23:50:40 -08:00
Jarred Sumner
d43f7aa6aa Fix #117 2022-02-07 23:34:19 -08:00
Jarred Sumner
705325d6c5 Fix #117 2022-02-07 23:34:07 -08:00
Jarred Sumner
1430cb5e34 Don't import __FastRefreshRuntime if it's a CJS transform 2022-02-07 23:32:48 -08:00
Jarred Sumner
71fcb7b86c Reduce debug build memory usage 2022-02-07 23:10:55 -08:00
Jarred Sumner
3a48954586 [JS Parser] Fix bug with export default Foo when Foo was a bundled import 2022-02-07 23:10:42 -08:00
Jarred Sumner
49aee10cfa Update transpiler.test.js 2022-02-07 22:03:50 -08:00
Jarred Sumner
a571c56b4c [TS] Implement import {type foo} from 'bar'; (type inside clause) 2022-02-07 22:02:54 -08:00
Jarred Sumner
7b5bf62ad5 [bun-macro-relay] resolve the artifact directory 2022-02-07 21:31:36 -08:00
Jarred Sumner
869eea4bb2 Update README.md 2022-02-06 16:41:07 -08:00
Jarred Sumner
ffc900e1b3 Update README.md 2022-02-06 16:40:36 -08:00
Jarred Sumner
dded255306 Little doc 2022-02-06 15:05:10 -08:00
Jarred Sumner
9c5dead232 Update README.md 2022-02-06 00:52:24 -08:00
Jarred Sumner
0191cabe6e Update README.md 2022-02-06 00:47:15 -08:00
Jarred Sumner
e1747c0dd7 Update README.md 2022-02-06 00:45:30 -08:00
Jarred Sumner
e50ccc25db Update README.md 2022-02-06 00:44:31 -08:00
Jarred Sumner
3a788fa035 Update README.md 2022-02-06 00:43:56 -08:00
Jarred Sumner
9715c9223a Add unit test for toml imports 2022-02-05 21:26:55 -08:00
Jarred Sumner
ca6cdb4e98 [TOML] Fix bug with [[arrays]] 2022-02-05 21:26:47 -08:00
Jarred Sumner
e431dbe5bd Handle promise rejections in tests 2022-02-05 21:26:31 -08:00
Jarred Sumner
3063df9b78 Update resolve_path.zig 2022-02-05 21:26:14 -08:00
Jarred Sumner
d8f174e54c Always try to load bunfig.toml for install, dev, bun, test 2022-02-05 19:02:13 -08:00
Jarred Sumner
51abe58a1a () 2022-02-05 18:56:15 -08:00
Jarred Sumner
7f1415c7ae One less memcpy 2022-02-05 18:54:46 -08:00
Jarred Sumner
6cf3a08780 Further reliability improvements to http client 2022-02-05 00:30:28 -08:00
Jarred Sumner
2b45c8dffe Implement keep-alive but disable it 2022-02-05 00:30:28 -08:00
Jarred SUmner
860d7e93c0 Make bun-install slower but more reliable on Linux Kernel 5.5 and lower 2022-02-05 00:26:58 -08:00
Jarred SUmner
dabcac2e96 Several reliability improvements to HTTP 2022-02-04 20:50:21 -08:00
Jarred Sumner
c03b7a6f19 reminder 2022-02-04 02:43:49 -08:00
Jarred Sumner
909e6a6bab path.resolve() passes tests 2022-02-04 02:05:41 -08:00
Jarred Sumner
a2f91b167d Update multiple-var.js 2022-02-04 01:02:59 -08:00
Jarred Sumner
b2b8c7f0b7 📷 2022-02-04 01:02:55 -08:00
Jarred Sumner
29554f4de3 Update snippets.json 2022-02-04 00:58:20 -08:00
Jarred Sumner
735dc8f1d6 Add integration test for reading .json files that have UTF-8 string literals
Related: https://github.com/Jarred-Sumner/bun/issues/115
2022-02-04 00:58:12 -08:00
Jarred Sumner
a9577c9ba8 [http] fix segfault 2022-02-04 00:57:30 -08:00
Jarred Sumner
a89726b30c [bun dev] Fix bug with serving static files on next.js apps introduced in af69b47c22 2022-02-04 00:57:12 -08:00
Jarred Sumner
3225a4e7e8 Update types.zig 2022-02-04 00:31:29 -08:00
Jarred Sumner
432e823f7e Update test_command.zig 2022-02-04 00:31:24 -08:00
Jarred Sumner
62541f1ac8 path.normalize() tests pass 2022-02-04 00:31:20 -08:00
Jarred Sumner
faf137b9be Fix test failures in path.join 2022-02-03 21:03:39 -08:00
Jarred Sumner
3c9e30ffcd Update mimalloc_arena.zig 2022-02-03 21:03:08 -08:00
Jarred Sumner
b22a3f5973 [bun test] Support multiple files 2022-02-03 21:03:01 -08:00
Jarred Sumner
4232000020 Update js_ast.zig 2022-02-03 21:02:30 -08:00
Jarred Sumner
475aab6cc3 Support loading multiple entry points by changing what bun:main points to 2022-02-03 21:02:15 -08:00
Jarred Sumner
dddd9c23e4 [bun install] Configurable max http retry count 2022-02-03 21:01:45 -08:00
Jarred Sumner
1064b9dada Missing newline in errors in bun install 2022-02-03 21:01:32 -08:00
Jarred Sumner
baffe26dd1 Fix bug with http client 2022-02-03 21:01:14 -08:00
Jarred Sumner
1993f9f9a5 Move detectFastRefresh to later so HTTP request handler starts faster 2022-02-03 20:59:34 -08:00
Jarred Sumner
7f00482cfe Fix bug with macro remaps in Bun.Transpiler api 2022-02-03 01:56:02 -08:00
Jarred Sumner
b2a69a35b8 Slight improvement to non-ascii file path handling 2022-02-03 01:01:27 -08:00
Jarred Sumner
a52a948a70 path.relative passes Node's tests (which also fixed bugs) 2022-02-02 23:33:37 -08:00
Jarred Sumner
94cbfa4579 Begin porting path-browserify tests 2022-02-02 18:12:30 -08:00
Jarred Sumner
1a4ccd3f5c [http] Fixes to chunked transfer encoding reader 2022-02-02 18:07:05 -08:00
Jarred Sumner
68cb6130d3 "path" module from Node.js implementation 2022-02-02 18:02:06 -08:00
Jarred Sumner
64b74ede87 Cleanup HTTP thread on idle 2022-02-01 20:47:48 -08:00
Jarred Sumner
213960a04a Limit the number of pooled objects 2022-02-01 20:47:35 -08:00
Jarred Sumner
170e58a99d Fix biggest issue with HTTPS client! 2022-02-01 18:51:25 -08:00
Jarred Sumner
f3c4bfcbae wpi 2022-02-01 18:12:24 -08:00
Jarred Sumner
fa971895a8 partial read 2022-02-01 17:19:29 -08:00
Jarred Sumner
a5a9f8e821 Compile error 2022-02-01 16:23:20 -08:00
Jarred Sumner
0a547304a7 Set thread name 2022-02-01 16:23:13 -08:00
Jarred Sumner
45e7bb0027 IO.Completion.slice() 2022-02-01 16:23:02 -08:00
Jarred Sumner
5d7c34093f new boringSSL integration almost works with TLS 1.3 2022-02-01 14:45:47 -08:00
Jarred Sumner
9322cec8f2 WIP 2022-02-01 14:45:47 -08:00
Jarred Sumner
047501999d [linker] Fix bug with multiple JSX runtimes introduced in 5922ba29ac 2022-02-01 14:43:45 -08:00
Jarred Sumner
30f5e0d37c [path] Fix bug that occasionally caused relative paths to be missing the leading character 2022-02-01 14:42:42 -08:00
Jarred Sumner
205a6d45b5 [http] Fix assertion in favicon 2022-02-01 14:41:50 -08:00
Jarred Sumner
d47e0de175 [JS Printer] Fix printing edgecase with nested vars that use object destructuring 2022-02-01 14:41:36 -08:00
Jarred Sumner
8c470194ce "" 2022-01-30 16:11:48 -08:00
Jarred Sumner
410a6bd32d [bun dev] Add error favicon 2022-01-30 15:12:34 -08:00
Jarred Sumner
af69b47c22 [bun dev] Support HTML files in either project root or public folder (static) 2022-01-30 02:04:56 -08:00
Jarred Sumner
fb2c7e5f38 Update bun-flavored-toml.md 2022-01-29 23:52:30 -08:00
Jarred Sumner
4a1c195b24 Update Makefile 2022-01-29 23:52:26 -08:00
Jarred Sumner
1489e48950 Slight tweaks to TOML parser 2022-01-29 23:52:19 -08:00
Jarred Sumner
5922ba29ac Bundle embedded fast refresh if using react and no fast refresh is found 2022-01-29 23:51:37 -08:00
Jarred Sumner
1de275325e Embed a favicon when none exists 2022-01-29 23:51:01 -08:00
Jarred Sumner
14301284af cleanup 2022-01-29 23:50:38 -08:00
Jarred Sumner
adeb880d7f Enable Fast Refresh when not bundling 2022-01-29 23:49:41 -08:00
Jarred Sumner
857e9bee00 Embed React Fast Refresh in Bun
Fixes https://github.com/Jarred-Sumner/bun/issues/62

If the project has it's own copy of react fast refresh and is bundling, it will use that instead.
2022-01-29 23:48:39 -08:00
Jarred Sumner
711e0cef78 Handle null/undefined module.exports better 2022-01-29 23:43:28 -08:00
Jarred Sumner
73449bf433 [JS Printer] Fix CJS <> ESM interop edgecase
For code like this:

```js
module.exports = require("foo")
```

If `"foo"` is bundled, we should access it as the namespace reference from the bundle. Previously, we assumed it would be a property access.
2022-01-29 23:43:10 -08:00
Jarred Sumner
4aabccfc79 Fix bug introduced in 97d17904 2022-01-29 20:01:34 -08:00
Jarred Sumner
1e2a61c6a0 Slice once 2022-01-29 19:52:12 -08:00
Jarred Sumner
844fae826f Tag imports 2022-01-29 19:51:47 -08:00
Jarred Sumner
ef8d1a95a4 Update toml_lexer.zig 2022-01-28 23:57:29 -08:00
Jarred Sumner
bf4943eec1 Implement TOML parser
No Date/DateTime/Time/Local Time yet
2022-01-28 23:56:45 -08:00
Jarred Sumner
97d17904d3 Update AST layout to store capacity for items
We want to be able to push to the list
2022-01-28 19:26:03 -08:00
Jarred Sumner
98af486b89 Update README.md 2022-01-28 04:42:50 -08:00
Jarred Sumner
8f27b27a0e Update README.md 2022-01-28 04:39:20 -08:00
Jarred Sumner
aced5882d1 Update README.md 2022-01-28 04:38:01 -08:00
Jarred Sumner
839fd03472 Update README.md 2022-01-28 04:36:15 -08:00
Jarred Sumner
fb5a90cb1b Update README.md 2022-01-28 04:34:47 -08:00
Jarred Sumner
64a83f1427 Update README.md 2022-01-28 04:31:49 -08:00
Jarred Sumner
f684a16051 Update README.md 2022-01-28 04:30:48 -08:00
Jarred Sumner
2666b45f2a Add Bun.Transpiler doc to the readme 2022-01-28 04:26:40 -08:00
Alexander Kuznetsov
aad33c2611 Automate clang version checking / code signing (#113) 2022-01-27 19:09:40 -08:00
Jarred Sumner
ff2335a910 Stop reading "bun" from package.json
cc @hanford
2022-01-27 01:25:39 -08:00
Jarred Sumner
32733210dc [bunfig] Implement config file format 2022-01-27 01:25:09 -08:00
Jarred Sumner
9f5a1705a5 Don't look like a crash when CLI args are missing 2022-01-27 01:20:42 -08:00
Jarred Sumner
b4c1cea735 [cli] Add support for commands which optionally have one argument 2022-01-27 01:20:01 -08:00
Jarred Sumner
2572636004 Update Makefile 2022-01-26 18:14:10 -08:00
Jarred Sumner
3a962f3bad print file name on panic 2022-01-26 14:36:48 -08:00
Jarred Sumner
bfa2bc6736 merge 2022-01-25 20:04:24 -08:00
Jarred Sumner
354ed2880c Slightly safer 2022-01-25 20:00:23 -08:00
Jarred Sumner
9db4d195a7 Split http into files 2022-01-25 20:00:23 -08:00
Jarred Sumner
0808f29375 Update Dockerfile 2022-01-25 19:59:50 -08:00
Jarred Sumner
7dbfb3ef41 Fix up dev container 2022-01-25 19:59:50 -08:00
Jarred SUmner
333bccee5d On successful connect, switch to non-blocking sockets until we're about to close 2022-01-25 00:17:14 -08:00
Jarred SUmner
25c35e59b4 Fix getsockopt() 2022-01-25 00:00:16 -08:00
Jarred SUmner
ff7785e023 Automatically retry on would block 2022-01-24 23:42:16 -08:00
Jarred SUmner
0e138bcc8f Fallback to readev / writev 2022-01-24 23:30:23 -08:00
Jarred SUmner
ecea12d206 No io_uring for Ubuntu 20.04 2022-01-24 19:12:58 -08:00
Jarred Sumner
61d1c7b6b2 Update io_linux.zig 2022-01-23 23:11:41 -08:00
Jarred Sumner
b5cec4b704 [linux][http] return errno instead of unexpected 2022-01-23 23:11:06 -08:00
Jarred Sumner
e895605e5f [http] Remove usages of unreachable in syscall error handling 2022-01-23 23:06:44 -08:00
Jarred Sumner
f5a79ea6d2 Update io_linux.zig 2022-01-23 23:03:04 -08:00
Jarred Sumner
de0cf42111 Use non-cancellable syscalls for HTTP & use errno for errors 2022-01-23 23:00:15 -08:00
Jarred Sumner
ec9e4eb97e Improve error message when bun upgrade fails 2022-01-23 21:25:48 -08:00
Jarred Sumner
47b6a82920 Nice 2022-01-23 21:15:17 -08:00
Jarred Sumner
28f77b9823 Update analytics_thread.zig 2022-01-23 21:14:38 -08:00
Jarred Sumner
4ac8c1bd84 Add copyfile snippet 2022-01-23 21:14:34 -08:00
Jarred Sumner
962b7fa8d9 Add a callback when a thread spawns 2022-01-23 21:14:20 -08:00
Jarred Sumner
d6ebb478e3 Fix release build with debugging 2022-01-23 21:14:08 -08:00
Jarred Sumner
2b8893da53 Use a separate heap for HTTP 2022-01-23 21:12:59 -08:00
Jarred Sumner
744f52fb27 fake segfault test 2022-01-23 20:13:35 -08:00
Jarred Sumner
43b9f9462f Add kernel version to crash report 2022-01-23 20:11:17 -08:00
Jarred Sumner
d89aa9a9e6 Update main.zig 2022-01-23 20:10:55 -08:00
Jarred Sumner
084d78be29 Add C++ exception handler 2022-01-23 20:10:51 -08:00
Jarred Sumner
9c627e884d Create cat.mjs 2022-01-22 21:40:57 -08:00
Jarred Sumner
da83583cdf Create realpath.mjs 2022-01-22 21:19:18 -08:00
Jarred Sumner
4d9ae0df06 📷 2022-01-22 20:46:28 -08:00
Jarred Sumner
4d95e44317 Update helpers.h 2022-01-22 20:06:53 -08:00
Jarred Sumner
4b7235ac5f Update helpers.h 2022-01-22 20:06:18 -08:00
Jarred Sumner
4152c1b177 Update linker.zig 2022-01-22 19:41:01 -08:00
Jarred Sumner
dc5745080d Ensure we fully copy strings 2022-01-22 19:39:23 -08:00
Jarred Sumner
3dfac788fa Update http.zig 2022-01-22 19:17:07 -08:00
Jarred Sumner
c56ff7efb4 Rename bun:runtime -> bun:wrap so it fits 8 chars 2022-01-22 19:17:03 -08:00
Jarred Sumner
114c560912 Don't do isolated copy when we don't need to 2022-01-22 18:32:06 -08:00
Jarred Sumner
1576d183c9 Instead of 4 loops, we can do one switch statement 2022-01-22 18:31:45 -08:00
Jarred Sumner
0e0bfe91d0 [Bun.js] Resolve dynamic imports lazily 2022-01-22 18:31:28 -08:00
Jarred Sumner
d3559d1cca Update Makefile 2022-01-22 17:14:17 -08:00
Jarred Sumner
222a1cc9e8 Update Makefile 2022-01-22 17:09:24 -08:00
Jarred Sumner
03103925bd Skip dsym copy on linux 2022-01-22 17:07:20 -08:00
Jarred Sumner
9e470cb48e remove tempfiles 2022-01-22 16:52:19 -08:00
Jarred Sumner
376602a65c 📷 2022-01-22 16:46:23 -08:00
Jarred Sumner
8493cfe983 Clarify "Windows Subsystem for Linux" instead of "WSL"
thanks @MajesticString
2022-01-22 16:36:32 -08:00
Jarred Sumner
d11ac34dcb Add a release-safe option to Makefile 2022-01-22 16:25:33 -08:00
Jarred Sumner
08bc06dfe0 No more leading ./ necessary to pass a script to bun to execute 2022-01-22 16:25:21 -08:00
Jarred Sumner
f4fbf84294 Make Ref more safe 2022-01-22 16:23:14 -08:00
Jarred Sumner
56ae4bcb55 Ensure we allocate the correct number of argv 2022-01-22 16:21:45 -08:00
Jarred Sumner
ec61dc0665 [Resolver] Improve how we detect ESM 2022-01-22 16:21:08 -08:00
Jarred Sumner
b21b0ea849 Update report.zig 2022-01-22 16:20:55 -08:00
Jarred Sumner
318c423e14 [Resolver] Improve how we detect ESM 2022-01-22 16:20:35 -08:00
Jarred Sumner
834ff71157 Use newer hash table 2022-01-22 15:10:21 -08:00
Jarred Sumner
39a187d32e Update js_parser.zig 2022-01-22 15:09:37 -08:00
Jarred Sumner
146d2cc231 Sort imports 2022-01-22 15:09:28 -08:00
Jarred Sumner
87c95d45f7 Reset imported_module_ids 2022-01-22 15:00:25 -08:00
Jarred Sumner
f7f2f6e6b8 more tests 2022-01-21 21:03:06 -08:00
Jarred Sumner
3e803b3a58 Add test coverage for macro import behavior 2022-01-21 18:12:46 -08:00
Jarred Sumner
22c01ca14c FIx macros remap in Transpiler 2022-01-21 18:10:38 -08:00
Jarred Sumner
111f0921f5 [macros] Always remove imports to macros 2022-01-21 18:09:43 -08:00
Jarred Sumner
8c515c7077 Update exports.zig 2022-01-21 18:09:13 -08:00
Jarred Sumner
04579909ff [Bun.js] Fix error printing 2022-01-21 18:08:56 -08:00
Jarred Sumner
40ff3e4618 memory 2022-01-21 16:28:46 -08:00
Jarred SUmner
c0a446df02 Tags on pointers need to be cleared on Linux 2022-01-21 15:19:50 -08:00
Jarred Sumner
8f7cf6bf47 little 2022-01-21 05:09:58 -08:00
Jarred Sumner
4a7b5892af Add a little benchmark for transpiling from inside JS 2022-01-21 04:58:28 -08:00
Jarred Sumner
9a5aa95893 [Bun.js] Bun.Transpiler.transform & Bun.Transpiler.transformSync APIs 2022-01-21 03:39:27 -08:00
Jarred Sumner
8d623e21b6 [Bun.js] Add a threadpool for doing CPU-bound work 2022-01-21 03:37:05 -08:00
Jarred Sumner
7a87e41ab8 Update js_printer.zig 2022-01-21 03:36:27 -08:00
Jarred Sumner
f62f184241 Update logger.zig 2022-01-21 03:36:17 -08:00
Jarred Sumner
8ea69cb5d1 Improve reliabiltiy of multithreaded code by using threadlocal mimalloc heaps 2022-01-21 03:36:13 -08:00
Jarred Sumner
97f0cef391 [Bun.js] Fix TypedArray/ArrayBuffer <> Zig interop 2022-01-20 16:19:07 -08:00
Jarred Sumner
85084c6db9 Fix segfault 2022-01-20 01:42:23 -08:00
Jarred Sumner
a09b995651 Bun.Transpiler – API for scanning imports/exports of JSX/TSX/TS/JS files 2022-01-19 23:07:03 -08:00
Jarred Sumner
4098484ff5 Update Makefile 2022-01-19 13:48:57 -08:00
Jarred Sumner
91b24c6032 Update Makefile 2022-01-19 13:46:38 -08:00
Jarred Sumner
38d0f0bbd0 Update Dockerfile 2022-01-19 13:35:00 -08:00
Jarred Sumner
d3e39632bf Update Makefile 2022-01-19 13:34:15 -08:00
Jarred Sumner
43ae61e095 Update libbacktrace 2022-01-19 13:34:10 -08:00
Jarred Sumner
bd31c88814 Update Dockerfile.base 2022-01-19 13:26:45 -08:00
Jarred Sumner
02c59df1b3 Update release.sh 2022-01-19 13:26:26 -08:00
Jarred Sumner
f6c05ef7a1 small bugfix 2022-01-19 13:26:24 -08:00
Jarred Sumner
505e4b80fd Update fs.test.js 2022-01-19 02:39:25 -08:00
Jarred Sumner
cd8d88716f O3 2022-01-19 02:31:23 -08:00
Jarred Sumner
d3a93d5273 fs.*Sync(), bun wiptest, and More ™ (#106)
* very very wip

* almost ready to fix the errors

* Update identity_context.zig

* Update base.zig

* [bun test] It runs successfully

* Remove unnecessary call

* [Bun.js] Improve JS <> Zig unicode string interop

This fixes longstanding unicode bugs with `console.log` & `fetch`.

I believe @evanwashere reported this first awhile ago

* [Bun.js] Implement `Object.is()` binding and a way to set a timeout for script execution

* Update PLCrashReport.zig

* [Bun.js] Make `console.log` more closely match Node.js and Deno

* [Bun.js] Implement formatting specifier for console.*

* Implement `console.clear()`

* bug fix

* Support console.clear()

* Buffer stderr

* [bun test] Begin implementing Node.js `fs`

* Update darwin_c.zig

* Implement more of `fs`

* `mkdir`, `mkdir` recursive, `mkdtemp`

* `open`, `read` (and pread)

* Move some things into more files

* Implement readdir

* `readFile`, `readLink`, and `realpath`

* `writeFile`, `symlink`, `chown`, `rename`, `stat`, `unlink`, `truncate`

* `lutimes`

* Implement `SystemError` and begin wiring up the `fs` module

* `"fs"` - Most of the arguments / validation

* `fs` - Rest of the arguments / validations

* Begin wiring up the `fs` module

* Fix all the build errors

* support printing typed arrays in console.log

* It...works?

* Support `require("fs")`, `import fs from 'fs';`, `import * as fs from 'fs'`

* Fix a couple bugs

* get rid of the crash reporter for now

* Update fs.exports.js

* [bun.js] slight improvement to startup time

* [bun.js] Improve error message printing

* [Bun.js] Add `Bun.gc()` to run the garbage collector manually and report heap size

* [Bun.js] Add Bun.generateHeapSnapshot to return what JS types are using memory

* [Bun.js] Add `Bun.shrink()` to tell JSC to shrink the VM size

* Improve encoding reader

* [bun.js] Improve callback & microtask performance

* Update node_fs.zig

* Implement `console.assert`

* simple test

* [Bun.js] Prepare for multiple globals/realms to support testing

* Create callbacks-overhead.mjs

* Update http.zig

* [Bun.js] Implement `queueMicrotask`

* Add test for queueMicrotask

* 😪

* [Bun.js] Implement `process.versions`, `process.pid`, `process.ppid`, `process.nextTick`, `process.versions`,

* Implement `process.env.toJSON()`

* [Bun.js] Improve performance of `fs.existsSync`

* 💅

* [Bun.js] Implement `process.chdir(str)` and `process.cwd()`, support up to 4 args in `process.nextTick`

* Make creating Zig::Process lazy

* Split processi nto separte file

* [Bun.js] Node.js Streams - Part 1/?

* [Bun.js] Node.js streams 2/?

* WIP streams

* fix crash

* Reduce allocations in many places

* swap

* Make `bun` start 2ms faster

* Always use an apiLock()

* libBacktrace doesn't really work yet

* Fix crash in the upgrade checker

* Clean up code for importing the runtime when not bundling

* 📷

* Update linker.zig

* 68!

* backtrace

* no, really backtrace

* Fix

* Linux fixes

* Fixes on Linux

* Update mimalloc

* [bun test] Automatically scan for {.test,_test,.spec,_spec}.{jsx,tsx,js,cts,mts,ts,cjs}
2022-01-19 02:29:07 -08:00
Jarred Sumner
ed9637de50 Fix bug preventing multiple framework overrides 2022-01-05 17:27:46 -08:00
Jarred Sumner
4e744c057b Reduce memory usage 2022-01-05 16:42:08 -08:00
Jarred Sumner
4b717fe554 Fix crash that sometimes happens after 30 seconds 2022-01-05 16:41:58 -08:00
Jarred Sumner
236a0fde35 [bun bun][bun dev] Fix crash affecting large projects
ArrayList cannot be used here
2022-01-05 16:41:25 -08:00
Jarred Sumner
306d309209 move some code around 2022-01-05 15:04:50 -08:00
Jarred Sumner
a8f4cd271e we want the opposite of this 2022-01-05 13:21:45 -08:00
Jarred Sumner
3cd129544e [JS Parser] Reduce memory usage by ~8% 2022-01-05 13:12:11 -08:00
Jarred Sumner
1004e924ff minimal integration tests for macros 2022-01-05 13:12:11 -08:00
Jarred Sumner
c013ede227 Update resolver.zig 2022-01-05 13:12:11 -08:00
Jarred Sumner
914b363a37 Update options.zig 2022-01-05 13:12:11 -08:00
Jarred Sumner
8ad349dcf0 Update http.zig 2022-01-05 13:12:11 -08:00
Mateusz Burzyński
7146bfc04a Add module condition to the node platform (#104) 2022-01-05 02:45:15 -08:00
Mateusz Burzyński
e852bc0980 Drop redundant comments (#103) 2022-01-05 02:37:25 -08:00
Mateusz Burzyński
8a9b1416ed Tweak default main fields for the bun platform to match other popular bundlers (#102) 2022-01-05 02:35:01 -08:00
Jarred Sumner
9da7a1ff0a 💀 dead code 2022-01-04 22:20:01 -08:00
Jarred Sumner
219aa57fbd [bun dev] Print error in status line text 2022-01-04 22:19:50 -08:00
Jarred Sumner
5930ac09b7 noramlize some errors 2022-01-04 22:19:31 -08:00
Jarred Sumner
8837c3c10b [Bun.js][bun dev] Support macros inside of Bun.js
Closes #36
2022-01-04 22:12:37 -08:00
Jarred Sumner
0d0dd65a6a [bun bun] Fix error when regenerating node_modules.bun after moving it
I think @alii reported this awhile ago
2022-01-04 20:15:05 -08:00
Jarred Sumner
0ac9c4276f Improve how we detect if terminal colors are supported 2022-01-04 19:57:14 -08:00
Jarred Sumner
0edf6fd1e4 Improve error handling when out of file handles 2022-01-04 18:29:21 -08:00
Jarred Sumner
c9d6c25f71 Update build-id 2022-01-04 16:27:27 -08:00
Jarred Sumner
73fed6c093 Downgrade mimalloc due to crashes 2022-01-04 16:27:02 -08:00
Jarred Sumner
75f238fcb3 Upload compressed .dSYM for every release 2022-01-04 16:26:52 -08:00
Jarred Sumner
8706f77eb7 Update .gitignore 2022-01-04 16:26:12 -08:00
Jarred Sumner
3cf0689d46 [bun install] Fix more cases where bytes are printed instead of strings 2022-01-04 04:00:26 -08:00
Jarred Sumner
623f77e097 minor perf optimization: remove this loop on macOS 2022-01-04 04:00:06 -08:00
Jarred Sumner
61d6f8f18f Update crash_reporter_linux.zig 2022-01-03 22:46:21 -08:00
Jarred Sumner
6480193c65 😕 2022-01-03 22:39:08 -08:00
Jarred Sumner
23a31b3771 💅 2022-01-03 22:35:01 -08:00
Jarred Sumner
112b352b03 Update crash_reporter_linux.zig 2022-01-03 22:33:19 -08:00
Jarred Sumner
a48c20d470 Update PLCrashReport.m 2022-01-03 22:30:50 -08:00
Jarred Sumner
5fd47bc613 Update PLCrashReport.m 2022-01-03 22:30:20 -08:00
Jarred Sumner
6966d94d90 🔒 2022-01-03 22:26:37 -08:00
Jarred Sumner
5311219de7 dead code 2022-01-03 22:26:24 -08:00
Jarred Sumner
4119f60010 Create crash_reporter_linux.zig 2022-01-03 22:17:41 -08:00
Jarred Sumner
0960f3d6d1 Implement a crash reporter and improve some error handling in bun install 2022-01-03 22:17:34 -08:00
Jarred Sumner
64b49ddd95 fix deinit() 2022-01-03 22:15:45 -08:00
Jarred Sumner
2c27526a34 Update release.sh 2022-01-03 02:20:03 -08:00
Jarred SUmner
fe6b340382 Woops 2022-01-03 02:18:45 -08:00
Jarred SUmner
8148b8824f Improve debugging symbols on Linux 2022-01-03 01:46:11 -08:00
Jarred SUmner
be0c4b5451 [bun install] Reduce number of context switches 2022-01-03 01:42:40 -08:00
Jarred SUmner
168c6138d8 [bun upgrade] Free memory after checking for updates finishes 2022-01-03 01:41:47 -08:00
Jarred SUmner
b9555a5775 [bun install] Significant perf improvement to installing new packages and fixes 'bun install --production'. Closes #97 2022-01-03 01:40:30 -08:00
Jarred Sumner
b78fff9386 Update Dockerfile.base 2022-01-02 17:48:27 -08:00
Jarred Sumner
963c89cab2 LLVM 13 for WebKit 2022-01-02 17:33:21 -08:00
Jarred Sumner
d7ef6efd04 Update WebKit 2022-01-02 17:30:53 -08:00
Jarred Sumner
35fef33868 Update upgrade_command.zig 2022-01-02 16:31:19 -08:00
Jarred Sumner
8a9e81d514 Be a little smarter about sleeping the netwrok thread 2022-01-02 16:29:04 -08:00
Jarred Sumner
b17df61043 [bun dev] Upgrade-Insecure-Requests does not work for detecting HTTPS 2022-01-02 15:32:47 -08:00
Jarred Sumner
4e0cdf34b6 Bump because that CPU bug was bad 2022-01-02 15:29:25 -08:00
Jarred Sumner
a97dec5c30 [bun install] Fix bug that caused lockfile to appear as dirty in git when there were no real changes 2022-01-02 15:28:59 -08:00
Jarred Sumner
ad0834bedb Fix bug where bun uses ~15% of CPU idly 2022-01-02 15:28:20 -08:00
Jarred Sumner
b53c63910d sat 2022-01-02 03:57:50 -08:00
Jarred Sumner
5c0908ee52 Update bundler.zig 2022-01-02 03:57:50 -08:00
luke miles
7f33846005 copy: replace Bun with bun (#99)
Most CLI tools have the style convention of referring to themselves in
lowercase. It is, after all, the name that users type in when using
the tool. This PR maintains that convention in bun.

"Drop the uppercase B, it's cleaner"
2022-01-02 03:09:51 -08:00
Jarred Sumner
4afda10b82 [css] Only warn for tailwind once 2022-01-02 03:04:35 -08:00
Jarred Sumner
cc0e581bc3 [bun upgrade] Add fallback message if there's an error 2022-01-02 02:41:11 -08:00
Jarred Sumner
df1aa76cc5 Update settings.json 2022-01-02 00:22:59 -08:00
Jarred Sumner
a3a2fb1e4f Update http.zig 2022-01-02 00:22:52 -08:00
Jarred Sumner
915dadd9d7 prettier 2022-01-02 00:07:26 -08:00
Jarred Sumner
d899e0ac6f [bun dev] Detect HTTPS via Upgrade-Insecure-Requests 2022-01-02 00:07:17 -08:00
Jarred Sumner
3915e01cfb [bun install] Fix RenameAcrossMountPoints error 2022-01-02 00:06:45 -08:00
Jarred Sumner
2fc6da125f [libarchive] Allow passing a Dir fd instead of always creating a new dir 2022-01-02 00:04:03 -08:00
Jarred Sumner
ba4013816d Update bun.lockb 2022-01-01 20:27:14 -08:00
Jarred Sumner
b64113b7d9 Update bun.lockb 2022-01-01 20:04:09 -08:00
Jarred Sumner
a9483dd8dc Add bun install integration test 2022-01-01 19:48:25 -08:00
Jarred Sumner
5f2fb86a76 install 2022-01-01 19:47:48 -08:00
Jarred Sumner
386ba990bf Fix missing posix_memalign symbol 2022-01-01 19:43:42 -08:00
Jarred Sumner
7f1b5c09de 💅 2022-01-01 19:35:05 -08:00
Jarred Sumner
fcfdd71c06 [bun install] FIx crash when removing only dependency in package.json 2022-01-01 19:31:05 -08:00
Jarred Sumner
73336bbc00 🔒 2022-01-01 19:30:48 -08:00
Jarred Sumner
e7fa50635f Bump versions 2022-01-01 19:30:20 -08:00
Jarred Sumner
fddec80755 [bun-framework-next] Omit the absolute URLs 2022-01-01 18:54:17 -08:00
Jarred Sumner
dac3389b27 Update Dockerfile.base 2022-01-01 18:53:28 -08:00
Jarred Sumner
c952eb7dea Bump zig 2022-01-01 18:47:13 -08:00
Jarred Sumner
6a28cfd2ba [bun dev] Automatically set origin - improve support for proxying Bun
Previously, when running Bun behind a reverse proxy, you had to pass an explicit `--origin` arg and it could only run behind one proxy at a time.

Now, Bun automatically determines the origin from the request if possible. It reads `Forwarded`, `X-Forwarded-Proto`, `X-Forwarded-Host`, `Origin`, and lastly `Host`. If none are available, it falls back to the `--origin` CLI arg.

This change is important for usecases like Replit which shows multiple iframes in different origins.
2022-01-01 18:12:57 -08:00
Jarred SUmner
e4693b8aaf Clear the fd 2022-01-01 03:40:15 -08:00
Jarred SUmner
87e78e2a48 Handle more edgecases 2022-01-01 03:11:36 -08:00
Jarred SUmner
6ac9b5fa9d Bump 2022-01-01 02:37:55 -08:00
Jarred SUmner
71449c8638 Detect fast refresh from .bun if possible 2022-01-01 02:37:08 -08:00
Jarred SUmner
a17088363f [bun dev] Improve filesystem watcher & HMR reliability (Linux + a little macOS)
Text editors like Replit save through atomic file updates. In an inotify filesystem watcher (Linux), that appears to be a delete followed by moving the file to the directory. Now when known files are moved into a directory, the watcher sends the file change notification to the browser(s). From there, the browser looks at it's files to determine whether or not

Additionally, if an existing HMR connection does not know about a file ID passed to it, it asks the browser to reply with the file path and then starts watching that file. This improves HMR reliabiality if Bun had been restarted but the page hadn't been restarted.
2022-01-01 01:53:50 -08:00
Jarred Sumner
83004f0a0a Update build.zig 2021-12-31 18:24:28 -08:00
Jarred Sumner
c42fbbd10e Set to an explicit glibc 2021-12-31 18:23:59 -08:00
Jarred Sumner
d068d80ab9 Attempt to fix watcher issue with repl.it 2021-12-31 17:52:38 -08:00
Jarred Sumner
eb142a6be5 little test 2021-12-31 15:30:57 -08:00
Jarred Sumner
9fde2b28e1 bump 2021-12-31 15:15:09 -08:00
Jarred Sumner
195723180b [devserver] Log more errors when a websocket connection fails 2021-12-31 15:08:58 -08:00
Jarred Sumner
2e051cebaa Update http.zig 2021-12-31 15:08:19 -08:00
Jarred Sumner
795d0b056c [devserver] Case-insensitive request header comparison, which fixes issues with proxying Bun 2021-12-31 15:08:13 -08:00
Jarred Sumner
d7c69d3b78 Add unrolled case insensitive string comparison 2021-12-31 15:07:14 -08:00
Jarred Sumner
059aa425b7 Fix an edgecase that causes a crash in HTTP server 2021-12-31 15:06:06 -08:00
Jarred Sumner
aaf5c28c5b [bun install] Slightly more reliable HTTP 2021-12-31 00:14:24 -08:00
Jarred Sumner
3083bbadc1 Bump peechy again 2021-12-31 00:01:17 -08:00
Jarred Sumner
150ca5d686 woops 2021-12-30 23:57:06 -08:00
Jarred Sumner
58d1e2e1be 12 -> 13 2021-12-30 23:48:23 -08:00
Jarred Sumner
090bae9a94 Update zig version in Dockerfile 2021-12-30 23:36:15 -08:00
Jarred Sumner
113f0427ab Update settings.json 2021-12-30 23:21:10 -08:00
Jarred Sumner
36520d6ec1 [JavaScriptCore] Fix crash due to not requesting JIT permission by patching 2021-12-30 23:21:06 -08:00
Jarred Sumner
2a7d8df4c5 Fix issue with headers 2021-12-30 23:20:19 -08:00
Jarred Sumner
ac6a2bf2e5 fix occasional HTTP bug 2021-12-30 23:20:07 -08:00
Jarred Sumner
3c1cb806d4 Update c.zig 2021-12-30 22:32:41 -08:00
Jarred Sumner
e5587c2b31 Update global.zig 2021-12-30 22:31:41 -08:00
Jarred Sumner
8128c79e81 linux 2021-12-30 22:28:22 -08:00
Jarred Sumner
ae5e2f5af2 Update io_linux.zig 2021-12-30 22:09:51 -08:00
Jarred Sumner
a8b7b2a6b9 Update io_linux.zig 2021-12-30 22:08:14 -08:00
Jarred Sumner
111bef7f06 _ => . 2021-12-30 22:06:45 -08:00
Jarred Sumner
6f1c6fbc1a - => . 2021-12-30 22:05:44 -08:00
Jarred Sumner
31cd05191d Update bun.lockb 2021-12-30 22:04:41 -08:00
Jarred Sumner
efb8c4e36b Remove network_thread 2021-12-30 22:04:35 -08:00
Jarred Sumner
ed71379aa1 linux 2021-12-30 22:04:26 -08:00
Jarred Sumner
b1c3fce49b [internal] Move network_thread into http package 2021-12-30 21:27:27 -08:00
Jarred Sumner
e75c711c68 Upgrade to latest Zig, remove dependency on patched version of Zig (#96)
* Prepare to upgrade zig

* zig fmt

* AllocGate

* Update data_url.zig

* wip

* few files

* just headers now?

* I think everything works?

* Update mimalloc

* Update hash_map.zig

* Perf improvements to compensate for Allocgate

* Bump

* 📷

* Update bun.lockb

* Less branching

* [js parser] Slightly reduce memory usage

* Update js_parser.zig

* WIP remove unused

* [JS parser] WIP support for `with` keyword

* Remove more dead code

* Fix all the build errors!

* cleanup

* Move `network_thread` up

* Bump peechy

* Update README.md
2021-12-30 21:12:32 -08:00
Jarred Sumner
8d031f13c0 zig fmt 2021-12-29 02:49:25 -08:00
Jarred Sumner
42a73f91fe Update Makefile 2021-12-29 02:48:22 -08:00
Jarred Sumner
c508fd9b13 [bun install] Integration test 2021-12-29 02:48:16 -08:00
Jarred Sumner
c62949b98e Update http_bench.zig 2021-12-29 02:34:11 -08:00
Jarred Sumner
0b640c785f Update http_client_async.zig 2021-12-29 02:33:39 -08:00
Jarred Sumner
fe17d51b03 FIx bug in http client 2021-12-29 02:32:57 -08:00
Jarred Sumner
565cf23d92 More defensively search for shells to use if one is not found in the path 2021-12-28 04:04:29 -08:00
1492 changed files with 539179 additions and 57482 deletions

27
.devcontainer/README.md Normal file
View File

@@ -0,0 +1,27 @@
# Bun's Dev Container
To get started, login to GitHub and clone bun's GitHub repo into `/workspaces/bun`
# First time setup
```bash
gh repo clone oven-sh/bun . -- --depth=1 --progress -j8
```
# Compile bun dependencies (zig is already compiled)
```bash
make devcontainer
```
# Build bun for development
```bash
make dev
```
# Run bun
```bash
bun-debug help
```

View File

@@ -1,23 +1,21 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.209.6/containers/docker-existing-dockerfile
{
"name": "Bun (Ubuntu)",
"name": "bun (Ubuntu)",
// Sets the run context to one level up instead of the .devcontainer folder.
"context": "..",
"hostRequirements": { "memory": "16gb" },
// Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename.
"dockerFile": "../Dockerfile",
"dockerFile": "../Dockerfile.devcontainer",
// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.shell.linux": "/bin/zsh",
"zigLanguageClient.path": "/home/ubuntu/zls/zig-out/bin/zls",
"zig.zigPath": "/build/zig/zig",
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[zig]": {
"editor.defaultFormatter": "tiehuis.zig"
}
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// Add the IDs of extensions you want installed when the container is created.
@@ -29,12 +27,16 @@
"esbenp.prettier-vscode",
"xaver.clang-format"
],
"postCreateCommand": "cd /build/bun; bash /build/getting-started.sh; zsh",
"postCreateCommand": "cd /build/bun; bash /build/getting-started.sh; code /build/README.md",
"build": {
"target": "bun.devcontainer",
"cacheFrom": ["bun.devcontainer:latest"],
"args": {}
"cacheFrom": ["ghcr.io/oven-sh/bun.devcontainer:latest"],
"args": {
"BUILDARCH": "${localEnv:DOCKER_BUILDARCH:amd64}",
"--platform": "linux/${localEnv:DOCKER_BUILDARCH:amd64}",
"--tag": "ghcr.io/oven-sh/bun.devcontainer:latest"
}
},
"runArgs": [
"--ulimit",

View File

@@ -1,15 +1,15 @@
#!/bin/bash
echo "To get started, login to GitHub and clone Bun's GitHub repo into /workspaces/bun"
echo "To get started, login to GitHub and clone bun's GitHub repo into /workspaces/bun"
echo "Make sure to login with a Personal Access Token"
echo "# First time setup"
echo "gh auth login"
echo "gh repo clone Jarred-Sumner/bun . -- --depth=1 --progress -j8"
echo "gh repo clone oven-sh/bun . -- --depth=1 --progress -j8"
echo ""
echo "# Compile bun dependencies (zig is already compiled)"
echo "make devcontainer"
echo ""
echo "# Build Bun for development"
echo "# Build bun for development"
echo "make dev"
echo ""
echo "# Run bun"

View File

@@ -1,7 +1,7 @@
#!/bin/bash
chsh -s $(which zsh)
sh -c "$(curl -fsSL https://starship.rs/install.sh) -- --platform linux_musl"
sh -c "$(curl -fsSL https://starship.rs/install.sh) -- --platform linux_musl" -- --yes
echo "eval \"$(starship init zsh)\"" >>~/.zshrc
curl https://github.com/Jarred-Sumner/vscode-zig/releases/download/fork-v1/zig-0.2.5.vsix >/home/ubuntu/vscode-zig.vsix
curl https://github.com/Jarred-Sumner/vscode-zig/releases/download/march18/zig-0.2.5.vsix >/home/ubuntu/vscode-zig.vsix

View File

@@ -1,8 +1,7 @@
#!/bin/bash
curl -L https://github.com/Jarred-Sumner/vscode-zig/releases/download/fork-v1/zig-0.2.5.vsix >/home/ubuntu/vscode-zig.vsix
git clone https://github.com/zigtools/zls /home/ubuntu/zls
curl -L https://github.com/Jarred-Sumner/vscode-zig/releases/download/march18/zig-0.2.5.vsix >/home/ubuntu/vscode-zig.vsix
git clone https://github.com/oven-sh/zls /home/ubuntu/zls
cd /home/ubuntu/zls
git checkout e472fca3be6335f16032b48e40ca0d5ffda6ab0a
git submodule update --init --recursive --progress --depth=1
zig build -Drelease-fast

View File

@@ -2,7 +2,7 @@
"folders": [
{
// Source code
"name": "Bun",
"name": "bun",
"path": "bun"
},
]

View File

@@ -1,15 +0,0 @@
#!/bin/bash
set -euxo pipefail
export DOCKER_BUILDKIT=1
docker login --username bunbunbunbun
docker build -f Dockerfile.base -t bunbunbunbun/bun-test-base --target bun-test-base . --platform=linux/$BUILDARCH --build-arg BUILDARCH=$BUILDARCH
docker build -f Dockerfile.base -t bunbunbunbun/bun-base-with-zig-and-webkit --target bun-base-with-zig-and-webkit . --platform=linux/$BUILDARCH --build-arg BUILDARCH=$BUILDARCH
docker build -f Dockerfile.base -t bunbunbunbun/bun-base --target bun-base --platform=linux/$BUILDARCH . --build-arg BUILDARCH=$BUILDARCH
docker push bunbunbunbun/bun-test-base:latest
docker push bunbunbunbun/bun-base-with-zig-and-webkit:latest
docker push bunbunbunbun/bun-base:latest

View File

@@ -1,24 +0,0 @@
#!/bin/bash
set -euxo pipefail
export DOCKER_BUILDKIT=1
docker buildx build \
-t bunbunbunbun/bun-test-base:latest -f Dockerfile.base \
--target bun-test-base \
--platform=linux/$BUILDARCH --build-arg BUILDARCH=$BUILDARCH .
docker buildx build \
--target bun-base \
-f Dockerfile.base \
-t bunbunbunbun/bun-base:latest --platform=linux/$BUILDARCH \
--build-arg BUILDARCH=$BUILDARCH .
docker buildx build \
-t bunbunbunbun/bun-base-with-zig-and-webkit:latest \
-f Dockerfile.base \
--target bun-base-with-zig-and-webkit \
--platform=linux/$BUILDARCH --build-arg BUILDARCH=$BUILDARCH .
docker push bunbunbunbun/bun-test-base:latest
docker push bunbunbunbun/bun-base:latest
docker push bunbunbunbun/bun-base-with-zig-and-webkit:latest

View File

@@ -3,7 +3,7 @@
set -euxo pipefail
bun install
bun install --cwd ./integration/snippets
bun install --cwd ./integration/scripts
bun install --cwd ./test/snippets
bun install --cwd ./test/scripts
make $BUN_TEST_NAME

View File

@@ -1,6 +1,6 @@
node_modules
**/node_modules
src/javascript/jsc/WebKit/LayoutTests
src/bun.js/WebKit/LayoutTests
zig-out
zig-build
**/*.o
@@ -10,7 +10,7 @@ examples
**/.next
.git
src/javascript/jsc/WebKit
src/bun.js/WebKit
**/CMakeCache.txt
packages/**/bun
packages/**/bun-profile

5
.gitattributes vendored
View File

@@ -1,3 +1,8 @@
.vscode/launch.json linguist-generated
src/api/schema.d.ts linguist-generated
fixture.*.c linguist-generated
src/api/schema.js linguist-generated
src/bun.js/bindings/sqlite/sqlite3.c linguist-vendored
src/bun.js/bindings/sqlite/sqlite3_local.h linguist-vendored
*.lockb binary diff=lockb
*.zig text eol=lf

44
.github/ISSUE_TEMPLATE/1-bug-report.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
name: 🐛 Bug report
description: Create a report to help us improve
labels: [bug, need repro]
body:
- type: markdown
attributes:
value: |
Thank you for reporting an issue.
This issue tracker is for bugs and issues found within bun.
If you require more general support please reach out to our [discord server](https://bun.sh/discord).
Please fill in as much of the following form as you're able.
- type: input
attributes:
label: Version
description: Output of `bun -v`
- type: input
attributes:
label: Platform
description: |
UNIX: output of `uname -a`
Windows: output of `"$([Environment]::OSVersion | ForEach-Object VersionString) $(if ([Environment]::Is64BitOperatingSystem) { "x64" } else { "x86" })"` in PowerShell console
- type: textarea
attributes:
label: What steps will reproduce the bug?
description: Enter details about your bug, preferably a simple code snippet that can be run using `bun` directly without installing third-party dependencies.
- type: textarea
attributes:
label: How often does it reproduce? Is there a required condition?
- type: textarea
attributes:
label: What is the expected behavior?
description: If possible, please provide textual output instead of screenshots.
- type: textarea
attributes:
label: What do you see instead?
description: If possible, please provide textual output instead of screenshots.
validations:
required: true
- type: textarea
attributes:
label: Additional information
description: Tell us anything else you think we should know.

View File

@@ -0,0 +1,25 @@
name: 🚀 Feature request
description: Suggest an idea for this project
labels: [enhancement]
body:
- type: markdown
attributes:
value: |
Thank you for suggesting an idea to make bun better.
Please fill in as much of the following form as you're able.
For more information on development, please reach out to our [discord server](https://bun.sh/discord).
- type: textarea
attributes:
label: What is the problem this feature will solve?
validations:
required: true
- type: textarea
attributes:
label: What is the feature you are proposing to solve the problem?
validations:
required: true
- type: textarea
attributes:
label: What alternatives have you considered?

View File

@@ -0,0 +1,18 @@
name: 📗 Open an issue regarding the bun docs
description: Let us know about any problematic documentations
labels: [documentation]
body:
- type: markdown
attributes:
value: |
Thank you for wanting to make bun better!
Please fill in as much of the following form as you're able.
- type: input
attributes:
label: Affected URL(s)
- type: textarea
attributes:
label: Description of the problem
validations:
required: true

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Discord server
url: https://discord.com/invite/CXdq2DP29u
about: Please visit our Discord server for questions and support requests.

52
.github/labeler.yml vendored Normal file
View File

@@ -0,0 +1,52 @@
chore:
- any: ['*', '**/*']
all: ['!packages/*', '!packages/**/*', '!src/*', '!src/**/*', '!types/*', '!types/**/*', '!test/*', '!test/**/*', '!bench/*', '!bench/**/*', '!examples/*', '!examples/**/*']
'packages:bun':
- src/*
- src/**/*
'packages:bun-darwin-aarch64':
- packages/bun-darwin-aarch64/*
- packages/bun-darwin-aarch64/**/*
'packages:bun-error':
- packages/bun-error/*
- packages/bun-error/**/*
'packages:bun-framework-next':
- packages/bun-framework-next/*
- packages/bun-framework-next/**/*
'packages:bun-landing':
- packages/bun-landing/*
- packages/bun-landing/**/*
'packages:bun-linux-x64':
- packages/bun-linux-x64/*
- packages/bun-linux-x64/**/*
'packages:bun-macro-relay':
- packages/bun-macro-relay/*
- packages/bun-macro-relay/**/*
'packages:bun-types':
- packages/bun-types/*
- packages/bun-types/**/*
- types/bun/*
'packages:bun-wasm':
- packages/bun-wasm/*
- packages/bun-wasm/**/*
'tests':
- test/*
- test/**/*
'benchmarks':
- bench/*
- bench/**/*
'templates':
- examples/*
- examples/**/*

64
.github/labels.yml vendored Normal file
View File

@@ -0,0 +1,64 @@
- name: 'bug'
color: 'd73a4a'
- name: 'segfault'
color: 'b60205'
- name: 'documentation'
color: '0075ca'
- name: 'duplicate'
color: 'cfd3d7'
- name: 'wontfix'
color: 'cfd3d7'
- name: 'question'
color: 'd876e3'
- name: 'enhancement'
color: 'a2eeef'
- name: 'good first issue'
color: '7057ff'
- name: 'help wanted'
color: '008672'
- name: 'infrastructure'
color: '7c5f8a'
- name: 'invalid'
color: 'e4e669'
- name: 'need repro'
color: 'c66037'
- name: 'node.js'
color: '0E8A16'
- name: 'esm<>cjs'
color: '7dcde3'
- name: 'performance'
color: 'E99695'
- name: 'polyfill'
color: 'f9c5e6'
- name: 'tracking'
color: '5319E7'
- name: 'transpiler'
color: 'BFDADC'
- name: 'typescript'
color: '87511b'
- name: 'chore'
color: 'cfd3d7'
- name: 'templates'
color: 'FBCA04'
- name: 'benchmarks'
color: 'FBCA04'
- name: 'tests'
color: 'FBCA04'
- name: 'packages:bun'
color: 'FBCA04'
- name: 'packages:bun-darwin-aarch64'
color: 'FBCA04'
- name: 'packages:bun-error'
color: 'FBCA04'
- name: 'packages:bun-framework-next'
color: 'FBCA04'
- name: 'packages:bun-landing'
color: 'FBCA04'
- name: 'packages:bun-linux-x64'
color: 'FBCA04'
- name: 'packages:bun-macro-relay'
color: 'FBCA04'
- name: 'packages:bun-types'
color: 'FBCA04'
- name: 'packages:bun-wasm'
color: 'FBCA04'

47
.github/workflows/bun-dockerhub.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
name: bun-dockerhub
on:
push:
paths:
- dockerhub/Dockerfile
branches:
- main
pull_request:
paths:
- dockerhub/Dockerfile
branches:
- main
release:
types:
- published
jobs:
docker:
runs-on: ubuntu-latest
if: github.repository_owner == 'oven-sh'
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Collect metadata
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ secrets.DOCKERHUB_USERNAME }}/bun
tags: |
type=match,pattern=bun-v(\d.\d.\d),group=1
type=match,pattern=bun-v(\d.\d),group=1
type=match,pattern=bun-v(\d),group=1
type=ref,event=branch
type=ref,event=pr
- name: Login to DockerHub
if: github.event_name == 'release'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build image
uses: docker/build-push-action@v3
with:
context: ./dockerhub
push: ${{ github.event_name == 'release' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

46
.github/workflows/bun-landing.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: bun-landing
on:
push:
paths:
- packages/bun-landing/**/*
branches: [main]
jobs:
build:
name: website build
runs-on: ubuntu-latest
if: github.repository_owner == 'oven-sh'
strategy:
fail-fast: false
matrix:
node-version:
- 16
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Use Node ${{ matrix.node }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node }}
- name: Install bun
uses: xhyrom/setup-bun@v0.1.2
with:
bun-version: latest
- name: Install global dependencies
run: bun install
- name: Install package dependencies
run: cd packages/bun-landing && bun install
- name: Build
run: cd packages/bun-landing && bun run build.tsx
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: build:(landing) automated website build
token: ${{ secrets.GITHUB_TOKEN }}

143
.github/workflows/bun-linux-build.yml vendored Normal file
View File

@@ -0,0 +1,143 @@
name: bun-linux
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
TEST_TAG: bun-test'
on:
push:
branches: [main, bun-actions]
paths:
- "src/**/*"
- "test/**/*"
- "build.zig"
- "Makefile"
- "Dockerfile"
pull_request:
branches: [main]
paths:
- "src/**/*"
- "test/**/*"
- "build.zig"
- "Makefile"
- "Dockerfile"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
linux:
name: ${{matrix.tag}}
runs-on: ${{matrix.runner}}
timeout-minutes: 90
strategy:
matrix:
include:
- cpu: haswell
tag: linux-x64
arch: x86_64
build_arch: amd64
runner: linux-amd64
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-linux-amd64-lto.tar.gz"
webkit_basename: "bun-webkit-linux-amd64-lto"
- cpu: westmere
tag: linux-x64-baseline
arch: x86_64
build_arch: amd64
runner: linux-amd64
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-linux-amd64-lto.tar.gz"
webkit_basename: "bun-webkit-linux-amd64-lto"
- cpu: native
tag: linux-aarch64
arch: aarch64
build_arch: arm64
runner: linux-arm64
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-linux-arm64-lto.tar.gz"
webkit_basename: "bun-webkit-linux-arm64-lto"
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: git -c submodule."src/bun.js/WebKit".update=none submodule update --init --recursive --depth=1 --progress -j $(nproc)
- uses: docker/setup-buildx-action@v2
id: buildx
with:
install: true
- name: Run
run: |
rm -rf ${{runner.temp}}/release
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
push: false
cache-from: type=registry,ref=ghcr.io/oven-sh/bun-obj:buildcache-bust-3--${{matrix.cpu}}-${{matrix.build_arch}}
cache-to: type=registry,ref=ghcr.io/oven-sh/bun-obj:buildcache-bust-3--${{matrix.cpu}}-${{matrix.build_arch}},mode=max
build-args: |
ARCH=${{matrix.arch}}
BUILDARCH=${{matrix.build_arch}}
CPU_TARGET=${{matrix.cpu}}
WEBKIT_URL=${{matrix.webkit_url}}
GIT_SHA=${{github.sha}}
WEBKIT_BASENAME=${{matrix.webkit_basename}}
platforms: linux/${{matrix.build_arch}}
target: artifact
outputs: type=local,dest=${{runner.temp}}/release
- name: Zip
run: |
# if zip is not found
if [ ! -x "$(command -v zip)" ]; then
sudo apt-get update && sudo apt-get install -y zip --no-install-recommends
fi
if [ ! -x "$(command -v strip)" ]; then
sudo apt-get update && sudo apt-get install -y binutils --no-install-recommends
fi
cd ${{runner.temp}}/release
chmod +x bun-profile bun
mkdir bun-${{matrix.tag}}-profile
mkdir bun-${{matrix.tag}}
strip bun
mv bun-profile bun-${{matrix.tag}}-profile/bun-profile
mv bun bun-${{matrix.tag}}/bun
zip -r bun-${{matrix.tag}}-profile.zip bun-${{matrix.tag}}-profile
zip -r bun-${{matrix.tag}}.zip bun-${{matrix.tag}}
- uses: actions/upload-artifact@v3
with:
name: bun-${{matrix.tag}}-profile
path: ${{runner.temp}}/release/bun-${{matrix.tag}}-profile.zip
- uses: actions/upload-artifact@v3
with:
name: bun-${{matrix.tag}}
path: ${{runner.temp}}/release/bun-${{matrix.tag}}.zip
- name: Release
id: release
uses: softprops/action-gh-release@v1
if: github.ref == 'refs/heads/main'
with:
prerelease: true
generate_release_notes: true
body: "This is the canary release of Bun that corresponds to the commit [${{ github.sha }}]"
name: "Canary (${{github.sha}})"
tag_name: "canary"
files: |
${{runner.temp}}/release/bun-${{matrix.tag}}.zip
${{runner.temp}}/release/bun-${{matrix.tag}}-profile.zip
- uses: actions/upload-artifact@v3
with:
name: bun-obj-${{matrix.tag}}
path: ${{runner.temp}}/release/bun-obj
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}-dependencies
path: ${{runner.temp}}/release/bun-dependencies

353
.github/workflows/bun-mac-aarch64.yml vendored Normal file
View File

@@ -0,0 +1,353 @@
name: bun-macOS-aarch64
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
TEST_TAG: bun-test'
on:
push:
branches: [main, bun-actions]
paths:
- "src/**/*"
- "test/**/*"
- "build.zig"
- "Makefile"
- "Dockerfile"
pull_request:
branches: [main]
paths:
- "src/**/*"
- "test/**/*"
- "build.zig"
- "Makefile"
- "Dockerfile"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
macos-object-files:
name: macOS Object
runs-on: zig-object
strategy:
matrix:
include:
# - cpu: westmere
# arch: x86_64
# tag: bun-obj-darwin-x64-baseline
# - cpu: haswell
# arch: x86_64
# tag: bun-obj-darwin-x64
- cpu: native
arch: aarch64
tag: bun-obj-darwin-aarch64
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: git -c submodule."src/bun.js/WebKit".update=none submodule update --init --recursive --depth=1 --progress -j $(nproc)
- uses: docker/setup-buildx-action@v2
id: buildx
with:
install: true
- name: Run
run: |
rm -rf ${{runner.temp}}/release
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
push: false
tags: ghcr.io/oven-sh/bun-obj:${{github.sha}}-${{matrix.cpu}}-${{matrix.arch}}-macos
cache-from: type=registry,ref=ghcr.io/oven-sh/bun-obj:buildcache-bust-3--${{matrix.cpu}}-${{matrix.arch}}-macos
cache-to: type=registry,ref=ghcr.io/oven-sh/bun-obj:buildcache-bust-3--${{matrix.cpu}}-${{matrix.arch}}-macos,mode=max
build-args: |
ARCH=${{ matrix.arch }}
BUILDARCH=amd64
CPU_TARGET=${{ matrix.cpu }}
TRIPLET=${{matrix.arch}}-macos-none
GIT_SHA=${{github.sha}}
platforms: linux/amd64
target: build_release_obj
outputs: type=local,dest=${{runner.temp}}/release
- uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}
path: ${{runner.temp}}/release/bun.o
macOS-cpp:
name: macOS C++
runs-on: ${{ matrix.runner }}
timeout-minutes: 90
strategy:
matrix:
include:
# - cpu: westmere
# arch: x86_64
# tag: bun-darwin-x64-baseline
# obj: bun-obj-darwin-x64-baseline
# runner: macos-11
# artifact: bun-obj-darwin-x64-baseline
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# dependencies: true
# compile_obj: false
# - cpu: haswell
# arch: x86_64
# tag: bun-darwin-x64
# obj: bun-obj-darwin-x64
# runner: macos-11
# artifact: bun-obj-darwin-x64
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# dependencies: true
# compile_obj: false
# - cpu: westmere
# arch: x86_64
# tag: bun-darwin-x64-baseline
# obj: bun-obj-darwin-x64-baseline
# runner: macos-11
# artifact: bun-obj-darwin-x64-baseline
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# dependencies: false
# compile_obj: true
# - cpu: haswell
# arch: x86_64
# tag: bun-darwin-x64
# obj: bun-obj-darwin-x64
# runner: macos-11
# artifact: bun-obj-darwin-x64
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# dependencies: false
# compile_obj: true
- cpu: native
arch: aarch64
tag: bun-darwin-aarch64
obj: bun-obj-darwin-aarch64
artifact: bun-obj-darwin-aarch64
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-arm64-lto.tar.gz"
runner: macos-arm64
dependencies: true
compile_obj: true
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress -j $(sysctl -n hw.ncpu)
- name: Install dependencies
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
brew install rust llvm@13 pkg-config coreutils libtool cmake libiconv automake openssl@1.1 ninja gnu-sed pkg-config esbuild --force
echo "export PATH=$(brew --prefix coreutils)/libexec/gnubin:\$PATH" >> $GITHUB_ENV
echo "export PATH=$(brew --prefix llvm@13)/bin:\$PATH" >> $GITHUB_ENV
brew link --overwrite llvm@13
- name: Download WebKit
if: matrix.compile_obj
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
BUN_RELEASE_DIR: ${{ runner.temp }}/release
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
rm -rf $JSC_BASE_DIR
mkdir -p $JSC_BASE_DIR
curl -L ${{ matrix.webkit_url }} | tar -xz -C $JSC_BASE_DIR --strip-components=1
- name: Compile dependencies
if: matrix.dependencies
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
BUN_RELEASE_DIR: ${{ runner.temp }}/release
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
mkdir -p $BUN_DEPS_OUT_DIR
make vendor-without-check
- name: Compile C++
if: matrix.compile_obj
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
BUN_RELEASE_DIR: ${{ runner.temp }}/release
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
mkdir -p $OBJ_DIR
make clean-bindings
make -j $(sysctl -n hw.ncpu) release-bindings
- name: Upload C++
if: matrix.compile_obj
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}-cpp
path: ${{ runner.temp }}/bun-cpp-obj
- name: Upload Dependencies
if: matrix.dependencies
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}-deps
path: ${{runner.temp}}/bun-deps
macOS:
name: macOS Link
runs-on: ${{ matrix.runner }}
needs: [macOS-cpp, macos-object-files]
timeout-minutes: 90
strategy:
matrix:
include:
# - cpu: westmere
# arch: x86_64
# tag: bun-darwin-x64-baseline
# obj: bun-obj-darwin-x64-baseline
# package: bun-darwin-x64
# runner: macos-11
# artifact: bun-obj-darwin-x64-baseline
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# - cpu: haswell
# arch: x86_64
# tag: bun-darwin-x64
# obj: bun-obj-darwin-x64
# package: bun-darwin-x64
# runner: macos-11
# artifact: bun-obj-darwin-x64
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
- cpu: native
arch: aarch64
tag: bun-darwin-aarch64
obj: bun-obj-darwin-aarch64
package: bun-darwin-aarch64
artifact: bun-obj-darwin-aarch64
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-arm64-lto.tar.gz"
runner: macos-arm64
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress -j $(sysctl -n hw.ncpu)
- name: Install dependencies
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
brew install rust llvm@13 pkg-config coreutils libtool cmake libiconv automake openssl@1.1 ninja gnu-sed pkg-config esbuild --force
echo "export PATH=$(brew --prefix coreutils)/libexec/gnubin:\$PATH" >> $GITHUB_ENV
echo "export PATH=$(brew --prefix llvm@13)/bin:\$PATH" >> $GITHUB_ENV
brew link --overwrite llvm@13
- name: Download WebKit
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
rm -rf $JSC_BASE_DIR
mkdir -p $JSC_BASE_DIR
curl -L ${{ matrix.webkit_url }} | tar -xz -C $JSC_BASE_DIR --strip-components=1
- name: Download C++
uses: actions/download-artifact@v3
with:
name: ${{ matrix.tag }}-cpp
path: ${{ runner.temp }}/bun-cpp-obj
- name: Download Dependencies
uses: actions/download-artifact@v3
with:
name: ${{ matrix.tag }}-deps
path: ${{ runner.temp }}/bun-deps
- name: Download Object
uses: actions/download-artifact@v3
with:
name: ${{ matrix.obj }}
path: ${{ runner.temp }}/release
- name: Link
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
BUN_RELEASE_DIR: ${{ runner.temp }}/release
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
rm -rf packages/${{ matrix.package }}
mkdir -p packages/${{ matrix.package }}
mv ${{ runner.temp }}/release/* packages/${{ matrix.package }}/
make bun-link-lld-release copy-to-bun-release-dir-bin
- name: Zip
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
BUN_RELEASE_DIR: ${{ runner.temp }}/release
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
cd ${{runner.temp}}/release
chmod +x bun-profile bun
mkdir ${{matrix.tag}}-profile
mkdir ${{matrix.tag}}
/usr/bin/strip -S bun
mv bun-profile ${{matrix.tag}}-profile/bun-profile
mv bun ${{matrix.tag}}/bun
zip -r ${{matrix.tag}}-profile.zip ${{matrix.tag}}-profile
zip -r ${{matrix.tag}}.zip ${{matrix.tag}}
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}-profile
path: ${{runner.temp}}/release/${{matrix.tag}}-profile.zip
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}
path: ${{runner.temp}}/release/${{matrix.tag}}.zip
- name: Release
id: release
uses: softprops/action-gh-release@v1
if: github.ref == 'refs/heads/main'
with:
prerelease: true
generate_release_notes: true
body: "This is the canary release of Bun that corresponds to the commit [${{ github.sha }}]"
name: "Canary (${{github.sha}})"
tag_name: "canary"
files: |
${{runner.temp}}/release/${{matrix.tag}}.zip
${{runner.temp}}/release/${{matrix.tag}}-profile.zip

View File

@@ -0,0 +1,350 @@
name: bun-macOS-x64-baseline
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
TEST_TAG: bun-test'
on:
push:
branches: [main, bun-actions]
paths:
- "src/**/*"
- "test/**/*"
- "build.zig"
- "Makefile"
- "Dockerfile"
pull_request:
branches: [main]
paths:
- "src/**/*"
- "test/**/*"
- "build.zig"
- "Makefile"
- "Dockerfile"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
macos-object-files:
name: macOS Object
runs-on: zig-object
strategy:
matrix:
include:
- cpu: westmere
arch: x86_64
tag: bun-obj-darwin-x64-baseline
# - cpu: haswell
# arch: x86_64
# tag: bun-obj-darwin-x64
# - cpu: native
# arch: aarch64
# tag: bun-obj-darwin-aarch64
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: git -c submodule."src/bun.js/WebKit".update=none submodule update --init --recursive --depth=1 --progress -j $(nproc)
- uses: docker/setup-buildx-action@v2
id: buildx
with:
install: true
- name: Run
run: |
rm -rf ${{runner.temp}}/release
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
push: false
tags: ghcr.io/oven-sh/bun-obj:${{github.sha}}-${{matrix.cpu}}-${{matrix.arch}}-macos-baseline
cache-from: type=registry,ref=ghcr.io/oven-sh/bun-obj:buildcache-bust-3--${{matrix.cpu}}-${{matrix.arch}}-macos-baseline
cache-to: type=registry,ref=ghcr.io/oven-sh/bun-obj:buildcache-bust-3--${{matrix.cpu}}-${{matrix.arch}}-macos-baseline,mode=max
build-args: |
ARCH=${{ matrix.arch }}
BUILDARCH=amd64
CPU_TARGET=${{ matrix.cpu }}
TRIPLET=${{matrix.arch}}-macos-none
GIT_SHA=${{github.sha}}
platforms: linux/amd64
target: build_release_obj
outputs: type=local,dest=${{runner.temp}}/release
- uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}
path: ${{runner.temp}}/release/bun.o
macOS-cpp:
name: macOS C++
runs-on: ${{ matrix.runner }}
timeout-minutes: 90
strategy:
matrix:
include:
- cpu: westmere
arch: x86_64
tag: bun-darwin-x64-baseline
obj: bun-obj-darwin-x64-baseline
runner: macos-11
artifact: bun-obj-darwin-x64-baseline
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
dependencies: true
compile_obj: false
# - cpu: haswell
# arch: x86_64
# tag: bun-darwin-x64
# obj: bun-obj-darwin-x64
# runner: macos-11
# artifact: bun-obj-darwin-x64
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# dependencies: true
# compile_obj: false
- cpu: westmere
arch: x86_64
tag: bun-darwin-x64-baseline
obj: bun-obj-darwin-x64-baseline
runner: macos-11
artifact: bun-obj-darwin-x64-baseline
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
dependencies: false
compile_obj: true
# - cpu: haswell
# arch: x86_64
# tag: bun-darwin-x64
# obj: bun-obj-darwin-x64
# runner: macos-11
# artifact: bun-obj-darwin-x64
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# dependencies: false
# compile_obj: true
# - cpu: native
# arch: aarch64
# tag: bun-darwin-aarch64
# obj: bun-obj-darwin-aarch64
# artifact: bun-obj-darwin-aarch64
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# runner: macos-arm64
# dependencies: true
# compile_obj: true
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress -j $(sysctl -n hw.ncpu)
- name: Install dependencies
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
brew install rust llvm@13 pkg-config coreutils libtool cmake libiconv automake openssl@1.1 ninja gnu-sed pkg-config esbuild --force
echo "export PATH=$(brew --prefix coreutils)/libexec/gnubin:\$PATH" >> $GITHUB_ENV
echo "export PATH=$(brew --prefix llvm@13)/bin:\$PATH" >> $GITHUB_ENV
brew link --overwrite llvm@13
- name: Download WebKit
if: matrix.compile_obj
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
rm -rf $JSC_BASE_DIR
mkdir -p $JSC_BASE_DIR
curl -L ${{ matrix.webkit_url }} | tar -xz -C $JSC_BASE_DIR --strip-components=1
- name: Compile dependencies
if: matrix.dependencies
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
mkdir -p $BUN_DEPS_OUT_DIR
make vendor-without-check
- name: Compile C++
if: matrix.compile_obj
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
mkdir -p $OBJ_DIR
make -j $(sysctl -n hw.ncpu) release-bindings
- name: Upload C++
if: matrix.compile_obj
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}-cpp
path: ${{ runner.temp }}/bun-cpp-obj
- name: Upload Dependencies
if: matrix.dependencies
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}-deps
path: ${{runner.temp}}/bun-deps
macOS:
name: macOS Link
runs-on: ${{ matrix.runner }}
needs: [macOS-cpp, macos-object-files]
timeout-minutes: 90
strategy:
matrix:
include:
- cpu: westmere
arch: x86_64
tag: bun-darwin-x64-baseline
obj: bun-obj-darwin-x64-baseline
package: bun-darwin-x64
runner: macos-11
artifact: bun-obj-darwin-x64-baseline
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# - cpu: haswell
# arch: x86_64
# tag: bun-darwin-x64
# obj: bun-obj-darwin-x64
# package: bun-darwin-x64
# runner: macos-11
# artifact: bun-obj-darwin-x64
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# - cpu: native
# arch: aarch64
# tag: bun-darwin-aarch64
# obj: bun-obj-darwin-aarch64
# package: bun-darwin-aarch64
# artifact: bun-obj-darwin-aarch64
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# runner: macos-arm64
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress -j $(sysctl -n hw.ncpu)
- name: Install dependencies
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
brew install rust llvm@13 pkg-config coreutils libtool cmake libiconv automake openssl@1.1 ninja gnu-sed pkg-config esbuild --force
echo "export PATH=$(brew --prefix coreutils)/libexec/gnubin:\$PATH" >> $GITHUB_ENV
echo "export PATH=$(brew --prefix llvm@13)/bin:\$PATH" >> $GITHUB_ENV
brew link --overwrite llvm@13
- name: Download WebKit
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
BUN_RELEASE_DIR: ${{ runner.temp }}/release
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
rm -rf $JSC_BASE_DIR
mkdir -p $JSC_BASE_DIR
curl -L ${{ matrix.webkit_url }} | tar -xz -C $JSC_BASE_DIR --strip-components=1
- name: Download C++
uses: actions/download-artifact@v3
with:
name: ${{ matrix.tag }}-cpp
path: ${{ runner.temp }}/bun-cpp-obj
- name: Download Dependencies
uses: actions/download-artifact@v3
with:
name: ${{ matrix.tag }}-deps
path: ${{ runner.temp }}/bun-deps
- name: Download Object
uses: actions/download-artifact@v3
with:
name: ${{ matrix.obj }}
path: ${{ runner.temp }}/release
- name: Link
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
BUN_RELEASE_DIR: ${{ runner.temp }}/release
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
rm -rf packages/${{ matrix.package }}
mkdir -p packages/${{ matrix.package }}
mv ${{ runner.temp }}/release/* packages/${{ matrix.package }}/
make bun-link-lld-release copy-to-bun-release-dir-bin
- name: Zip
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
BUN_RELEASE_DIR: ${{ runner.temp }}/release
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
cd ${{runner.temp}}/release
chmod +x bun-profile bun
mkdir ${{matrix.tag}}-profile
mkdir ${{matrix.tag}}
/usr/bin/strip -S bun
mv bun-profile ${{matrix.tag}}-profile/bun-profile
mv bun ${{matrix.tag}}/bun
zip -r ${{matrix.tag}}-profile.zip ${{matrix.tag}}-profile
zip -r ${{matrix.tag}}.zip ${{matrix.tag}}
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}-profile
path: ${{runner.temp}}/release/${{matrix.tag}}-profile.zip
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}
path: ${{runner.temp}}/release/${{matrix.tag}}.zip
- name: Release
id: release
uses: softprops/action-gh-release@v1
if: github.ref == 'refs/heads/main'
with:
prerelease: true
generate_release_notes: true
body: "This is the canary release of Bun that corresponds to the commit [${{ github.sha }}]"
name: "Canary (${{github.sha}})"
tag_name: "canary"
files: |
${{runner.temp}}/release/${{matrix.tag}}.zip
${{runner.temp}}/release/${{matrix.tag}}-profile.zip

352
.github/workflows/bun-mac-x64.yml vendored Normal file
View File

@@ -0,0 +1,352 @@
name: bun-macOS-x64
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
TEST_TAG: bun-test'
on:
push:
branches: [main, bun-actions]
paths:
- "src/**/*"
- "test/**/*"
- "build.zig"
- "Makefile"
- "Dockerfile"
pull_request:
branches: [main]
paths:
- "src/**/*"
- "test/**/*"
- "build.zig"
- "Makefile"
- "Dockerfile"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
macos-object-files:
name: macOS Object
runs-on: zig-object
strategy:
matrix:
include:
# - cpu: westmere
# arch: x86_64
# tag: bun-obj-darwin-x64-baseline
- cpu: haswell
arch: x86_64
tag: bun-obj-darwin-x64
# - cpu: native
# arch: aarch64
# tag: bun-obj-darwin-aarch64
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: git -c submodule."src/bun.js/WebKit".update=none submodule update --init --recursive --depth=1 --progress -j $(nproc)
- uses: docker/setup-buildx-action@v2
id: buildx
with:
install: true
- name: Run
run: |
rm -rf ${{runner.temp}}/release
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
push: false
tags: ghcr.io/oven-sh/bun-obj:${{github.sha}}-${{matrix.cpu}}-${{matrix.arch}}-macos
cache-from: type=registry,ref=ghcr.io/oven-sh/bun-obj:buildcache-bust-3--${{matrix.cpu}}-${{matrix.arch}}-macos
cache-to: type=registry,ref=ghcr.io/oven-sh/bun-obj:buildcache-bust-3--${{matrix.cpu}}-${{matrix.arch}}-macos,mode=max
build-args: |
ARCH=${{ matrix.arch }}
BUILDARCH=amd64
CPU_TARGET=${{ matrix.cpu }}
TRIPLET=${{matrix.arch}}-macos-none
GIT_SHA=${{github.sha}}
platforms: linux/amd64
target: build_release_obj
outputs: type=local,dest=${{runner.temp}}/release
- uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}
path: ${{runner.temp}}/release/bun.o
macOS-cpp:
name: macOS C++
runs-on: ${{ matrix.runner }}
timeout-minutes: 90
strategy:
matrix:
include:
# - cpu: westmere
# arch: x86_64
# tag: bun-darwin-x64-baseline
# obj: bun-obj-darwin-x64-baseline
# runner: macos-11
# artifact: bun-obj-darwin-x64-baseline
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# dependencies: true
# compile_obj: false
- cpu: haswell
arch: x86_64
tag: bun-darwin-x64
obj: bun-obj-darwin-x64
runner: macos-11
artifact: bun-obj-darwin-x64
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
dependencies: true
compile_obj: false
# - cpu: westmere
# arch: x86_64
# tag: bun-darwin-x64-baseline
# obj: bun-obj-darwin-x64-baseline
# runner: macos-11
# artifact: bun-obj-darwin-x64-baseline
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# dependencies: false
# compile_obj: true
- cpu: haswell
arch: x86_64
tag: bun-darwin-x64
obj: bun-obj-darwin-x64
runner: macos-11
artifact: bun-obj-darwin-x64
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
dependencies: false
compile_obj: true
# - cpu: native
# arch: aarch64
# tag: bun-darwin-aarch64
# obj: bun-obj-darwin-aarch64
# artifact: bun-obj-darwin-aarch64
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-arm64-lto.tar.gz"
# runner: macos-arm64
# dependencies: true
# compile_obj: true
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress -j $(sysctl -n hw.ncpu)
- name: Install dependencies
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
brew install rust llvm@13 pkg-config coreutils libtool cmake libiconv automake openssl@1.1 ninja gnu-sed pkg-config esbuild --force
echo "export PATH=$(brew --prefix coreutils)/libexec/gnubin:\$PATH" >> $GITHUB_ENV
echo "export PATH=$(brew --prefix llvm@13)/bin:\$PATH" >> $GITHUB_ENV
brew link --overwrite llvm@13
- name: Download WebKit
if: matrix.compile_obj
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
rm -rf $JSC_BASE_DIR
mkdir -p $JSC_BASE_DIR
curl -L ${{ matrix.webkit_url }} | tar -xz -C $JSC_BASE_DIR --strip-components=1
- name: Compile dependencies
if: matrix.dependencies
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
mkdir -p $BUN_DEPS_OUT_DIR
make vendor-without-check
- name: Compile C++
if: matrix.compile_obj
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
mkdir -p $OBJ_DIR
make -j $(sysctl -n hw.ncpu) release-bindings
- name: Upload C++
if: matrix.compile_obj
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}-cpp
path: ${{ runner.temp }}/bun-cpp-obj
- name: Upload Dependencies
if: matrix.dependencies
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}-deps
path: ${{runner.temp}}/bun-deps
macOS:
name: macOS Link
runs-on: ${{ matrix.runner }}
needs: [macOS-cpp, macos-object-files]
timeout-minutes: 90
strategy:
matrix:
include:
# - cpu: westmere
# arch: x86_64
# tag: bun-darwin-x64-baseline
# obj: bun-obj-darwin-x64-baseline
# package: bun-darwin-x64
# runner: macos-11
# artifact: bun-obj-darwin-x64-baseline
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
- cpu: haswell
arch: x86_64
tag: bun-darwin-x64
obj: bun-obj-darwin-x64
package: bun-darwin-x64
runner: macos-11
artifact: bun-obj-darwin-x64
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-amd64-lto.tar.gz"
# - cpu: native
# arch: aarch64
# tag: bun-darwin-aarch64
# obj: bun-obj-darwin-aarch64
# package: bun-darwin-aarch64
# artifact: bun-obj-darwin-aarch64
# webkit_url: "https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-macos-arm64-lto.tar.gz"
# runner: macos-arm64
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress -j $(sysctl -n hw.ncpu)
- name: Install dependencies
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
brew install rust llvm@13 pkg-config coreutils libtool cmake libiconv automake openssl@1.1 ninja gnu-sed pkg-config esbuild --force
echo "export PATH=$(brew --prefix coreutils)/libexec/gnubin:\$PATH" >> $GITHUB_ENV
echo "export PATH=$(brew --prefix llvm@13)/bin:\$PATH" >> $GITHUB_ENV
brew link --overwrite llvm@13
- name: Download WebKit
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
BUN_RELEASE_DIR: ${{ runner.temp }}/release
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
rm -rf $JSC_BASE_DIR
mkdir -p $JSC_BASE_DIR
curl -L ${{ matrix.webkit_url }} | tar -xz -C $JSC_BASE_DIR --strip-components=1
- name: Download C++
uses: actions/download-artifact@v3
with:
name: ${{ matrix.tag }}-cpp
path: ${{ runner.temp }}/bun-cpp-obj
- name: Download Dependencies
uses: actions/download-artifact@v3
with:
name: ${{ matrix.tag }}-deps
path: ${{ runner.temp }}/bun-deps
- name: Download Object
uses: actions/download-artifact@v3
with:
name: ${{ matrix.obj }}
path: ${{ runner.temp }}/release
- name: Link
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
BUN_RELEASE_DIR: ${{ runner.temp }}/release
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
rm -rf packages/${{ matrix.package }}
mkdir -p packages/${{ matrix.package }}
mv ${{ runner.temp }}/release/* packages/${{ matrix.package }}/
make bun-link-lld-release copy-to-bun-release-dir-bin
- name: Zip
env:
CPU_TARGET: ${{ matrix.cpu }}
JSC_BASE_DIR: ${{ runner.temp }}/bun-webkit
JSC_LIB: ${{ runner.temp }}/bun-webkit/lib
BUN_DEPLOY_DIR: ${{ runner.temp }}/release/bun
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
BUN_RELEASE_DIR: ${{ runner.temp }}/release
WEBKIT_RELEASE_DIR: ${{ runner.temp }}/bun-webkit
WEBKIT_RELEASE_DIR_LTO: ${{ runner.temp }}/bun-webkit
run: |
cd ${{runner.temp}}/release
chmod +x bun-profile bun
mkdir ${{matrix.tag}}-profile
mkdir ${{matrix.tag}}
/usr/bin/strip -S bun
mv bun-profile ${{matrix.tag}}-profile/bun-profile
mv bun ${{matrix.tag}}/bun
zip -r ${{matrix.tag}}-profile.zip ${{matrix.tag}}-profile
zip -r ${{matrix.tag}}.zip ${{matrix.tag}}
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}-profile
path: ${{runner.temp}}/release/${{matrix.tag}}-profile.zip
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}
path: ${{runner.temp}}/release/${{matrix.tag}}.zip
- name: Release
id: release
uses: softprops/action-gh-release@v1
if: github.ref == 'refs/heads/main'
with:
prerelease: true
generate_release_notes: true
body: "This is the canary release of Bun that corresponds to the commit [${{ github.sha }}]"
name: "Canary (${{github.sha}})"
tag_name: "canary"
files: |
${{runner.temp}}/release/${{matrix.tag}}.zip
${{runner.temp}}/release/${{matrix.tag}}-profile.zip

View File

@@ -1,161 +0,0 @@
name: bun
on:
push:
branches: [main, bun-actions]
paths-ignore:
- "examples/**"
- "bench/**"
- "README.*"
- "LICENSE"
- ".vscode"
- ".devcontainer"
pull_request:
branches: [main]
paths-ignore:
- "examples/**"
- "bench/**"
- README.*
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
TEST_TAG: bun-test'
jobs:
e2e:
runs-on: self-hosted
name: "Integration tests"
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Checkout submodules
run: git -c submodule."src/javascript/jsc/WebKit".update=none submodule update --init --recursive --depth=1 --progress -j 8
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to Dockerhub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Pull Base Image
run: bash .docker/pull.sh
- name: Build tests
uses: docker/build-push-action@v2
with:
context: .
target: test_base
tags: bun-test:latest
load: true
cache-from: type=gha
cache-to: type=gha,mode=max
builder: ${{ steps.buildx.outputs.name }}
- name: Run test-with-hmr
env:
BUN_TEST_NAME: test-with-hmr
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
RUNNER_TEMP: ${RUNNER_TEMP}
run: bash .docker/runner.sh
- name: Run test-no-hmr
env:
BUN_TEST_NAME: test-no-hmr
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
RUNNER_TEMP: ${RUNNER_TEMP}
run: bash .docker/runner.sh
- name: Run test-bun-create-next
env:
RUNNER_TEMP: ${RUNNER_TEMP}
BUN_TEST_NAME: test-create-next
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
run: bash .docker/runner.sh
- name: Run test-bun-create-react
env:
RUNNER_TEMP: ${RUNNER_TEMP}
BUN_TEST_NAME: test-create-react
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
run: bash .docker/runner.sh
- name: Run test-bun-run
env:
RUNNER_TEMP: ${RUNNER_TEMP}
BUN_TEST_NAME: test-bun-run
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
run: bash .docker/runner.sh
# This is commented out because zig test does not work on the CI
# Which sucks
# zig-unit-tests:
# runs-on: self-hosted
# name: "Unit tests (Zig)"
# steps:
# - name: Checkout
# uses: actions/checkout@v2
# - name: Checkout submodules
# run: git -c submodule."src/javascript/jsc/WebKit".update=none submodule update --init --recursive --depth=1 --progress -j 8
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v1
# - name: Login to Dockerhub
# uses: docker/login-action@v1
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_PASSWORD }}
# - name: Pull Base Image
# run: bash .docker/pull.sh
# - name: Build tests
# uses: docker/build-push-action@v2
# with:
# context: .
# target: build_unit
# tags: bun-unit-tests:latest
# load: true
# cache-from: type=gha
# cache-to: type=gha,mode=max
# builder: ${{ steps.buildx.outputs.name }}
# - name: Run tests
# env:
# GITHUB_WORKSPACE: $GITHUB_WORKSPACE
# RUNNER_TEMP: ${RUNNER_TEMP}
# run: bash .docker/unit-tests.sh
release:
runs-on: self-hosted
needs: ["e2e"]
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Checkout submodules
run: git -c submodule."src/javascript/jsc/WebKit".update=none submodule update --init --recursive --depth=1 --progress -j 8
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: jarredsumner
password: ${{ secrets.DOCKERHUB_ALT }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
with:
install: true
- name: Pull Base Image
run: bash .docker/pull.sh
- name: Build release image
uses: docker/build-push-action@v2
with:
context: .
target: release
tags: |
ghcr.io/jarred-sumner/bun:${{github.sha}}
ghcr.io/jarred-sumner/bun:edge
jarredsumner/bun:${{github.sha}}
jarredsumner/bun:edge
platforms: |
linux/amd64
labels: |
org.opencontainers.image.title=Bun
org.opencontainers.image.description=Bun is a fast bundler, transpiler, JavaScript Runtime environment and package manager for web software. The image is an Ubuntu 20.04 image with bun preinstalled into /opt/bun.
org.opencontainers.image.vendor=Bun
org.opencontainers.image.source=https://github.com/Jarred-Sumner/bun
org.opencontainers.image.url=https://bun.sh
builder: ${{ steps.buildx.outputs.name }}
push: true

24
.github/workflows/label-sync.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
name: Label Sync
on:
schedule:
- cron: '0 0 * * *'
push:
branches:
- main
paths:
- '.github/labels.yml'
workflow_dispatch:
jobs:
label-sync:
name: Label sync
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Sync labels
uses: crazy-max/ghaction-github-labeler@v4
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

14
.github/workflows/labeler.yml vendored Normal file
View File

@@ -0,0 +1,14 @@
name: 'Labeler'
on:
pull_request_target:
jobs:
labeler:
runs-on: ubuntu-latest
steps:
- name: Label PR
uses: actions/labeler@v4
with:
repo-token: '${{ secrets.GITHUB_TOKEN }}'
sync-labels: true

20
.gitignore vendored
View File

@@ -10,8 +10,10 @@ node_modules
.swcrc
yarn.lock
dist
*.tmp
*.log
*.out.js
*.out.refresh.js
/package-lock.json
build
*.wat
@@ -83,3 +85,21 @@ src/deps/s2n-tls
.npm.gz
bun-binary
src/deps/PLCrashReporter/
*.dSYM
*.crash
misctools/sha
packages/bun-wasm/*.mjs
packages/bun-wasm/*.cjs
packages/bun-wasm/*.map
packages/bun-wasm/*.js
packages/bun-wasm/*.d.ts
*.bc
src/fallback.version
src/runtime.version
*.sqlite
*.database
*.db

86
.gitmodules vendored
View File

@@ -1,27 +1,71 @@
# [submodule "src/deps/zig-clap"]
# path = src/deps/zig-clap
# url = https://github.com/Hejsil/zig-clap
[submodule "src/deps/picohttpparser"]
path = src/deps/picohttpparser
url = https://github.com/h2o/picohttpparser.git
ignore = dirty
path = src/deps/picohttpparser
url = https://github.com/h2o/picohttpparser.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/javascript/jsc/WebKit"]
path = src/javascript/jsc/WebKit
url = https://github.com/Jarred-Sumner/WebKit.git
ignore = dirty
path = src/bun.js/WebKit
url = https://github.com/Jarred-Sumner/WebKit.git
ignore = dirty
depth = 1
update = none
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/mimalloc"]
path = src/deps/mimalloc
url = https://github.com/microsoft/mimalloc.git
ignore = dirty
path = src/deps/mimalloc
url = https://github.com/Jarred-Sumner/mimalloc.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/zlib"]
path = src/deps/zlib
url = https://github.com/cloudflare/zlib.git
ignore = dirty
path = src/deps/zlib
url = https://github.com/cloudflare/zlib.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/libarchive"]
path = src/deps/libarchive
url = https://github.com/libarchive/libarchive.git
ignore = dirty
path = src/deps/libarchive
url = https://github.com/libarchive/libarchive.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/boringssl"]
path = src/deps/boringssl
url = https://github.com/google/boringssl.git
ignore = dirty
path = src/deps/boringssl
url = https://github.com/google/boringssl.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/libbacktrace"]
path = src/deps/libbacktrace
url = https://github.com/ianlancetaylor/libbacktrace
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/lol-html"]
path = src/deps/lol-html
url = https://github.com/cloudflare/lol-html
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/uws"]
path = src/deps/uws
url = https://github.com/Jarred-Sumner/uWebSockets
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = true
[submodule "src/deps/tinycc"]
path = src/deps/tinycc
url = https://github.com/Jarred-Sumner/tinycc.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false

View File

@@ -0,0 +1,25 @@
#!/bin/bash
set -euxo pipefail
WEBKIT_VERSION=$(git rev-parse HEAD:./src/bun.js/WebKit)
MIMALLOC_VERSION=$(git rev-parse HEAD:./src/deps/mimalloc)
LIBARCHIVE_VERSION=$(git rev-parse HEAD:./src/deps/libarchive)
PICOHTTPPARSER_VERSION=$(git rev-parse HEAD:./src/deps/picohttpparser)
BORINGSSL_VERSION=$(git rev-parse HEAD:./src/deps/boringssl)
ZLIB_VERSION=$(git rev-parse HEAD:./src/deps/zlib)
UWS_VERSION=$(git rev-parse HEAD:./src/deps/uws)
rm -rf src/generated_versions_list.zig
echo "// AUTO-GENERATED FILE. Created via .scripts/write-versions.sh" >src/generated_versions_list.zig
echo "" >>src/generated_versions_list.zig
echo "pub const boringssl = \"$BORINGSSL_VERSION\";" >>src/generated_versions_list.zig
echo "pub const libarchive = \"$LIBARCHIVE_VERSION\";" >>src/generated_versions_list.zig
echo "pub const mimalloc = \"$MIMALLOC_VERSION\";" >>src/generated_versions_list.zig
echo "pub const picohttpparser = \"$PICOHTTPPARSER_VERSION\";" >>src/generated_versions_list.zig
echo "pub const uws = \"$UWS_VERSION\";" >>src/generated_versions_list.zig
echo "pub const webkit = \"$WEBKIT_VERSION\";" >>src/generated_versions_list.zig
echo "pub const zig = @import(\"std\").fmt.comptimePrint(\"{}\", .{@import(\"builtin\").zig_version});" >>src/generated_versions_list.zig
echo "pub const zlib = \"$ZLIB_VERSION\";" >>src/generated_versions_list.zig
echo "" >>src/generated_versions_list.zig
zig fmt src/generated_versions_list.zig

View File

@@ -2,26 +2,24 @@
"configurations": [
{
"name": "Mac",
"forcedInclude": [
"${workspaceFolder}/src/javascript/jsc/bindings/root.h"
],
"forcedInclude": ["${workspaceFolder}/src/bun.js/bindings/root.h"],
"includePath": [
"${workspaceFolder}/src/JavaScript/jsc/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders/",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/WebKitBuild/Release/WTF/Headers",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/WebKitBuild/Release/*",
"${workspaceFolder}/src/JavaScript/jsc/bindings/",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/Source/bmalloc/",
"${workspaceFolder}/src/javascript/jsc/WebKit/WebKitBuild/Release/ICU/Headers/"
"${workspaceFolder}/src/bun.js/WebKit/WebKitBuild/Release/ICU/Headers/"
],
"browse": {
"path": [
"${workspaceFolder}/src/javascript/jsc/bindings/*",
"${workspaceFolder}/src/bun.js/bindings/*",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders/",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/WebKitBuild/Release/WTF/Headers/**",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/WebKitBuild/Release/*",
"${workspaceFolder}/src/JavaScript/jsc/bindings/**",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/Source/bmalloc/**",
"${workspaceFolder}/src/javascript/jsc/WebKit/WebKitBuild/Release/ICU/Headers/"
"${workspaceFolder}/src/bun.js/WebKit/WebKitBuild/Release/ICU/Headers/"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ".vscode/cppdb"

8
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,8 @@
{
"recommendations": [
"AugusteRame.zls-vscode",
"esbenp.prettier-vscode",
"xaver.clang-format",
"vadimcn.vscode-lldb"
]
}

744
.vscode/launch.json generated vendored
View File

@@ -1,13 +1,98 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "bun test",
"program": "bun-debug",
"args": ["wiptest", "jsc"],
"cwd": "${workspaceFolder}/test",
"env": {
"FORCE_COLOR": "1"
},
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "bun test (all)",
"program": "bun-debug",
"args": ["wiptest"],
"cwd": "${workspaceFolder}/test",
"env": {
"FORCE_COLOR": "1"
},
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "bun run current file",
"program": "bun-debug",
"args": ["${file}"],
"cwd": "${file}/../../",
"env": {
"FORCE_COLOR": "1"
},
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "bun run",
"program": "bun-debug",
"args": ["check.tsx", "-c"],
"cwd": "${env:HOME}/Build/react-ssr",
"env": {
"FORCE_COLOR": "1"
},
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "bun http example",
"program": "bun-debug",
"args": ["run", "examples/http.ts"],
"cwd": "${workspaceFolder}",
"env": {
"FORCE_COLOR": "1"
},
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "bun http file example",
"program": "bun-debug",
"args": ["run", "examples/bun/http-file.ts"],
"cwd": "${workspaceFolder}",
"env": {
"FORCE_COLOR": "1"
},
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "bun html-rewriter example",
"program": "bun-debug",
"args": ["run", "examples/bun/html-rewriter.ts"],
"cwd": "${workspaceFolder}",
"env": {
"FORCE_COLOR": "1"
},
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "HTTP bench",
"program": "${workspaceFolder}/misctools/http_bench",
"args": ["https://example.com", "--count=80"],
"args": ["https://twitter.com", "--count=100"],
"cwd": "${workspaceFolder}",
"console": "internalConsole"
},
@@ -16,664 +101,9 @@
"request": "launch",
"name": "fetch debug",
"program": "${workspaceFolder}/misctools/fetch",
"args": ["https://lodash.com", "--verbose"],
"args": ["https://example.com", "--verbose"],
"cwd": "${workspaceFolder}",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "hop",
"program": "hop",
"args": ["swc-linux-arm64-musl-12.0.3.tgz"],
"cwd": "/Users/jarred/Downloads/hop-test",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "hop extract",
"program": "hop",
"args": ["swc-linux-arm64-musl-12.0.3.hop"],
"cwd": "/Users/jarred/Downloads/hop-test",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "fetch debug #2",
"program": "${workspaceFolder}/misctools/fetch",
"args": ["https://registry.npmjs.org/react", "--verbose"],
"cwd": "${workspaceFolder}",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "fetch debug #3",
"program": "${workspaceFolder}/misctools/fetch",
"args": ["http://example.com/", "--verbose"],
"cwd": "${workspaceFolder}",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "bun create debug",
"program": "bun-debug",
"args": ["create", "hanford/trends", "foo"],
"cwd": "/tmp/",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "bun run debug",
"program": "bun-debug",
"args": ["paoskdpoasdk"],
"cwd": "/tmp/",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "bun a debug",
"program": "bun-debug",
"args": ["create", "https://github.com/ahfarmer/calculator", "--force"],
"cwd": "/tmp/",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "bun routes",
"program": "bun-debug",
"args": [],
"cwd": "${workspaceFolder}/integration/apps/routing",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Eval Error",
"program": "${workspaceFolder}/build/debug/macos-x86_64/spjs",
"args": [
"error.js",
"--resolve=dev",
"--outdir=outcss"
// "--origin=https://localhost:9000/"
],
"cwd": "${workspaceFolder}",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": ".bun",
"program": "bun-debug",
"args": [
"./examples/hello-next/node_modules.server.bun"
// "--origin=https://localhost:9000/"
],
"cwd": "${workspaceFolder}",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Discord",
"program": "bun-debug",
"args": [
"discord"
// "--origin=https://localhost:9000/"
],
"cwd": "${workspaceFolder}",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Eval",
"program": "${workspaceFolder}/build/debug/macos-x86_64/spjs",
"args": [
"./src/index.tsx"
// "--origin=https://localhost:9000/"
],
"cwd": "${workspaceFolder}/examples/css-stress-test",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Dev Launch",
"program": "bun-debug",
"args": [
"./simple.css",
"--resolve=dev",
"--outdir=outcss",
"--origin=https://localhost:9000/"
],
"cwd": "${workspaceFolder}/src/test/fixtures",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Linux Launch",
"program": "${workspaceFolder}/packages/debug-bun-cli-linux-x64/bin/bun-debug",
"args": ["--origin=http://jarred-desktop.local:3000/"],
"cwd": "${workspaceFolder}/examples/hello-next",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Release Serve",
"program": "${workspaceFolder}/build/macos-x86_64/bun",
// "args": ["--serve", "--origin=http://localhost:3000"],
"args": ["dev", "--origin=http://localhost:3000"],
"cwd": "${workspaceFolder}/examples/hello-next",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Demo Serve",
"program": "bun-debug",
// "args": ["--serve", "--origin=http://localhost:3000"],
"args": ["dev", "--origin=http://localhost:3000"],
"cwd": "${workspaceFolder}/examples/hello-next",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Demo Serve aarch64",
"program": "${workspaceFolder}/build/macos-aarch64/bun",
// "args": ["--serve", "--origin=http://localhost:3000"],
"args": ["dev", "--origin=http://ci.local:3000"],
"cwd": "${workspaceFolder}/examples/hello-next",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Demo Lazy Build",
"program": "bun-debug",
"args": [
"./src/index.tsx",
"--resolve=lazy",
"--origin=http://localhost:9000/"
],
"cwd": "${workspaceFolder}/examples/simple-react",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Demo Build",
"program": "bun-debug",
"args": [
"./src/index.tsx",
"--resolve=dev",
"--outdir=outcss",
"--platform=browser",
"--origin=http://localhost:9000/"
],
"cwd": "${workspaceFolder}/examples/css-stress-test",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Dazzle serve",
"program": "bun-debug",
"args": ["--origin=http://localhost:5001", "--disable-bun.js", "--disable-hmr"],
"cwd": "/Users/jarred/Build/lattice/apps/dazzle",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Bun",
"program": "bun-debug",
"args": ["bun", "--use=next"],
"cwd": "/Users/jarred/Build/lattice/apps/dazzle",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "unicode check",
"args": ["--disable-hmr"],
"program": "bun-debug",
"cwd": "/Users/jarred/Build/app994",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Demo .bun",
"program": "bun-debug",
"args": ["bun", "--use=bun-framework-next"],
"cwd": "${workspaceFolder}/examples/hello-next",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "PNPM .bun",
"program": "bun-debug",
"args": ["bun", "./pages/index.js"],
"cwd": "/Users/jarred/Build/pnpm-bun/packages/app",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "PNPM serve",
"program": "bun-debug",
"args": [],
"cwd": "/Users/jarred/Build/pnpm-bun/packages/app",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Mixed case resolve",
"program": "bun-debug",
"args": [
"build",
"./index.js",
"--origin=http://localhost:9000/",
// "--use=./bun-framework-next",
"--platform=browser"
],
"cwd": "${workspaceFolder}/examples/lotta-modules/",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Build .bun lotta-modules",
"program": "bun-debug",
"args": ["bun", "./index.js", "--platform=browser"],
"cwd": "${workspaceFolder}/examples/lotta-modules/",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Dev CRA",
"program": "bun-debug",
"args": ["dev", "--platform=browser"],
"cwd": "${workspaceFolder}/examples/hello-create-react-app/",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Fragment",
"program": "bun-debug",
"args": [],
"cwd": "${workspaceFolder}/src/test/fixtures",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Context Bun Bug",
"program": "bun-debug",
"args": ["bun", "./code.js"],
"cwd": "/Users/jarred/Build/context/www",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Context Bun",
"program": "bun-debug",
"args": ["bun", "--use=next"],
"cwd": "/Users/jarred/Build/context/www",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Bun-hello",
"program": "bun-debug",
"args": [],
"cwd": "${workspaceFolder}/packages/bun-hello",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Integration Test Dev",
"program": "bun-debug",
"args": [],
"cwd": "${workspaceFolder}/integration/snippets",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Install",
"program": "bun-debug",
"args": ["install", "--backend=clonefile", "--force"],
"cwd": "/Users/jarred/Build/octokit-test",
"env": {
},
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Install #2",
"program": "bun-debug",
"args": ["add", "typescript"],
"cwd": "/tmp/wow-such-npm",
"env": {
},
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Add",
"program": "bun-debug",
"args": ["add", "react"],
"cwd": "/tmp/wow-such-npm",
"env": {
},
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Remove",
"program": "bun-debug",
"args": ["remove", "foo"],
"cwd": "/Users/jarred/Build/athena.yarn",
"env": {
},
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Print Lockfile",
"program": "bun-debug",
"args": ["./bun.lockb"],
"cwd": "/tmp/wow-such-npm",
"env": {
"BUN_CONFIG_SKIP_SAVE_LOCKFILE": "1"
},
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Integration Test Dev (no hmr)",
"program": "bun-debug",
"args": ["--disable-hmr"],
"cwd": "${workspaceFolder}/integration/snippets",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Fixtures Dev",
"program": "a",
"args": ["dev"],
"cwd": "${workspaceFolder}/src/test/fixtures",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Context Dev",
"program": "bun-debug",
"args": [],
"cwd": "/Users/jarred/Build/context/www",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Context Rel",
"program": "${workspaceFolder}/build/macos-x86_64/bun",
"args": [],
"cwd": "/Users/jarred/Build/context/www",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug Dev",
"program": "bun-debug",
"args": ["dev"],
"cwd": "${workspaceFolder}/examples/hello-next",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Type-only import",
"program": "bun-debug",
"args": [
"bun",
"./src/test/fixtures/type-only-import.ts",
"--external=react"
],
"cwd": "${workspaceFolder}",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Dev lotta-modules",
"program": "bun-debug",
"args": ["dev", "./index.js", "--platform=browser"],
"cwd": "${workspaceFolder}/examples/lotta-modules/",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Demo Build .bun",
"program": "bun-debug",
"args": [
"bun",
// "./index.js",
"--origin=http://localhost:9000/",
"--use=./bun-framework-next",
"--platform=browser"
],
"cwd": "${workspaceFolder}/examples/hello-next/",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "PNPM Resolve symlink",
"program": "bun-debug",
"args": ["--resolve=dev", "test-pnpm.js", "--platform=browser"],
"cwd": "${workspaceFolder}/examples/css-stress-test",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Demo Print .bun",
"program": "bun-debug",
"args": ["./node_modules.bun"],
"cwd": "${workspaceFolder}/examples/simple-react",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "DAev Launch",
"program": "${workspaceFolder}/build/macos-x86_64/bun",
"args": ["./simple.jsx", "--resolve=disable"],
"cwd": "${workspaceFolder}/src/test/fixtures",
"console": "internalConsole"
},
// {
// "type": "lldb",
// "request": "launch",
// "name": "Dev Launch (other)",
// "program": "bun-debug",
// "args": ["./simple.jsx", "--resolve=disable"],
// "cwd": "${workspaceFolder}/src/test/fixtures",
// "console": "internalConsole"
// },
// {
// "type": "lldb",
// "request": "launch",
// "name": "Dev Launch",
// "program": "bun-debug",
// "preLaunchTask": "build",
// "args": [
// "--resolve=disable",
// "--cwd",
// "/Users/jarredsumner/Code/bun/src/test/fixtures",
// "escape-chars.js"
// ],
// "cwd": "${workspaceFolder}",
// "console": "internalConsole"
// }
// {
// "type": "lldb",
// "request": "launch",
// "name": "Dev Launch",
// "program": "bun-debug",
// "preLaunchTask": "build",
// "args": [
// "--resolve=dev",
// "--cwd",
// "/Users/jarredsumner/Builds/esbuild/bench/three/src/",
// "./entry.js",
// "-o",
// "out"
// ],
// "cwd": "/Users/jarredsumner/Builds/esbuild/bench/three/src",
// "console": "internalConsole"
// }
// {
// "type": "lldb",
// "request": "launch",
// "name": "Dev Launch",
// "program": "bun-debug",
// "preLaunchTask": "build",
// "args": [
// "--resolve=dev",
// "--cwd",
// "/Users/jarredsumner/Builds/esbuild/bench/three/src/",
// "./entry.js",
// "-o",
// "out"
// ],
// "cwd": "${workspaceFolder}",
// "console": "internalConsole"
// }
// {
// "type": "lldb",
// "request": "launch",
// "name": "Dev Launch",
// "program": "bun-debug",
// // "preLaunchTask": "build",
// "args": [
// "--resolve=dev",
// "--cwd",
// "./src/api/demo",
// "pages/index.jsx",
// "-o",
// "out",
// "--origin=https://hello.com/",
// "--serve"
// ],
// "cwd": "${workspaceFolder}",
// "console": "internalConsole"
// }
{
"type": "lldb",
"request": "launch",
"name": "Rome",
// "program": "bun-debug",
"program": "${workspaceFolder}/build/macos-x86_64/bun",
// "preLaunchTask": "build",
"args": [
"--resolve=dev",
// "--resolve=lazy",
"--cwd",
"${workspaceFolder}/bench/rome/src",
"entry",
"--platform=node",
// "@romejs/js-analysis/evaluators/modules/ImportCall.ts",
"--outdir=${workspaceFolder}/bench/rome/src/out",
// "@romejs/cli-diagnostics/banners/success.json",
"--origin=https://hello.com/"
],
"cwd": "${workspaceFolder}/bench/rome/src",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Rome Dev",
// "program": "bun-debug",
"program": "bun-debug",
// "preLaunchTask": "build",
"args": [
"--resolve=dev",
// "--resolve=lazy",
"--cwd",
"${workspaceFolder}/bench/rome/src",
"entry",
"--platform=node",
// "@romejs/js-analysis/evaluators/modules/ImportCall.ts",
"--outdir=${workspaceFolder}/bench/rome/src/out",
// "@romejs/cli-diagnostics/banners/success.json",
"--origin=https://hello.com/"
],
"cwd": "${workspaceFolder}/bench/rome/src",
"console": "internalConsole"
}
// {
// "type": "lldb",
// "request": "launch",
// "name": "Dev Launch",
// "program": "${workspaceFolder}/build/bin/debug/bun",
// "preLaunchTask": "build",
// "args": [
// "--resolve=dev",
// "--cwd",
// "/",
// "/Users/jarredsumner/Code/bun/src/test/fixtures/img-bug.js",
// "-o",
// "out"
// ],
// "cwd": "${workspaceFolder}",
// "console": "internalConsole",
// "presentation": {
// "hidden": false,
// "group": "",
// "order": 1
// }
// }
]
}

63
.vscode/settings.json vendored
View File

@@ -8,7 +8,26 @@
"search.useIgnoreFiles": true,
"zig.buildOnSave": false,
"[zig]": {
"editor.defaultFormatter": "tiehuis.zig"
"editor.tabSize": 4,
"editor.useTabStops": false,
"editor.defaultFormatter": "AugusteRame.zls-vscode",
"editor.formatOnSave": true
},
"[ts]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
"[js]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
"[jsx]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
"[tsx]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
"zig.beforeDebugCmd": "make build-unit ${file} ${filter} ${bin}",
"zig.testCmd": "make test ${file} ${filter} ${bin}",
@@ -25,35 +44,38 @@
"**/*.xcscheme": true,
"**/*.pem": true,
"**/*.xcodeproj": true,
"packages/bun-types/*.d.ts": true,
"integration/snapshots": true,
"integration/snapshots-no-hmr": true,
"src/javascript/jsc/WebKit": true,
"test/snapshots": true,
"test/snapshots-no-hmr": true,
"src/bun.js/WebKit": true,
"src/deps/libarchive": true,
"src/deps/mimalloc": true,
"src/deps/s2n-tls": true,
"src/deps/boringssl": true,
"src/deps/openssl": true,
"src/deps/uws": true,
"src/deps/zlib": true,
"integration/snippets/package-json-exports/_node_modules_copy": true
"src/deps/lol-html": true,
"test/snippets/package-json-exports/_node_modules_copy": true
},
"C_Cpp.files.exclude": {
"**/.vscode": true,
"src/javascript/jsc/WebKit/JSTests": true,
"src/javascript/jsc/WebKit/Tools": true,
"src/javascript/jsc/WebKit/WebDriverTests": true,
"src/javascript/jsc/WebKit/WebKit.xcworkspace": true,
"src/javascript/jsc/WebKit/WebKitLibraries": true,
"src/javascript/jsc/WebKit/Websites": true,
"src/javascript/jsc/WebKit/resources": true,
"src/javascript/jsc/WebKit/LayoutTests": true,
"src/javascript/jsc/WebKit/ManualTests": true,
"src/javascript/jsc/WebKit/PerformanceTests": true,
"src/javascript/jsc/WebKit/WebKitLegacy": true,
"src/javascript/jsc/WebKit/WebCore": true,
"src/javascript/jsc/WebKit/WebDriver": true,
"src/javascript/jsc/WebKit/WebKitBuild": true,
"src/javascript/jsc/WebKit/WebInspectorUI": true
"src/bun.js/WebKit/JSTests": true,
"src/bun.js/WebKit/Tools": true,
"src/bun.js/WebKit/WebDriverTests": true,
"src/bun.js/WebKit/WebKit.xcworkspace": true,
"src/bun.js/WebKit/WebKitLibraries": true,
"src/bun.js/WebKit/Websites": true,
"src/bun.js/WebKit/resources": true,
"src/bun.js/WebKit/LayoutTests": true,
"src/bun.js/WebKit/ManualTests": true,
"src/bun.js/WebKit/PerformanceTests": true,
"src/bun.js/WebKit/WebKitLegacy": true,
"src/bun.js/WebKit/WebCore": true,
"src/bun.js/WebKit/WebDriver": true,
"src/bun.js/WebKit/WebKitBuild": true,
"src/bun.js/WebKit/WebInspectorUI": true
},
"[cpp]": {
"editor.defaultFormatter": "xaver.clang-format"
@@ -144,6 +166,5 @@
"__memory": "cpp",
"memory_resource": "cpp"
},
"go.logging.level": "off",
"cmake.configureOnOpen": false
}

25
.vscode/tasks.json vendored
View File

@@ -29,31 +29,6 @@
"showReuseMessage": false,
"clear": true
}
},
{
"label": "test",
"type": "shell",
"command": "zig",
"args": [
"test",
"${file}",
"--main-pkg-path",
"${workspaceFolder}",
"-femit-bin=${workspaceFolder}/zig-out/bin/test",
";",
"true"
],
"group": {
"kind": "test",
"isDefault": true
},
"presentation": {
"showReuseMessage": false,
"clear": true,
"panel": "new",
"reveal": "always"
}
}
]
}

View File

@@ -1,30 +1,161 @@
FROM bunbunbunbun/bun-base:latest as mimalloc
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG CPU_TARGET=native
ARG ARCH=x86_64
ARG TRIPLET=${ARCH}-linux-gnu
ARG BUILDARCH=amd64
ARG WEBKIT_TAG=jul27-2
ARG ZIG_TAG=jul1
ARG WEBKIT_BASENAME="bun-webkit-linux-$BUILDARCH"
ARG WEBKIT_URL="https://github.com/oven-sh/WebKit/releases/download/$WEBKIT_TAG/${WEBKIT_BASENAME}.tar.gz"
ARG ZIG_URL="https://github.com/oven-sh/zig/releases/download/$ZIG_TAG/zig-linux-$BUILDARCH.zip"
ARG GIT_SHA=""
ARG BUN_BASE_VERSION=0.1
FROM bitnami/minideb:bullseye as bun-base
RUN install_packages ca-certificates curl wget lsb-release software-properties-common gnupg gnupg1 gnupg2
RUN wget https://apt.llvm.org/llvm.sh && \
chmod +x llvm.sh && \
./llvm.sh 13
RUN install_packages \
cmake \
curl \
file \
git \
gnupg \
libc-dev \
libxml2 \
libxml2-dev \
make \
ninja-build \
perl \
python3 \
rsync \
ruby \
unzip \
bash tar gzip
ENV CXX=clang++-13
ENV CC=clang-13
RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - && \
install_packages nodejs && \
npm install -g esbuild
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG BUILDARCH
ARG ZIG_PATH
ARG WEBKIT_URL
ARG ZIG_URL
ENV WEBKIT_OUT_DIR=${WEBKIT_DIR}
ENV BUILDARCH=${BUILDARCH}
ENV AR=/usr/bin/llvm-ar-13
ENV ZIG "${ZIG_PATH}/zig"
ENV PATH="$ZIG/bin:$PATH"
ENV LD=lld-13
RUN mkdir -p $BUN_DIR $BUN_DEPS_OUT_DIR
FROM bun-base as bun-base-with-zig-and-webkit
WORKDIR $GITHUB_WORKSPACE
ADD $ZIG_URL .
RUN unzip -q zig-linux-$BUILDARCH.zip && \
rm zig-linux-$BUILDARCH.zip;
WORKDIR $GITHUB_WORKSPACE
ARG GITHUB_WORKSPACE
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG BUILDARCH
ARG ZIG_PATH
ARG WEBKIT_URL
ARG ZIG_URL
ARG WEBKIT_BASENAME
ADD ${WEBKIT_URL} .
RUN mkdir -p ${WEBKIT_DIR} && cd ${GITHUB_WORKSPACE} && \
gunzip ${WEBKIT_BASENAME}.tar.gz && tar -xf ${WEBKIT_BASENAME}.tar && \
cat ${WEBKIT_DIR}/include/cmakeconfig.h > /dev/null
LABEL org.opencontainers.image.title="bun base image with zig & webkit ${BUILDARCH} (glibc)"
LABEL org.opencontainers.image.source=https://github.com/oven-sh/bun
FROM bun-base as lolhtml
RUN install_packages build-essential && curl https://sh.rustup.rs -sSf | sh -s -- -y
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/lol-html ${BUN_DIR}/src/deps/lol-html
RUN export PATH=$PATH:$HOME/.cargo/bin && export CC=$(which clang-13) && cd ${BUN_DIR} && \
make lolhtml && rm -rf src/deps/lol-html Makefile
FROM bun-base as mimalloc
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/mimalloc ${BUN_DIR}/src/deps/mimalloc
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
RUN cd ${BUN_DIR} && \
make mimalloc && rm -rf src/deps/mimalloc Makefile
FROM bunbunbunbun/bun-base:latest as zlib
FROM bun-base as zlib
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/zlib ${BUN_DIR}/src/deps/zlib
@@ -34,75 +165,166 @@ WORKDIR $BUN_DIR
RUN cd $BUN_DIR && \
make zlib && rm -rf src/deps/zlib Makefile
FROM bunbunbunbun/bun-base:latest as libarchive
FROM bun-base as libarchive
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
RUN install_packages autoconf automake libtool pkg-config
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/libarchive ${BUN_DIR}/src/deps/libarchive
WORKDIR $BUN_DIR
RUN make libarchive && rm -rf src/deps/libarchive Makefile
FROM bun-base as tinycc
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
RUN install_packages libtcc-dev && cp /usr/lib/$(uname -m)-linux-gnu/libtcc.a ${BUN_DEPS_OUT_DIR}
FROM bun-base as libbacktrace
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/libbacktrace ${BUN_DIR}/src/deps/libbacktrace
WORKDIR $BUN_DIR
RUN cd $BUN_DIR && \
make libarchive && rm -rf src/deps/libarchive Makefile
make libbacktrace && rm -rf src/deps/libbacktrace Makefile
FROM bunbunbunbun/bun-base:latest as boringssl
FROM bun-base as boringssl
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
RUN install_packages golang
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/boringssl ${BUN_DIR}/src/deps/boringssl
WORKDIR $BUN_DIR
RUN cd $BUN_DIR && \
make boringssl && rm -rf src/deps/boringssl Makefile
RUN make boringssl && rm -rf src/deps/boringssl Makefile
FROM bunbunbunbun/bun-base:latest as picohttp
FROM bun-base as base64
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
COPY src/base64 ${BUN_DIR}/src/base64
WORKDIR $BUN_DIR
RUN make base64 && rm -rf src/base64 Makefile
FROM bun-base as uws
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/uws ${BUN_DIR}/src/deps/uws
COPY src/deps/zlib ${BUN_DIR}/src/deps/zlib
COPY src/deps/boringssl/include ${BUN_DIR}/src/deps/boringssl/include
COPY src/deps/libuwsockets.cpp ${BUN_DIR}/src/deps/libuwsockets.cpp
COPY src/deps/_libusockets.h ${BUN_DIR}/src/deps/_libusockets.h
WORKDIR $BUN_DIR
RUN cd $BUN_DIR && \
make uws && rm -rf src/deps/uws Makefile
FROM bun-base as picohttp
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/picohttpparser ${BUN_DIR}/src/deps/picohttpparser
COPY src/deps/*.c ${BUN_DIR}/src/deps
COPY src/deps/*.h ${BUN_DIR}/src/deps
COPY src/deps/*.c ${BUN_DIR}/src/deps/
COPY src/deps/*.h ${BUN_DIR}/src/deps/
WORKDIR $BUN_DIR
RUN cd $BUN_DIR && \
make picohttp
FROM bunbunbunbun/bun-base-with-zig-and-webkit:latest as identifier_cache
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
FROM bun-base-with-zig-and-webkit as identifier_cache
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
WORKDIR $BUN_DIR
@@ -113,16 +335,18 @@ COPY src/js_lexer/identifier_cache.zig ${BUN_DIR}/src/js_lexer/identifier_cache.
RUN cd $BUN_DIR && \
make identifier-cache && rm -rf zig-cache Makefile
FROM bunbunbunbun/bun-base-with-zig-and-webkit:latest as node_fallbacks
FROM bun-base-with-zig-and-webkit as node_fallbacks
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
WORKDIR $BUN_DIR
@@ -132,17 +356,18 @@ COPY src/node-fallbacks ${BUN_DIR}/src/node-fallbacks
RUN cd $BUN_DIR && \
make node-fallbacks && rm -rf src/node-fallbacks/node_modules Makefile
FROM bunbunbunbun/bun-base-with-zig-and-webkit:latest as prepare_release
FROM bun-base-with-zig-and-webkit as prepare_release
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
WORKDIR $BUN_DIR
@@ -155,163 +380,242 @@ COPY ./package.json ${BUN_DIR}/package.json
COPY ./misctools ${BUN_DIR}/misctools
COPY Makefile ${BUN_DIR}/Makefile
FROM prepare_release as compile_release_obj
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
WORKDIR $BUN_DIR
ENV JSC_BASE_DIR=${WEBKIT_DIR}
ENV LIB_ICU_PATH=${WEBKIT_DIR}/lib
ARG ARCH
ARG TRIPLET
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
ARG GIT_SHA
ARG BUN_BASE_VERSION
ENV BUN_BASE_VERSION=${BUN_BASE_VERSION}
ENV GIT_SHA=${GIT_SHA}
COPY --from=identifier_cache ${BUN_DIR}/src/js_lexer/*.blob ${BUN_DIR}/src/js_lexer/
COPY --from=node_fallbacks ${BUN_DIR}/src/node-fallbacks/out ${BUN_DIR}/src/node-fallbacks/out
COPY ./build-id ${BUN_DIR}/build-id
RUN cd $BUN_DIR && mkdir -p src/bun.js/bindings-obj && rm -rf $HOME/.cache zig-cache && make prerelease && \
mkdir -p $BUN_RELEASE_DIR && \
OUTPUT_DIR=/tmp $ZIG_PATH/zig build obj -Drelease-fast -Dtarget="${TRIPLET}" -Dcpu="${CPU_TARGET}" && \
cp /tmp/bun.o /tmp/bun-${BUN_BASE_VERSION}.$(cat ${BUN_DIR}/build-id).o && cd / && rm -rf $BUN_DIR
FROM scratch as build_release_obj
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY --from=compile_release_obj /tmp/*.o /
FROM prepare_release as compile_cpp
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
WORKDIR $BUN_DIR
ENV JSC_BASE_DIR=${WEBKIT_DIR}
ENV LIB_ICU_PATH=${WEBKIT_DIR}/lib
COPY --from=lolhtml ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=mimalloc ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/
COPY --from=libarchive ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=picohttp ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/
COPY --from=boringssl ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=uws ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=uws ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/
COPY --from=libbacktrace ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=zlib ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=identifier_cache ${BUN_DIR}/src/js_lexer/*.blob ${BUN_DIR}/src/js_lexer
COPY --from=node_fallbacks ${BUN_DIR}/src/node-fallbacks/out ${BUN_DIR}/src/node-fallbacks/out
COPY --from=tinycc ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=base64 ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
WORKDIR ${BUN_DIR}
RUN cd $BUN_DIR && mkdir -p src/bun.js/bindings-obj && rm -rf $HOME/.cache zig-cache && mkdir -p $BUN_RELEASE_DIR && \
make release-bindings -j10 && mv src/bun.js/bindings-obj/* /tmp
FROM prepare_release as sqlite
FROM prepare_release as build_release
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
COPY Makefile ${BUN_DIR}/Makefile
WORKDIR $BUN_DIR
RUN cd $BUN_DIR && rm -rf $HOME/.cache zig-cache && make \
jsc-bindings-headers \
api \
analytics \
bun_error \
fallback_decoder && rm -rf $HOME/.cache zig-cache && \
mkdir -p $BUN_RELEASE_DIR && \
make release copy-to-bun-release-dir && \
rm -rf $HOME/.cache zig-cache misctools package.json build-id completions build.zig
ENV JSC_BASE_DIR=${WEBKIT_DIR}
ENV LIB_ICU_PATH=${WEBKIT_DIR}/lib
RUN cd $BUN_DIR && make sqlite
FROM scratch as build_release_cpp
COPY --from=compile_cpp /tmp/*.o /
FROM prepare_release as build_release
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
WORKDIR $BUN_DIR
ENV JSC_BASE_DIR=${WEBKIT_DIR}
ENV LIB_ICU_PATH=${WEBKIT_DIR}/lib
COPY --from=lolhtml ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=mimalloc ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/
COPY --from=libarchive ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=picohttp ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/
COPY --from=boringssl ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=uws ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=uws ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/
COPY --from=libbacktrace ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=zlib ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=tinycc ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=base64 ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/
COPY --from=sqlite ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/
COPY --from=build_release_obj /*.o /tmp
COPY --from=build_release_cpp /*.o ${BUN_DIR}/src/bun.js/bindings-obj/
RUN cd $BUN_DIR && mkdir -p ${BUN_RELEASE_DIR} && make bun-relink copy-to-bun-release-dir && \
rm -rf $HOME/.cache zig-cache misctools package.json build-id completions build.zig $(BUN_DIR)/packages
FROM scratch as artifact
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
COPY --from=build_release ${BUN_RELEASE_DIR}/bun /bun
COPY --from=build_release ${BUN_RELEASE_DIR}/bun-profile /bun-profile
COPY --from=build_release ${BUN_DEPS_OUT_DIR}/* /bun-dependencies
COPY --from=build_release_obj /*.o /bun-obj
FROM prepare_release as build_unit
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG ZIG_PATH
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
WORKDIR $BUN_DIR
ENV PATH "$ZIG_PATH:$PATH"
ENV LIB_ICU_PATH "${WEBKIT_DIR}/lib"
CMD make jsc-bindings-headers \
CMD make headers \
api \
analytics \
bun_error \
fallback_decoder \
jsc-bindings-mac && \
bindings -j10 && \
make \
run-all-unit-tests
FROM bunbunbunbun/bun-base-with-zig-and-webkit:latest as bun.devcontainer
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ENV WEBKIT_OUT_DIR ${WEBKIT_DIR}
ENV PATH "$ZIG_PATH:$PATH"
ENV JSC_BASE_DIR $WEBKIT_OUT_DIR
ENV LIB_ICU_PATH ${GITHUB_WORKSPACE}/icu/source/lib
ENV BUN_RELEASE_DIR ${BUN_RELEASE_DIR}
ENV PATH "${GITHUB_WORKSPACE}/packages/bun-linux-x64:${GITHUB_WORKSPACE}/packages/bun-linux-aarch64:${GITHUB_WORKSPACE}/packages/debug-bun-linux-x64:${GITHUB_WORKSPACE}/packages/debug-bun-linux-aarch64:$PATH"
ENV PATH "/home/ubuntu/zls/zig-out/bin:$PATH"
ENV BUN_INSTALL /home/ubuntu/.bun
ENV XDG_CONFIG_HOME /home/ubuntu/.config
RUN update-alternatives --install /usr/bin/lldb lldb /usr/bin/lldb-12 90
COPY .devcontainer/workspace.code-workspace $GITHUB_WORKSPACE/workspace.code-workspace
COPY .devcontainer/zls.json $GITHUB_WORKSPACE/workspace.code-workspace
COPY .devcontainer/limits.conf /etc/security/limits.conf
COPY ".devcontainer/scripts/" /scripts/
COPY ".devcontainer/scripts/getting-started.sh" $GITHUB_WORKSPACE/getting-started.sh
RUN mkdir -p /home/ubuntu/.bun /home/ubuntu/.config $GITHUB_WORKSPACE/bun && \
bash /scripts/common-debian.sh && \
bash /scripts/github.sh && \
bash /scripts/nice.sh && \
bash /scripts/zig-env.sh
COPY .devcontainer/zls.json /home/ubuntu/.config/zls.json
FROM ubuntu:20.04 as release
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
COPY .devcontainer/limits.conf /etc/security/limits.conf
ENV BUN_INSTALL /opt/bun
ENV PATH "/opt/bun/bin:$PATH"
ARG BUILDARCH=amd64
LABEL org.opencontainers.image.title="Bun ${BUILDARCH} (glibc)"
LABEL org.opencontainers.image.source=https://github.com/jarred-sumner/bun
COPY --from=build_release ${BUN_RELEASE_DIR}/bun /opt/bun/bin/bun
WORKDIR /opt/bun
ENTRYPOINT [ "/opt/bun/bin/bun" ]
FROM bunbunbunbun/bun-test-base as test_base
# FROM bun-test-base as test_base
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
# ARG DEBIAN_FRONTEND=noninteractive
# ARG GITHUB_WORKSPACE=/build
# ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
# # Directory extracts to "bun-webkit"
# ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
# ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
# ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
# ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG BUILDARCH=amd64
RUN groupadd -r chromium && useradd -d ${BUN_DIR} -M -r -g chromium -G audio,video chromium \
&& mkdir -p /home/chromium/Downloads && chown -R chromium:chromium /home/chromium
# ARG BUILDARCH=amd64
# RUN groupadd -r chromium && useradd -d ${BUN_DIR} -M -r -g chromium -G audio,video chromium \
# && mkdir -p /home/chromium/Downloads && chown -R chromium:chromium /home/chromium
USER chromium
WORKDIR $BUN_DIR
# USER chromium
# WORKDIR $BUN_DIR
ENV NPM_CLIENT bun
ENV PATH "${BUN_DIR}/packages/bun-linux-x64:${BUN_DIR}/packages/bun-linux-aarch64:$PATH"
ENV CI 1
ENV BROWSER_EXECUTABLE /usr/bin/chromium
# ENV NPM_CLIENT bun
# ENV PATH "${BUN_DIR}/packages/bun-linux-x64:${BUN_DIR}/packages/bun-linux-aarch64:$PATH"
# ENV CI 1
# ENV BROWSER_EXECUTABLE /usr/bin/chromium
COPY ./integration ${BUN_DIR}/integration
COPY Makefile ${BUN_DIR}/Makefile
COPY package.json ${BUN_DIR}/package.json
COPY .docker/run-test.sh ${BUN_DIR}/run-test.sh
COPY ./bun.lockb ${BUN_DIR}/bun.lockb
# COPY ./test ${BUN_DIR}/test
# COPY Makefile ${BUN_DIR}/Makefile
# COPY package.json ${BUN_DIR}/package.json
# COPY .docker/run-test.sh ${BUN_DIR}/run-test.sh
# COPY ./bun.lockb ${BUN_DIR}/bun.lockb
# # We don't want to worry about architecture differences in this image
COPY --from=release /opt/bun/bin/bun ${BUN_DIR}/packages/bun-linux-aarch64/bun
COPY --from=release /opt/bun/bin/bun ${BUN_DIR}/packages/bun-linux-x64/bun
# # # We don't want to worry about architecture differences in this image
# COPY --from=release /opt/bun/bin/bun ${BUN_DIR}/packages/bun-linux-aarch64/bun
# COPY --from=release /opt/bun/bin/bun ${BUN_DIR}/packages/bun-linux-x64/bun
USER root
RUN chgrp -R chromium ${BUN_DIR} && chmod g+rwx ${BUN_DIR} && chown -R chromium:chromium ${BUN_DIR}
USER chromium
# USER root
# RUN chgrp -R chromium ${BUN_DIR} && chmod g+rwx ${BUN_DIR} && chown -R chromium:chromium ${BUN_DIR}
# USER chromium
CMD [ "bash", "run-test.sh" ]
# CMD [ "bash", "run-test.sh" ]
FROM release
# FROM release

View File

@@ -1,145 +0,0 @@
FROM ubuntu:20.04 as bun-base-with-args
FROM bun-base-with-args as bun-base
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
WORKDIR ${GITHUB_WORKSPACE}
RUN apt-get update && \
apt-get install --no-install-recommends -y wget gnupg2 curl lsb-release wget software-properties-common && \
add-apt-repository ppa:longsleep/golang-backports && \
wget https://apt.llvm.org/llvm.sh --no-check-certificate && \
chmod +x llvm.sh && \
./llvm.sh 12 && \
apt-get update && \
apt-get install --no-install-recommends -y \
ca-certificates \
curl \
gnupg2 \
software-properties-common \
cmake \
build-essential \
git \
libssl-dev \
ruby \
liblld-12-dev \
libclang-12-dev \
nodejs \
gcc \
g++ \
npm \
clang-12 \
clang-format-12 \
libc++-12-dev \
libc++abi-12-dev \
lld-12 \
libicu-dev \
wget \
unzip \
tar \
golang-go ninja-build pkg-config automake autoconf libtool curl && \
update-alternatives --install /usr/bin/cc cc /usr/bin/clang-12 90 && \
update-alternatives --install /usr/bin/cpp cpp /usr/bin/clang++-12 90 && \
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-12 90 && \
npm install -g esbuild
ENV CC=clang-12
ENV CXX=clang++-12
ARG BUILDARCH=amd64
WORKDIR $GITHUB_WORKSPACE
ENV WEBKIT_OUT_DIR ${WEBKIT_DIR}
ENV JSC_BASE_DIR $WEBKIT_OUT_DIR
ENV LIB_ICU_PATH ${GITHUB_WORKSPACE}/icu/source/lib
ENV BUN_RELEASE_DIR ${BUN_RELEASE_DIR}
ENV BUN_DEPS_OUT_DIR ${BUN_DEPS_OUT_DIR}
RUN cd / && mkdir -p $BUN_RELEASE_DIR $BUN_DEPS_OUT_DIR ${BUN_DIR} ${BUN_DEPS_OUT_DIR}
LABEL org.opencontainers.image.title="Bun base image ${BUILDARCH} (glibc)"
LABEL org.opencontainers.image.source=https://github.com/jarred-sumner/bun
FROM bun-base as bun-base-with-zig-and-webkit
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
# Directory extracts to "bun-webkit"
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG BUILDARCH=amd64
WORKDIR $GITHUB_WORKSPACE
RUN cd $GITHUB_WORKSPACE && \
curl -o zig-linux-$BUILDARCH.zip -L https://github.com/Jarred-Sumner/zig/releases/download/dec20/zig-linux-$BUILDARCH.zip && \
unzip -q zig-linux-$BUILDARCH.zip && \
rm zig-linux-$BUILDARCH.zip;
RUN cd $GITHUB_WORKSPACE && \
curl -o bun-webkit-linux-$BUILDARCH.tar.gz -L https://github.com/Jarred-Sumner/WebKit/releases/download/Bun-v0/bun-webkit-linux-$BUILDARCH.tar.gz && \
tar -xzf bun-webkit-linux-$BUILDARCH.tar.gz && \
rm bun-webkit-linux-$BUILDARCH.tar.gz && \
cat $WEBKIT_OUT_DIR/include/cmakeconfig.h > /dev/null
RUN cd $GITHUB_WORKSPACE && \
curl -o icu4c-66_1-src.tgz -L https://github.com/unicode-org/icu/releases/download/release-66-1/icu4c-66_1-src.tgz && \
tar -xzf icu4c-66_1-src.tgz && \
rm icu4c-66_1-src.tgz && \
cd icu/source && \
./configure --enable-static --disable-shared && \
make -j$(nproc)
ENV ZIG "${ZIG_PATH}/zig"
LABEL org.opencontainers.image.title="Bun base image with zig & webkit ${BUILDARCH} (glibc)"
LABEL org.opencontainers.image.source=https://github.com/jarred-sumner/bun
FROM debian:bullseye-slim as bun-test-base
# Original creator:
# LABEL maintainer "Jessie Frazelle <jess@linux.com>"
# Install Chromium
# Yes, including the Google API Keys sucks but even debian does the same: https://packages.debian.org/stretch/amd64/chromium/filelist
RUN apt-get update && apt-get install -y \
chromium \
chromium-l10n \
fonts-liberation \
fonts-roboto \
hicolor-icon-theme \
libcanberra-gtk-module \
libexif-dev \
libgl1-mesa-dri \
libgl1-mesa-glx \
libpangox-1.0-0 \
libv4l-0 \
fonts-symbola \
bash \
make \
psmisc \
curl \
--no-install-recommends \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /etc/chromium.d/ \
&& /bin/echo -e 'export GOOGLE_API_KEY="AIzaSyCkfPOPZXDKNn8hhgu3JrA62wIgC93d44k"\nexport GOOGLE_DEFAULT_CLIENT_ID="811574891467.apps.googleusercontent.com"\nexport GOOGLE_DEFAULT_CLIENT_SECRET="kdloedMFGdGla2P1zacGjAQh"' > /etc/chromium.d/googleapikeys && \
curl -L https://deb.nodesource.com/setup_16.x | bash - && \
apt-get update && \
apt-get install -y nodejs npm

115
Dockerfile.devcontainer Normal file
View File

@@ -0,0 +1,115 @@
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG BUILDARCH=amd64
ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
FROM --platform=linux/${BUILDARCH} ubuntu:20.04 as bun.devcontainer
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG BUILDARCH
ARG ZIG_PATH
ARG WEBKIT_DIR
ARG BUN_RELEASE_DIR
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ENV WEBKIT_OUT_DIR ${WEBKIT_DIR}
ENV PATH "$ZIG_PATH:$PATH"
ENV JSC_BASE_DIR $WEBKIT_OUT_DIR
ENV LIB_ICU_PATH ${WEBKIT_OUT_DIR}/lib
ENV BUN_RELEASE_DIR ${BUN_RELEASE_DIR}
ENV PATH "${GITHUB_WORKSPACE}/packages/bun-linux-x64:${GITHUB_WORKSPACE}/packages/bun-linux-aarch64:${GITHUB_WORKSPACE}/packages/debug-bun-linux-x64:${GITHUB_WORKSPACE}/packages/debug-bun-linux-aarch64:$PATH"
ENV PATH "/home/ubuntu/zls/zig-out/bin:$PATH"
ENV BUN_INSTALL /home/ubuntu/.bun
ENV XDG_CONFIG_HOME /home/ubuntu/.config
WORKDIR ${GITHUB_WORKSPACE}
RUN apt-get update && \
apt-get install --no-install-recommends -y wget gnupg2 curl lsb-release wget software-properties-common && \
add-apt-repository ppa:longsleep/golang-backports && \
wget https://apt.llvm.org/llvm.sh --no-check-certificate && \
chmod +x llvm.sh && \
./llvm.sh 13 && \
curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && \
apt-get update && \
apt-get install --no-install-recommends -y \
ca-certificates \
curl \
gnupg2 \
software-properties-common \
cmake \
build-essential \
git \
libssl-dev \
ruby \
liblld-13-dev \
libclang-13-dev \
nodejs \
gcc \
g++ \
clang-13 \
clang-format-13 \
libc++-13-dev \
libc++abi-13-dev \
lld-13 \
libicu-dev \
wget \
rustc \
cargo \
unzip \
tar \
golang-go ninja-build pkg-config automake autoconf libtool curl && \
update-alternatives --install /usr/bin/cc cc /usr/bin/clang-13 90 && \
update-alternatives --install /usr/bin/cpp cpp /usr/bin/clang++-13 90 && \
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-13 90 && \
npm install -g esbuild
ENV CC=clang-13
ENV CXX=clang++-13
ENV ZIG "${ZIG_PATH}/zig"
WORKDIR $GITHUB_WORKSPACE
RUN cd / && mkdir -p $BUN_RELEASE_DIR $BUN_DEPS_OUT_DIR ${BUN_DIR} ${BUN_DEPS_OUT_DIR}
WORKDIR $GITHUB_WORKSPACE
RUN cd $GITHUB_WORKSPACE && \
curl -o zig-linux-$BUILDARCH.zip -L https://github.com/oven-sh/zig/releases/download/jul1/zig-linux-$BUILDARCH.zip && \
unzip -q zig-linux-$BUILDARCH.zip && \
rm zig-linux-$BUILDARCH.zip;
RUN cd $GITHUB_WORKSPACE && \
curl -o bun-webkit-linux-$BUILDARCH.tar.gz -L https://github.com/oven-sh/WebKit/releases/download/aug12-2/bun-webkit-linux-$BUILDARCH.tar.gz && \
tar -xzf bun-webkit-linux-$BUILDARCH.tar.gz && \
rm bun-webkit-linux-$BUILDARCH.tar.gz && \
cat $WEBKIT_OUT_DIR/include/cmakeconfig.h > /dev/null
RUN apt-get -y update && update-alternatives --install /usr/bin/lldb lldb /usr/bin/lldb-13 90
COPY .devcontainer/workspace.code-workspace $GITHUB_WORKSPACE/workspace.code-workspace
COPY .devcontainer/zls.json $GITHUB_WORKSPACE/workspace.code-workspace
COPY .devcontainer/limits.conf /etc/security/limits.conf
COPY ".devcontainer/scripts/" /scripts/
COPY ".devcontainer/scripts/getting-started.sh" $GITHUB_WORKSPACE/getting-started.sh
COPY ".devcontainer/README.md" $GITHUB_WORKSPACE/README.md
ENV JSC_BASE_DIR=$WEBKIT_DIR
ENV WEBKIT_RELEASE_DIR=$WEBKIT_DIR
ENV WEBKIT_DEBUG_DIR=$WEBKIT_DIR
ENV WEBKIT_RELEASE_DIR_LTO=$WEBKIT_DIR
RUN mkdir -p /home/ubuntu/.bun /home/ubuntu/.config $GITHUB_WORKSPACE/bun && \
bash /scripts/common-debian.sh && \
bash /scripts/github.sh && \
bash /scripts/nice.sh && \
bash /scripts/zig-env.sh
COPY .devcontainer/zls.json /home/ubuntu/.config/zls.json

View File

@@ -1,139 +0,0 @@
# This doesn't work
# Specifically: there are a number of crashes and segfaults when using musl
# The cause is likely related to differences in pthreads implementations
# It is not just the stack size thing. It's something more complicated and importantly
# There was no meaningful file size difference between musl and glibc
# ARG BUILDARCH=aarch64
# ARG zig_base_image=ghcr.io/jarred-sumner/zig-linux-musl-${BUILDARCH}
# ARG webkit_base_image=ghcr.io/jarred-sumner/bun-webkit-musl-${BUILDARCH}
# FROM ${zig_base_image}:latest AS zig
# FROM ${webkit_base_image}:latest AS webkit
# FROM zig as bun_base
# COPY --from=webkit /webkit /webkit
# ENV PATH "/zig/bin:$PATH"
# ENV JSC_BASE_DIR=/webkit
# ENV LIB_ICU_PATH=/webkit/lib
# ENV BUN_DEPS_OUT_DIR /bun-deps
# ENV STATIC_MUSL_FLAG=-static
# ENV MIMALLOC_OVERRIDE_FLAG="-DMI_OVERRIDE=OFF"
# RUN apk add --no-cache nodejs npm go libtool autoconf pkgconfig automake ninja
# RUN mkdir -p $BUN_DEPS_OUT_DIR;
# WORKDIR /bun
# COPY Makefile /bun/Makefile
# FROM bun_base as mimalloc
# COPY src/deps/mimalloc /bun/src/deps/mimalloc
# RUN make mimalloc;
# FROM bun_base as zlib
# COPY src/deps/zlib /bun/src/deps/zlib
# RUN make zlib;
# FROM bun_base as libarchive
# COPY src/deps/libarchive /bun/src/deps/libarchive
# RUN make libarchive;
# FROM bun_base as boringssl
# COPY src/deps/boringssl /bun/src/deps/boringssl
# RUN make boringssl;
# FROM bun_base as picohttp
# COPY src/deps/picohttpparser /bun/src/deps/picohttpparser
# COPY src/deps/*.c /bun/src/deps
# COPY src/deps/*.h /bun/src/deps
# RUN make picohttp
# FROM bun_base as identifier_cache
# COPY src/js_lexer/identifier_data.zig /bun/src/js_lexer/identifier_data.zig
# COPY src/js_lexer/identifier_cache.zig /bun/src/js_lexer/identifier_cache.zig
# RUN make identifier-cache
# FROM bun_base as node_fallbacks
# COPY src/node-fallbacks /bun/src/node-fallbacks
# RUN make node-fallbacks
# FROM bun_base as prebuild
# WORKDIR /bun
# COPY ./src /bun/src
# COPY ./build.zig /bun/build.zig
# COPY ./completions /bun/completions
# COPY ./packages /bun/packages
# COPY ./build-id /bun/build-id
# COPY ./package.json /bun/package.json
# COPY ./misctools /bun/misctools
# COPY --from=mimalloc /bun-deps/*.o /bun-deps
# COPY --from=libarchive /bun-deps/*.a /bun-deps
# COPY --from=picohttp /bun-deps/*.o /bun-deps
# COPY --from=boringssl /bun-deps/*.a /bun-deps
# COPY --from=zlib /bun-deps/*.a /bun-deps
# COPY --from=node_fallbacks /bun/src/node-fallbacks /bun/src/node-fallbacks
# COPY --from=identifier_cache /bun/src/js_lexer/*.blob /bun/src/js_lexer/
# ENV ICU_FLAGS="-I/webkit/include/wtf $ICU_FLAGS"
# RUN apk add --no-cache chromium && npm install -g esbuild && make \
# jsc-bindings-headers \
# api \
# analytics \
# bun_error \
# fallback_decoder
# FROM prebuild as release
# ENV BUN_RELEASE_DIR /opt/bun
# ENV LIB_ICU_PATH /usr/lib
# RUN apk add icu-static icu-dev && mkdir -p $BUN_RELEASE_DIR; make release \
# copy-to-bun-release-dir
# FROM alpine:3.15 as bun
# COPY --from=release /opt/bun/bun /opt/bun/bin/bun
# ENV BUN_INSTALL /opt/bun
# ENV PATH /opt/bun/bin:$PATH
# LABEL org.opencontainers.image.title="Bun - Linux ${BUILDARCH} (musl)"
# LABEL org.opencontainers.image.source=https://github.com/jarred-sumner/bun
# FROM release as test
# ENV PATH /opt/bun/bin:$PATH
# ENV PATH /bun/packages/bun-linux-aarch64:/bun/packages/bun-linux-x64:$PATH
# ENV BUN_INSTALL /opt/bun
# WORKDIR /bun
# COPY ./integration /bun/integration
# COPY ./integration/snippets/package-json-exports/_node_modules_copy /bun/integration/snippets/package-json-exports/_node_modules_copy
# CMD [ "bash", "-c", "npm install && cd /bun/integration/snippets && npm install && cd /bun && make copy-test-node-modules test-all"]
# # FROM bun

1351
Makefile

File diff suppressed because it is too large Load Diff

2666
README.md

File diff suppressed because it is too large Load Diff

3
bench/.env Normal file
View File

@@ -0,0 +1,3 @@
BUN=bun
DENO=deno
NODE=node

2
bench/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
ffi/src/target
ffi/src/*.node

13
bench/README.md Normal file
View File

@@ -0,0 +1,13 @@
```bash
npm install
bun run ffi
bun run log
bun run gzip
bun run async
bun run sqlite
# to use custom version of bun/deno/node binary
BUN=path/to/bun bun run ffi
# or edit .env file
```

3
bench/async/.env Normal file
View File

@@ -0,0 +1,3 @@
BUN=bun
DENO=deno
NODE=node

7
bench/async/bun.js Normal file
View File

@@ -0,0 +1,7 @@
import { run, bench } from "mitata";
bench("sync", () => {});
bench("async", async () => {});
bench("await 1", async () => await 1);
await run();

7
bench/async/deno.js Normal file
View File

@@ -0,0 +1,7 @@
import { run, bench } from "../node_modules/mitata/src/cli.mjs";
bench("sync", () => {});
bench("async", async () => {});
bench("await 1", async () => await 1);
await run();

7
bench/async/node.mjs Normal file
View File

@@ -0,0 +1,7 @@
import { run, bench } from "mitata";
bench("sync", () => {});
bench("async", async () => {});
bench("await 1", async () => await 1);
await run();

11
bench/async/package.json Normal file
View File

@@ -0,0 +1,11 @@
{
"name": "bench",
"scripts": {
"deps": "exit 0",
"build": "exit 0",
"bench:bun": "$BUN bun.js",
"bench:node": "$NODE node.mjs",
"bench:deno": "$DENO run -A --unstable deno.js",
"bench": "bun run bench:bun && bun run bench:node && bun run bench:deno"
}
}

5
bench/cat/bun.js Normal file
View File

@@ -0,0 +1,5 @@
import { resolve } from "path";
const { write, stdout, file } = Bun;
const input = resolve(process.argv[process.argv.length - 1]);
await write(stdout, file(input));

12
bench/cat/cat.mjs Normal file
View File

@@ -0,0 +1,12 @@
// works in both bun & node
import { readFileSync } from "node:fs";
const count = parseInt(process.env.ITERATIONS || "1", 10) || 1;
const arg = process.argv.slice(1);
// TODO: remove Buffer.from() when readFileSync() returns Buffer
for (let i = 0; i < count; i++)
console.log(
arg.map((file) => Buffer.from(readFileSync(file, "utf8"))).join("")
);

6
bench/cat/node.js Normal file
View File

@@ -0,0 +1,6 @@
const fs = require("fs");
const path = require("path");
const input = path.resolve(process.argv[process.argv.length - 1]);
fs.createReadStream(input).pipe(process.stdout);

5
bench/copyfile/bun.js Normal file
View File

@@ -0,0 +1,5 @@
import path from "path";
const input = path.resolve(process.argv[process.argv.length - 2]);
const output = path.resolve(process.argv[process.argv.length - 1]);
await Bun.write(Bun.file(output), Bun.file(input));

View File

@@ -0,0 +1,4 @@
import { createReadStream, createWriteStream } from "node:fs";
const arg = process.argv.slice(2);
createReadStream(arg[0]).pipe(createWriteStream(arg[1]));

View File

@@ -0,0 +1,40 @@
import { copyFileSync, writeFileSync, readFileSync, statSync } from "node:fs";
import { bench, run } from "mitata";
function runner(ready) {
for (let size of [1, 10, 100, 1000, 10000, 100000, 1000000, 10000000]) {
const rand = new Int32Array(size);
for (let i = 0; i < size; i++) {
rand[i] = (Math.random() * 1024 * 1024) | 0;
}
const dest = `/tmp/fs-test-copy-file-${(
(Math.random() * 10000000 + 100) |
0
).toString(32)}`;
const src = `/tmp/fs-test-copy-file-${(
(Math.random() * 10000000 + 100) |
0
).toString(32)}`;
writeFileSync(src, Buffer.from(rand.buffer), { encoding: "buffer" });
const { size: fileSize } = statSync(src);
if (fileSize !== rand.byteLength) {
throw new Error("size mismatch");
}
ready(src, dest, new Uint8Array(rand.buffer));
}
}
runner((src, dest, rand) =>
bench(`copyFileSync(${rand.buffer.byteLength} bytes)`, () => {
copyFileSync(src, dest);
// const output = readFileSync(dest).buffer;
// for (let i = 0; i < output.length; i++) {
// if (output[i] !== rand[i]) {
// throw new Error(
// "Files are not equal" + " " + output[i] + " " + rand[i] + " " + i
// );
// }
// }
})
);
await run();

5
bench/copyfile/node.mjs Normal file
View File

@@ -0,0 +1,5 @@
import { copyFileSync } from "node:fs";
const arg = process.argv.slice(2);
copyFileSync(arg[0], arg[1]);

3
bench/ffi/.env Normal file
View File

@@ -0,0 +1,3 @@
BUN=bun
DENO=deno
NODE=node

34
bench/ffi/bun.js Normal file
View File

@@ -0,0 +1,34 @@
import { run, bench, group } from "mitata";
import { ptr, dlopen, CString } from "bun:ffi";
const { napiNoop, napiHash, napiString } = require("./src/ffi_napi_bench.node");
const {
symbols: {
ffi_noop: { native: ffi_noop },
ffi_hash: { native: ffi_hash },
ffi_string: { native: ffi_string },
},
} = dlopen("./src/ffi_napi_bench.node", {
ffi_noop: { args: [], returns: "void" },
ffi_string: { args: [], returns: "ptr" },
ffi_hash: { args: ["ptr", "u32"], returns: "u32" },
});
const bytes = new Uint8Array(64);
group("bun:ffi", () => {
bench("noop", () => ffi_noop());
bench("hash", () => ffi_hash(ptr(bytes), bytes.byteLength));
bench("c string", () => new CString(ffi_string()));
});
if (process.env.SHOW_NAPI)
group("bun:napi", () => {
bench("noop", () => napiNoop());
bench("hash", () => napiHash(bytes));
bench("string", () => napiString());
});
await run();

27
bench/ffi/deno.js Normal file
View File

@@ -0,0 +1,27 @@
import { run, bench, group } from "../node_modules/mitata/src/cli.mjs";
const extension = "darwin" !== Deno.build.os ? "so" : "dylib";
const path = new URL(
"src/target/release/libffi_napi_bench." + extension,
import.meta.url
).pathname;
const {
symbols: { ffi_noop, ffi_hash, ffi_string },
} = Deno.dlopen(path, {
ffi_noop: { parameters: [], result: "void" },
ffi_string: { parameters: [], result: "pointer" },
ffi_hash: { parameters: ["pointer", "u32"], result: "u32" },
});
const bytes = new Uint8Array(64);
group("deno:ffi", () => {
bench("noop", () => ffi_noop());
bench("hash", () => ffi_hash(bytes, bytes.byteLength));
bench("c string", () =>
new Deno.UnsafePointerView(ffi_string()).getCString()
);
});
await run();

16
bench/ffi/node.mjs Normal file
View File

@@ -0,0 +1,16 @@
import { run, bench, group } from "mitata";
import { createRequire } from "node:module";
const require = createRequire(import.meta.url);
const { napiNoop, napiHash, napiString } = require("./src/ffi_napi_bench.node");
const bytes = new Uint8Array(64);
group("napi", () => {
bench("noop", () => napiNoop());
bench("hash", () => napiHash(bytes));
bench("string", () => napiString());
});
await run();

11
bench/ffi/package.json Normal file
View File

@@ -0,0 +1,11 @@
{
"name": "bench",
"scripts": {
"bench:bun": "$BUN bun.js",
"bench:node": "$NODE node.mjs",
"deps": "cd src && bun run deps",
"build": "cd src && bun run build",
"bench:deno": "$DENO run -A --unstable deno.js",
"bench": "bun run bench:bun && bun run bench:node && bun run bench:deno"
}
}

202
bench/ffi/src/Cargo.lock generated Normal file
View File

@@ -0,0 +1,202 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "aho-corasick"
version = "0.7.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
dependencies = [
"memchr",
]
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "convert_case"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb4a24b1aaf0fd0ce8b45161144d6f42cd91677fd5940fd431183eb023b3a2b8"
[[package]]
name = "ctor"
version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c"
dependencies = [
"quote",
"syn",
]
[[package]]
name = "ffi_napi_bench"
version = "0.1.0"
dependencies = [
"napi",
"napi-build",
"napi-derive",
]
[[package]]
name = "libloading"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
dependencies = [
"cfg-if",
"winapi",
]
[[package]]
name = "memchr"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[package]]
name = "napi"
version = "2.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3517d4a4af99e0a9960e26332ee1e1bcb9e0298657f58e7e97157a8532dfcd4b"
dependencies = [
"ctor",
"napi-sys",
"once_cell",
"thread_local",
]
[[package]]
name = "napi-build"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "882a73d9ef23e8dc2ebbffb6a6ae2ef467c0f18ac10711e4cc59c5485d41df0e"
[[package]]
name = "napi-derive"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3aaa8a11b0ae982306d311627cafd997ef556abdf1d79a01e6e75bc1ac5cfced"
dependencies = [
"convert_case",
"napi-derive-backend",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "napi-derive-backend"
version = "1.0.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0cdb9be87524eccc14f988825b26eaa3752e07a81cb04c34436057823d91e421"
dependencies = [
"convert_case",
"once_cell",
"proc-macro2",
"quote",
"regex",
"syn",
]
[[package]]
name = "napi-sys"
version = "2.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "529671ebfae679f2ce9630b62dd53c72c56b3eb8b2c852e7e2fa91704ff93d67"
dependencies = [
"libloading",
]
[[package]]
name = "once_cell"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
[[package]]
name = "proc-macro2"
version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
dependencies = [
"proc-macro2",
]
[[package]]
name = "regex"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
]
[[package]]
name = "regex-syntax"
version = "0.6.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
[[package]]
name = "syn"
version = "1.0.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "thread_local"
version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
dependencies = [
"once_cell",
]
[[package]]
name = "unicode-ident"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"

18
bench/ffi/src/Cargo.toml Normal file
View File

@@ -0,0 +1,18 @@
[package]
edition = "2021"
version = "0.1.0"
name = "ffi_napi_bench"
[lib]
crate-type = ["cdylib"]
[features]
default = []
enable-napi = []
[dependencies]
napi = "2"
napi-derive = "2"
[build-dependencies]
napi-build = "2.0.1"

5
bench/ffi/src/build.rs Normal file
View File

@@ -0,0 +1,5 @@
#[cfg(feature="enable-napi")] extern crate napi_build;
fn main() {
#[cfg(feature="enable-napi")] napi_build::setup();
}

BIN
bench/ffi/src/bun.lockb Executable file

Binary file not shown.

View File

@@ -0,0 +1,17 @@
{
"name": "bench",
"napi": {
"name": "napi"
},
"dependencies": {
"@napi-rs/cli": "^2.10.1",
"@node-rs/helper": "^1.3.3"
},
"scripts": {
"deps": "bun install",
"build:ffi": "cargo build --release",
"build": "bun run build:napi && bun run build:ffi",
"cleanup": "rm -f index.js index.d.ts && mv napi.*.node ffi_napi_bench.node",
"build:napi": "napi build --release --platform --no-dts-header --features enable-napi && bun run cleanup"
}
}

49
bench/ffi/src/src/lib.rs Normal file
View File

@@ -0,0 +1,49 @@
// double src o.O
#[cfg(feature="enable-napi")] use napi_derive::napi;
#[cfg(feature="enable-napi")] use napi::bindgen_prelude::*;
static STRING: &'static str = "Hello, world!\0";
fn hash(buf: &[u8]) -> u32 {
let mut hash: u32 = 0;
for byte in buf {
hash = hash.wrapping_mul(0x10001000).wrapping_add(*byte as u32);
}
return hash;
}
#[cfg(feature="enable-napi")]
#[napi] pub fn napi_noop() {
// do nothing
}
#[no_mangle] unsafe extern "C" fn ffi_noop() {
// do nothing
}
#[cfg(feature="enable-napi")]
#[napi] pub fn napi_string() -> &'static str {
return &STRING[0..(STRING.len() - 1)];
}
#[no_mangle] unsafe extern "C" fn ffi_string() -> *const u8 {
return STRING.as_ptr();
}
#[cfg(feature="enable-napi")]
#[napi] pub fn napi_hash(buffer: Buffer) -> u32 {
return hash(&buffer);
}
#[no_mangle] unsafe extern "C" fn ffi_hash(ptr: *const u8, length: u32) -> u32 {
return hash(std::slice::from_raw_parts(ptr, length as usize));
}

3
bench/gzip/.env Normal file
View File

@@ -0,0 +1,3 @@
BUN=bun
DENO=deno
NODE=node

20
bench/gzip/bun.js Normal file
View File

@@ -0,0 +1,20 @@
import { run, bench } from "mitata";
import { gzipSync, gunzipSync } from "bun";
const data = new TextEncoder().encode("Hello World!".repeat(9999));
const compressed = gzipSync(data);
bench(`roundtrip - "Hello World!".repeat(9999))`, () => {
gunzipSync(gzipSync(data));
});
bench(`gzipSync("Hello World!".repeat(9999)))`, () => {
gzipSync(data);
});
bench(`gunzipSync("Hello World!".repeat(9999)))`, () => {
gunzipSync(compressed);
});
await run();

85
bench/gzip/deno.js Normal file
View File

@@ -0,0 +1,85 @@
import { run, bench } from "../node_modules/mitata/src/cli.mjs";
const data = new TextEncoder().encode("Hello World!".repeat(9999));
const compressed = await compress(data);
bench(`roundtrip - "Hello World!".repeat(9999))`, async () => {
await decompress(await compress(data));
});
bench(`gzip("Hello World!".repeat(9999)))`, async () => {
await compress(data);
});
bench(`gunzip("Hello World!".repeat(9999)))`, async () => {
await decompress(compressed);
});
await run();
async function compress(buffer) {
const cs = new CompressionStream("gzip");
const writer = cs.writable.getWriter();
writer.write(buffer);
writer.close();
const chunks = [];
const reader = cs.readable.getReader();
let length = 0;
while (true) {
const { done, value } = await reader.read();
if (done) break;
chunks.push(value);
length += value.length;
}
const u8 = new Uint8Array(length);
let offset = 0;
for (const chunk of chunks) {
u8.set(chunk, offset);
offset += chunk.length;
}
return u8;
}
async function decompress(buffer) {
const ds = new DecompressionStream("gzip");
const writer = ds.writable.getWriter();
writer.write(buffer);
writer.close();
const chunks = [];
const reader = ds.readable.getReader();
let length = 0;
while (true) {
const { done, value } = await reader.read();
if (done) break;
chunks.push(value);
length += value.length;
}
const u8 = new Uint8Array(length);
let offset = 0;
for (const chunk of chunks) {
u8.set(chunk, offset);
offset += chunk.length;
}
return u8;
}

20
bench/gzip/node.mjs Normal file
View File

@@ -0,0 +1,20 @@
import { run, bench } from "mitata";
import { gzipSync, gunzipSync } from "zlib";
const data = new TextEncoder().encode("Hello World!".repeat(9999));
const compressed = gzipSync(data);
bench(`roundtrip - "Hello World!".repeat(9999))`, () => {
gunzipSync(gzipSync(data));
});
bench(`gzipSync("Hello World!".repeat(9999)))`, () => {
gzipSync(data);
});
bench(`gunzipSync("Hello World!".repeat(9999)))`, () => {
gunzipSync(compressed);
});
await run();

11
bench/gzip/package.json Normal file
View File

@@ -0,0 +1,11 @@
{
"name": "bench",
"scripts": {
"deps": "exit 0",
"build": "exit 0",
"bench:bun": "$BUN bun.js",
"bench:node": "$NODE node.mjs",
"bench:deno": "$DENO run -A --unstable deno.js",
"bench": "bun run bench:bun && bun run bench:node && bun run bench:deno"
}
}

View File

@@ -4,10 +4,10 @@ This benchmarks bundler performance for CSS hot reloading.
## Results
Bun is 14x faster than Next.js at hot reloading CSS.
bun is 14x faster than Next.js at hot reloading CSS.
```
Bun v0.0.34
bun v0.0.34
Saving every 16ms
Frame time:
@@ -36,11 +36,11 @@ Bun is 14x faster than Next.js at hot reloading CSS.
It times pixels instead of builds. `color-looper.zig` writes color updates and the timestamp to a css file, while simultaneously screen recording a non-headless Chromium instance. After it finishes, it OCRs the video frames and verifies the scanned timestamps against the actual data. This data measures (1) how long each update took from saving to disk up to the pixels visible on the screen and (2) what % of frames were rendered.
The intent is to be as accurate as possible. Measuring times reported client-side is simpler, but lower accuracy since those times may not correspond to pixels on the screen and do not start from when the data was written to disk (at best, they measure when the filesystem watcher detected the update, but often not that either). `color-looper.zig` must run separately from `browser.js` or the results will be innaccurate.
The intent is to be as accurate as possible. Measuring times reported client-side is simpler, but lower accuracy since those times may not correspond to pixels on the screen and do not start from when the data was written to disk (at best, they measure when the filesystem watcher detected the update, but often not that either). `color-looper.zig` must run separately from `browser.js` or the results will be inaccurate.
It works like this:
1. `browser.js` loads either Bun or Next.js and a Chromium instance opened to the correct webpage
1. `browser.js` loads either bun or Next.js and a Chromium instance opened to the correct webpage
2. `color-looper.zig` updates [`./src/colors.css`](./src/colors.css) in a loop up to `1024` times (1024 is arbitrary), sleeping every `16`ms or `32`ms (a CLI arg you can pass it). The `var(--timestamp)` CSS variable contains the UTC timestamp with precision of milliseconds and one extra decimal point
3. `color-looper.zig` automatically records the screen via `screencapture` (builtin on macOS) and saves it, along with a `BigUint64Array` containing all the expected timestamps. When it's done, it writes to a designated file on disk which `browser.js` picks up as the signal to close the browser.
4. `ffmpeg` converts each frame into a black and white `.tif` file, which `tesseract` then OCRs

View File

@@ -75,7 +75,7 @@ pub fn main() anyerror!void {
std.fs.deleteFileAbsolute(video) catch {};
var screen_recorder_argv = [_][]const u8{ "screencapture", "-v", video };
var recorder = try std.ChildProcess.init(&screen_recorder_argv, allocator);
var recorder = std.ChildProcess.init(&screen_recorder_argv, allocator);
recorder.stdin_behavior = .Pipe;
try recorder.spawn();
std.time.sleep(std.time.ns_per_s);

View File

@@ -75,7 +75,7 @@ pub fn main() anyerror!void {
std.fs.deleteFileAbsolute(video) catch {};
var screen_recorder_argv = [_][]const u8{ "screencapture", "-v", video };
var recorder = try std.ChildProcess.init(&screen_recorder_argv, allocator);
var recorder = std.ChildProcess.init(&screen_recorder_argv, allocator);
recorder.stdin_behavior = .Pipe;
try recorder.spawn();
std.time.sleep(std.time.ns_per_s);

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
echo "Running next at 24ms"
PROJECT=next SLEEP_INTERVAL=24 make generate &

View File

@@ -1,4 +1,3 @@
import { Global } from "@emotion/react";
export function CSSInJSStyles() {
return (

View File

@@ -1,6 +1,6 @@
{
"compilerOptions": {
"baseUrl": ".",
"paths": {}
}
}
"compilerOptions": {
"baseUrl": ".",
"paths": {}
}
}

View File

@@ -0,0 +1,12 @@
import { bench, run } from "mitata";
bench("JSON.stringify({hello: 'world'})", () =>
JSON.stringify({ hello: "world" })
);
const otherUint8Array = new Uint8Array(1024);
bench("Uint8Array.from(otherUint8Array)", () =>
Uint8Array.from(otherUint8Array)
);
run();

3
bench/log/.env Normal file
View File

@@ -0,0 +1,3 @@
BUN=bun
DENO=deno
NODE=node

5
bench/log/bun.js Normal file
View File

@@ -0,0 +1,5 @@
import { bench, run } from "mitata";
bench("console.log('hello')", () => console.log("hello"));
bench("console.log({ hello: 'object' })", () => console.log({ hello: "object" }));
await run();

5
bench/log/deno.mjs Normal file
View File

@@ -0,0 +1,5 @@
import { bench, run } from "../node_modules/mitata/src/cli.mjs";
bench("console.log", () => console.log("hello"));
bench("console.log({ hello: 'object' })", () => console.log({ hello: "object" }));
await run();

5
bench/log/node.mjs Normal file
View File

@@ -0,0 +1,5 @@
import { bench, run } from "mitata";
bench("console.log", () => console.log("hello"));
bench("console.log({ hello: 'object' })", () => console.log({ hello: "object" }));
await run();

11
bench/log/package.json Normal file
View File

@@ -0,0 +1,11 @@
{
"name": "bench",
"scripts": {
"deps": "exit 0",
"build": "exit 0",
"bench:bun": "$BUN bun.js | grep iter",
"bench:node": "$NODE node.mjs | grep iter",
"bench:deno": "$DENO run -A --unstable deno.mjs | grep iter",
"bench": "bun run bench:bun && bun run bench:node && bun run bench:deno"
}
}

5
bench/module-loader/.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
output
import.mjs
require.js
meta.*
*.mjs

View File

@@ -0,0 +1,151 @@
const fs = require("fs");
var count = 500;
var saveStack = process.argv.includes("--save-stack") || false;
var output = process.cwd() + "/output";
// fs.rmdirSync("output", { recursive: true });
try {
fs.mkdirSync(output, { recursive: true });
} catch (e) {}
for (var i = 0; i < count; i++) {
var file = output + "/file" + i + ".mjs";
fs.writeFileSync(
file,
new Array(Math.trunc(i * 0.25))
.fill("")
.map((k, j) => `export * from "./file${j}.mjs";`)
.join(";globalThis.exportCounter++;\n") +
`
export * from "./file${i + 1}.mjs";
export const hello${i} = "hello${i}";
${saveStack ? `globalThis.evaluationOrder.push("${file}");` : ""}
globalThis.counter++;
`,
"utf8"
);
var file2 = output + "/file" + i + ".js";
fs.writeFileSync(
file2,
new Array(Math.trunc(i * 0.25))
.fill("")
.map((k, j) => `Object.assign(module.exports, require("./file${j}.js"));`)
.join(";globalThis.exportCounter++;\n") +
`
Object.assign(module.exports, require("./file${i + 1}.js"));
module.exports.hello${i} = "hello${i}";
${saveStack ? `globalThis.evaluationOrder.push("${file2}");` : ""}
globalThis.counter++;
`,
"utf8"
);
}
fs.writeFileSync(
output + `/file${count}.mjs`,
`
export const THE_END = true;
${
saveStack
? `globalThis.evaluationOrder.push("${output}/file${count}.mjs");`
: ""
}
`,
"utf8"
);
fs.writeFileSync(
output + `/file${count}.js`,
`
module.exports.THE_END = true;
${
saveStack
? `globalThis.evaluationOrder.push("${output}/file${count}.js");`
: ""
}
`,
"utf8"
);
fs.writeFileSync(
import.meta.dir + "/import.mjs",
`${saveStack ? `globalThis.evaluationOrder = [];` : ""}
globalThis.counter=0; globalThis.exportCounter = 0;
console.time("import");
const Foo = await import('${output}/file0.mjs');
export const THE_END = Foo.THE_END;
console.timeEnd("import");
${saveStack ? `console.log(globalThis.evaluationOrder.join("\\n"));` : ""}
console.log("Loaded", globalThis.counter, "files", "totaling", new Intl.NumberFormat().format(globalThis.exportCounter), 'exports');`,
"utf8"
);
fs.writeFileSync(
"meta.require.mjs",
`${saveStack ? `globalThis.evaluationOrder = [];` : ""}
globalThis.counter=0; globalThis.exportCounter = 0;
console.time("import.meta.require");
const Foo = import.meta.require("${output}/file0.mjs");
export const THE_END = Foo.THE_END;
console.timeEnd("import.meta.require");
${saveStack ? `console.log(globalThis.evaluationOrder.join("\\n"));` : ""}
console.log("Loaded", globalThis.counter, "files", "totaling", new Intl.NumberFormat().format(globalThis.exportCounter), 'exports');`,
"utf8"
);
fs.writeFileSync(
"meta.require.cjs",
`${saveStack ? `globalThis.evaluationOrder = [];` : ""}
globalThis.counter=0; globalThis.exportCounter = 0;
await 1;
console.time("import.meta.require");
const Foo = import.meta.require("${output}/file0.js");
export const THE_END = Foo.THE_END;
console.timeEnd("import.meta.require");
${saveStack ? `console.log(globalThis.evaluationOrder.join("\\n"));` : ""}
console.log("Loaded", globalThis.counter, "files", "totaling", new Intl.NumberFormat().format(globalThis.exportCounter), 'exports');`,
"utf8"
);
fs.writeFileSync(
import.meta.dir + "/require.js",
`${saveStack ? `globalThis.evaluationOrder = [];` : ""}
globalThis.counter=0; globalThis.exportCounter = 0;
console.time("require");
const Foo = require("${output}/file0.js");
module.exports.THE_END = Foo.THE_END;
console.timeEnd("require");
${saveStack ? `console.log(globalThis.evaluationOrder.join("\\n"));` : ""}
console.log("Loaded", globalThis.counter, "files", "totaling", new Intl.NumberFormat().format(globalThis.exportCounter), 'exports');
`,
"utf8"
);
console.log(`
Created ${count} files in ${output}
${
saveStack
? "The evaluation order will be dumped to stdout"
: "To dump the evaluation order, run: \n bun run create.js -- --save-stack"
}
Run:
bun ./meta.require.mjs
bun ./meta.require.js
Run:
bun ./import.mjs
node ./import.mjs
deno run -A ./import.mjs
Run:
bun ./require.js
node ./require.js
`);

1986
bench/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

17
bench/package.json Normal file
View File

@@ -0,0 +1,17 @@
{
"name": "bench",
"dependencies": {
"mitata": "^0.1.6",
"esbuild": "^0.14.12",
"@swc/core": "^1.2.133",
"@babel/core": "^7.16.10",
"@babel/preset-react": "^7.16.7"
},
"scripts": {
"ffi": "cd ffi && bun run deps && bun run build && bun run bench",
"log": "cd log && bun run deps && bun run build && bun run bench",
"gzip": "cd gzip && bun run deps && bun run build && bun run bench",
"async": "cd async && bun run deps && bun run build && bun run bench",
"sqlite": "cd sqlite && bun run deps && bun run build && bun run bench"
}
}

View File

@@ -0,0 +1,25 @@
import { renderToReadableStream } from "https://esm.run/react-dom/server";
import { serve } from "https://deno.land/std@0.146.0/http/server.ts";
import * as React from "https://esm.run/react";
const App = () => (
<html>
<body>
<h1>Hello World</h1>
</body>
</html>
);
const headers = {
headers: {
"Content-Type": "text/html",
"Cache-Control": "no-transform", // disables response body auto compression, see https://deno.land/manual/runtime/http_server_apis#automatic-body-compression
},
};
await serve(
async (req) => {
return new Response(await renderToReadableStream(<App />), headers);
},
{ port: 8080 }
);

View File

@@ -0,0 +1,22 @@
import { renderToReadableStream } from "../../test/bun.js/reactdom-bun.js";
const headers = {
headers: {
"Content-Type": "text/html",
"Cache-Control": "no-transform", // set to match the Deno benchmark, which requires this for an apples to apples comparison
},
};
const App = () => (
<html>
<body>
<h1>Hello World</h1>
</body>
</html>
);
export default {
async fetch(req) {
return new Response(await renderToReadableStream(<App />), headers);
},
};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,45 @@
// react-ssr.tsx
import { renderToPipeableStream } from "react-dom/server.node";
import React from "react";
const http = require("http");
const App = () => (
<html>
<body>
<h1>Hello World</h1>
</body>
</html>
);
var didError = false;
http
.createServer(function (req, res) {
const stream = renderToPipeableStream(<App />, {
onShellReady() {
// The content above all Suspense boundaries is ready.
// If something errored before we started streaming, we set the error code appropriately.
res.statusCode = didError ? 500 : 200;
res.setHeader("Content-type", "text/html");
res.setHeader("Cache-Control", "no-transform"); // set to match the Deno benchmark, which requires this for an apples to apples comparison
stream.pipe(res);
},
onShellError(error) {
// Something errored before we could complete the shell so we emit an alternative shell.
res.statusCode = 500;
res.send(
'<!doctype html><p>Loading...</p><script src="clientrender.js"></script>'
);
},
onAllReady() {
// If you don't want streaming, use this instead of onShellReady.
// This will fire after the entire page content is ready.
// You can use this for crawlers or static generation.
// res.statusCode = didError ? 500 : 200;
// res.setHeader('Content-type', 'text/html');
// stream.pipe(res);
},
onError(err) {
didError = true;
console.error(err);
},
});
})
.listen(9080);

BIN
bench/scanner/bun.lockb Executable file

Binary file not shown.

View File

@@ -0,0 +1,6 @@
{
"name": "scan",
"dependencies": {
"esbuild": "^0.14.11"
}
}

View File

@@ -0,0 +1,15 @@
import { useParams } from "remix";
import type { LoaderFunction, ActionFunction } from "remix";
export const loader: LoaderFunction = async ({ params }) => {
console.log(params.postId);
};
export const action: ActionFunction = async ({ params }) => {
console.log(params.postId);
};
export default function PostRoute() {
const params = useParams();
console.log(params.postId);
}

View File

@@ -0,0 +1,15 @@
import { readFileSync } from "fs";
const fixture = ["action", "default", "loader"];
const transpiler = new Bun.Transpiler({
loader: "ts",
});
console.time("Get exports");
const ITERATIONS = parseInt(process.env.ITERATIONS || "1") || 1;
for (let i = 0; i < ITERATIONS; i++) {
const imports = transpiler.scanImports(
readFileSync("remix-route.ts", "utf8")
);
}
console.timeEnd("Get exports");

21
bench/scanner/scan.bun.js Normal file
View File

@@ -0,0 +1,21 @@
import { readFileSync } from "fs";
const fixture = ["action", "default", "loader"];
const ITERATIONS = parseInt(process.env.ITERATIONS || "1") || 1;
const transpiler = new Bun.Transpiler({
loader: "ts",
});
console.time("Get exports");
const file = readFileSync("remix-route.ts", "utf8");
for (let i = 0; i < ITERATIONS; i++) {
const { imports, exports } = transpiler.scan(file);
for (let j = 0; j < fixture.length; j++) {
if (fixture[j] !== exports[j]) {
throw new Error("Mismatch");
}
}
}
console.timeEnd("Get exports");

View File

@@ -0,0 +1,42 @@
import { build, buildSync } from "esbuild";
import { readFileSync } from "fs";
const fixture = ["action", "default", "loader"];
const ITERATIONS = parseInt(process.env.ITERATIONS || "1") || 1;
const opts = {
metafile: true,
format: "esm",
platform: "neutral",
write: false,
logLevel: "silent",
stdin: {
contents: readFileSync("remix-route.ts", "utf8"),
loader: "ts",
sourcefile: "remix-route.js",
},
};
const getExports = ({ metafile }) => {
for (let i = 0; i < fixture.length; i++) {
if (fixture[i] !== metafile.outputs["stdin.js"].exports[i]) {
throw new Error("Mismatch");
}
}
};
console.time("Get exports");
if (!process.env.SYNC) {
var promises = new Array(ITERATIONS);
for (let i = 0; i < ITERATIONS; i++) {
promises[i] = build(opts).then(getExports);
}
await Promise.all(promises);
} else {
for (let i = 0; i < ITERATIONS; i++) {
getExports(buildSync(opts));
}
}
console.timeEnd("Get exports");

1610
bench/snippets/_fixture.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,81 @@
// import { Buffer } from "buffer";
var buf = new Buffer(1024);
// var buf = new Uint8Array(1024);
var view = new DataView(buf.buffer);
var INTERVAL = 9999999;
var time = (name, fn) => {
console.log(name, fn());
// for (let i = 0; i < INTERVAL; i++) fn();
// console.time(name.padEnd("DataView.readBigUInt64 (LE)".length));
// for (let i = 0; i < INTERVAL; i++) fn();
// console.timeEnd(name.padEnd("DataView.readBigUInt64 (LE)".length));
// };
// console.log(
// `Run ${new Intl.NumberFormat().format(INTERVAL)} times with a warmup:`,
// "\n"
};
var array = new Uint8Array(1024);
new Uint8Array(buf.buffer).fill(255);
time("Buffer[] ", () => buf[0]);
time("Uint8Array[]", () => array[0]);
console.log("");
time("Buffer.getBigInt64BE ", () => buf.readBigInt64BE(0));
time("DataView.getBigInt64 (BE)", () =>
view.getBigInt64(0, false).toString(10)
);
console.log("");
time("Buffer.readBigInt64LE ", () => buf.readBigInt64LE(0));
time("DataView.readBigInt64 (LE)", () => view.getBigInt64(0, true));
console.log("");
time("Buffer.getBigUInt64BE ", () => buf.readBigUInt64BE(0));
time("DataView.getBigUInt64 (BE)", () => view.getBigUint64(0, false));
console.log("");
time("Buffer.readBigUInt64LE ", () => buf.readBigUInt64LE(0));
time("DataView.readBigUInt64 (LE)", () => view.getBigUint64(0, true));
console.log("");
time("Buffer.getDoubleBE ", () => buf.readDoubleBE(0));
time("DataView.getDouble (BE)", () => view.getFloat64(0, false));
console.log("");
time("Buffer.readDoubleLE ", () => buf.readDoubleLE(0));
time("DataView.readDouble (LE)", () => view.getFloat64(0, true));
console.log("");
time("Buffer.getFloatBE ", () => buf.readFloatBE(0));
time("DataView.getFloat (BE)", () => view.getFloat32(0, false));
console.log("");
time("Buffer.readFloatLE ", () => buf.readFloatLE(0));
time("DataView.readFloat (LE)", () => view.getFloat32(0, true));
console.log("");
time("Buffer.getInt16BE ", () => buf.readInt16BE(0));
time("DataView.getInt16 (BE)", () => view.getInt16(0, false));
console.log("");
time("Buffer.readInt16LE ", () => buf.readInt16LE(0));
time("DataView.readInt16 (LE)", () => view.getInt16(0, true));
console.log("");
time("Buffer.getInt32BE ", () => buf.readInt32BE(0));
time("DataView.getInt32 (BE)", () => view.getInt32(0, false));
console.log("");
time("Buffer.readInt32LE ", () => buf.readInt32LE(0));
time("DataView.readInt32 (LE)", () => view.getInt32(0, true));
console.log("");
time("Buffer.readInt8 ", () => buf.readInt8(0));
time("DataView.readInt (t8)", () => view.getInt8(0));
console.log("");
time("Buffer.getUInt16BE ", () => buf.readUInt16BE(0));
time("DataView.getUInt16 (BE)", () => view.getUint16(0, false));
console.log("");
time("Buffer.readUInt16LE ", () => buf.readUInt16LE(0));
time("DataView.readUInt16 (LE)", () => view.getUint16(0, true));
console.log("");
time("Buffer.getUInt32BE ", () => buf.readUInt32BE(0));
time("DataView.getUInt32 (BE)", () => view.getUint32(0, false));
console.log("");
time("Buffer.readUInt32LE ", () => buf.readUInt32LE(0));
time("DataView.getUInt32 (LE)", () => view.getUint32(0, true));
console.log("");
time("Buffer.readUInt8 ", () => buf.readUInt8(0));
time("DataView.getUInt (t8)", () => view.getUint8(0));
console.log("");

Some files were not shown because too many files have changed in this diff Show More