Commit Graph

8286 Commits

Author SHA1 Message Date
Jarred Sumner
a623e7c702 Fixes #7736 (#7752)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-20 00:57:16 -08:00
Jarred Sumner
59a0e885d9 Make large stdio in Bun.spawnSync efficient on Linux (#7733)
* Use memfd in spawnSync when possible

* Make it work

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-19 20:25:31 -08:00
Dylan Conway
3f1c39ad0b fix(install): lifecycle script verbose logging and a couple bug fixes (#7726)
* trim trailing slash, always create temp node-gyp

* verbose lifecycle scripts

* move node_modules from other package managers to subdirectory

* fix merge

* remove for another branch

* Update bun-install-registry.test.ts

* Update bun-install-registry.test.ts

* inherit mac only

* Update src/install/lifecycle_script_runner.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* cache directory created when ensuring temp node-gyp

* fix merge

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-12-19 19:39:33 -08:00
dave caruso
39d062cf3c feat: print the longest postinstall if it took more than 500ms (#7719)
* print the longest postinstall if it took more than 500ms

* build error

* make newlines print right

* fix tests

* sdfafdsa

* i hope this is it
2023-12-19 17:51:39 -08:00
dave caruso
92901eb6e0 fix: change how exit codes and signals are printed (#7674)
* change how exit codes and signals are printed

* second iteration of this

* [autofix.ci] apply automated fixes

* dasfsa

* Fix Linux Build

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-12-19 16:55:15 -08:00
Jarred Sumner
61f92d9e5f fix(install): fix false positive "lockfile is frozen" when using bun install --production (#7713)
* More lkogs

Add more logs for `--verbose`

* Fixes #5792

This makes `--frozen-lockfile` use a hash of all the resolved package versions that were installed, instead of the more permissive logic used to decide whether or not to re-run the install

* Fix debug assertion failure in `bun install --production`

* Update src/install/install.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-19 00:56:21 -08:00
Dylan Conway
b88324db31 chore: upgrade webkit (#7720)
* update

* alwaysInline

* update webkit commit

* update webkit tag

* remove webkit_url

* check for exception and update webkit commit

* update webkit tag
2023-12-18 20:54:04 -08:00
Dylan Conway
dc19541719 update bun.zig 2023-12-18 20:15:02 -08:00
Jarred Sumner
2d2f3c4e50 fix: Tweaks to syntax highlighter (#7711)
* [syntax highlighter] Highlight `from` and `as` in `import`. Don't bold function calls or identifiers

* Update bun.zig

* Update bun.zig

* Update src/bun.zig

Co-authored-by: dave caruso <me@paperdave.net>

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
2023-12-18 18:32:45 -08:00
dave caruso
f3ce571a29 fix: parsing error from "a<b>" as typescript (#7722) 2023-12-18 18:24:04 -08:00
dave caruso
1a2643520b fix(bundler): handle direct eval better (#7693)
* fix(bundler): handle  direct eval better

* error message
2023-12-18 14:41:04 -08:00
Jarred Sumner
506c165860 Fix napi tests 2023-12-18 00:03:45 -08:00
Jarred Sumner
b6f60680f6 Remove protobuf.js from default trusted dependencies list
The postinstall script will never print anything, since it does not exit with a non-zero exit code.

Therefore, this warning will never have an impact

Therefore, it should not be allowed to increase how long it takes to install your packages

4436cc748c/scripts/postinstall.js
2023-12-17 00:10:49 -08:00
Jarred Sumner
1f71ad5661 Fixes #7694
Verified it now calls the function the correct number of times
2023-12-16 23:47:57 -08:00
dave caruso
cbb477cbe2 perf: make Bun.peek 90x faster on pending promises, 1.5x on resolved (#7697)
* perf: make peek() 90x faster on pending promises, 1.5x faster on resolved promises

* more bench

* test edits
2023-12-16 17:36:08 -08:00
dave caruso
369e3022e4 chore: upgrade zig to 0.12.0-dev.1828+225fe6ddb (#7671)
* chore: upgrade zig to 0.12.0-dev.1828+225fe6ddb

* open as iterable

* fix building identifier cache

* fix windows build

* fix linux build

* fix linux build
2023-12-16 00:14:15 -08:00
Jarred Sumner
ca89087684 feat: Make using await inside a non-async function have a helpful error message (#7690)
* Update fs.test.ts

* Make using `await` inside a non-async function have a good error

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-15 18:04:40 -08:00
Vincent Lechemin
f88e5d128c Fix file descriptor leak in readdir (#7688) 2023-12-15 16:39:40 -08:00
Jarred Sumner
4d7c66066b fix: Resolve specifiers passed to mock.module (#7673)
* Mention module mocks in docs

* [autofix.ci] apply automated fixes

* Fix relative file paths that do not exist

* add test for file: URL

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-15 14:41:56 -08:00
dave caruso
6443c26a4a fix node_env regression (#7666) 2023-12-15 16:51:26 -03:00
Jarred Sumner
c2cd7402a0 Upgrade from SQLite v3.38.5 to v3.44.2 (#7668)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-14 20:03:29 -08:00
Ashcon Partovi
fbcb622335 Implement expect().toContainEqual() (#6589)
* Support `expect().toBeValidDate()`

* Support `expect().toContainEqual()`

Also fixes a bug where `expect(new Set()).toContain()` would not work

* Update expect.zig

* docs

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-14 17:11:14 -08:00
Mathias Wulff
fc733fe89c Use stderr for info about how to open inspector (#7270)
* Use stderr for info about how to open inspector

* Write to stderr without red colors
2023-12-14 17:07:46 -08:00
dave caruso
441612917d windows: more windows stuff (#6938)
* fix(win/upgrade): do not show powershell expand-archive info while upgrading

* start working bun run

* experiment: `bun.new`

* you can now bun run

* Update src/install/install.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* Update src/install/install.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* stuff

* fix stuff

* fix this

* farther but not really

* sadfs

* path hell

not sure how much worse or better this makes things. its a mess. windows path handlign is a mess aaaaaaaaaaaaaaaa

* path.resolve bs

* remove old build system stuff from pr

* a

* fix some path.parse/join cases

* path closer not perfect

* normalize and join tests tests  done

* paths

* implement path.relative

* ,

* stuff

* assert

* fix compile

* hate

* the code isnt great

* stuff

* housekeeping for build system

* blah

* explain windows sitaution in docs

* some progress? not much though

* zig compiler crashes here

* fix

* yippee

* ok

* a

* ala wala

* fix builds on stuff

* clean

* the tests now run

* a

* aa

* dedupe uv event loop

* fix fs test accuracy

* stuff

* [autofix.ci] apply automated fixes

* huge updat e

* [autofix.ci] apply automated fixes

* url

* [autofix.ci] apply automated fixes

* start windows spawnSync

* [autofix.ci] apply automated fixes

* add --webkit for update submodules

* add better err message for `bun setup`

* fix unix platform build

* .

* [autofix.ci] apply automated fixes

* un-upgrade libarchive

* z

* asdfghj

* wrk

* todo -> panic

* ok

* a

* [autofix.ci] apply automated fixes

* fix build scripts l ol

* dfghj

* fa

* [autofix.ci] apply automated fixes

* aaaa

* a

* l

* [autofix.ci] apply automated fixes

* more logs

* [autofix.ci] apply automated fixes

* j

* fix init_command

* CORE DUMP HELL

* i swear im being pranked by the github actions gods

* fadsjkfdshjkhjkdfsahjkdfshjksdafjkhhjkfdsahfsdkjhfsdjkahf

* thanks IAS

* this is the correct fix

* personal review

* ddisablbe these

* revisions!

* ok

* fix submodule

* stuff

* fix libarchive

* [autofix.ci] apply automated fixes

* stuff

* [autofix.ci] apply automated fixes

* a

* fix addressToJS on windows

* make dns async again

* dx: add flag to update submodules ps1 to clone webkit

* dns error case for libuv

* dx improvements on windows

* newline

* obvious fix

* install steps

* extra note

* fix fs test

* Update building-windows.md

* fix builtins bundler to support \r\n line endnigs

* better

* some windows stuff

* a

* a

* a

* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

* [autofix.ci] apply automated fixes

* bunfile text works

* fix build on the mac

* hellooooooooooo

* install steps

* ci for baseline?

* fix

* aaa

* wow

* install script revamp

* bug

* OK

* ok

* aaaaaaaaaaaaaa

* okay

* fix the node test runner lol

* fix napi stuff

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cirospaciari <ciro.spaciai@gmail.com>
Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
2023-12-14 16:56:33 -08:00
Jarred Sumner
453a270b2e linker ld scripts expect unmangled names 2023-12-14 14:25:18 -08:00
Jarred Sumner
fe5e19da59 Implement v8::Isolate::TryGetCurrent, v8::Isolate::GetCurrent, v8::Isolate::GetCurrentContext, stub node::AddEnvironmentCleanupHook & node:: RemoveEnvironmentCleanupHook (#7665)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-14 13:46:38 -08:00
Vlad Sirenko
19e80771ac http convert es5 class (#7485)
* http convert es5 class

* remove additional object with private fields

* add comment to http method
2023-12-14 03:03:30 -08:00
Dylan Conway
36c316a24a fix(install) make sure node-gyp is available during lifecycle scripts (#7622)
* bunx node-gyp

* add test

* create temp node-gyp when used in script

* windows reminder

* closer?

* Update bunx_command.zig

* append fake node to end of path

* Update install.zig

* correct temp node-gyp dir, always append parent `node_modules/.bin` dir

* make sure temp node-gyp doesnt run itself

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-13 23:19:37 -08:00
James Anderson
c0ccdccbeb fix(resolver): wildcard tsconfig path not including suffix (#7612)
* fix(resolver): wildcard tsconfig path not including suffix

* different approach
2023-12-13 23:19:20 -08:00
dave caruso
1fc9b56936 feat(test): rejects.toThrow and resolves.toThrow (#7652) 2023-12-13 23:18:17 -08:00
dave caruso
8ec405facc fix(build): add a missing / in a fallback path route (#7653) 2023-12-13 23:12:25 -08:00
dave caruso
beedb28e38 fix: stuff i forgot to push (#7651)
* i forgot

* a
2023-12-13 22:41:37 -08:00
Jarred Sumner
0bce2b46ca Fixes #7641 2023-12-13 22:04:05 -08:00
dave caruso
c8305df5c2 fix(runtime): make process.stdin work (fix vite create on linux) (#7650)
* a

* make fds cached

* fghjfdsaa

* dsfafsa

* 😭
2023-12-13 21:52:37 -08:00
dave caruso
9787ea91f2 fix(node): always use .RunCommand when binary is named node (#7615)
* make the cli act more like node when the binary is named node

* mmmmmmmmmmm review comments

* whatever

* fix test

* am stupid am stupid

* sure
2023-12-13 21:43:05 -08:00
dave caruso
5029fc8564 fix: do not inline process.env during bun run and bun test (#7614)
* env stuff

* ok

* undo

* remove unused param

* resolve review comment

* dupe

* it compiles now i promise
2023-12-13 06:05:03 -08:00
Jarred Sumner
38c6575dc8 Fix incorrect pipe reading code for lifecycle scripts, add basic ioctl_ficlone support (#7628)
* Move code for lifecycle scripts into a separate file

* Fix slow & incorrect pipe reading code used for bun install lifecycle scripts

* Fix crash in IPC due to calling on_socket_long_timeout when its a null ptr

* Only try to get the node path one time

* Fix incorrect glob pattern for rebuilding Zig files

@paperdave doing `**/**/**` does not work

* Implement basic support for ioctl_ficlone

* lowercase these

* intcast

* This is backwards

* Fix "waiting for tasks" spam

* Update install.zig

* Add helper

* Update install.zig

* Address PR feedback

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-13 06:03:21 -08:00
Dylan Conway
efb2cb5871 get auto and prefer from install expr (#7624) 2023-12-13 03:11:03 -08:00
pacexy
9fc12a1244 Fix install.exact does not work (#7603)
* fix

* fix
2023-12-13 01:24:05 -08:00
Jarred Sumner
4fec7f84c8 Run libc atexit callbacks 2023-12-12 17:34:19 -08:00
Jarred Sumner
5e60861c34 Disable this warning 2023-12-12 02:32:48 -08:00
dave caruso
a2f595d352 fix: better error message for bun install fs permission errors (#7550)
* remove `prettyWarn`, add easy print utils, clarify a package.json loading error

* error when node_modules isnt writable

* hmm

* fix instal

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-12 00:18:05 -08:00
Dylan Conway
d163351f3e fix(install): fix semver sorting with prereleases (#7588)
* compare number with string correctly

* Update semver.zig

* invalidate cache

* seconds
2023-12-11 22:29:22 -08:00
Dylan Conway
351e47355a add default trustedDependencies and run lifecycle scripts during installation (#7132)
* [install] allow parallel execution of `postinstall` scripts

- fixes spurious exit code 42 from `spawn()`

* postinstall to a pipe

* feat(install): include top 500 packages as defaults for postinstall

* windows newline handling*

*i did not test it

* stuff

* cool

* a

* fix merge

* set `has_trusted_dependencies`

* fix a bunch of tests

* fix merge

* remove `PackageManager`

* remove commented code

* change to function

* Update lockfile.zig

* run scripts if added to `trustedDependencies` after install

* packages without `resolved` properties

* node-gyp scripts

* node-gyp script in the root

* another test

* git deps run prepare scripts

* fix merge

* run lifecycle scripts during installation

* Update lockfile.zig

* always increment

* 🏗️

* update tests

* tickWIthoutIdle

* const uws

* loop forwards through trees

* single buffer bitset list

* tag.isGit

* windows path separators

* `bun.sys.read` and enable/disable buffering

* fix test and waiter thread

* waiter thread and tests

* Update bun-install-registry.test.ts

* workspace exclude `preprepare` and `postprepare`

* Create esbuild.test.ts

* make sure length is the same

* remove deferred binlinks, add estrella test

* test with another version

* address some comments

* remove .verdaccio-db.json

* ooops

* fix build

* use `pid` to wait

* dont register pid_poll when using waiter thread

* stress test

* free

* fix failing tests

* fix linux crash, snapshot stress test

* oops

* concurrent scripts

* activate as soon as possible

* test

* delete stress test packages

* remove unused packages

* comment stress test and maybe fix segfault

* delete snapshot

* fix assertion

* use cpu_count * 2 for default concurrent scripts

* gear emoji

* add --concurrent-scripts to docs

* more docs

---------

Co-authored-by: alexlamsl <alexlamsl@gmail.com>
Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: Dylan Conway <33744874+MilesWright7@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-12-11 22:08:25 -08:00
hustLer2k
83ed65c687 Add -h as alias to --help (#7519)
* feat: add -h as alias to --help

* fix: remove redundant -h flag check

* fix: remove unneeded -h equality tests
2023-12-11 16:27:17 -08:00
hustLer2k
6a63224f86 fix(node:fs): interpret string options as encoding in Readable constructor and fs.createReadStream (#7516)
* fix: match Readable constructor and createReadStream to node api

* remove typo from node-stream.test.js

Co-authored-by: Aaron Silvas <aaronsilvas@gmail.com>

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Aaron Silvas <aaronsilvas@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-11 16:06:29 -08:00
Jarred Sumner
351810e5bc Switch to std.sort.pdq from std.sort.block (#7574)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-10 19:49:21 -08:00
Jarred Sumner
800fb12906 Handle holey arrays in console.log, don't omit length property, cleanup logLevel option (#7557)
* Add `fromJS` helper method to `ComptimeStringMap` and `logLevel` parsing better

* Handle holey arrays

* Update console-log.expected.txt

* More tests

* Add TODO

* More fixture

* [autofix.ci] apply automated fixes

* Update bindings.cpp

* Cleanup some spacing

* update

* Handle externals in `bun build` from package.json "imports"

* Prevent recursion in Web Worker

* Fix failing test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-10 04:33:25 -08:00
Bin Xin
7541f4ce4f fix: jsx key after spread (#7464)
* fix: jsx key after spread

* feat: configurable logLevel
2023-12-09 22:49:39 -08:00
Jarred Sumner
402f3353ac Make some regexes lazy 2023-12-09 22:37:25 -08:00