Age | Commit message (Collapse) | Author | Files | Lines |
|
& Response (#3902)
* Atomize respsone.url & response.statusText
* Fix warning
* Atomize Request & Response URLs when possible
* Fix memory leak in response.clone()
bun/bench/snippets on jarred/atomize
❯ mem bun --smol request-response-clone.mjs
cpu: Apple M1 Max
runtime: bun 0.7.2 (arm64-darwin)
benchmark time (avg) (min … max) p75 p99 p995
-------------------------------------------------------- -----------------------------
req.clone().url 77.3 ns/iter (40.35 ns … 222.64 ns) 91.53 ns 128.11 ns 172.78 ns
resp.clone().url 162.43 ns/iter (116 ns … 337.77 ns) 177.4 ns 232.38 ns 262.65 ns
Peak memory usage: 60 MB
bun/bench/snippets on jarred/atomize
❯ mem bun-0.7.1 --smol request-response-clone.mjs
cpu: Apple M1 Max
runtime: bun 0.7.1 (arm64-darwin)
benchmark time (avg) (min … max) p75 p99 p995
-------------------------------------------------------- -----------------------------
req.clone().url 115.85 ns/iter (80.35 ns … 247.39 ns) 128.19 ns 181.93 ns 207.23 ns
resp.clone().url 252.32 ns/iter (202.6 ns … 351.07 ns) 266.56 ns 325.88 ns 334.73 ns
Peak memory usage: 1179 MB
* Update tests
* Update js_ast.zig
* Update test
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* Fix coredump when reading an empty file.
Close: #3607
* It seems that the fd is closed when `auto_close` is true.
|
|
* copy and format
* copy
* copy
* cleanup
* some tests
* spellcheck
* add types
* don't lock getting contextId
* array buffer test
|
|
* Support file: URLs in `fetch`
* Update url.zig
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* Explicitly ref/unref blobs before extracting the value
* :scissors:
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
schedule the task
|
|
|
|
* Unified event loop
* Update WebKit, add test for es-module-lexer
* Update README.md
* Use async wasm
* Explicitly set whether concurrenttask should be deinit'd
* Update package.json
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* Use WebKit's URL parser in fetch() and `bun install`
* Allocate less memory
* Fix test
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
Close: #3738
|
|
* check poll ref flags
* Update WebCoreJSBuiltins.cpp
|
|
* Make TextDecoder constructor use options parameter
The constructor now actually sets TextDecoder properties using the
options parameter.
* Defer decoder allocation to end of constructor
* Verify types of TextDecoder options
* TextDecoder throw TypeError on failure
* Tidying
|
|
Bun.readableStreamToFormData() (#3697)
* codegen
* FormData.from
* Fixes #3225
* Introduce `Bun.readableStreamToFormData`
* Update bun.d.ts
* Add examples
* add
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* upgrade
* more fixes
* Bump Zig
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
`await Response.json(obj).json()` (#3656)
❯ mem bun --smol response-arrayBuffer.mjs
cpu: Apple M1 Max
runtime: bun 0.6.15 (arm64-darwin)
benchmark time (avg) (min … max) p75 p99 p995
--------------------------------------------------------------------------------------------------- -----------------------------
new Response().arrayBuffer() (new string each call, latin1) 12.9 µs/iter (625 ns … 4.18 ms) 1 µs 567.17 µs 711.79 µs
new Response().arrayBuffer() (new string each call, utf16) 12.85 µs/iter (1.67 µs … 1.56 ms) 2.17 µs 462.75 µs 621.13 µs
new Response().arrayBuffer() (existing string, latin1) 6.53 µs/iter (6.21 µs … 7.07 µs) 6.64 µs 7.07 µs 7.07 µs
Peak memory usage: 49 MB
bun on jarred/memory-leak-fix took 2s
❯ mem bun response-arrayBuffer.mjs
cpu: Apple M1 Max
runtime: bun 0.6.15 (arm64-darwin)
benchmark time (avg) (min … max) p75 p99 p995
--------------------------------------------------------------------------------------------------- -----------------------------
new Response().arrayBuffer() (new string each call, latin1) 1.2 µs/iter (1.04 µs … 1.42 µs) 1.22 µs 1.42 µs 1.42 µs
new Response().arrayBuffer() (new string each call, utf16) 2.74 µs/iter (2.42 µs … 6.37 µs) 2.68 µs 6.37 µs 6.37 µs
new Response().arrayBuffer() (existing string, latin1) 746.37 ns/iter (643.82 ns … 1.04 µs) 776.11 ns 1.04 µs 1.04 µs
Peak memory usage: 104 MB
bun on jarred/memory-leak-fix took 2s
❯ mem ~/.bun/bin/bun response-arrayBuffer.mjs
cpu: Apple M1 Max
runtime: bun 0.6.15 (arm64-darwin)
benchmark time (avg) (min … max) p75 p99 p995
--------------------------------------------------------------------------------------------------- -----------------------------
new Response().arrayBuffer() (new string each call, latin1) 1.69 µs/iter (1.56 µs … 2.1 µs) 1.73 µs 2.1 µs 2.1 µs
new Response().arrayBuffer() (new string each call, utf16) 2.65 µs/iter (2.47 µs … 3.17 µs) 2.69 µs 3.17 µs 3.17 µs
new Response().arrayBuffer() (existing string, latin1) 667.67 ns/iter (547.67 ns … 1.28 µs) 694.21 ns 1.28 µs 1.28 µs
Peak memory usage: 2735 MB
bun on jarred/memory-leak-fix took 2s
❯ mem ~/.bun/bin/bun --smol response-arrayBuffer.mjs
cpu: Apple M1 Max
runtime: bun 0.6.15 (arm64-darwin)
benchmark time (avg) (min … max) p75 p99 p995
--------------------------------------------------------------------------------------------------- -----------------------------
new Response().arrayBuffer() (new string each call, latin1) 13.51 µs/iter (541 ns … 3.2 ms) 1.92 µs 553.42 µs 709.92 µs
new Response().arrayBuffer() (new string each call, utf16) 13.07 µs/iter (1.71 µs … 3.43 ms) 2.13 µs 451.21 µs 651.67 µs
new Response().arrayBuffer() (existing string, latin1) 6.25 µs/iter (5.79 µs … 6.81 µs) 6.4 µs 6.81 µs 6.81 µs
Peak memory usage: 292 MB
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* copy `SerializedScriptValue`
* format
* make `SerializedScriptValue` compile
* add `transfer` option
* tests
* serialize/deserialize blobs
* tests for blobs
* serialize/deserialize file blobs
* more tests
* small cleanup
* format
* small changes + serialize offset
* slice helper
* map and set test
|
|
* Fixes #3530
* Handle OOM
* Add test
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* fix uuid version
Close: https://github.com/oven-sh/bun/issues/3575
* add unittest
* small fix
* avoid unnecessary copying
|
|
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
|
|
* Use `BunString` in SystemError
* Use Bun::toStringRef when we will de-ref strings
* Move `napi_create_error` to C++ to support `code` being a Symbol potentially
* Update blob.zig
* Make this test less flaky
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* fix crash in readablestate
* make node:https request+get actually use https
* use a native readablestream in IncomingMessage
* tweaks
* fix abort crash
* emit close by default
* remove abort. this isnt a real function
* add validate functions, fixup some other requested changes. not done yet
* Update WebCoreJSBuiltins.cpp
* Update JSReadableState.cpp
* Add some missing exports
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* Support reading embedded files in compiled executables
* :nail_care:
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* wip changes for CommonJS
* this rewrite is almost complete
* even more code
* wip
* Remove usages of `import.meta.require` from builtins
* Remove usages of require
* Regenerate
* :scissors: builtin rewrite commonjs in printer
* Use lazy custom getters for import.meta
* fixups
* Remove depd
* ugh
* still crashing
* fixup undici
* comment out import.meta.require.resolve temporarily
not a real solution but it stops the crashes
* Redo import.meta.primordials
* Builtins now have a `builtin://` protocol in source origin
* Seems to work?
* Finsih getting rid of primordials
* switcharoo
* No more function
* just one more bug
* Update launch.json
* Implement `require.main`
* :scissors:
* Bump WebKit
* Fixup import cycles
* Fixup improt cycles
* export more things
* Implement `createCommonJSModule` builtin
* More exports
* regenerate
* i broke some stuff
* some of these tests work now
* We lost the encoding
* Sort of fix zlib
* Sort of fix util
* Update events.js
* bump
* bump
* bump
* Fix missing export in fs
* fix some bugs with builtin esm modules (stream, worker_threads, events). its not perfect yet.
* fix some other internal module bugs
* oops
* fix some extra require default stuff
* uncomment this file but it crsahes on my machine
* tidy code here
* fixup tls exports
* make simdutf happier
* Add hasPrefix binding
* Add test for `require.main`
* Fix CommonJS evaluation order race condition
* Make node:http load faster
* Add missing exports to tls.js
* Use the getter
* Regenerate builtins
* Fix assertion failure in Bun.write()
* revamp dotEnv parser (#3347)
- fixes `strings.indexOfAny()`
- fixes OOB array access
fixes #411
fixes #2823
fixes #3042
* fix tests for `expect()` (#3384)
- extend test job time-out for `darwin-aarch64`
* `expect().resolves` and `expect().rejects` (#3318)
* Move expect and snapshots to their own files
* expect().resolves and expect().rejects
* Fix promise being added to unhandled rejection list
* Handle timeouts in expect(<promise>)
* wip merge
* Fix merge issue
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
* fixup min/memcopy (#3388)
* Fix crash in builtins
* Don't attempt to evaluate modules with no source code
* Update WebCoreJSBuiltins.cpp
* Update WebCoreJSBuiltins.cpp
* Update WebCoreJSBuiltins.cpp
* Fix crash
* cleanup
* Fix test
cc @paperdave
* Fixup Undici
* Fix issue in node:http
* Create util-deprecate.mjs
* Fix several bugs
* Use the identifier
* Support error.code in `util.deprecate`
* make the CJs loader slightly more resilient
* Update WebCoreJSBuiltins.cpp
* Fix macros
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: Alex Lam S.L <alexlamsl@gmail.com>
Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>
|
|
* initial support
* add types
* fix comment
* fix types
* bigfix up
* more fixes
* fix some encoding support for watch
* fix rename event
* fixup
* fix latin1
* add fs_events, still failing some tests
* fixuup
* remove unecesary check
* readd tests ops
* this is necessary? just testing CI/CD weird errors
* just use dupe here
* cleanup and fix deinit
* fix zig upgrade
|
|
* progress
* finish `@memset/@memcpy` update
* Update build.zig
* change `@enumToInt` to `@intFromEnum` and friends
* update zig versions
* it was 1
* add link to issue
* add `compileError` reminder
* fix merge
* format
* upgrade to llvm 16
* Revert "upgrade to llvm 16"
This reverts commit cc930ceb1c5b4db9614a7638596948f704544ab8.
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* Fix crash in CJS
* Add std.heap.ArenaAllocator
* Use our arena allocator
* Reduce JS parser memory usage and make HMR faster
* Write some comments
* fix test failure & clean up this code
* Update javascript.zig
* make arena usage safer
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* Fix `make headers`
* [JS parser] Fix bug with printing non-ascii import paths in ascii mode
* Introduce `bun.String`
* Add test for non-ascii imports & entry points
* Add comment
* Fix build issue
* Support HTTP server
* Make it print the same
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* Rename `ptr` to `_unsafe_ptr_do_not_use`
* Fixup
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* Make file uploads fast
* Add benchmark
* Update README.md
* defaults
* print
* prettier
* smaller
* fix(path) fix parse behavior (#3134)
* Add macro docs (#3139)
* Add macro doc
* Updates
* Tweaks
* Update doc
* Update macro serialization doc
* Update macro doc
* `--no-macros` flag, disable macros in node_modules
* invert base/filename internally (#3141)
* always false
* Fix broken test
* Add a test sendfile() test with large file
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>
Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
|
|
* Fixes #2264
* fixup
* Don't leak HTTP headers
* Include the mime type. It's cleaner
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
|
|
* Pretty formatter for `Headers` & `URLSearchParams`
* cleanup
* console.log on Headers, FormData, URLSearchParams will always quote the keys now
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* change allocator
* cleanup
|
|
* Fix crash in test.todo
* remove usages of JSC C API in bun:test
* Remove additional JSC-C API usages
* fix `make headers`
* URLSearchParams.length
* FormData length
* URLSearchParams length
* Fix `make headers`
* very fancy length
* Fix bug with exceptions being ignored sometimes
* Add tests for extension toHaveLength
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* fix flush
* remove logs
|
|
* Fix memory leak in `fetch(url)`
* Bump those numbers up
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
|
|
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
|
|
* fix large stdout output
* remove skip from #2674 for testing
* add big stdout test using spawnSync
* add bunEnv on big stdout test
|
|
* add redirect: 'error' support
* fix typo
* fix typo
* refactor FetchRedirect enum
* fix FetchRedirect
* updated
|
|
- We don't need to make `Bun__fetch` exported in every C++ header file
- We shouldn't return JSObjectRef, its an unnecessary wrapper
- The version of `fetch` on the Bun global should be non-configurable so that it is safe for anyone who wants to use that without a user-modifiable one
|
|
* patch fetch function inheritance
* fmt
* fix reserveCapacity and number of arguments for fetch
* change Bun.fetch to use Fetch.jsFunction
* merge Fetch.jsFunction and Fetch.call
* remove commented code
|
|
|
|
|
|
* added some improvements on server
* undo unintended change
* clean data handler before end calls
* refactor
* make ctx.resp nullable
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
|
|
|
|
* reestruct request body value and signal
* revert react-hello-world
* fix constructInto and test
* fmt
* fix body nullable
* Request can outlive RequestContext
* fmt
* BodyValue is now HiveRef
* hasDecl for Ref and HiveRef
* fix deinit call on Ref/HiveRef
* adds InlineBlob
* fix Bun.inspect when using InlineBlob
* revert InlineBlob
* Fix mimalloc-debug
* Add TODO note
* fix: make node:crypto Hash.copy work correctly (#2761)
This commit will also:
- add a CryptoHasher.copy function
- make CryptoHasher.digest reset the hasher so it can be reused
Resolves #2651
* :nail_care:
* address unicode issue (#2763)
* Fix an oopsie
* Another oopsie
* use inline for
* Fixup
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
* Request can outlive RequestContext
* fmt
* garantee to have the abort signnal attached to the server before abort the client on bun-server test
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Silver <14016168+silversquirl@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
|
|
|