mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 19:08:50 +00:00
* Prepare for windows event loop * More progress * Update libuv.zig * wip * Make compiling each dependency a shell script * Bump mimalloc * Add the build scripts * Update settings.json * Fix a bunch of compiler warnings * Remove more warnings * more warnings * cmake works * Update JSSQLStatement.h * put it in the zig file * Fix usockets warnings * Fixup * Fix one of the compiler errors * chunk * draw the rest of the owl * theres more * Rename Process -> BunProcess Works around a Windows issue * Add musl polyfill for memmem on Windows * More * 12 mb * Fix getenvZ * fix variosu issues * Add fast-ish path for bun install on Windows * Update windows.zig * Update windows.zig * Fix build issue * it works * hmmm * Rename file * Fixups * Update wtf-bindings.cpp * Update src/bun.js/bindings/headers-handwritten.h Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> * further! * more * Update .gitignore * hm * quite a lot of fixes * Update CMakeLists.txt * zig fmt * Many more things are starting to work. * reb * regenaret * Update JSSink.h * fixup * fetch works * Bun.serve() and much of the event loop works now * Make require() work * bun install progress * more things work * use less std.os * Fixes * small fixes * Bump * Bummp * Undo that change * We have to bump the version of Debian because libarchive has a higher minimum requirement * ok * some clenaup * windows * Update bun.zig * fixup * avoid duplicate symbols * avoid undefined symbols * bump * Remove issue template for install It's not used, and use the bug issue instead. * Add types for cp and cpSync * Add types for watchFile and unwatchFile * Add bun-types to 'bun fmt' script * Update nodejs compat docs cp/cpSync/watchFile/unwatchFile (#4525) * feat(fetch) rejectUnauthorized and checkServerIdentity (#4514) * enable root certs on fetch * rebase * fix lookup * some fixes and improvements * fmt * more fixes * more fixes * check detached onHandshake * fix promise case * fix cert non-Native * add fetch tls tests * more one test * churn * Update feature_flags.zig * Update response.zig * Revert "avoid undefined symbols" This reverts commitca835b726f. * Revert "avoid duplicate symbols" This reverts commit4ac6ca8700. * Update feature_flags.zig * Set permissions * more * Update mimalloc * Fix sqlite test failures * Fix some test failures * Make sure we remove libusockets is removed * hm * [dave]: fix webcrypto crash * bump * Update index.ts * windows zig compiles * cmake on mac works * progress * yay * bun run build * fix * ok * oops * asdfasfdafdsafda * fghjkl * git ignore * wow * Process -> BunProcess * hmm * blah * finalize merge * now it only has linker errors on mac * sdfadsf * g * getting farther * sxdcvbnmk, * adfhjskfjdhkas * a * fgh * update build dot zig * asdfg * theoretical -DCANARY flag we can use * asdf * cool * okay * colorterm * New build workflow * Fix script * Use sudo * More sudo * Tweak dependencies * Another sudo attempt * Tweak script * 16.0 -> 16 * Tweak script * Tweak script * Tweak script * Tweak script * Tweak script * bun install * ssh into github actions * add more to ssh * Fix postinstal * Skip llvm * New dockerfile * Build * More changes to Dockerfile * chaos chaos chaos * okay * a * more cmake nonsense * add unified sources code (does not work) * stuff * prepare for CI builds * ok * yay * yeah * make this more stable simply by trying again if it fails, 5 times, then lose. it fixes the stability issue i was running into L O L * messing with ci * x * a * clean dependencies before build * oops * this is not going to work but its closer * not gonna work either * a * a * did i do it * a * a * work around weird fs+Bun.build issues * properly pass debug flag correctly * idk im sorry * lose * maybe * run the tests please * a * fix zlib script * a * hi * prevent stupid ci issue * i totally didnt leave in a syntax error on cmakelists * a * lol * relax * 😭 * a * SO SILLY * 😡 one line mistake * one character diff * fix linking symbols missing * work on dependency scripts * does this work now? * fix mac build * a * bump! * woops * add macos baseline build * . * fix sqlite and also enable $assert/$debug support in builtin functions * okay * oops * zig upgrade lol * Merge * Fix spawn test issue * Set a timeout * yeah * etc * mi --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Co-authored-by: Dylan Conway <dylan.conway567@gmail.com> Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> Co-authored-by: Ashcon Partovi <ashcon@partovi.net> Co-authored-by: Birk Skyum <74932975+birkskyum@users.noreply.github.com> Co-authored-by: dave caruso <me@paperdave.net>
181 lines
5.6 KiB
Zig
181 lines
5.6 KiB
Zig
const env = @import("env.zig");
|
||
pub const strong_etags_for_built_files = true;
|
||
pub const keep_alive = false;
|
||
|
||
// it just doesn't work well.
|
||
pub const use_std_path_relative = false;
|
||
pub const use_std_path_join = false;
|
||
|
||
// Debug helpers
|
||
pub const print_ast = false;
|
||
pub const disable_printing_null = false;
|
||
|
||
// This was a ~5% performance improvement
|
||
pub const store_file_descriptors = !env.isWindows and !env.isBrowser;
|
||
|
||
pub const css_in_js_import_behavior = CSSInJSImportBehavior.facade;
|
||
|
||
pub const only_output_esm = true;
|
||
|
||
pub const jsx_runtime_is_cjs = true;
|
||
|
||
pub const bundle_node_modules = true;
|
||
|
||
pub const tracing = true;
|
||
|
||
pub const minify_javascript_string_length = false;
|
||
|
||
pub const verbose_watcher = false;
|
||
|
||
pub const css_supports_fence = true;
|
||
|
||
pub const enable_entry_cache = true;
|
||
pub const enable_bytecode_caching = false;
|
||
|
||
pub const dev_only = true;
|
||
|
||
pub const verbose_fs = false;
|
||
|
||
pub const watch_directories = true;
|
||
|
||
pub const tailwind_css_at_keyword = true;
|
||
|
||
pub const bundle_dynamic_import = true;
|
||
|
||
// This feature flag exists so when you have defines inside package.json, you can use single quotes in nested strings.
|
||
pub const allow_json_single_quotes = true;
|
||
|
||
pub const react_specific_warnings = true;
|
||
|
||
pub const log_allocations = false;
|
||
|
||
pub const CSSInJSImportBehavior = enum {
|
||
// When you import a .css file and you reference the import in JavaScript
|
||
// Just return whatever the property key they referenced was
|
||
facade,
|
||
facade_onimportcss,
|
||
};
|
||
|
||
// having issues compiling WebKit with this enabled
|
||
pub const remote_inspector = false;
|
||
pub const auto_import_buffer = false;
|
||
|
||
pub const is_macro_enabled = !env.isWasm and !env.isWasi;
|
||
|
||
// pretend everything is always the macro environment
|
||
// useful for debugging the macro's JSX transform
|
||
pub const force_macro = false;
|
||
|
||
pub const include_filename_in_jsx = false;
|
||
|
||
pub const verbose_analytics = false;
|
||
|
||
pub const disable_compression_in_http_client = false;
|
||
|
||
pub const enable_keepalive = true;
|
||
// Not sure why...
|
||
// But this is slower!
|
||
// ~/Build/throw
|
||
// ❯ hyperfine "bun create react3 app --force --no-install" --prepare="rm -rf app"
|
||
// Benchmark #1: bun create react3 app --force --no-install
|
||
// Time (mean ± σ): 974.6 ms ± 6.8 ms [User: 170.5 ms, System: 798.3 ms]
|
||
// Range (min … max): 960.8 ms … 984.6 ms 10 runs
|
||
|
||
// ❯ mv /usr/local/opt/libgit2/lib/libgit2.dylib /usr/local/opt/libgit2/lib/libgit2.dylib.1
|
||
|
||
// ~/Build/throw
|
||
// ❯ hyperfine "bun create react3 app --force --no-install" --prepare="rm -rf app"
|
||
// Benchmark #1: bun create react3 app --force --no-install
|
||
// Time (mean ± σ): 306.7 ms ± 6.1 ms [User: 31.7 ms, System: 269.8 ms]
|
||
// Range (min … max): 299.5 ms … 318.8 ms 10 runs
|
||
pub const use_libgit2 = true;
|
||
|
||
pub const atomic_file_watcher = env.isLinux;
|
||
|
||
pub const node_streams = false;
|
||
pub const simd = true;
|
||
|
||
// This change didn't seem to make a meaningful difference in microbenchmarks
|
||
pub const latin1_is_now_ascii = false;
|
||
|
||
pub const http_buffer_pooling = true;
|
||
|
||
pub const disable_lolhtml = false;
|
||
|
||
/// There is, what I think is, a bug in getaddrinfo()
|
||
/// on macOS that specifically impacts localhost and not
|
||
/// other ipv4 hosts. This is a workaround for that.
|
||
/// "localhost" fails to connect.
|
||
pub const hardcode_localhost_to_127_0_0_1 = false;
|
||
|
||
/// React doesn't do anything with jsxs
|
||
/// If the "jsxs" import is development, "jsxs" isn't supported
|
||
/// But it's very easy to end up importing it accidentally, causing an error at runtime
|
||
/// so we just disable it
|
||
pub const support_jsxs_in_jsx_transform = false;
|
||
|
||
pub const use_simdutf = @import("root").bun.Environment.isNative and !@import("root").bun.JSC.is_bindgen;
|
||
|
||
pub const inline_properties_in_transpiler = true;
|
||
|
||
pub const same_target_becomes_destructuring = true;
|
||
|
||
pub const react_server_components = true;
|
||
|
||
pub const help_catch_memory_issues = @import("root").bun.Environment.allow_assert;
|
||
|
||
/// This performs similar transforms as https://github.com/rollup/plugins/tree/master/packages/commonjs
|
||
///
|
||
/// Though, not exactly the same.
|
||
///
|
||
/// There are two scenarios where this kicks in:
|
||
///
|
||
/// 1) You import a CommonJS module using ESM.
|
||
///
|
||
/// Semantically, CommonJS expects us to wrap everything in a closure. That
|
||
/// bloats the code. We want to make the generated code as small as we can.
|
||
///
|
||
/// To avoid that, we attempt to unwrap the CommonJS module into ESM.
|
||
///
|
||
/// But, we can't always do that. When you have cyclical require() or directly
|
||
/// mutate exported bindings, we can't unwrap it.
|
||
///
|
||
/// However, in the simple case, where you do something like
|
||
///
|
||
/// exports.foo = 123;
|
||
/// exports.bar = 456;
|
||
///
|
||
/// We can unwrap it into
|
||
///
|
||
/// export const foo = 123;
|
||
/// export const bar = 456;
|
||
///
|
||
/// 2) You import a CommonJS module using CommonJS.
|
||
///
|
||
/// This is a bit more complicated. We want to avoid the closure wrapper, but
|
||
/// it's really difficult to track down all the places where you mutate the
|
||
/// exports object. `require.cache` makes it even more complicated.
|
||
/// So, we just wrap the entire module in a closure.
|
||
///
|
||
/// But what if we previously unwrapped it?
|
||
///
|
||
/// In that case, we wrap it again in the printer.
|
||
pub const unwrap_commonjs_to_esm = true;
|
||
|
||
pub const boundary_based_chunking = true;
|
||
|
||
/// https://sentry.engineering/blog/the-case-for-debug-ids
|
||
/// https://github.com/mitsuhiko/source-map-rfc/blob/proposals/debug-id/proposals/debug-id.md
|
||
/// https://github.com/source-map/source-map-rfc/pull/20
|
||
pub const source_map_debug_id = true;
|
||
|
||
pub const alignment_tweak = false;
|
||
|
||
pub const export_star_redirect = false;
|
||
|
||
pub const streaming_file_uploads_for_http_client = true;
|
||
|
||
pub const concurrent_transpiler = true;
|
||
|
||
pub const disable_on_windows_due_to_bugs = env.isWindows;
|