pfg
05d0475c6c
Update to zig 0.15.2 ( #24204 )
...
Fixes ENG-21287
Build times, from `bun run build && echo '//' >> src/main.zig && time
bun run build`
|Platform|0.14.1|0.15.2|Speedup|
|-|-|-|-|
|macos debug asan|126.90s|106.27s|1.19x|
|macos debug noasan|60.62s|50.85s|1.19x|
|linux debug asan|292.77s|241.45s|1.21x|
|linux debug noasan|146.58s|130.94s|1.12x|
|linux debug use_llvm=false|n/a|78.27s|1.87x|
|windows debug asan|177.13s|142.55s|1.24x|
Runtime performance:
- next build memory usage may have gone up by 5%. Otherwise seems the
same. Some code with writers may have gotten slower, especially one
instance of a counting writer and a few instances of unbuffered writers
that now have vtable overhead.
- File size reduced by 800kb (from 100.2mb to 99.4mb)
Improvements:
- `@export` hack is no longer needed for watch
- native x86_64 backend for linux builds faster. to use it, set use_llvm
false and no_link_obj false. also set `ASAN_OPTIONS=detect_leaks=0`
otherwise it will spam the output with tens of thousands of lines of
debug info errors. may need to use the zig lldb fork for debugging.
- zig test-obj, which we will be able to use for zig unit tests
Still an issue:
- false 'dependency loop' errors remain in watch mode
- watch mode crashes observed
Follow-up:
- [ ] search `comptime Writer: type` and `comptime W: type` and remove
- [ ] remove format_mode in our zig fork
- [ ] remove deprecated.zig autoFormatLabelFallback
- [ ] remove deprecated.zig autoFormatLabel
- [ ] remove deprecated.BufferedWriter and BufferedReader
- [ ] remove override_no_export_cpp_apis as it is no longer needed
- [ ] css Parser(W) -> Parser, and remove all the comptime writer: type
params
- [ ] remove deprecated writer fully
Files that add lines:
```
649 src/deprecated.zig
167 scripts/pack-codegen-for-zig-team.ts
54 scripts/cleartrace-impl.js
46 scripts/cleartrace.ts
43 src/windows.zig
18 src/fs.zig
17 src/bun.js/ConsoleObject.zig
16 src/output.zig
12 src/bun.js/test/debug.zig
12 src/bun.js/node/node_fs.zig
8 src/env_loader.zig
7 src/css/printer.zig
7 src/cli/init_command.zig
7 src/bun.js/node.zig
6 src/string/escapeRegExp.zig
6 src/install/PnpmMatcher.zig
5 src/bun.js/webcore/Blob.zig
4 src/crash_handler.zig
4 src/bun.zig
3 src/install/lockfile/bun.lock.zig
3 src/cli/update_interactive_command.zig
3 src/cli/pack_command.zig
3 build.zig
2 src/Progress.zig
2 src/install/lockfile/lockfile_json_stringify_for_debugging.zig
2 src/css/small_list.zig
2 src/bun.js/webcore/prompt.zig
1 test/internal/ban-words.test.ts
1 test/internal/ban-limits.json
1 src/watcher/WatcherTrace.zig
1 src/transpiler.zig
1 src/shell/builtin/cp.zig
1 src/js_printer.zig
1 src/io/PipeReader.zig
1 src/install/bin.zig
1 src/css/selectors/selector.zig
1 src/cli/run_command.zig
1 src/bun.js/RuntimeTranspilerStore.zig
1 src/bun.js/bindings/JSRef.zig
1 src/bake/DevServer.zig
```
Files that remove lines:
```
-1 src/test/recover.zig
-1 src/sql/postgres/SocketMonitor.zig
-1 src/sql/mysql/MySQLRequestQueue.zig
-1 src/sourcemap/CodeCoverage.zig
-1 src/css/values/color_js.zig
-1 src/compile_target.zig
-1 src/bundler/linker_context/convertStmtsForChunk.zig
-1 src/bundler/bundle_v2.zig
-1 src/bun.js/webcore/blob/read_file.zig
-1 src/ast/base.zig
-2 src/sql/postgres/protocol/ArrayList.zig
-2 src/shell/builtin/mkdir.zig
-2 src/install/PackageManager/patchPackage.zig
-2 src/install/PackageManager/PackageManagerDirectories.zig
-2 src/fmt.zig
-2 src/css/declaration.zig
-2 src/css/css_parser.zig
-2 src/collections/baby_list.zig
-2 src/bun.js/bindings/ZigStackFrame.zig
-2 src/ast/E.zig
-3 src/StandaloneModuleGraph.zig
-3 src/deps/picohttp.zig
-3 src/deps/libuv.zig
-3 src/btjs.zig
-4 src/threading/Futex.zig
-4 src/shell/builtin/touch.zig
-4 src/meta.zig
-4 src/install/lockfile.zig
-4 src/css/selectors/parser.zig
-5 src/shell/interpreter.zig
-5 src/css/error.zig
-5 src/bun.js/web_worker.zig
-5 src/bun.js.zig
-6 src/cli/test_command.zig
-6 src/bun.js/VirtualMachine.zig
-6 src/bun.js/uuid.zig
-6 src/bun.js/bindings/JSValue.zig
-9 src/bun.js/test/pretty_format.zig
-9 src/bun.js/api/BunObject.zig
-14 src/install/install_binding.zig
-14 src/fd.zig
-14 src/bun.js/node/path.zig
-14 scripts/pack-codegen-for-zig-team.sh
-17 src/bun.js/test/diff_format.zig
```
`git diff --numstat origin/main...HEAD | awk '{ print ($1-$2)"\t"$3 }' |
sort -rn`
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com >
Co-authored-by: Meghan Denny <meghan@bun.com >
Co-authored-by: tayor.fish <contact@taylor.fish >
2025-11-10 14:38:26 -08:00
pfg
83760fc446
Sort imports in all files ( #21119 )
...
Co-authored-by: taylor.fish <contact@taylor.fish >
2025-07-21 13:26:47 -07:00
Don Isaac
dff1f555b4
test: get zig build test working ( #18207 )
...
### What does this PR do?
Lets us write and run unit tests directly in Zig.
Running Zig unit tests in CI is blocked by https://github.com/ziglang/zig/issues/23281 . We can un-comment relevant code once this is fixed.
#### Workflow
> I'll finish writing this up later, but some initial points are below.
> Tl;Dr: `bun build:test`
Test binaries can be made for any kind of build. They are called `<bun>-test` and live next to their corresponding `bun` bin. For example, debug tests compile to `build/debug/bun-debug-test`.
Test binaries re-use most cmake/zig build steps from normal bun binaries, so building one after a normal bun build is pretty fast.
### How did you verify your code works?
I tested that my tests run tests.
2025-04-08 15:31:53 -07: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
feca0c2647
Delete unused files ( #7060 )
...
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-11-11 21:07:56 -08:00
Jarred Sumner
9388b3f825
Add a zig fmt action ( #2277 )
...
* Add a zig fmt action
* add failing file
* Setup prettier better
* Update prettier-fmt.yml
* Fail on error
* Update prettier-fmt.yml
* boop
* boop2
* tar.gz
* Update zig-fmt.yml
* Update zig-fmt.yml
* Update zig-fmt.yml
* Update zig-fmt.yml
* Update zig-fmt.yml
* boop
* Update prettier-fmt.yml
* tag
* newlines
* multiline
* fixup
* Update zig-fmt.yml
* update it
* fixup
* both
* w
* Update prettier-fmt.yml
* prettier all the things
* Update package.json
* zig fmt
* ❌ ✅
* bump
* .
* quotes
* fix prettier ignore
* once more
* Update prettier-fmt.yml
* Update fallback.ts
* consistentcy
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-03-02 19:02:10 -08:00
Colin McDonnell
f7f1b60444
Add bun-types, add typechecking, add child_process types ( #1475 )
...
* Add bun-types to packages
* Improve typing
* Fix types in tests
* Fix dts tests
* Run formatter
* Fix all type errors
* Add strict mode, fix type errors
* Add ffi changes
* Move workflows to root
* Add workflows
* Remove labeler
* Add child_process types
* Fix synthetic defaults issue
* Remove docs
* Move scripts
* Run prettier
* Include examples in typechecking
* captureStackTrace types
* moved captureStackTrace types to globals
* Address reviews
Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu >
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com >
2022-11-09 15:40:40 -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
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
336a4b6ac2
Prepare to run unit tests & remove some dead code ( #92 )
...
* Remove some dead code
* 💀 code
* Fix the zig tests
* [JS Printer] Print integers faster & less scientific notation on decimals
* 💀 dead code
* skip
* Run all the unit tests
2021-12-27 18:06:31 -08:00
Jarred Sumner
19949c0743
Update fixtures.zig
2021-11-16 21:26:41 -08:00
Jarred Sumner
58b196c583
rewrote most of the router
2021-10-20 04:18:29 -07:00
Jarred Sumner
4f7ff6db2c
Fixed memory leaks, but SSR is slower. Should move cleanup & restart steps to a real idle timeout
...
Former-commit-id: 9499ee3109cb336deb9380f0190631a30c9da51c
2021-09-04 04:50:47 -07:00
Jarred Sumner
a90760b597
Fix logging in bun bun + bump
...
Former-commit-id: 19275a07342879d9b02b9d9527b762c8bfadb9e6
2021-09-03 13:01:36 -07:00
Jarred Sumner
c015c0c0cd
Add warning when @tailwind, improve not found error for .css files
...
Former-commit-id: 0b776fb7f19dde86ea53968412c6eeaf9bae556f
2021-09-02 11:53:28 -07:00
Jarred Sumner
4b7917ba8f
latest
...
Former-commit-id: 20b96180ffc41610dfb21a041d1258f2ff8d4196
2021-09-01 14:00:46 -07:00
Jarred Sumner
e2b9f23231
Add display name field to frameworks, improve logging, add counters, add
...
Former-commit-id: b2cf011b6c6405a786fe22367e1cd4e6c2c4c90f
2021-08-31 23:07:03 -07:00
Jarred Sumner
6a5f34a6bc
Fallback, fragments, printer compat, better errors
...
Former-commit-id: 486e8c9d460eeebea024e96dbabcb7f2bfaffafb
2021-08-31 15:03:40 -07:00
Jarred Sumner
bd9f137b1b
latest
...
Former-commit-id: 096ec1222ad723d006b0151f10cb0c1b95e2bfd3
2021-08-29 21:48:14 -07:00
Jarred Sumner
9a2ce8e1fa
jsx comment fixture
...
Former-commit-id: e3d9bb34c8deff27b72a45f182522a0057eeb42d
2021-08-27 02:33:31 -07:00
Jarred Sumner
4541606469
latest
...
Former-commit-id: f5600d123d3710e7ea80ff2b7c66d13382462420
2021-08-25 17:56:06 -07:00
Jarred Sumner
2335780618
rename to bun
...
Former-commit-id: f982fc85fac3f0120e1851ad4027dd8413216439
2021-08-15 22:17:20 -07:00
Jarred Sumner
3e0a78bc0d
Fix parser/printer bugs
...
Former-commit-id: 8d5fa093546432e803eb066190a3b4b48e5c95f2
2021-08-11 20:22:03 -07:00
Jarred Sumner
3c6d687423
Fix missing check for is_async in shorthand property check
...
Former-commit-id: 8f2f739bcb303e0ca42853097449133a1630debe
2021-08-11 16:22:08 -07:00
Jarred Sumner
c3c14ff9ce
Fix two parser bugs
...
Former-commit-id: 884b0e3e31e562e4f0e0676819c442842ba9040b
2021-08-11 15:54:15 -07:00
Jarred Sumner
4a8b254652
esmodules work?
...
Former-commit-id: 5cb5af4416c12518eb195d1b310990fc5c94d6c8
2021-07-28 20:56:29 -07:00
Jarred Sumner
79cd2fbfe0
WIP bindings
...
Former-commit-id: 74e75d6925
2021-07-18 02:12:58 -07:00
Jarred Sumner
516f264138
latest
...
Former-commit-id: cb2ee39bfa
2021-06-30 02:38:23 -07:00
Jarred Sumner
adbeb24979
starting to work
...
Former-commit-id: ae113559c6
2021-06-27 23:36:35 -07:00
Jarred Sumner
9ca283bb43
CSS scanner works
...
Former-commit-id: 4ca1e17778
2021-06-17 11:14:20 -07:00
Jarred Sumner
a2d8026810
cool!
...
Former-commit-id: 5ffd8e40b3
2021-06-10 01:07:42 -07:00
Jarred Sumner
d49e0a5fa1
WIP node module bundles
...
Former-commit-id: 797b2ff557
2021-06-06 18:34:01 -07:00
Jarred Sumner
ee6643ce8b
wip
...
Former-commit-id: a6bc130918
2021-06-01 20:49:49 -07:00
Jarred Sumner
dd72bf5ab6
cool
...
Former-commit-id: 7dc3ee4c89
2021-05-30 18:26:18 -07:00
Jarred Sumner
05ec7232bf
all
...
Former-commit-id: 664dbf569c
2021-05-28 23:26:13 -07:00
Jarred Sumner
da210d75e8
fixtures
...
Former-commit-id: e72ad4777c
2021-05-28 13:22:31 -07:00
Jarred Sumner
ea10dacc92
relative path
...
Former-commit-id: 06fbc24b11
2021-05-25 01:34:44 -07:00
Jarred Sumner
a58adfcaa2
Starting to work on rutnime
...
Former-commit-id: 23220fd348
2021-05-19 19:30:24 -07:00
Jarred Sumner
7396fae4e2
Fix DotDefine
...
Former-commit-id: 78fa4c4f87
2021-05-18 14:40:37 -07:00
Jarred Sumner
904bf17a51
Fix label parsing
...
Former-commit-id: 1c80859431
2021-05-18 14:07:51 -07:00
Jarred Sumner
e0e32986c7
Fix duplicate exports error
...
Former-commit-id: 957e871f4a
2021-05-18 13:49:23 -07:00
Jarred Sumner
54730377e2
Fix "in" keyword
...
Former-commit-id: 0840845d68
2021-05-18 13:13:04 -07:00
Jarred Sumner
154e049638
lots
...
Former-commit-id: 9ccb4dd082
2021-05-16 23:25:12 -07:00
Jarred Sumner
e80f865974
lots
...
Former-commit-id: d8b1d29656
2021-05-15 17:23:55 -07:00
Jarred Sumner
c88625436c
keep
...
Former-commit-id: 778c24f176
2021-05-13 23:22:08 -07:00
Jarred Sumner
ca4120afec
bug fixes galore
...
Former-commit-id: 7243945291
2021-05-13 17:44:50 -07:00
Jarred Sumner
ecabda3ced
Fix exporting default twice
...
Former-commit-id: 2f4cd402e4
2021-05-08 18:12:54 -07:00
Jarred Sumner
18794b18b3
Fix for loop initializer
...
Former-commit-id: 6b863d5d51
2021-05-08 14:23:52 -07:00
Jarred Sumner
fad34bb4ab
cool
...
Former-commit-id: 96ff169e46
2021-05-07 01:26:26 -07:00
Jarred Sumner
dd9e7de689
123
...
Former-commit-id: 741e1513b7
2021-05-05 19:02:36 -07:00