From 05d0475c6cf660c7caff8ea81c7be6438cb1b241 Mon Sep 17 00:00:00 2001 From: pfg Date: Mon, 10 Nov 2025 14:38:26 -0800 Subject: [PATCH] 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 Co-authored-by: Meghan Denny Co-authored-by: tayor.fish --- build.zig | 23 +- cmake/tools/SetupZig.cmake | 2 +- misctools/compression.zig | 14 +- misctools/lldb/lldb_pretty_printers.py | 2 +- misctools/tgz.zig | 2 +- package.json | 2 +- scripts/cleartrace-impl.js | 54 + scripts/cleartrace.ts | 46 + scripts/pack-codegen-for-zig-team.sh | 14 - scripts/pack-codegen-for-zig-team.ts | 167 ++ src/Global.zig | 6 +- src/OutputFile.zig | 4 +- src/Progress.zig | 18 +- src/SignalCode.zig | 2 +- src/StandaloneModuleGraph.zig | 53 +- src/StaticHashMap.zig | 18 +- src/Watcher.zig | 8 +- src/allocators/LinuxMemFdAllocator.zig | 8 +- src/allocators/MaxHeapAllocator.zig | 2 +- src/allocators/MimallocArena.zig | 4 +- src/allocators/allocation_scope.zig | 8 +- src/allocators/mimalloc.zig | 8 +- src/analytics.zig | 2 +- src/api/schema.zig | 4 +- src/ast.zig | 18 +- src/ast/E.zig | 14 +- src/ast/Expr.zig | 4 +- src/ast/ImportScanner.zig | 2 +- src/ast/Macro.zig | 2 +- src/ast/NewStore.zig | 2 +- src/ast/P.zig | 22 +- src/ast/Parser.zig | 12 +- src/ast/ServerComponentBoundary.zig | 2 +- src/ast/SideEffects.zig | 6 +- src/ast/Symbol.zig | 2 +- src/ast/base.zig | 17 +- src/ast/maybe.zig | 10 +- src/ast/parse.zig | 4 +- src/ast/parseImportExport.zig | 6 +- src/ast/parseJSXElement.zig | 2 +- src/ast/parsePrefix.zig | 2 +- src/ast/parseProperty.zig | 2 +- src/ast/parseStmt.zig | 4 +- src/ast/parseTypescript.zig | 4 +- src/ast/visit.zig | 8 +- src/ast/visitBinaryExpression.zig | 2 +- src/ast/visitExpr.zig | 4 +- src/ast/visitStmt.zig | 2 +- src/async/posix_event_loop.zig | 34 +- src/async/windows_event_loop.zig | 6 +- src/bake/DevServer.zig | 59 +- src/bake/DevServer/Assets.zig | 4 +- src/bake/DevServer/DirectoryWatchStore.zig | 6 +- src/bake/DevServer/ErrorReportRequest.zig | 6 +- src/bake/DevServer/HotReloadEvent.zig | 4 +- src/bake/DevServer/IncrementalGraph.zig | 26 +- src/bake/DevServer/SerializedFailure.zig | 10 +- src/bake/DevServer/SourceMapStore.zig | 4 +- src/bake/DevServer/WatcherAtomics.zig | 2 +- src/bake/FrameworkRouter.zig | 25 +- src/bake/production.zig | 24 +- src/brotli.zig | 6 +- src/btjs.zig | 31 +- src/bun.js.zig | 15 +- src/bun.js/AsyncModule.zig | 20 +- src/bun.js/ConsoleObject.zig | 221 +-- src/bun.js/Debugger.zig | 12 +- src/bun.js/ResolveMessage.zig | 2 +- src/bun.js/RuntimeTranspilerCache.zig | 4 +- src/bun.js/RuntimeTranspilerStore.zig | 15 +- src/bun.js/VirtualMachine.zig | 132 +- src/bun.js/api/BunObject.zig | 81 +- src/bun.js/api/FFIObject.zig | 2 +- src/bun.js/api/HashObject.zig | 2 +- src/bun.js/api/JSBundler.zig | 8 +- src/bun.js/api/JSTranspiler.zig | 12 +- src/bun.js/api/Timer.zig | 8 +- src/bun.js/api/Timer/DateHeaderTimer.zig | 2 +- src/bun.js/api/bun/dns.zig | 56 +- src/bun.js/api/bun/js_bun_spawn_bindings.zig | 12 +- src/bun.js/api/bun/lshpack.zig | 4 +- src/bun.js/api/bun/process.zig | 62 +- src/bun.js/api/bun/socket.zig | 4 +- src/bun.js/api/bun/socket/Listener.zig | 4 +- src/bun.js/api/bun/socket/SocketAddress.zig | 4 +- .../api/bun/socket/tls_socket_functions.zig | 2 +- src/bun.js/api/bun/spawn/stdio.zig | 2 +- src/bun.js/api/bun/subprocess.zig | 10 +- .../api/bun/subprocess/ResourceUsage.zig | 2 +- .../api/bun/subprocess/StaticPipeWriter.zig | 2 +- src/bun.js/api/bun/udp_socket.zig | 8 +- src/bun.js/api/crypto/CryptoHasher.zig | 16 +- src/bun.js/api/crypto/PasswordObject.zig | 6 +- src/bun.js/api/ffi.zig | 110 +- src/bun.js/api/filesystem_router.zig | 8 +- src/bun.js/api/glob.zig | 8 +- src/bun.js/api/html_rewriter.zig | 6 +- src/bun.js/api/server.zig | 16 +- src/bun.js/api/server/FileRoute.zig | 2 +- src/bun.js/api/server/HTMLBundle.zig | 8 +- src/bun.js/api/server/NodeHTTPResponse.zig | 2 +- src/bun.js/api/server/RequestContext.zig | 24 +- src/bun.js/api/server/ServerConfig.zig | 16 +- src/bun.js/api/server/StaticRoute.zig | 2 +- src/bun.js/bindings/AbortSignal.zig | 6 +- src/bun.js/bindings/AnyPromise.zig | 2 +- src/bun.js/bindings/CPUFeatures.zig | 2 +- src/bun.js/bindings/CallFrame.zig | 4 +- src/bun.js/bindings/DOMFormData.zig | 12 +- src/bun.js/bindings/HTTPServerAgent.zig | 2 +- src/bun.js/bindings/JSGlobalObject.zig | 36 +- src/bun.js/bindings/JSObject.zig | 4 +- src/bun.js/bindings/JSPromise.zig | 2 +- src/bun.js/bindings/JSRef.zig | 3 +- src/bun.js/bindings/JSString.zig | 8 +- src/bun.js/bindings/JSValue.zig | 38 +- src/bun.js/bindings/ServerRouteList.cpp | 2 +- src/bun.js/bindings/SystemError.zig | 6 +- src/bun.js/bindings/URLSearchParams.zig | 4 +- src/bun.js/bindings/VM.zig | 8 +- src/bun.js/bindings/ZigException.zig | 2 +- src/bun.js/bindings/ZigStackFrame.zig | 40 +- src/bun.js/bindings/ZigString.zig | 26 +- src/bun.js/bindings/codegen.zig | 4 +- src/bun.js/event_loop.zig | 6 +- .../GarbageCollectionController.zig | 4 +- src/bun.js/event_loop/MiniEventLoop.zig | 2 +- src/bun.js/event_loop/SpawnSyncEventLoop.zig | 10 +- src/bun.js/event_loop/Task.zig | 2 +- src/bun.js/hot_reloader.zig | 4 +- src/bun.js/ipc.zig | 20 +- src/bun.js/javascript_core_c_api.zig | 16 +- src/bun.js/jsc.zig | 14 +- src/bun.js/jsc/host_fn.zig | 2 +- src/bun.js/node.zig | 7 + src/bun.js/node/assert/myers_diff.zig | 17 +- src/bun.js/node/buffer.zig | 2 +- src/bun.js/node/dir_iterator.zig | 10 +- src/bun.js/node/fs_events.zig | 76 +- src/bun.js/node/net/BlockList.zig | 4 +- src/bun.js/node/node_cluster_binding.zig | 4 +- src/bun.js/node/node_crypto_binding.zig | 4 +- src/bun.js/node/node_fs.zig | 58 +- src/bun.js/node/node_fs_watcher.zig | 8 +- src/bun.js/node/node_os.zig | 10 +- src/bun.js/node/node_process.zig | 18 +- src/bun.js/node/path.zig | 14 - src/bun.js/node/path_watcher.zig | 12 +- src/bun.js/node/types.zig | 35 +- src/bun.js/node/util/parse_args.zig | 56 +- src/bun.js/node/util/validators.zig | 12 +- src/bun.js/node/win_watcher.zig | 6 +- src/bun.js/rare_data.zig | 2 +- src/bun.js/test/Collection.zig | 6 +- src/bun.js/test/DoneCallback.zig | 2 +- src/bun.js/test/Execution.zig | 6 +- src/bun.js/test/Order.zig | 8 +- src/bun.js/test/ScopeFunctions.zig | 32 +- src/bun.js/test/bun_test.zig | 34 +- src/bun.js/test/debug.zig | 42 +- src/bun.js/test/diff/printDiff.zig | 38 +- src/bun.js/test/diff_format.zig | 35 +- src/bun.js/test/expect.zig | 158 +- src/bun.js/test/expect/toBe.zig | 8 +- src/bun.js/test/expect/toBeArray.zig | 4 +- src/bun.js/test/expect/toBeArrayOfSize.zig | 4 +- src/bun.js/test/expect/toBeBoolean.zig | 4 +- src/bun.js/test/expect/toBeCloseTo.zig | 4 +- src/bun.js/test/expect/toBeDate.zig | 4 +- src/bun.js/test/expect/toBeDefined.zig | 4 +- src/bun.js/test/expect/toBeEmpty.zig | 10 +- src/bun.js/test/expect/toBeEmptyObject.zig | 4 +- src/bun.js/test/expect/toBeEven.zig | 4 +- src/bun.js/test/expect/toBeFalse.zig | 4 +- src/bun.js/test/expect/toBeFalsy.zig | 4 +- src/bun.js/test/expect/toBeFinite.zig | 4 +- src/bun.js/test/expect/toBeFunction.zig | 4 +- src/bun.js/test/expect/toBeGreaterThan.zig | 8 +- .../test/expect/toBeGreaterThanOrEqual.zig | 8 +- src/bun.js/test/expect/toBeInstanceOf.zig | 10 +- src/bun.js/test/expect/toBeInteger.zig | 4 +- src/bun.js/test/expect/toBeLessThan.zig | 8 +- .../test/expect/toBeLessThanOrEqual.zig | 8 +- src/bun.js/test/expect/toBeNaN.zig | 4 +- src/bun.js/test/expect/toBeNegative.zig | 4 +- src/bun.js/test/expect/toBeNil.zig | 4 +- src/bun.js/test/expect/toBeNull.zig | 4 +- src/bun.js/test/expect/toBeNumber.zig | 4 +- src/bun.js/test/expect/toBeObject.zig | 4 +- src/bun.js/test/expect/toBeOdd.zig | 4 +- src/bun.js/test/expect/toBeOneOf.zig | 8 +- src/bun.js/test/expect/toBePositive.zig | 4 +- src/bun.js/test/expect/toBeString.zig | 4 +- src/bun.js/test/expect/toBeSymbol.zig | 4 +- src/bun.js/test/expect/toBeTrue.zig | 4 +- src/bun.js/test/expect/toBeTruthy.zig | 4 +- src/bun.js/test/expect/toBeTypeOf.zig | 4 +- src/bun.js/test/expect/toBeUndefined.zig | 4 +- src/bun.js/test/expect/toBeValidDate.zig | 4 +- src/bun.js/test/expect/toBeWithin.zig | 8 +- src/bun.js/test/expect/toContain.zig | 8 +- src/bun.js/test/expect/toContainAllKeys.zig | 6 +- src/bun.js/test/expect/toContainAllValues.zig | 6 +- src/bun.js/test/expect/toContainAnyKeys.zig | 6 +- src/bun.js/test/expect/toContainAnyValues.zig | 6 +- src/bun.js/test/expect/toContainEqual.zig | 8 +- src/bun.js/test/expect/toContainKey.zig | 8 +- src/bun.js/test/expect/toContainKeys.zig | 6 +- src/bun.js/test/expect/toContainValue.zig | 6 +- src/bun.js/test/expect/toContainValues.zig | 6 +- src/bun.js/test/expect/toEndWith.zig | 8 +- src/bun.js/test/expect/toEqual.zig | 4 +- .../test/expect/toEqualIgnoringWhitespace.zig | 4 +- src/bun.js/test/expect/toHaveBeenCalled.zig | 6 +- .../test/expect/toHaveBeenCalledOnce.zig | 2 +- .../test/expect/toHaveBeenCalledTimes.zig | 6 +- .../test/expect/toHaveBeenCalledWith.zig | 12 +- .../test/expect/toHaveBeenLastCalledWith.zig | 10 +- .../test/expect/toHaveBeenNthCalledWith.zig | 6 +- .../test/expect/toHaveLastReturnedWith.zig | 10 +- src/bun.js/test/expect/toHaveLength.zig | 8 +- .../test/expect/toHaveNthReturnedWith.zig | 10 +- src/bun.js/test/expect/toHaveProperty.zig | 10 +- src/bun.js/test/expect/toHaveReturnedWith.zig | 18 +- src/bun.js/test/expect/toInclude.zig | 8 +- src/bun.js/test/expect/toIncludeRepeated.zig | 14 +- src/bun.js/test/expect/toMatch.zig | 12 +- src/bun.js/test/expect/toMatchObject.zig | 4 +- src/bun.js/test/expect/toSatisfy.zig | 4 +- src/bun.js/test/expect/toStartWith.zig | 8 +- src/bun.js/test/expect/toStrictEqual.zig | 4 +- src/bun.js/test/expect/toThrow.zig | 44 +- src/bun.js/test/jest.zig | 10 +- src/bun.js/test/pretty_format.zig | 99 +- src/bun.js/test/snapshot.zig | 14 +- src/bun.js/uuid.zig | 30 +- src/bun.js/virtual_machine_exports.zig | 6 +- src/bun.js/web_worker.zig | 19 +- src/bun.js/webcore.zig | 2 +- src/bun.js/webcore/Blob.zig | 41 +- src/bun.js/webcore/Body.zig | 8 +- src/bun.js/webcore/ByteStream.zig | 6 +- src/bun.js/webcore/FileSink.zig | 6 +- src/bun.js/webcore/ObjectURLRegistry.zig | 2 +- src/bun.js/webcore/Request.zig | 16 +- src/bun.js/webcore/Response.zig | 12 +- src/bun.js/webcore/Sink.zig | 28 +- src/bun.js/webcore/TextEncoder.zig | 8 +- .../webcore/TextEncoderStreamEncoder.zig | 6 +- src/bun.js/webcore/blob/Store.zig | 4 +- src/bun.js/webcore/blob/copy_file.zig | 14 +- src/bun.js/webcore/blob/read_file.zig | 9 +- src/bun.js/webcore/blob/write_file.zig | 10 +- src/bun.js/webcore/encoding.zig | 2 +- src/bun.js/webcore/fetch.zig | 4 +- src/bun.js/webcore/fetch/FetchTasklet.zig | 4 +- src/bun.js/webcore/prompt.zig | 32 +- src/bun.js/webcore/streams.zig | 6 +- src/bun.zig | 38 +- src/bundler/BundleThread.zig | 2 +- src/bundler/Chunk.zig | 12 +- src/bundler/HTMLImportManifest.zig | 16 +- src/bundler/LinkerContext.zig | 18 +- src/bundler/LinkerGraph.zig | 2 +- src/bundler/ParseTask.zig | 20 +- src/bundler/ServerComponentParseTask.zig | 2 +- src/bundler/bundle_v2.zig | 59 +- src/bundler/entry_points.zig | 10 +- .../linker_context/OutputFileListBuilder.zig | 8 +- src/bundler/linker_context/computeChunks.zig | 10 +- .../computeCrossChunkDependencies.zig | 6 +- .../linker_context/convertStmtsForChunk.zig | 3 +- src/bundler/linker_context/doStep5.zig | 6 +- .../findAllImportedPartsInJSOrder.zig | 20 +- .../findImportedFilesInCSSOrder.zig | 16 +- .../generateChunksInParallel.zig | 12 +- .../generateCodeForFileInChunkJS.zig | 2 +- .../generateCodeForLazyExport.zig | 14 +- .../generateCompileResultForHtmlChunk.zig | 20 +- .../linker_context/postProcessJSChunk.zig | 4 +- .../linker_context/prepareCssAstsForChunk.zig | 2 +- .../linker_context/renameSymbolsInChunk.zig | 6 +- .../linker_context/scanImportsAndExports.zig | 22 +- .../linker_context/writeOutputFilesToDisk.zig | 22 +- src/bunfig.zig | 10 +- src/cache.zig | 8 +- src/cli.zig | 4 +- src/cli/Arguments.zig | 8 +- src/cli/audit_command.zig | 52 +- src/cli/build_command.zig | 32 +- src/cli/bunx_command.zig | 6 +- src/cli/colon_list_type.zig | 4 +- src/cli/create_command.zig | 26 +- src/cli/filter_arg.zig | 6 +- src/cli/filter_run.zig | 24 +- src/cli/init_command.zig | 25 +- src/cli/install_completions_command.zig | 2 +- src/cli/link_command.zig | 4 +- src/cli/outdated_command.zig | 32 +- src/cli/pack_command.zig | 49 +- src/cli/package_manager_command.zig | 20 +- src/cli/pm_pkg_command.zig | 8 +- src/cli/pm_view_command.zig | 14 +- src/cli/publish_command.zig | 32 +- src/cli/run_command.zig | 43 +- src/cli/test/Scanner.zig | 2 +- src/cli/test_command.zig | 100 +- src/cli/update_interactive_command.zig | 59 +- src/cli/upgrade_command.zig | 8 +- src/cli/why_command.zig | 18 +- src/codegen/cppbind.ts | 2 +- src/codegen/process_windows_translate_c.zig | 6 +- src/collections/array_list.zig | 2 +- src/collections/baby_list.zig | 16 +- src/collections/multi_array_list.zig | 4 +- src/compile_target.zig | 13 +- src/copy_file.zig | 2 +- src/crash_handler.zig | 92 +- src/create/SourceFileProjectGenerator.zig | 8 +- src/css/css_internals.zig | 4 +- src/css/css_parser.zig | 48 +- src/css/declaration.zig | 14 +- src/css/error.zig | 59 +- src/css/printer.zig | 19 +- src/css/properties/transform.zig | 8 +- src/css/rules/layer.zig | 2 +- src/css/rules/rules.zig | 4 +- src/css/selectors/parser.zig | 50 +- src/css/selectors/selector.zig | 13 +- src/css/small_list.zig | 2 + src/css/values/color_js.zig | 15 +- src/css/values/ident.zig | 4 +- src/defines.zig | 6 +- src/deprecated.zig | 649 +++++++ src/deps/boringssl.translated.zig | 1542 ++++++++--------- src/deps/brotli_c.zig | 68 +- src/deps/c_ares.zig | 62 +- src/deps/libdeflate.zig | 6 +- src/deps/libuv.zig | 118 +- src/deps/lol-html.zig | 26 +- src/deps/picohttp.zig | 59 +- src/deps/tcc.zig | 10 +- src/deps/uws/App.zig | 22 +- src/deps/uws/BodyReaderMixin.zig | 2 +- src/deps/uws/InternalLoopData.zig | 4 +- src/deps/uws/Loop.zig | 24 +- src/deps/uws/Response.zig | 26 +- src/deps/uws/SocketContext.zig | 70 +- src/deps/uws/Timer.zig | 4 +- src/deps/uws/WebSocket.zig | 34 +- src/deps/uws/socket.zig | 80 +- src/deps/uws/udp.zig | 4 +- src/deps/zig-clap/clap.zig | 2 +- src/deps/zig-clap/clap/args.zig | 4 +- src/deps/zig-clap/clap/comptime.zig | 8 +- src/deps/zlib.posix.zig | 4 +- src/deps/zlib.win32.zig | 8 +- src/dns.zig | 4 +- src/env.zig | 4 +- src/env_loader.zig | 34 +- src/errno/windows_errno.zig | 2 +- src/fallback-backend.html | 2 +- src/fd.zig | 32 +- src/fmt.zig | 160 +- src/fs.zig | 32 +- src/glob/GlobWalker.zig | 2 +- src/heap_breakdown.zig | 2 +- src/highway.zig | 2 +- src/http.zig | 8 +- src/http/AsyncHTTP.zig | 2 +- src/http/ETag.zig | 2 +- src/http/HTTPContext.zig | 2 +- src/http/HTTPThread.zig | 6 +- src/http/websocket_client.zig | 22 +- .../websocket_client/WebSocketDeflate.zig | 10 +- .../WebSocketUpgradeClient.zig | 24 +- src/ini.zig | 22 +- src/install/NetworkTask.zig | 12 +- src/install/PackageInstall.zig | 18 +- src/install/PackageInstaller.zig | 16 +- src/install/PackageManager.zig | 10 +- .../PackageManager/CommandLineArguments.zig | 2 +- .../PackageManager/PackageJSONEditor.zig | 18 +- .../PackageManagerDirectories.zig | 40 +- .../PackageManager/PackageManagerEnqueue.zig | 18 +- .../PackageManagerLifecycle.zig | 8 +- .../PackageManagerResolution.zig | 10 +- src/install/PackageManager/UpdateRequest.zig | 2 +- src/install/PackageManager/patchPackage.zig | 42 +- .../PackageManager/processDependencyList.zig | 6 +- src/install/PackageManager/runTasks.zig | 6 +- .../PackageManager/security_scanner.zig | 74 +- .../updatePackageJSONAndInstall.zig | 22 +- src/install/PnpmMatcher.zig | 20 +- src/install/bin.zig | 27 +- src/install/dependency.zig | 2 +- src/install/extract_tarball.zig | 10 +- src/install/hoisted_install.zig | 2 +- src/install/install.zig | 4 +- src/install/install_binding.zig | 28 +- src/install/integrity.zig | 2 +- src/install/isolated_install.zig | 22 +- src/install/isolated_install/FileCopier.zig | 2 +- src/install/isolated_install/Hardlinker.zig | 6 +- src/install/isolated_install/Installer.zig | 46 +- src/install/isolated_install/Store.zig | 10 +- src/install/lifecycle_script_runner.zig | 14 +- src/install/lockfile.zig | 64 +- src/install/lockfile/Package.zig | 2 +- src/install/lockfile/Package/Scripts.zig | 4 +- src/install/lockfile/Package/WorkspaceMap.zig | 2 +- src/install/lockfile/Tree.zig | 4 +- src/install/lockfile/bun.lock.zig | 77 +- src/install/lockfile/bun.lockb.zig | 4 +- .../lockfile_json_stringify_for_debugging.zig | 20 +- src/install/lockfile/printer/Yarn.zig | 22 +- src/install/lockfile/printer/tree_printer.zig | 18 +- src/install/migration.zig | 2 +- src/install/npm.zig | 30 +- src/install/patch_install.zig | 16 +- src/install/pnpm.zig | 14 +- src/install/repository.zig | 22 +- src/install/resolution.zig | 66 +- src/install/resolvers/folder_resolver.zig | 4 +- src/install/windows-shim/BinLinkingShim.zig | 2 +- src/install/windows-shim/bun_shim_impl.zig | 36 +- src/install/yarn.zig | 22 +- src/interchange/json.zig | 6 +- src/interchange/toml.zig | 2 +- src/interchange/toml/lexer.zig | 2 +- src/interchange/yaml.zig | 52 +- src/io/PipeReader.zig | 67 +- src/io/PipeWriter.zig | 18 +- src/io/io.zig | 10 +- src/io/pipes.zig | 2 +- src/io/source.zig | 10 +- src/js_lexer.zig | 32 +- src/js_parser.zig | 4 +- src/js_printer.zig | 39 +- src/libarchive/libarchive-bindings.zig | 32 +- src/libarchive/libarchive.zig | 24 +- src/linear_fifo.zig | 6 +- src/linker.zig | 4 +- src/logger.zig | 20 +- src/macho.zig | 20 +- src/main.zig | 2 +- src/main_test.zig | 2 +- src/main_wasm.zig | 16 +- src/meta.zig | 30 +- src/napi/napi.zig | 34 +- src/options.zig | 10 +- src/output.zig | 204 ++- src/patch.zig | 16 +- src/paths/Path.zig | 2 +- src/pe.zig | 4 +- src/pool.zig | 4 +- src/ptr/CowSlice.zig | 2 +- src/renamer.zig | 24 +- src/resolver/data_url.zig | 2 +- src/resolver/resolver.zig | 30 +- src/resolver/tsconfig_json.zig | 2 +- src/runtime.zig | 4 +- src/s3/credentials.zig | 4 +- src/s3/list_objects.zig | 8 +- src/safety/CriticalSection.zig | 12 +- src/semver/SemverQuery.zig | 22 +- src/semver/SemverRange.zig | 16 +- src/semver/SemverString.zig | 8 +- src/semver/Version.zig | 14 +- src/shell/Builtin.zig | 30 +- src/shell/IO.zig | 12 +- src/shell/IOReader.zig | 10 +- src/shell/IOWriter.zig | 62 +- src/shell/ParsedShellScript.zig | 12 +- src/shell/Yield.zig | 4 +- src/shell/braces.zig | 24 +- src/shell/builtin/cat.zig | 2 +- src/shell/builtin/cp.zig | 13 +- src/shell/builtin/echo.zig | 2 +- src/shell/builtin/export.zig | 2 +- src/shell/builtin/ls.zig | 12 +- src/shell/builtin/mkdir.zig | 16 +- src/shell/builtin/mv.zig | 2 +- src/shell/builtin/rm.zig | 14 +- src/shell/builtin/touch.zig | 18 +- src/shell/interpreter.zig | 41 +- src/shell/shell.zig | 90 +- src/shell/states/Assigns.zig | 4 +- src/shell/states/Async.zig | 10 +- src/shell/states/Binary.zig | 6 +- src/shell/states/Cmd.zig | 46 +- src/shell/states/CondExpr.zig | 10 +- src/shell/states/Expansion.zig | 34 +- src/shell/states/If.zig | 4 +- src/shell/states/Pipeline.zig | 4 +- src/shell/states/Script.zig | 4 +- src/shell/states/Stmt.zig | 6 +- src/shell/states/Subshell.zig | 14 +- src/shell/subproc.zig | 24 +- src/sourcemap/CodeCoverage.zig | 31 +- src/sourcemap/JSSourceMap.zig | 4 +- src/sourcemap/LineOffsetTable.zig | 2 +- src/sourcemap/ParsedSourceMap.zig | 6 +- src/sourcemap/sourcemap.zig | 16 +- src/sql/mysql/Capabilities.zig | 2 +- src/sql/mysql/MySQLConnection.zig | 8 +- src/sql/mysql/MySQLRequestQueue.zig | 3 +- src/sql/mysql/MySQLStatement.zig | 2 +- src/sql/mysql/MySQLTypes.zig | 2 +- src/sql/mysql/StatusFlags.zig | 2 +- src/sql/mysql/js/JSMySQLConnection.zig | 8 +- .../mysql/protocol/HandshakeResponse41.zig | 2 +- src/sql/mysql/protocol/Query.zig | 2 +- src/sql/mysql/protocol/SSLRequest.zig | 2 +- src/sql/mysql/protocol/Signature.zig | 4 +- src/sql/postgres/DataCell.zig | 8 +- src/sql/postgres/PostgresRequest.zig | 8 +- src/sql/postgres/PostgresSQLConnection.zig | 14 +- src/sql/postgres/PostgresSQLStatement.zig | 2 +- src/sql/postgres/Signature.zig | 4 +- src/sql/postgres/SocketMonitor.zig | 5 +- src/sql/postgres/protocol/ArrayList.zig | 4 +- src/sql/postgres/protocol/ErrorResponse.zig | 4 +- src/sql/postgres/protocol/FieldMessage.zig | 4 +- src/sql/postgres/types/Tag.zig | 2 +- src/string.zig | 14 +- src/string/MutableString.zig | 6 +- src/string/PathString.zig | 2 +- src/string/StringBuilder.zig | 2 +- src/string/escapeRegExp.zig | 22 +- src/string/immutable.zig | 4 +- src/string/immutable/escapeHTML.zig | 12 +- src/string/immutable/unicode.zig | 34 +- src/sys.zig | 176 +- src/sys/Error.zig | 4 +- src/sys/File.zig | 14 +- src/sys_uv.zig | 4 +- src/test/recover.zig | 3 +- src/threading/Futex.zig | 14 +- src/threading/channel.zig | 4 +- src/tracy.zig | 52 +- src/transpiler.zig | 29 +- src/url.zig | 4 +- src/valkey/ValkeyCommand.zig | 10 +- src/valkey/js_valkey.zig | 2 +- src/valkey/js_valkey_functions.zig | 32 +- src/valkey/valkey.zig | 4 +- src/valkey/valkey_protocol.zig | 18 +- src/walker_skippable.zig | 6 +- src/watcher/INotifyWatcher.zig | 18 +- src/watcher/WatcherTrace.zig | 11 +- src/watcher/WindowsWatcher.zig | 4 +- src/windows.zig | 111 +- src/windows/env.zig | 4 +- src/workaround_missing_symbols.zig | 12 +- src/zlib.zig | 12 +- test/internal/ban-limits.json | 9 +- test/internal/ban-words.test.ts | 1 + 558 files changed, 6102 insertions(+), 5212 deletions(-) create mode 100644 scripts/cleartrace-impl.js create mode 100644 scripts/cleartrace.ts delete mode 100755 scripts/pack-codegen-for-zig-team.sh create mode 100644 scripts/pack-codegen-for-zig-team.ts create mode 100644 src/deprecated.zig diff --git a/build.zig b/build.zig index 0f45dce6e1..e9c5fe8db1 100644 --- a/build.zig +++ b/build.zig @@ -99,7 +99,7 @@ const BunBuildOptions = struct { opts.addOption(bool, "enable_asan", this.enable_asan); opts.addOption(bool, "enable_valgrind", this.enable_valgrind); opts.addOption(bool, "use_mimalloc", this.use_mimalloc); - opts.addOption([]const u8, "reported_nodejs_version", b.fmt("{}", .{this.reported_nodejs_version})); + opts.addOption([]const u8, "reported_nodejs_version", b.fmt("{f}", .{this.reported_nodejs_version})); opts.addOption(bool, "zig_self_hosted_backend", this.no_llvm); opts.addOption(bool, "override_no_export_cpp_apis", this.override_no_export_cpp_apis); @@ -134,8 +134,8 @@ pub fn getOSVersionMin(os: OperatingSystem) ?Target.Query.OsVersion { pub fn getOSGlibCVersion(os: OperatingSystem) ?Version { return switch (os) { - // Compiling with a newer glibc than this will break certain cloud environments. - .linux => .{ .major = 2, .minor = 27, .patch = 0 }, + // Compiling with a newer glibc than this will break certain cloud environments. See symbols.test.ts. + .linux => .{ .major = 2, .minor = 26, .patch = 0 }, else => null, }; @@ -290,14 +290,16 @@ pub fn build(b: *Build) !void { var o = build_options; var unit_tests = b.addTest(.{ .name = "bun-test", - .optimize = build_options.optimize, - .root_source_file = b.path("src/unit_test.zig"), .test_runner = .{ .path = b.path("src/main_test.zig"), .mode = .simple }, - .target = build_options.target, + .root_module = b.createModule(.{ + .optimize = build_options.optimize, + .root_source_file = b.path("src/unit_test.zig"), + .target = build_options.target, + .omit_frame_pointer = false, + .strip = false, + }), .use_llvm = !build_options.no_llvm, .use_lld = if (build_options.os == .mac) false else !build_options.no_llvm, - .omit_frame_pointer = false, - .strip = false, }); configureObj(b, &o, unit_tests); // Setting `linker_allow_shlib_undefined` causes the linker to ignore @@ -331,6 +333,7 @@ pub fn build(b: *Build) !void { var step = b.step("check", "Check for semantic analysis errors"); var bun_check_obj = addBunObject(b, &build_options); bun_check_obj.generated_bin = null; + // bun_check_obj.use_llvm = false; step.dependOn(&bun_check_obj.step); // The default install step will run zig build check. This is so ZLS @@ -616,7 +619,7 @@ fn configureObj(b: *Build, opts: *BunBuildOptions, obj: *Compile) void { obj.llvm_codegen_threads = opts.llvm_codegen_threads orelse 0; } - obj.no_link_obj = true; + obj.no_link_obj = opts.os != .windows; if (opts.enable_asan and !enableFastBuild(b)) { if (@hasField(Build.Module, "sanitize_address")) { @@ -804,7 +807,7 @@ fn addInternalImports(b: *Build, mod: *Module, opts: *BunBuildOptions) void { fn propagateImports(source_mod: *Module) !void { var seen = std.AutoHashMap(*Module, void).init(source_mod.owner.graph.arena); defer seen.deinit(); - var queue = std.ArrayList(*Module).init(source_mod.owner.graph.arena); + var queue = std.array_list.Managed(*Module).init(source_mod.owner.graph.arena); defer queue.deinit(); try queue.appendSlice(source_mod.import_table.values()); while (queue.pop()) |mod| { diff --git a/cmake/tools/SetupZig.cmake b/cmake/tools/SetupZig.cmake index 925fdee0cb..1de53f05e3 100644 --- a/cmake/tools/SetupZig.cmake +++ b/cmake/tools/SetupZig.cmake @@ -20,7 +20,7 @@ else() unsupported(CMAKE_SYSTEM_NAME) endif() -set(ZIG_COMMIT "55fdbfa0c86be86b68d43a4ba761e6909eb0d7b2") +set(ZIG_COMMIT "c1423ff3fc7064635773a4a4616c5bf986eb00fe") optionx(ZIG_TARGET STRING "The zig target to use" DEFAULT ${DEFAULT_ZIG_TARGET}) if(CMAKE_BUILD_TYPE STREQUAL "Release") diff --git a/misctools/compression.zig b/misctools/compression.zig index 465eb2d023..a9aa694118 100644 --- a/misctools/compression.zig +++ b/misctools/compression.zig @@ -42,14 +42,14 @@ const CompressionFramework = struct { } } }; - const compression_encode_scratch_buffer_size_type = fn (algorithm: compression_algorithm) callconv(.C) usize; - const compression_encode_buffer_type = fn (noalias dst_buffer: [*]u8, dst_size: usize, noalias src_buffer: ?[*]const u8, src_size: usize, noalias scratch_buffer: ?*anyopaque, algorithm: compression_algorithm) callconv(.C) usize; - const compression_decode_scratch_buffer_size_type = fn (algorithm: compression_algorithm) callconv(.C) usize; - const compression_decode_buffer_type = fn (noalias dst_buffer: [*]u8, dst_size: usize, noalias src_buffer: ?[*]const u8, src_size: usize, noalias scratch_buffer: ?*anyopaque, algorithm: compression_algorithm) callconv(.C) usize; + const compression_encode_scratch_buffer_size_type = fn (algorithm: compression_algorithm) callconv(.c) usize; + const compression_encode_buffer_type = fn (noalias dst_buffer: [*]u8, dst_size: usize, noalias src_buffer: ?[*]const u8, src_size: usize, noalias scratch_buffer: ?*anyopaque, algorithm: compression_algorithm) callconv(.c) usize; + const compression_decode_scratch_buffer_size_type = fn (algorithm: compression_algorithm) callconv(.c) usize; + const compression_decode_buffer_type = fn (noalias dst_buffer: [*]u8, dst_size: usize, noalias src_buffer: ?[*]const u8, src_size: usize, noalias scratch_buffer: ?*anyopaque, algorithm: compression_algorithm) callconv(.c) usize; - const compression_stream_init_type = fn (stream: *compression_stream, operation: compression_stream_operation, algorithm: compression_algorithm) callconv(.C) compression_status; - const compression_stream_process_type = fn (stream: *compression_stream, flags: c_int) callconv(.C) compression_status; - const compression_stream_destroy_type = fn (stream: *compression_stream) callconv(.C) compression_status; + const compression_stream_init_type = fn (stream: *compression_stream, operation: compression_stream_operation, algorithm: compression_algorithm) callconv(.c) compression_status; + const compression_stream_process_type = fn (stream: *compression_stream, flags: c_int) callconv(.c) compression_status; + const compression_stream_destroy_type = fn (stream: *compression_stream) callconv(.c) compression_status; var compression_encode_scratch_buffer_size: *const compression_encode_scratch_buffer_size_type = undefined; var compression_encode_buffer: *const compression_encode_buffer_type = undefined; diff --git a/misctools/lldb/lldb_pretty_printers.py b/misctools/lldb/lldb_pretty_printers.py index add417d6b1..4455d18720 100644 --- a/misctools/lldb/lldb_pretty_printers.py +++ b/misctools/lldb/lldb_pretty_printers.py @@ -570,7 +570,7 @@ type_tag_handlers = { 'fn_noreturn_no_args': lambda payload: 'fn() noreturn', 'fn_void_no_args': lambda payload: 'fn() void', 'fn_naked_noreturn_no_args': lambda payload: 'fn() callconv(.Naked) noreturn', - 'fn_ccc_void_no_args': lambda payload: 'fn() callconv(.C) void', + 'fn_ccc_void_no_args': lambda payload: 'fn() callconv(.c) void', 'single_const_pointer_to_comptime_int': lambda payload: '*const comptime_int', 'manyptr_u8': lambda payload: '[*]u8', 'manyptr_const_u8': lambda payload: '[*]const u8', diff --git a/misctools/tgz.zig b/misctools/tgz.zig index d3dd482d57..cee3b45f5a 100644 --- a/misctools/tgz.zig +++ b/misctools/tgz.zig @@ -52,7 +52,7 @@ pub fn main() anyerror!void { // var dir = try std.fs.cwd().makeOpenPath(folder, .{ .iterate = true }); - var tarball = try std.fs.openFileAbsolute(tarball_path, .{ .mode = .read_only }); + var tarball = try std.fs.cwd().openFile(tarball_path, .{ .mode = .read_only }); var tarball_buf_list = std.ArrayListUnmanaged(u8){}; diff --git a/package.json b/package.json index 94ca8bc26c..c8bdbc36fa 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "scripts": { "build": "bun --silent run build:debug", "ci": "bun scripts/buildkite-failures.ts ", - "watch": "bun run zig build check --watch -fincremental --prominent-compile-errors --global-cache-dir build/debug/zig-check-cache --zig-lib-dir vendor/zig/lib", + "watch": "bun run zig build check --watch -fincremental --prominent-compile-errors --global-cache-dir build/debug/zig-check-cache --zig-lib-dir vendor/zig/lib -freference-trace=30", "watch-windows": "bun run zig build check-windows --watch -fincremental --prominent-compile-errors --global-cache-dir build/debug/zig-check-cache --zig-lib-dir vendor/zig/lib", "bd:v": "(bun run --silent build:debug &> /tmp/bun.debug.build.log || (cat /tmp/bun.debug.build.log && rm -rf /tmp/bun.debug.build.log && exit 1)) && rm -f /tmp/bun.debug.build.log && ./build/debug/bun-debug", "bd": "BUN_DEBUG_QUIET_LOGS=1 bun --silent bd:v", diff --git a/scripts/cleartrace-impl.js b/scripts/cleartrace-impl.js new file mode 100644 index 0000000000..6ec4910ca6 --- /dev/null +++ b/scripts/cleartrace-impl.js @@ -0,0 +1,54 @@ +import { createInterface } from "node:readline"; + +const rl = createInterface({ + input: process.stdin, + output: process.stdout, + terminal: false, +}); + +const ignore = [ + " print__anon_", + " printError__anon_", + " printErrorln__anon_", + " prettyWithPrinter__anon_", + " prettyErrorLn__anon_", + " err [inlined]", + " createErrorInstance__anon_", + " allocPrint__anon_", + " createFormat__anon_", + " fmt__anon_", + " toInvalidArguments__anon_", + " throwInvalidArguments__anon_", + " printStringPretty__anon_", + " throwErrInvalidArgType", + " validateObject__", + " allocPrint ", + " addWarningFmt_", + "logger.zig", // maybe? + "output.zig", // might be overly optimistic + "vendor/zig/lib/std", + "ErrorCode.zig", +]; + +let skipNext = false; +rl.on("line", line => { + if (skipNext) { + skipNext = false; + return; + } + if (line.includes(": error: ")) { + console.log("\x1b[31m" + line.replace(/^vendor\/zig\/lib\/std\/Io\/Writer\.zig:\d+:\d+: /, "") + "\x1b[0m"); + } else if (line.includes(": note: ")) { + console.log("\x1b[36m" + line + "\x1b[0m"); + } else if (line.includes('@compileError("')) { + skipNext = true; + } else if (ignore.some(q => line.includes(q) && !line.includes(" format:"))) { + console.log("\x1b[2m" + line + "\x1b[0m"); + } else { + console.log(line); + } +}); + +rl.on("close", () => { + process.exit(0); +}); diff --git a/scripts/cleartrace.ts b/scripts/cleartrace.ts new file mode 100644 index 0000000000..24f823dcbf --- /dev/null +++ b/scripts/cleartrace.ts @@ -0,0 +1,46 @@ +// `fish -c "bun run watch 2>&1 | bun scripts/cleartrace"` + +import { createInterface } from "node:readline"; + +const rl = createInterface({ + input: process.stdin, + output: process.stdout, + terminal: false, +}); + +let chunk: string[] = []; +rl.on("line", line => { + chunk.push(line); +}); +let timeout: NodeJS.Timeout | null = null; +async function doNow() { + if (timeout != null) { + clearTimeout(timeout); + timeout = null; + } + const eatChunk = chunk; + chunk = []; + if (eatChunk.length > 0) { + const proc = Bun.spawn({ + cmd: ["bun", "scripts/cleartrace-impl.js"], + stdio: ["pipe", "inherit", "inherit"], + }); + proc.stdin.write(eatChunk.join("\n")); + proc.stdin.end(); + await proc.exited; + } + enqueue(); +} +let ceaseTimeout = false; +function enqueue() { + if (ceaseTimeout) return; + timeout = setTimeout(() => { + timeout = null; + doNow(); + }, 100); +} +enqueue(); + +rl.on("close", () => { + ceaseTimeout = true; +}); diff --git a/scripts/pack-codegen-for-zig-team.sh b/scripts/pack-codegen-for-zig-team.sh deleted file mode 100755 index 5de4f0bd2e..0000000000 --- a/scripts/pack-codegen-for-zig-team.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -if ! test -d build/debug/codegen; then - echo "Missing codegen" - exit 1 -fi - -out="codegen-for-zig-team.tar.gz" -tar --no-xattrs \ - --exclude=".DS_Store" \ - -zcf "$out" \ - build/debug/codegen \ - src/bun.js/bindings/GeneratedBindings.zig \ - src/bun.js/bindings/GeneratedJS2Native.zig -echo "-> $out" diff --git a/scripts/pack-codegen-for-zig-team.ts b/scripts/pack-codegen-for-zig-team.ts new file mode 100644 index 0000000000..9a299e6d6f --- /dev/null +++ b/scripts/pack-codegen-for-zig-team.ts @@ -0,0 +1,167 @@ +import { $ } from "bun"; +import { dirname, join, relative } from "path"; + +// Check for local changes in git before proceeding +const statusOutput = await $`git status --porcelain --untracked-files=normal`.text(); + +if (statusOutput.trim().length > 0) { + console.error("There are local changes in git. Please commit or stash them before running this command."); + console.error("Git status:"); + console.error(statusOutput); + process.exit(1); +} + +async function revertUnstagedChanges() { + // Discard ONLY worktree changes; keep index (staged) intact. + // Prefer `git restore` (Git ≥2.23), fall back to `git checkout` for older Git. + try { + const restore = Bun.spawn({ + cmd: ["git", "restore", "--worktree", "--", "."], + stdio: ["ignore", "ignore", "inherit"], + }); + await restore.exited; + if (restore.exitCode !== 0) { + const checkout = Bun.spawn({ + cmd: ["git", "checkout", "--", "."], + stdio: ["ignore", "ignore", "inherit"], + }); + await checkout.exited; + } + } catch { + // Best-effort; ignore restore errors so the main task can still complete. + } +} + +let skip = -1; +const args = process.argv.slice(2).filter((arg, i) => { + if (arg === "--listen=-") return false; + if (arg === "--zig-lib-dir") { + skip = i + 1; + return false; + } + if (skip === i) return false; + return true; +}); +if (args.length === 0) { + console.error(`Usage: bun scripts/pack-codegen-for-zig-team + +The full command should be displayed in the build failure message. It should start with /path/to/zig build-obj ..... and end with --listen=-`); + process.exit(1); +} +if (!args[0].includes("zig")) { + console.error("First argument must be a zig command: ", args[0]); + process.exit(1); +} +if (args[1] === "build") { + console.error("build not supported. Expected a `zig build-obj` command."); + process.exit(1); +} +args.shift(); + +let resolvedZigFiles = new Set(); +const backmap = new Map(); +for (const arg of args) { + const [_, file] = arg.split("="); + if (!file) continue; + if (!file.includes("/")) continue; + const resolved = relative(".", file); + if (resolved.startsWith("..")) { + console.error("File is outside of the current directory: ", file); + process.exit(1); + } + resolvedZigFiles.add(resolved); + backmap.set(file, resolved); +} + +for (const file of resolvedZigFiles) { + let content: string; + try { + content = await Bun.file(file).text(); + } catch (e) { + console.error("Failed to read file: ", file); + resolvedZigFiles.delete(file); + continue; + } + + if (!file.endsWith(".zig")) continue; + const imports = content.matchAll(/@(?:import|embedFile)\("([^"]+)"\)/g); + for (const [_, imported] of imports) { + if (!imported.includes("/") && !imported.includes(".")) continue; + const resolved = join(dirname(file), imported); + resolvedZigFiles.add(resolved); + } +} + +// now, create zip + +const out_args = "build/all.args"; +const out = "codegen-for-zig-team.tar.gz"; +try { + await Bun.file(out).delete(); +} catch (e) {} + +const a0 = args.shift(); +await Bun.write( + out_args, + args + .filter(arg => { + if (arg === "-fsanitize-address") return false; // not available upstream + return true; + }) + .map(arg => { + if (arg.includes("=")) { + const [flag, value] = arg.split("="); + return `${flag}=${backmap.get(value) ?? value}`; + } + return arg; + }) + .join(" "), +); + +// Prepare zig source for use with the upstream compiler +{ + const fmt = Bun.spawn({ + cmd: ["./vendor/zig/zig", "fmt", "--upstream", "src"], + stdio: ["inherit", "inherit", "inherit"], + }); + await fmt.exited; + if (fmt.exitCode !== 0) { + await revertUnstagedChanges(); + console.error("`zig fmt` failed."); + process.exit(fmt.exitCode ?? 1); + } +} + +try { + const spawned = Bun.spawn({ + cmd: ["tar", "--no-xattrs", "-zcf", out, out_args, ...resolvedZigFiles], + stdio: ["inherit", "inherit", "inherit"], + }); + await spawned.exited; + + if (spawned.exitCode !== 0) { + console.error("Failed to create zip: ", spawned.exitCode); + process.exit(1); + } + + console.log(` +pack-codegen-for-zig-team +Reminder: Test that the reproduction steps work with the official Zig binary before submitting the issue. + +Output file: ${out} + +Reproduction steps: + +Download codegen-for-zig-team.tar.gz +\`\`\`sh +cd /empty/folder +wget .... +tar -xvzf codegen-for-zig-team.tar.gz +zig ${a0} @${out_args} +\`\`\` +`); + console.log("->", out); +} finally { + // Always clean up any fmt-induced worktree changes (preserve index) + await revertUnstagedChanges(); +} diff --git a/src/Global.zig b/src/Global.zig index 0a9a6c5175..2026b80d2b 100644 --- a/src/Global.zig +++ b/src/Global.zig @@ -60,7 +60,7 @@ pub inline fn getStartTime() i128 { return bun.start_time; } -extern "kernel32" fn SetThreadDescription(thread: std.os.windows.HANDLE, name: [*:0]const u16) callconv(std.os.windows.WINAPI) std.os.windows.HRESULT; +extern "kernel32" fn SetThreadDescription(thread: std.os.windows.HANDLE, name: [*:0]const u16) callconv(.winapi) std.os.windows.HRESULT; pub fn setThreadName(name: [:0]const u8) void { if (Environment.isLinux) { @@ -73,7 +73,7 @@ pub fn setThreadName(name: [:0]const u8) void { } } -const ExitFn = *const fn () callconv(.C) void; +const ExitFn = *const fn () callconv(.c) void; var on_exit_callbacks = std.ArrayListUnmanaged(ExitFn){}; export fn Bun__atexit(function: ExitFn) void { @@ -145,7 +145,7 @@ pub fn raiseIgnoringPanicHandler(sig: bun.SignalCode) noreturn { if (bun.Environment.os != .windows) { var sa: std.c.Sigaction = .{ .handler = .{ .handler = std.posix.SIG.DFL }, - .mask = std.posix.empty_sigset, + .mask = std.posix.sigemptyset(), .flags = std.posix.SA.RESETHAND, }; _ = std.c.sigaction(@intFromEnum(sig), &sa, null); diff --git a/src/OutputFile.zig b/src/OutputFile.zig index 3ae4011238..c3eb50a015 100644 --- a/src/OutputFile.zig +++ b/src/OutputFile.zig @@ -133,7 +133,7 @@ pub const Value = union(Kind) { const FreeContext = struct { allocator: std.mem.Allocator, - fn onFree(ctx: *@This(), buffer: *anyopaque, len: u32) callconv(.C) void { + fn onFree(ctx: *@This(), buffer: *anyopaque, len: u32) callconv(.c) void { ctx.allocator.free(@as([*]u8, @ptrCast(buffer))[0..len]); bun.destroy(ctx); } @@ -322,7 +322,7 @@ pub fn moveTo(file: *const OutputFile, _: string, rel_path: []const u8, dir: Fil pub fn copyTo(file: *const OutputFile, _: string, rel_path: []const u8, dir: FileDescriptorType) !void { const fd_out = bun.FD.fromStdFile(try dir.stdDir().createFile(rel_path, .{})); var do_close = false; - const fd_in = bun.FD.fromStdFile(try std.fs.openFileAbsolute(file.src_path.text, .{ .mode = .read_only })); + const fd_in = bun.FD.fromStdFile(try std.fs.cwd().openFile(file.src_path.text, .{ .mode = .read_only })); if (Environment.isWindows) { do_close = Fs.FileSystem.instance.fs.needToCloseFiles(); diff --git a/src/Progress.zig b/src/Progress.zig index 0abeca230c..788745f772 100644 --- a/src/Progress.zig +++ b/src/Progress.zig @@ -177,7 +177,7 @@ pub const Node = struct { /// API to return Progress rather than accept it as a parameter. /// `estimated_total_items` value of 0 means unknown. pub fn start(self: *Progress, name: []const u8, estimated_total_items: usize) *Node { - const stderr = std.io.getStdErr(); + const stderr = std.fs.File.stderr(); self.terminal = null; if (stderr.supportsAnsiEscapeCodes()) { self.terminal = stderr; @@ -355,8 +355,10 @@ pub fn log(self: *Progress, comptime format: []const u8, args: anytype) void { (std.debug).print(format, args); return; }; + var file_writer = file.writerStreaming(&.{}); + const writer = &file_writer.interface; self.refresh(); - file.writer().print(format, args) catch { + writer.print(format, args) catch { self.terminal = null; return; }; @@ -427,24 +429,24 @@ test "basic functionality" { next_sub_task = (next_sub_task + 1) % sub_task_names.len; node.completeOne(); - std.time.sleep(5 * speed_factor); + std.Thread.sleep(5 * speed_factor); node.completeOne(); node.completeOne(); - std.time.sleep(5 * speed_factor); + std.Thread.sleep(5 * speed_factor); node.completeOne(); node.completeOne(); - std.time.sleep(5 * speed_factor); + std.Thread.sleep(5 * speed_factor); node.end(); - std.time.sleep(5 * speed_factor); + std.Thread.sleep(5 * speed_factor); } { var node = root_node.start("this is a really long name designed to activate the truncation code. let's find out if it works", 0); node.activate(); - std.time.sleep(10 * speed_factor); + std.Thread.sleep(10 * speed_factor); progress.refresh(); - std.time.sleep(10 * speed_factor); + std.Thread.sleep(10 * speed_factor); node.end(); } } diff --git a/src/SignalCode.zig b/src/SignalCode.zig index 13fb189255..d57a2da2c1 100644 --- a/src/SignalCode.zig +++ b/src/SignalCode.zig @@ -103,7 +103,7 @@ pub const SignalCode = enum(u8) { const Fmt = struct { signal: SignalCode, enable_ansi_colors: bool, - pub fn format(this: Fmt, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: Fmt, writer: *std.Io.Writer) !void { const signal = this.signal; switch (this.enable_ansi_colors) { inline else => |enable_ansi_colors| { diff --git a/src/StandaloneModuleGraph.zig b/src/StandaloneModuleGraph.zig index 97cdca6bd0..823ec33974 100644 --- a/src/StandaloneModuleGraph.zig +++ b/src/StandaloneModuleGraph.zig @@ -394,11 +394,11 @@ pub const StandaloneModuleGraph = struct { try string_builder.allocate(allocator); - var modules = try std.ArrayList(CompiledModuleGraphFile).initCapacity(allocator, module_count); + var modules = try std.array_list.Managed(CompiledModuleGraphFile).initCapacity(allocator, module_count); - var source_map_header_list = std.ArrayList(u8).init(allocator); + var source_map_header_list = std.array_list.Managed(u8).init(allocator); defer source_map_header_list.deinit(); - var source_map_string_list = std.ArrayList(u8).init(allocator); + var source_map_string_list = std.array_list.Managed(u8).init(allocator); defer source_map_string_list.deinit(); var source_map_arena = bun.ArenaAllocator.init(allocator); defer source_map_arena.deinit(); @@ -670,7 +670,7 @@ pub const StandaloneModuleGraph = struct { else => break, } - Output.prettyErrorln("error: failed to open temporary file to copy bun into\n{}", .{err}); + Output.prettyErrorln("error: failed to open temporary file to copy bun into\n{f}", .{err}); // No fd to cleanup yet, just return error return bun.invalid_fd; } @@ -692,7 +692,7 @@ pub const StandaloneModuleGraph = struct { } } - Output.prettyErrorln("error: failed to open bun executable to copy from as read-only\n{}", .{err}); + Output.prettyErrorln("error: failed to open bun executable to copy from as read-only\n{f}", .{err}); cleanup(zname, fd); return bun.invalid_fd; }, @@ -716,7 +716,7 @@ pub const StandaloneModuleGraph = struct { .mac => { const input_result = bun.sys.File.readToEnd(.{ .handle = cloned_executable_fd }, bun.default_allocator); if (input_result.err) |err| { - Output.prettyErrorln("Error reading standalone module graph: {}", .{err}); + Output.prettyErrorln("Error reading standalone module graph: {f}", .{err}); cleanup(zname, cloned_executable_fd); return bun.invalid_fd; } @@ -735,7 +735,7 @@ pub const StandaloneModuleGraph = struct { switch (Syscall.setFileOffset(cloned_executable_fd, 0)) { .err => |err| { - Output.prettyErrorln("Error seeking to start of temporary file: {}", .{err}); + Output.prettyErrorln("Error seeking to start of temporary file: {f}", .{err}); cleanup(zname, cloned_executable_fd); return bun.invalid_fd; }, @@ -744,17 +744,14 @@ pub const StandaloneModuleGraph = struct { var file = bun.sys.File{ .handle = cloned_executable_fd }; const writer = file.writer(); - const BufferedWriter = std.io.BufferedWriter(512 * 1024, @TypeOf(writer)); - var buffered_writer = bun.handleOom(bun.default_allocator.create(BufferedWriter)); - buffered_writer.* = .{ - .unbuffered_writer = writer, - }; - macho_file.buildAndSign(buffered_writer.writer()) catch |err| { + var buffer: [512 * 1024]u8 = undefined; + var buffered_writer = writer.adaptToNewApi(&buffer); + macho_file.buildAndSign(&buffered_writer.new_interface) catch |err| { Output.prettyErrorln("Error writing standalone module graph: {}", .{err}); cleanup(zname, cloned_executable_fd); return bun.invalid_fd; }; - buffered_writer.flush() catch |err| { + buffered_writer.new_interface.flush() catch |err| { Output.prettyErrorln("Error flushing standalone module graph: {}", .{err}); cleanup(zname, cloned_executable_fd); return bun.invalid_fd; @@ -767,7 +764,7 @@ pub const StandaloneModuleGraph = struct { .windows => { const input_result = bun.sys.File.readToEnd(.{ .handle = cloned_executable_fd }, bun.default_allocator); if (input_result.err) |err| { - Output.prettyErrorln("Error reading standalone module graph: {}", .{err}); + Output.prettyErrorln("Error reading standalone module graph: {f}", .{err}); cleanup(zname, cloned_executable_fd); return bun.invalid_fd; } @@ -787,7 +784,7 @@ pub const StandaloneModuleGraph = struct { switch (Syscall.setFileOffset(cloned_executable_fd, 0)) { .err => |err| { - Output.prettyErrorln("Error seeking to start of temporary file: {}", .{err}); + Output.prettyErrorln("Error seeking to start of temporary file: {f}", .{err}); cleanup(zname, cloned_executable_fd); return bun.invalid_fd; }, @@ -820,7 +817,7 @@ pub const StandaloneModuleGraph = struct { const fstat = switch (Syscall.fstat(cloned_executable_fd)) { .result => |res| res, .err => |err| { - Output.prettyErrorln("{}", .{err}); + Output.prettyErrorln("{f}", .{err}); cleanup(zname, cloned_executable_fd); return bun.invalid_fd; }, @@ -842,7 +839,7 @@ pub const StandaloneModuleGraph = struct { switch (Syscall.setFileOffset(cloned_executable_fd, seek_position)) { .err => |err| { Output.prettyErrorln( - "{}\nwhile seeking to end of temporary file (pos: {d})", + "{f}\nwhile seeking to end of temporary file (pos: {d})", .{ err, seek_position, @@ -860,7 +857,7 @@ pub const StandaloneModuleGraph = struct { switch (Syscall.write(cloned_executable_fd, bytes)) { .result => |written| remain = remain[written..], .err => |err| { - Output.prettyErrorln("error: failed to write to temporary file\n{}", .{err}); + Output.prettyErrorln("error: failed to write to temporary file\n{f}", .{err}); cleanup(zname, cloned_executable_fd); return bun.invalid_fd; }, @@ -999,7 +996,7 @@ pub const StandaloneModuleGraph = struct { } else blk: { var exe_path_buf: bun.PathBuffer = undefined; - const version_str = bun.handleOom(std.fmt.allocPrintZ(allocator, "{}", .{target})); + const version_str = bun.handleOom(std.fmt.allocPrintSentinel(allocator, "{f}", .{target}, 0)); defer allocator.free(version_str); var needs_download: bool = true; @@ -1008,12 +1005,12 @@ pub const StandaloneModuleGraph = struct { if (needs_download) { target.downloadToPath(env, allocator, dest_z) catch |err| { return switch (err) { - error.TargetNotFound => CompileResult.failFmt("Target platform '{}' is not available for download. Check if this version of Bun supports this target.", .{target}), - error.NetworkError => CompileResult.failFmt("Network error downloading executable for '{}'. Check your internet connection and proxy settings.", .{target}), - error.InvalidResponse => CompileResult.failFmt("Downloaded file for '{}' appears to be corrupted. Please try again.", .{target}), - error.ExtractionFailed => CompileResult.failFmt("Failed to extract executable for '{}'. The download may be incomplete.", .{target}), - error.UnsupportedTarget => CompileResult.failFmt("Target '{}' is not supported", .{target}), - else => CompileResult.failFmt("Failed to download '{}': {s}", .{ target, @errorName(err) }), + error.TargetNotFound => CompileResult.failFmt("Target platform '{f}' is not available for download. Check if this version of Bun supports this target.", .{target}), + error.NetworkError => CompileResult.failFmt("Network error downloading executable for '{f}'. Check your internet connection and proxy settings.", .{target}), + error.InvalidResponse => CompileResult.failFmt("Downloaded file for '{f}' appears to be corrupted. Please try again.", .{target}), + error.ExtractionFailed => CompileResult.failFmt("Failed to extract executable for '{f}'. The download may be incomplete.", .{target}), + error.UnsupportedTarget => CompileResult.failFmt("Target '{f}' is not supported", .{target}), + else => CompileResult.failFmt("Failed to download '{f}': {s}", .{ target, @errorName(err) }), }; }; } @@ -1448,8 +1445,8 @@ pub const StandaloneModuleGraph = struct { }; pub fn serializeJsonSourceMapForStandalone( - header_list: *std.ArrayList(u8), - string_payload: *std.ArrayList(u8), + header_list: *std.array_list.Managed(u8), + string_payload: *std.array_list.Managed(u8), arena: std.mem.Allocator, json_source: []const u8, ) !void { diff --git a/src/StaticHashMap.zig b/src/StaticHashMap.zig index d0e0f51a06..a8eb7627cb 100644 --- a/src/StaticHashMap.zig +++ b/src/StaticHashMap.zig @@ -27,10 +27,8 @@ pub fn StaticHashMap(comptime K: type, comptime V: type, comptime Context: type, return self.hash == empty_hash; } - pub fn format(self: Entry, comptime layout: []const u8, options: std.fmt.FormatOptions, writer: anytype) !void { - _ = layout; - _ = options; - try std.fmt.format(writer, "(hash: {}, key: {}, value: {})", .{ self.hash, self.key, self.value }); + pub fn format(self: Entry, writer: *std.Io.Writer) !void { + try writer.print("(hash: {}, key: {}, value: {})", .{ self.hash, self.key, self.value }); } }; @@ -79,10 +77,8 @@ pub fn HashMap(comptime K: type, comptime V: type, comptime Context: type, compt return self.hash == empty_hash; } - pub fn format(self: Entry, comptime layout: []const u8, options: std.fmt.FormatOptions, writer: anytype) !void { - _ = layout; - _ = options; - try std.fmt.format(writer, "(hash: {}, key: {}, value: {})", .{ self.hash, self.key, self.value }); + pub fn format(self: Entry, writer: *std.Io.Writer) !void { + try writer.print("(hash: {}, key: {}, value: {})", .{ self.hash, self.key, self.value }); } }; @@ -355,10 +351,8 @@ pub fn SortedHashMap(comptime V: type, comptime max_load_percentage: comptime_in return cmp(self.hash, empty_hash) == .eq; } - pub fn format(self: Entry, comptime layout: []const u8, options: std.fmt.FormatOptions, writer: anytype) !void { - _ = layout; - _ = options; - try std.fmt.format(writer, "(hash: {}, value: {})", .{ std.fmt.fmtSliceHexLower(mem.asBytes(&self.hash)), self.value }); + pub fn format(self: Entry, writer: *std.Io.Writer) !void { + try writer.print("(hash: {x}, value: {})", .{ mem.asBytes(&self.hash), self.value }); } }; diff --git a/src/Watcher.zig b/src/Watcher.zig index bc17c7d11a..3a8f448426 100644 --- a/src/Watcher.zig +++ b/src/Watcher.zig @@ -65,13 +65,13 @@ const no_watch_item: WatchItemIndex = std.math.maxInt(WatchItemIndex); pub fn init(comptime T: type, ctx: *T, fs: *bun.fs.FileSystem, allocator: std.mem.Allocator) !*Watcher { const wrapped = struct { fn onFileUpdateWrapped(ctx_opaque: *anyopaque, events: []WatchEvent, changed_files: []?[:0]u8, watchlist: WatchList) void { - T.onFileUpdate(@alignCast(@ptrCast(ctx_opaque)), events, changed_files, watchlist); + T.onFileUpdate(@ptrCast(@alignCast(ctx_opaque)), events, changed_files, watchlist); } fn onErrorWrapped(ctx_opaque: *anyopaque, err: bun.sys.Error) void { if (@hasDecl(T, "onWatchError")) { - T.onWatchError(@alignCast(@ptrCast(ctx_opaque)), err); + T.onWatchError(@ptrCast(@alignCast(ctx_opaque)), err); } else { - T.onError(@alignCast(@ptrCast(ctx_opaque)), err); + T.onError(@ptrCast(@alignCast(ctx_opaque)), err); } } }; @@ -192,7 +192,7 @@ pub const WatchEvent = struct { }; } - pub fn format(op: Op, comptime _: []const u8, _: std.fmt.FormatOptions, w: anytype) !void { + pub fn format(op: Op, w: *std.Io.Writer) !void { try w.writeAll("{"); var first = true; inline for (comptime std.meta.fieldNames(Op)) |name| { diff --git a/src/allocators/LinuxMemFdAllocator.zig b/src/allocators/LinuxMemFdAllocator.zig index fa6cbe0857..3b6d0ba613 100644 --- a/src/allocators/LinuxMemFdAllocator.zig +++ b/src/allocators/LinuxMemFdAllocator.zig @@ -43,7 +43,7 @@ pub fn allocator(self: *Self) std.mem.Allocator { pub fn from(allocator_: std.mem.Allocator) ?*Self { if (allocator_.vtable == AllocatorInterface.VTable) { - return @alignCast(@ptrCast(allocator_.ptr)); + return @ptrCast(@alignCast(allocator_.ptr)); } return null; @@ -61,9 +61,9 @@ const AllocatorInterface = struct { _: std.mem.Alignment, _: usize, ) void { - var self: *Self = @alignCast(@ptrCast(ptr)); + var self: *Self = @ptrCast(@alignCast(ptr)); defer self.deref(); - bun.sys.munmap(@alignCast(@ptrCast(buf))).unwrap() catch |err| { + bun.sys.munmap(@ptrCast(@alignCast(buf))).unwrap() catch |err| { bun.Output.debugWarn("Failed to munmap memfd: {}", .{err}); }; } @@ -152,7 +152,7 @@ pub fn create(bytes: []const u8) bun.sys.Maybe(bun.webcore.Blob.Store.Bytes) { continue; } - bun.Output.debugWarn("Failed to write to memfd: {}", .{err}); + bun.Output.debugWarn("Failed to write to memfd: {f}", .{err}); fd.close(); return .{ .err = err }; }, diff --git a/src/allocators/MaxHeapAllocator.zig b/src/allocators/MaxHeapAllocator.zig index f3458b8b12..1b7907b203 100644 --- a/src/allocators/MaxHeapAllocator.zig +++ b/src/allocators/MaxHeapAllocator.zig @@ -2,7 +2,7 @@ const Self = @This(); -array_list: std.ArrayListAligned(u8, @alignOf(std.c.max_align_t)), +array_list: std.array_list.AlignedManaged(u8, .of(std.c.max_align_t)), fn alloc(ptr: *anyopaque, len: usize, alignment: std.mem.Alignment, _: usize) ?[*]u8 { bun.assert(alignment.toByteUnits() <= @alignOf(std.c.max_align_t)); diff --git a/src/allocators/MimallocArena.zig b/src/allocators/MimallocArena.zig index 5fe5dccd7b..2f5ccae2a0 100644 --- a/src/allocators/MimallocArena.zig +++ b/src/allocators/MimallocArena.zig @@ -136,7 +136,7 @@ pub fn backingAllocator(_: Self) std.mem.Allocator { pub fn dumpThreadStats(_: Self) void { const dump_fn = struct { - pub fn dump(textZ: [*:0]const u8, _: ?*anyopaque) callconv(.C) void { + pub fn dump(textZ: [*:0]const u8, _: ?*anyopaque) callconv(.c) void { const text = bun.span(textZ); bun.Output.errorWriter().writeAll(text) catch {}; } @@ -147,7 +147,7 @@ pub fn dumpThreadStats(_: Self) void { pub fn dumpStats(_: Self) void { const dump_fn = struct { - pub fn dump(textZ: [*:0]const u8, _: ?*anyopaque) callconv(.C) void { + pub fn dump(textZ: [*:0]const u8, _: ?*anyopaque) callconv(.c) void { const text = bun.span(textZ); bun.Output.errorWriter().writeAll(text) catch {}; } diff --git a/src/allocators/allocation_scope.zig b/src/allocators/allocation_scope.zig index ce6ca4b1c8..75292ee062 100644 --- a/src/allocators/allocation_scope.zig +++ b/src/allocators/allocation_scope.zig @@ -129,7 +129,7 @@ const LockedState = struct { fn trackFree(self: Self, buf: []const u8, ret_addr: usize) FreeError!void { const entry = self.history.allocations.fetchRemove(buf.ptr) orelse { - Output.errGeneric("Invalid free, pointer {any}, len {d}", .{ buf.ptr, buf.len }); + Output.errGeneric("Invalid free, pointer {*}, len {d}", .{ buf.ptr, buf.len }); if (self.history.frees.getPtr(buf.ptr)) |free_entry| { Output.printErrorln("Pointer allocated here:", .{}); @@ -193,7 +193,7 @@ const State = struct { const count = history.allocations.count(); if (count == 0) return; - Output.errGeneric("Allocation scope leaked {d} allocations ({})", .{ + Output.errGeneric("Allocation scope leaked {d} allocations ({f})", .{ count, bun.fmt.size(history.total_memory_allocated, .{}), }); @@ -206,7 +206,7 @@ const State = struct { break; } Output.prettyErrorln( - "- {any}, len {d}, at:", + "- {*}, len {d}, at:", .{ entry.key_ptr.*, entry.value_ptr.len }, ); bun.crash_handler.dumpStackTrace( @@ -223,7 +223,7 @@ const State = struct { } Output.panic( - "Allocation scope leaked {}", + "Allocation scope leaked {f}", .{bun.fmt.size(history.total_memory_allocated, .{})}, ); } diff --git a/src/allocators/mimalloc.zig b/src/allocators/mimalloc.zig index 3d9e9b2e07..a0976eefdb 100644 --- a/src/allocators/mimalloc.zig +++ b/src/allocators/mimalloc.zig @@ -14,11 +14,11 @@ pub extern fn mi_reallocn(p: ?*anyopaque, count: usize, size: usize) ?*anyopaque pub extern fn mi_reallocf(p: ?*anyopaque, newsize: usize) ?*anyopaque; pub extern fn mi_usable_size(p: ?*const anyopaque) usize; pub extern fn mi_good_size(size: usize) usize; -pub const mi_deferred_free_fun = *const fn (bool, c_ulonglong, ?*anyopaque) callconv(.C) void; +pub const mi_deferred_free_fun = *const fn (bool, c_ulonglong, ?*anyopaque) callconv(.c) void; pub extern fn mi_register_deferred_free(deferred_free: ?mi_deferred_free_fun, arg: ?*anyopaque) void; -pub const mi_output_fun = *const fn ([*:0]const u8, ?*anyopaque) callconv(.C) void; +pub const mi_output_fun = *const fn ([*:0]const u8, ?*anyopaque) callconv(.c) void; pub extern fn mi_register_output(out: ?mi_output_fun, arg: ?*anyopaque) void; -pub const mi_error_fun = *const fn (c_int, ?*anyopaque) callconv(.C) void; +pub const mi_error_fun = *const fn (c_int, ?*anyopaque) callconv(.c) void; pub extern fn mi_register_error(fun: ?mi_error_fun, arg: ?*anyopaque) void; pub extern fn mi_collect(force: bool) void; pub extern fn mi_version() c_int; @@ -114,7 +114,7 @@ pub const struct_mi_heap_area_s = extern struct { full_block_size: usize, }; pub const mi_heap_area_t = struct_mi_heap_area_s; -pub const mi_block_visit_fun = *const fn (?*const Heap, [*c]const mi_heap_area_t, ?*anyopaque, usize, ?*anyopaque) callconv(.C) bool; +pub const mi_block_visit_fun = *const fn (?*const Heap, [*c]const mi_heap_area_t, ?*anyopaque, usize, ?*anyopaque) callconv(.c) bool; pub extern fn mi_heap_visit_blocks(heap: ?*const Heap, visit_all_blocks: bool, visitor: ?mi_block_visit_fun, arg: ?*anyopaque) bool; pub extern fn mi_is_in_heap_region(p: ?*const anyopaque) bool; pub extern fn mi_is_redirected() bool; diff --git a/src/analytics.zig b/src/analytics.zig index 0ac7156967..fd8f46876d 100644 --- a/src/analytics.zig +++ b/src/analytics.zig @@ -98,7 +98,7 @@ pub const Features = struct { } pub const Formatter = struct { - pub fn format(_: Formatter, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(_: Formatter, writer: *std.Io.Writer) !void { const fields = comptime brk: { const info: std.builtin.Type = @typeInfo(Features); var buffer: [info.@"struct".decls.len][]const u8 = .{""} ** info.@"struct".decls.len; diff --git a/src/api/schema.zig b/src/api/schema.zig index cbb4274055..7fafbf53b3 100644 --- a/src/api/schema.zig +++ b/src/api/schema.zig @@ -2897,12 +2897,12 @@ pub const api = struct { // Token if (url.username.len == 0 and url.password.len > 0) { registry.token = url.password; - registry.url = try std.fmt.allocPrint(this.allocator, "{s}://{}/{s}/", .{ url.displayProtocol(), url.displayHost(), std.mem.trim(u8, url.pathname, "/") }); + registry.url = try std.fmt.allocPrint(this.allocator, "{s}://{f}/{s}/", .{ url.displayProtocol(), url.displayHost(), std.mem.trim(u8, url.pathname, "/") }); } else if (url.username.len > 0 and url.password.len > 0) { registry.username = url.username; registry.password = url.password; - registry.url = try std.fmt.allocPrint(this.allocator, "{s}://{}/{s}/", .{ url.displayProtocol(), url.displayHost(), std.mem.trim(u8, url.pathname, "/") }); + registry.url = try std.fmt.allocPrint(this.allocator, "{s}://{f}/{s}/", .{ url.displayProtocol(), url.displayHost(), std.mem.trim(u8, url.pathname, "/") }); } else { // Do not include a trailing slash. There might be parameters at the end. registry.url = url.href; diff --git a/src/ast.zig b/src/ast.zig index 2513498aab..f945369416 100644 --- a/src/ast.zig +++ b/src/ast.zig @@ -152,20 +152,20 @@ pub const SlotCounts = struct { }; pub const NameMinifier = struct { - head: std.ArrayList(u8), - tail: std.ArrayList(u8), + head: std.array_list.Managed(u8), + tail: std.array_list.Managed(u8), pub const default_head = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$"; pub const default_tail = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$"; pub fn init(allocator: std.mem.Allocator) NameMinifier { return .{ - .head = std.ArrayList(u8).init(allocator), - .tail = std.ArrayList(u8).init(allocator), + .head = std.array_list.Managed(u8).init(allocator), + .tail = std.array_list.Managed(u8).init(allocator), }; } - pub fn numberToMinifiedName(this: *NameMinifier, name: *std.ArrayList(u8), _i: isize) !void { + pub fn numberToMinifiedName(this: *NameMinifier, name: *std.array_list.Managed(u8), _i: isize) !void { name.clearRetainingCapacity(); var i = _i; var j = @as(usize, @intCast(@mod(i, 54))); @@ -183,7 +183,7 @@ pub const NameMinifier = struct { pub fn defaultNumberToMinifiedName(allocator: std.mem.Allocator, _i: isize) !string { var i = _i; var j = @as(usize, @intCast(@mod(i, 54))); - var name = std.ArrayList(u8).init(allocator); + var name = std.array_list.Managed(u8).init(allocator); try name.appendSlice(default_head[j .. j + 1]); i = @divFloor(i, 54); @@ -461,9 +461,9 @@ pub const Dependency = struct { pub const List = BabyList(Dependency); }; -pub const ExprList = std.ArrayList(Expr); -pub const StmtList = std.ArrayList(Stmt); -pub const BindingList = std.ArrayList(Binding); +pub const ExprList = std.array_list.Managed(Expr); +pub const StmtList = std.array_list.Managed(Stmt); +pub const BindingList = std.array_list.Managed(Binding); // Each file is made up of multiple parts, and each part consists of one or // more top-level statements. Parts are used for tree shaking and code diff --git a/src/ast/E.zig b/src/ast/E.zig index 449fda4c30..02223acc9c 100644 --- a/src/ast/E.zig +++ b/src/ast/E.zig @@ -498,7 +498,7 @@ pub const Number = struct { } pub fn to(self: Number, comptime T: type) T { - return @as(T, @intFromFloat(@min(@max(@trunc(self.value), 0), comptime @min(std.math.floatMax(f64), std.math.maxInt(T))))); + return @as(T, @intFromFloat(@min(@max(@trunc(self.value), 0), comptime @min(std.math.floatMax(f64), @as(f64, @as(comptime_float, std.math.maxInt(T))))))); } pub fn jsonStringify(self: *const Number, writer: anytype) !void { @@ -963,7 +963,7 @@ pub const String = struct { pub fn resolveRopeIfNeeded(this: *String, allocator: std.mem.Allocator) void { if (this.next == null or !this.isUTF8()) return; - var bytes = bun.handleOom(std.ArrayList(u8).initCapacity(allocator, this.rope_len)); + var bytes = bun.handleOom(std.array_list.Managed(u8).initCapacity(allocator, this.rope_len)); bytes.appendSliceAssumeCapacity(this.data); var str = this.next; while (str) |part| { @@ -1204,16 +1204,14 @@ pub const String = struct { } } - pub fn format(s: String, comptime fmt: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { - comptime bun.assert(fmt.len == 0); - + pub fn format(s: String, writer: *std.Io.Writer) !void { try writer.writeAll("E.String"); if (s.next == null) { try writer.writeAll("("); if (s.isUTF8()) { try writer.print("\"{s}\"", .{s.data}); } else { - try writer.print("\"{}\"", .{bun.fmt.utf16(s.slice16())}); + try writer.print("\"{f}\"", .{bun.fmt.utf16(s.slice16())}); } try writer.writeAll(")"); } else { @@ -1223,7 +1221,7 @@ pub const String = struct { if (part.isUTF8()) { try writer.print("\"{s}\"", .{part.data}); } else { - try writer.print("\"{}\"", .{bun.fmt.utf16(part.slice16())}); + try writer.print("\"{f}\"", .{bun.fmt.utf16(part.slice16())}); } it = part.next; if (it != null) try writer.writeAll(" "); @@ -1293,7 +1291,7 @@ pub const Template = struct { return Expr.init(E.String, this.head.cooked, loc); } - var parts = std.ArrayList(TemplatePart).initCapacity(allocator, this.parts.len) catch unreachable; + var parts = std.array_list.Managed(TemplatePart).initCapacity(allocator, this.parts.len) catch unreachable; var head = Expr.init(E.String, this.head.cooked, loc); for (this.parts) |part_src| { var part = part_src; diff --git a/src/ast/Expr.zig b/src/ast/Expr.zig index a63608ca97..5e3bbbebdd 100644 --- a/src/ast/Expr.zig +++ b/src/ast/Expr.zig @@ -481,7 +481,7 @@ pub inline fn asString(expr: *const Expr, allocator: std.mem.Allocator) ?string else => return null, } } -pub inline fn asStringHash(expr: *const Expr, allocator: std.mem.Allocator, comptime hash_fn: *const fn (buf: []const u8) callconv(.Inline) u64) OOM!?u64 { +pub inline fn asStringHash(expr: *const Expr, allocator: std.mem.Allocator, comptime hash_fn: *const fn (buf: []const u8) callconv(.@"inline") u64) OOM!?u64 { switch (expr.data) { .e_string => |str| { if (str.isUTF8()) return hash_fn(str.data); @@ -1531,7 +1531,7 @@ pub const Tag = enum { }; } - pub fn format(tag: Tag, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(tag: Tag, writer: *std.Io.Writer) !void { try switch (tag) { .e_string => writer.writeAll("string"), .e_array => writer.writeAll("array"), diff --git a/src/ast/ImportScanner.zig b/src/ast/ImportScanner.zig index 156fd0c211..fe1069e998 100644 --- a/src/ast/ImportScanner.zig +++ b/src/ast/ImportScanner.zig @@ -466,7 +466,7 @@ pub fn scan( try p.import_records_for_current_part.append(allocator, st.import_record_index); p.named_imports.ensureUnusedCapacity(p.allocator, st.items.len) catch unreachable; for (st.items) |item| { - const ref = item.name.ref orelse p.panic("Expected export from item to have a name {any}", .{st}); + const ref = item.name.ref orelse p.panic("Expected export from item to have a name", .{}); // Note that the imported alias is not item.Alias, which is the // exported alias. This is somewhat confusing because each // SExportFrom statement is basically SImport + SExportClause in one. diff --git a/src/ast/Macro.zig b/src/ast/Macro.zig index 7fa476c842..764f692178 100644 --- a/src/ast/Macro.zig +++ b/src/ast/Macro.zig @@ -584,7 +584,7 @@ pub const Runner = struct { return result; } - pub fn call() callconv(.C) void { + pub fn call() callconv(.c) void { const call_args_copy = call_args; const local_result = @call(.auto, Run.runAsync, call_args_copy); result = local_result; diff --git a/src/ast/NewStore.zig b/src/ast/NewStore.zig index 8abd0b402f..ebf11dcf7b 100644 --- a/src/ast/NewStore.zig +++ b/src/ast/NewStore.zig @@ -56,7 +56,7 @@ pub fn NewStore(comptime types: []const type, comptime count: usize) type { _ = block.buffer[block.bytes_used..][0..@sizeOf(T)]; } - return @alignCast(@ptrCast(&block.buffer[start])); + return @ptrCast(@alignCast(&block.buffer[start])); } }; diff --git a/src/ast/P.zig b/src/ast/P.zig index 3f58536404..7603ab7bec 100644 --- a/src/ast/P.zig +++ b/src/ast/P.zig @@ -31,7 +31,7 @@ pub fn NewParser_( pub const is_typescript_enabled = js_parser_features.typescript; pub const is_jsx_enabled = js_parser_jsx != .none; pub const only_scan_imports_and_do_not_visit = js_parser_features.scan_only; - const ImportRecordList = if (only_scan_imports_and_do_not_visit) *std.ArrayList(ImportRecord) else std.ArrayList(ImportRecord); + const ImportRecordList = if (only_scan_imports_and_do_not_visit) *std.array_list.Managed(ImportRecord) else std.array_list.Managed(ImportRecord); const NamedImportsType = if (only_scan_imports_and_do_not_visit) *js_ast.Ast.NamedImports else js_ast.Ast.NamedImports; const NeedsJSXType = if (only_scan_imports_and_do_not_visit) bool else void; pub const track_symbol_usage_during_parse_pass = only_scan_imports_and_do_not_visit and is_typescript_enabled; @@ -202,7 +202,7 @@ pub fn NewParser_( has_called_runtime: bool = false, - legacy_cjs_import_stmts: std.ArrayList(Stmt), + legacy_cjs_import_stmts: std.array_list.Managed(Stmt), injected_define_symbols: List(Ref) = .{}, symbol_uses: SymbolUseMap = .{}, @@ -3428,8 +3428,8 @@ pub fn NewParser_( } pub fn panicLoc(p: *P, comptime fmt: string, args: anytype, loc: ?logger.Loc) noreturn { - var panic_buffer = p.allocator.alloc(u8, 32 * 1024) catch unreachable; - var panic_stream = std.io.fixedBufferStream(panic_buffer); + const panic_buffer = p.allocator.alloc(u8, 32 * 1024) catch unreachable; + var panic_stream = std.Io.Writer.fixed(panic_buffer); // panic during visit pass leaves the lexer at the end, which // would make this location absolutely useless. @@ -3445,9 +3445,9 @@ pub fn NewParser_( } p.log.level = .verbose; - p.log.print(panic_stream.writer()) catch unreachable; + p.log.print(&panic_stream) catch unreachable; - Output.panic(fmt ++ "\n{s}", args ++ .{panic_buffer[0..panic_stream.pos]}); + Output.panic(fmt ++ "\n{s}", args ++ .{panic_stream.buffered()}); } pub fn jsxStringsToMemberExpression(p: *P, loc: logger.Loc, parts: []const []const u8) !Expr { @@ -3724,7 +3724,7 @@ pub fn NewParser_( } }, else => { - Output.panic("Unexpected type in export default: {any}", .{s2}); + Output.panic("Unexpected type in export default", .{}); }, } }, @@ -4889,7 +4889,7 @@ pub fn NewParser_( target = p.newExpr(E.Dot{ .target = p.newExpr(E.Identifier{ .ref = class.class_name.?.ref.? }, class.class_name.?.loc), .name = "prototype", .name_loc = loc }, loc); } - var array: std.ArrayList(Expr) = .init(p.allocator); + var array: std.array_list.Managed(Expr) = .init(p.allocator); if (p.options.features.emit_decorator_metadata) { switch (prop.kind) { @@ -6496,7 +6496,7 @@ pub fn NewParser_( .other, std.fmt.allocPrint( p.allocator, - "require_{any}", + "require_{f}", .{p.source.fmtIdentifier()}, ) catch |err| bun.handleOom(err), ) catch |err| bun.handleOom(err); @@ -6685,7 +6685,7 @@ pub fn NewParser_( break :brk false; }; - this.symbols = std.ArrayList(Symbol).init(allocator); + this.symbols = std.array_list.Managed(Symbol).init(allocator); if (comptime !only_scan_imports_and_do_not_visit) { this.import_records = @TypeOf(this.import_records).init(allocator); @@ -6822,6 +6822,6 @@ const statementCaresAboutScope = js_parser.statementCaresAboutScope; const std = @import("std"); const List = std.ArrayListUnmanaged; -const ListManaged = std.ArrayList; const Map = std.AutoHashMapUnmanaged; const Allocator = std.mem.Allocator; +const ListManaged = std.array_list.Managed; diff --git a/src/ast/Parser.zig b/src/ast/Parser.zig index 078a781792..b291e50655 100644 --- a/src/ast/Parser.zig +++ b/src/ast/Parser.zig @@ -291,10 +291,10 @@ pub const Parser = struct { return data.len; } }; - const writer = std.io.Writer(fakeWriter, anyerror, fakeWriter.writeAll){ + const writer = std.Io.GenericWriter(fakeWriter, anyerror, fakeWriter.writeAll){ .context = fakeWriter{}, }; - var buffered_writer = std.io.bufferedWriter(writer); + var buffered_writer = bun.deprecated.bufferedWriter(writer); const actual = buffered_writer.writer(); for (self.log.msgs.items) |msg| { var m: logger.Msg = msg; @@ -343,14 +343,14 @@ pub const Parser = struct { defer p.lexer.deinit(); var binary_expression_stack_heap = std.heap.stackFallback(42 * @sizeOf(ParserType.BinaryExpressionVisitor), bun.default_allocator); - p.binary_expression_stack = std.ArrayList(ParserType.BinaryExpressionVisitor).initCapacity( + p.binary_expression_stack = std.array_list.Managed(ParserType.BinaryExpressionVisitor).initCapacity( binary_expression_stack_heap.get(), 41, // one less in case of unlikely alignment between the stack buffer and reality ) catch unreachable; // stack allocation cannot fail defer p.binary_expression_stack.clearAndFree(); var binary_expression_simplify_stack_heap = std.heap.stackFallback(48 * @sizeOf(SideEffects.BinaryExpressionSimplifyVisitor), bun.default_allocator); - p.binary_expression_simplify_stack = std.ArrayList(SideEffects.BinaryExpressionSimplifyVisitor).initCapacity( + p.binary_expression_simplify_stack = std.array_list.Managed(SideEffects.BinaryExpressionSimplifyVisitor).initCapacity( binary_expression_simplify_stack_heap.get(), 47, ) catch unreachable; // stack allocation cannot fail @@ -1037,7 +1037,7 @@ pub const Parser = struct { var notes = ListManaged(logger.Data).init(p.allocator); try notes.append(logger.Data{ - .text = try std.fmt.allocPrint(p.allocator, "Try require({}) instead", .{bun.fmt.QuotedFormatter{ .text = record.path.text }}), + .text = try std.fmt.allocPrint(p.allocator, "Try require({f}) instead", .{bun.fmt.QuotedFormatter{ .text = record.path.text }}), }); if (uses_module_ref) { @@ -1583,5 +1583,5 @@ const WrapMode = js_parser.WrapMode; const std = @import("std"); const List = std.ArrayListUnmanaged; -const ListManaged = std.ArrayList; const Allocator = std.mem.Allocator; +const ListManaged = std.array_list.Managed; diff --git a/src/ast/ServerComponentBoundary.zig b/src/ast/ServerComponentBoundary.zig index 568db9477f..5e20cddf85 100644 --- a/src/ast/ServerComponentBoundary.zig +++ b/src/ast/ServerComponentBoundary.zig @@ -102,7 +102,7 @@ pub const List = struct { list: std.MultiArrayList(ServerComponentBoundary).Slice, pub fn hash(_: Adapter, key: Index.Int) u32 { - return std.hash.uint32(key); + return std.hash.int(@as(u32, key)); } pub fn eql(adapt: Adapter, a: Index.Int, _: void, b_index: usize) bool { diff --git a/src/ast/SideEffects.zig b/src/ast/SideEffects.zig index d7ce926198..dbb69abaa0 100644 --- a/src/ast/SideEffects.zig +++ b/src/ast/SideEffects.zig @@ -365,7 +365,7 @@ pub const SideEffects = enum(u1) { else => false, }); } - const stack: *std.ArrayList(BinaryExpressionSimplifyVisitor) = &p.binary_expression_simplify_stack; + const stack: *std.array_list.Managed(BinaryExpressionSimplifyVisitor) = &p.binary_expression_simplify_stack; const stack_bottom = stack.items.len; defer stack.shrinkRetainingCapacity(stack_bottom); @@ -399,7 +399,7 @@ pub const SideEffects = enum(u1) { return if (result.isMissing()) null else result; } - fn findIdentifiers(binding: Binding, decls: *std.ArrayList(G.Decl)) void { + fn findIdentifiers(binding: Binding, decls: *std.array_list.Managed(G.Decl)) void { switch (binding.data) { .b_identifier => { decls.append(.{ .binding = binding }) catch unreachable; @@ -460,7 +460,7 @@ pub const SideEffects = enum(u1) { return true; } - var decls = std.ArrayList(G.Decl).initCapacity(allocator, local.decls.len) catch unreachable; + var decls = std.array_list.Managed(G.Decl).initCapacity(allocator, local.decls.len) catch unreachable; for (local.decls.slice()) |decl| { findIdentifiers(decl.binding, &decls); } diff --git a/src/ast/Symbol.zig b/src/ast/Symbol.zig index 1a8d31d5d4..efe8dbae19 100644 --- a/src/ast/Symbol.zig +++ b/src/ast/Symbol.zig @@ -336,7 +336,7 @@ pub const Map = struct { Output.prettyln("\n\n-- Source ID: {d} ({d} symbols) --\n\n", .{ i, symbols.len }); for (symbols.slice(), 0..) |symbol, inner_index| { Output.prettyln( - " name: {s}\n tag: {s}\n {any}\n", + " name: {s}\n tag: {s}\n {f}\n", .{ symbol.original_name, @tagName(symbol.kind), if (symbol.hasLink()) symbol.link else Ref{ diff --git a/src/ast/base.zig b/src/ast/base.zig index 7ee8e1347f..54016e188b 100644 --- a/src/ast/base.zig +++ b/src/ast/base.zig @@ -130,9 +130,8 @@ pub const Ref = packed struct(u64) { return this.tag == .symbol; } - pub fn format(ref: Ref, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { - try std.fmt.format( - writer, + pub fn format(ref: Ref, writer: *std.Io.Writer) !void { + try writer.print( "Ref[inner={d}, src={d}, .{s}]", .{ ref.innerIndex(), @@ -142,16 +141,16 @@ pub const Ref = packed struct(u64) { ); } - pub fn dump(ref: Ref, symbol_table: anytype) std.fmt.Formatter(dumpImpl) { + pub fn dump(ref: Ref, symbol_table: anytype) std.fmt.Alt(DumpImplData, dumpImpl) { return .{ .data = .{ .ref = ref, .symbol = ref.getSymbol(symbol_table), } }; } - fn dumpImpl(data: struct { ref: Ref, symbol: *ast.Symbol }, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { - try std.fmt.format( - writer, + const DumpImplData = struct { ref: Ref, symbol: *ast.Symbol }; + fn dumpImpl(data: DumpImplData, writer: *std.Io.Writer) !void { + try writer.print( "Ref[inner={d}, src={d}, .{s}; original_name={s}, uses={d}]", .{ data.ref.inner_index, @@ -219,8 +218,8 @@ pub const Ref = packed struct(u64) { // In the parser you only have one array, and .sourceIndex() is ignored. // In the bundler, you have a 2D array where both parts of the ref are used. const resolved_symbol_table = switch (@TypeOf(symbol_table)) { - *const std.ArrayList(ast.Symbol) => symbol_table.items, - *std.ArrayList(ast.Symbol) => symbol_table.items, + *const std.array_list.Managed(ast.Symbol) => symbol_table.items, + *std.array_list.Managed(ast.Symbol) => symbol_table.items, []ast.Symbol => symbol_table, *ast.Symbol.Map => return symbol_table.get(ref) orelse unreachable, // ref must exist within symbol table diff --git a/src/ast/maybe.zig b/src/ast/maybe.zig index 8942a02432..68952ce18e 100644 --- a/src/ast/maybe.zig +++ b/src/ast/maybe.zig @@ -197,7 +197,7 @@ pub fn AstMaybe( return null; } - var stmts = std.ArrayList(Stmt).initCapacity(p.allocator, props.len * 2) catch unreachable; + var stmts = std.array_list.Managed(Stmt).initCapacity(p.allocator, props.len * 2) catch unreachable; var decls = p.allocator.alloc(Decl, props.len) catch unreachable; var clause_items = p.allocator.alloc(js_ast.ClauseItem, props.len) catch unreachable; @@ -212,7 +212,7 @@ pub fn AstMaybe( if (!named_export_entry.found_existing) { const new_ref = p.newSymbol( .other, - std.fmt.allocPrint(p.allocator, "${any}", .{bun.fmt.fmtIdentifier(key)}) catch unreachable, + std.fmt.allocPrint(p.allocator, "${f}", .{bun.fmt.fmtIdentifier(key)}) catch unreachable, ) catch unreachable; bun.handleOom(p.module_scope.generated.append(p.allocator, new_ref)); named_export_entry.value_ptr.* = .{ @@ -318,7 +318,7 @@ pub fn AstMaybe( if (!named_export_entry.found_existing) { const new_ref = p.newSymbol( .other, - std.fmt.allocPrint(p.allocator, "${any}", .{bun.fmt.fmtIdentifier(name)}) catch unreachable, + std.fmt.allocPrint(p.allocator, "${f}", .{bun.fmt.fmtIdentifier(name)}) catch unreachable, ) catch unreachable; bun.handleOom(p.module_scope.generated.append(p.allocator, new_ref)); named_export_entry.value_ptr.* = .{ @@ -425,7 +425,7 @@ pub fn AstMaybe( // Inline import.meta.url as file:// URL const bunstr = bun.String.fromBytes(p.source.path.text); defer bunstr.deref(); - const url = std.fmt.allocPrint(p.allocator, "{s}", .{jsc.URL.fileURLFromString(bunstr)}) catch unreachable; + const url = std.fmt.allocPrint(p.allocator, "{f}", .{jsc.URL.fileURLFromString(bunstr)}) catch unreachable; return p.newExpr(E.String.init(url), name_loc); } } @@ -491,7 +491,7 @@ pub fn AstMaybe( if (!named_export_entry.found_existing) { const new_ref = p.newSymbol( .other, - std.fmt.allocPrint(p.allocator, "${any}", .{bun.fmt.fmtIdentifier(name)}) catch unreachable, + std.fmt.allocPrint(p.allocator, "${f}", .{bun.fmt.fmtIdentifier(name)}) catch unreachable, ) catch unreachable; bun.handleOom(p.module_scope.generated.append(p.allocator, new_ref)); named_export_entry.value_ptr.* = .{ diff --git a/src/ast/parse.zig b/src/ast/parse.zig index e3f7dd170d..a677d68a63 100644 --- a/src/ast/parse.zig +++ b/src/ast/parse.zig @@ -171,7 +171,7 @@ pub fn Parse( // Forbid decorators on class constructors if (opts.ts_decorators.len > 0) { - switch ((property.key orelse p.panic("Internal error: Expected property {any} to have a key.", .{property})).data) { + switch ((property.key orelse p.panic("Internal error: Expected property to have a key.", .{})).data) { .e_string => |str| { if (str.eqlComptime("constructor")) { p.log.addError(p.source, first_decorator_loc, "TypeScript does not allow decorators on class constructors") catch unreachable; @@ -1399,4 +1399,4 @@ const options = js_parser.options; const std = @import("std"); const List = std.ArrayListUnmanaged; -const ListManaged = std.ArrayList; +const ListManaged = std.array_list.Managed; diff --git a/src/ast/parseImportExport.zig b/src/ast/parseImportExport.zig index 756f587996..862d04677a 100644 --- a/src/ast/parseImportExport.zig +++ b/src/ast/parseImportExport.zig @@ -412,6 +412,9 @@ pub fn ParseImportExport( }; } +const std = @import("std"); +const ListManaged = std.array_list.Managed; + const bun = @import("bun"); const assert = bun.assert; const js_lexer = bun.js_lexer; @@ -432,6 +435,3 @@ const ImportClause = js_parser.ImportClause; const JSXTransformType = js_parser.JSXTransformType; const isEvalOrArguments = js_parser.isEvalOrArguments; const options = js_parser.options; - -const std = @import("std"); -const ListManaged = std.ArrayList; diff --git a/src/ast/parseJSXElement.zig b/src/ast/parseJSXElement.zig index 5aadd4bbdb..a18c744114 100644 --- a/src/ast/parseJSXElement.zig +++ b/src/ast/parseJSXElement.zig @@ -315,5 +315,5 @@ const options = js_parser.options; const std = @import("std"); const List = std.ArrayListUnmanaged; -const ListManaged = std.ArrayList; const Map = std.AutoHashMapUnmanaged; +const ListManaged = std.array_list.Managed; diff --git a/src/ast/parsePrefix.zig b/src/ast/parsePrefix.zig index 14eae7eb71..5462bfd89d 100644 --- a/src/ast/parsePrefix.zig +++ b/src/ast/parsePrefix.zig @@ -776,4 +776,4 @@ const TypeScript = js_parser.TypeScript; const std = @import("std"); const List = std.ArrayListUnmanaged; -const ListManaged = std.ArrayList; +const ListManaged = std.array_list.Managed; diff --git a/src/ast/parseProperty.zig b/src/ast/parseProperty.zig index 01586cdc60..aa7bf0e665 100644 --- a/src/ast/parseProperty.zig +++ b/src/ast/parseProperty.zig @@ -347,7 +347,7 @@ pub fn ParseProperty( // Handle invalid identifiers in property names // https://github.com/oven-sh/bun/issues/12039 if (p.lexer.token == .t_syntax_error) { - bun.handleOom(p.log.addRangeErrorFmt(p.source, name_range, p.allocator, "Unexpected {}", .{bun.fmt.quote(name)})); + bun.handleOom(p.log.addRangeErrorFmt(p.source, name_range, p.allocator, "Unexpected {f}", .{bun.fmt.quote(name)})); return error.SyntaxError; } diff --git a/src/ast/parseStmt.zig b/src/ast/parseStmt.zig index 8f946e079b..21c740e307 100644 --- a/src/ast/parseStmt.zig +++ b/src/ast/parseStmt.zig @@ -372,7 +372,7 @@ pub fn ParseStmt( const namespace_ref = p.storeNameInRef( std.fmt.allocPrint( p.allocator, - "import_{}", + "import_{f}", .{ path_name.fmtIdentifier(), }, @@ -1401,4 +1401,4 @@ const fs = js_parser.fs; const std = @import("std"); const List = std.ArrayListUnmanaged; -const ListManaged = std.ArrayList; +const ListManaged = std.array_list.Managed; diff --git a/src/ast/parseTypescript.zig b/src/ast/parseTypescript.zig index 26d6aad257..bdb82b2735 100644 --- a/src/ast/parseTypescript.zig +++ b/src/ast/parseTypescript.zig @@ -299,7 +299,7 @@ pub fn ParseTypescript( try p.lexer.expect(.t_open_brace); // Parse the body - var values = std.ArrayList(js_ast.EnumValue).init(p.allocator); + var values = std.array_list.Managed(js_ast.EnumValue).init(p.allocator); while (p.lexer.token != .t_close_brace) { var value = js_ast.EnumValue{ .loc = p.lexer.loc(), .ref = Ref.None, .name = undefined, .value = null }; var needs_symbol = false; @@ -462,4 +462,4 @@ const TypeScript = js_parser.TypeScript; const std = @import("std"); const List = std.ArrayListUnmanaged; -const ListManaged = std.ArrayList; +const ListManaged = std.array_list.Managed; diff --git a/src/ast/visit.zig b/src/ast/visit.zig index 220dc4122a..e3e79a0b9c 100644 --- a/src/ast/visit.zig +++ b/src/ast/visit.zig @@ -374,7 +374,7 @@ pub fn Visit( st.kind = p.selectLocalKind(st.kind); }, else => { - p.panic("Unexpected stmt in visitForLoopInit: {any}", .{stmt}); + p.panic("Unexpected stmt in visitForLoopInit", .{}); }, } @@ -670,9 +670,9 @@ pub fn Visit( if (to_add > 0) { // to match typescript behavior, we also must prepend to the class body - var stmts = std.ArrayList(Stmt).fromOwnedSlice(p.allocator, constructor.func.body.stmts); + var stmts = std.array_list.Managed(Stmt).fromOwnedSlice(p.allocator, constructor.func.body.stmts); stmts.ensureUnusedCapacity(to_add) catch unreachable; - var class_body = std.ArrayList(G.Property).fromOwnedSlice(p.allocator, class.properties); + var class_body = std.array_list.Managed(G.Property).fromOwnedSlice(p.allocator, class.properties); class_body.ensureUnusedCapacity(to_add) catch unreachable; var j: usize = 0; @@ -1371,4 +1371,4 @@ const options = js_parser.options; const std = @import("std"); const AutoHashMap = std.AutoHashMap; const List = std.ArrayListUnmanaged; -const ListManaged = std.ArrayList; +const ListManaged = std.array_list.Managed; diff --git a/src/ast/visitBinaryExpression.zig b/src/ast/visitBinaryExpression.zig index 0ea702956e..dc03bdf189 100644 --- a/src/ast/visitBinaryExpression.zig +++ b/src/ast/visitBinaryExpression.zig @@ -353,7 +353,7 @@ pub fn CreateBinaryExpressionVisitor( .bin_rem => { if (p.should_fold_typescript_constant_expressions) { if (Expr.extractNumericValues(e_.left.data, e_.right.data)) |vals| { - const fmod = @extern(*const fn (f64, f64) callconv(.C) f64, .{ .name = "fmod" }); + const fmod = @extern(*const fn (f64, f64) callconv(.c) f64, .{ .name = "fmod" }); return p.newExpr( // Use libc fmod here to be consistent with what JavaScriptCore does // https://github.com/oven-sh/WebKit/blob/7a0b13626e5db69aa5a32d037431d381df5dfb61/Source/JavaScriptCore/runtime/MathCommon.cpp#L574-L597 diff --git a/src/ast/visitExpr.zig b/src/ast/visitExpr.zig index c5f9cd1eea..2b7a941900 100644 --- a/src/ast/visitExpr.zig +++ b/src/ast/visitExpr.zig @@ -641,7 +641,7 @@ pub fn VisitExpr( if (p.options.features.minify_syntax) { if (index.data.as(.e_number)) |number| { if (number.value >= 0 and - number.value < std.math.maxInt(usize) and + number.value < @as(f64, @as(comptime_float, std.math.maxInt(usize))) and @mod(number.value, 1) == 0) { // "foo"[2] -> "o" @@ -1679,4 +1679,4 @@ const options = js_parser.options; const std = @import("std"); const List = std.ArrayListUnmanaged; -const ListManaged = std.ArrayList; +const ListManaged = std.array_list.Managed; diff --git a/src/ast/visitStmt.zig b/src/ast/visitStmt.zig index f56b933b00..6280c4d39e 100644 --- a/src/ast/visitStmt.zig +++ b/src/ast/visitStmt.zig @@ -1568,4 +1568,4 @@ const statementCaresAboutScope = js_parser.statementCaresAboutScope; const std = @import("std"); const List = std.ArrayListUnmanaged; -const ListManaged = std.ArrayList; +const ListManaged = std.array_list.Managed; diff --git a/src/async/posix_event_loop.zig b/src/async/posix_event_loop.zig index b503feac19..88b6311608 100644 --- a/src/async/posix_event_loop.zig +++ b/src/async/posix_event_loop.zig @@ -201,8 +201,8 @@ pub const FilePoll = struct { poll.flags = flags; } - pub fn format(poll: *const FilePoll, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { - try writer.print("FilePoll(fd={}, generation_number={d}) = {}", .{ poll.fd, poll.generation_number, Flags.Formatter{ .data = poll.flags } }); + pub fn format(poll: *const FilePoll, writer: *std.Io.Writer) !void { + try writer.print("FilePoll(fd={f}, generation_number={d}) = {f}", .{ poll.fd, poll.generation_number, Flags.Formatter{ .data = poll.flags } }); } pub fn fileType(poll: *const FilePoll) bun.io.FileType { @@ -221,7 +221,7 @@ pub const FilePoll = struct { pub fn onKQueueEvent(poll: *FilePoll, _: *Loop, kqueue_event: *const std.posix.system.kevent64_s) void { poll.updateFlags(Flags.fromKQueueEvent(kqueue_event.*)); - log("onKQueueEvent: {}", .{poll}); + log("onKQueueEvent: {f}", .{poll}); if (KQueueGenerationNumber != u0) bun.assert(poll.generation_number == kqueue_event.ext[0]); @@ -376,20 +376,20 @@ pub const FilePoll = struct { handler.onPoll(size_or_offset, poll.flags.contains(.hup)); }, @field(Owner.Tag, @typeName(BufferedReader)) => { - log("onUpdate " ++ kqueue_or_epoll ++ " (fd: {}) Reader", .{poll.fd}); + log("onUpdate " ++ kqueue_or_epoll ++ " (fd: {f}) Reader", .{poll.fd}); var handler: *BufferedReader = ptr.as(BufferedReader); handler.onPoll(size_or_offset, poll.flags.contains(.hup)); }, @field(Owner.Tag, @typeName(Process)) => { - log("onUpdate " ++ kqueue_or_epoll ++ " (fd: {}) Process", .{poll.fd}); + log("onUpdate " ++ kqueue_or_epoll ++ " (fd: {f}) Process", .{poll.fd}); var loader = ptr.as(Process); loader.onWaitPidFromEventLoopTask(); }, @field(Owner.Tag, @typeName(DNSResolver)) => { - log("onUpdate " ++ kqueue_or_epoll ++ " (fd: {}) DNSResolver", .{poll.fd}); + log("onUpdate " ++ kqueue_or_epoll ++ " (fd: {f}) DNSResolver", .{poll.fd}); var loader: *DNSResolver = ptr.as(DNSResolver); loader.onDNSPoll(poll); }, @@ -399,7 +399,7 @@ pub const FilePoll = struct { unreachable; } - log("onUpdate " ++ kqueue_or_epoll ++ " (fd: {}) GetAddrInfoRequest", .{poll.fd}); + log("onUpdate " ++ kqueue_or_epoll ++ " (fd: {f}) GetAddrInfoRequest", .{poll.fd}); var loader: *GetAddrInfoRequest = ptr.as(GetAddrInfoRequest); loader.onMachportChange(); }, @@ -409,14 +409,14 @@ pub const FilePoll = struct { unreachable; } - log("onUpdate " ++ kqueue_or_epoll ++ " (fd: {}) InternalDNSRequest", .{poll.fd}); + log("onUpdate " ++ kqueue_or_epoll ++ " (fd: {f}) InternalDNSRequest", .{poll.fd}); const loader: *Request = ptr.as(Request); Request.MacAsyncDNS.onMachportChange(loader); }, else => { const possible_name = Owner.typeNameFromTag(@intFromEnum(ptr.tag())); - log("onUpdate " ++ kqueue_or_epoll ++ " (fd: {}) disconnected? (maybe: {s})", .{ poll.fd, possible_name orelse "" }); + log("onUpdate " ++ kqueue_or_epoll ++ " (fd: {f}) disconnected? (maybe: {s})", .{ poll.fd, possible_name orelse "" }); }, } } @@ -480,9 +480,9 @@ pub const FilePoll = struct { pub const Set = std.EnumSet(Flags); pub const Struct = std.enums.EnumFieldStruct(Flags, bool, false); - pub const Formatter = std.fmt.Formatter(Flags.format); + pub const Formatter = std.fmt.Alt(Flags.Set, Flags.format); - pub fn format(this: Flags.Set, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: Flags.Set, writer: *std.Io.Writer) !void { var iter = this.iterator(); var is_first = true; while (iter.next()) |flag| { @@ -695,7 +695,7 @@ pub const FilePoll = struct { max_generation_number +%= 1; poll.generation_number = max_generation_number; } - log("FilePoll.init(0x{x}, generation_number={d}, fd={})", .{ @intFromPtr(poll), poll.generation_number, fd }); + log("FilePoll.init(0x{x}, generation_number={d}, fd={f})", .{ @intFromPtr(poll), poll.generation_number, fd }); return poll; } @@ -716,7 +716,7 @@ pub const FilePoll = struct { poll.generation_number = max_generation_number; } - log("FilePoll.initWithOwner(0x{x}, generation_number={d}, fd={})", .{ @intFromPtr(poll), poll.generation_number, fd }); + log("FilePoll.initWithOwner(0x{x}, generation_number={d}, fd={f})", .{ @intFromPtr(poll), poll.generation_number, fd }); return poll; } @@ -755,7 +755,7 @@ pub const FilePoll = struct { this.deactivate(event_loop_ctx.platformEventLoop()); } - pub fn onTick(loop: *Loop, tagged_pointer: ?*anyopaque) callconv(.C) void { + pub fn onTick(loop: *Loop, tagged_pointer: ?*anyopaque) callconv(.c) void { var tag = Pollable.from(tagged_pointer); if (tag.tag() != @field(Pollable.Tag, @typeName(FilePoll))) @@ -793,7 +793,7 @@ pub const FilePoll = struct { pub fn registerWithFd(this: *FilePoll, loop: *Loop, flag: Flags, one_shot: OneShotFlag, fd: bun.FileDescriptor) bun.sys.Maybe(void) { const watcher_fd = loop.fd; - log("register: FilePoll(0x{x}, generation_number={d}) {s} ({})", .{ @intFromPtr(this), this.generation_number, @tagName(flag), fd }); + log("register: FilePoll(0x{x}, generation_number={d}) {s} ({f})", .{ @intFromPtr(this), this.generation_number, @tagName(flag), fd }); bun.assert(fd != invalid_fd); @@ -974,7 +974,7 @@ pub const FilePoll = struct { }; if (this.flags.contains(.needs_rearm) and !force_unregister) { - log("unregister: {s} ({}) skipped due to needs_rearm", .{ @tagName(flag), fd }); + log("unregister: {s} ({f}) skipped due to needs_rearm", .{ @tagName(flag), fd }); this.flags.remove(.poll_process); this.flags.remove(.poll_readable); this.flags.remove(.poll_process); @@ -982,7 +982,7 @@ pub const FilePoll = struct { return .success; } - log("unregister: FilePoll(0x{x}, generation_number={d}) {s} ({})", .{ @intFromPtr(this), this.generation_number, @tagName(flag), fd }); + log("unregister: FilePoll(0x{x}, generation_number={d}) {s} ({f})", .{ @intFromPtr(this), this.generation_number, @tagName(flag), fd }); if (comptime Environment.isLinux) { const ctl = linux.epoll_ctl( diff --git a/src/async/windows_event_loop.zig b/src/async/windows_event_loop.zig index 897166810e..db1728185c 100644 --- a/src/async/windows_event_loop.zig +++ b/src/async/windows_event_loop.zig @@ -395,10 +395,10 @@ pub const Closer = struct { } } - fn onClose(req: *uv.fs_t) callconv(.C) void { + fn onClose(req: *uv.fs_t) callconv(.c) void { var closer: *Closer = @fieldParentPtr("io_request", req); - bun.assert(closer == @as(*Closer, @alignCast(@ptrCast(req.data.?)))); - bun.sys.syslog("uv_fs_close({}) = {}", .{ bun.FD.fromUV(req.file.fd), req.result }); + bun.assert(closer == @as(*Closer, @ptrCast(@alignCast(req.data.?)))); + bun.sys.syslog("uv_fs_close({f}) = {f}", .{ bun.FD.fromUV(req.file.fd), req.result }); if (comptime Environment.allow_assert) { if (closer.io_request.result.errEnum()) |err| { diff --git a/src/bake/DevServer.zig b/src/bake/DevServer.zig index 73756e46ef..27f9676c74 100644 --- a/src/bake/DevServer.zig +++ b/src/bake/DevServer.zig @@ -1378,9 +1378,9 @@ fn computeArgumentsForFrameworkRequest( .client_id = framework_bundle.cached_client_bundle_url.get() orelse str: { const bundle_index: u32 = route_bundle_index.get(); const generation: u32 = route_bundle.client_script_generation; - const str = bun.String.createFormat(client_prefix ++ "/route-{}{}.js", .{ - std.fmt.fmtSliceHexLower(std.mem.asBytes(&bundle_index)), - std.fmt.fmtSliceHexLower(std.mem.asBytes(&generation)), + const str = bun.String.createFormat(client_prefix ++ "/route-{x}{x}.js", .{ + std.mem.asBytes(&bundle_index), + std.mem.asBytes(&generation), }) catch |err| bun.handleOom(err); defer str.deref(); const js = str.toJS(dev.vm.global); @@ -1688,7 +1688,7 @@ pub const DeferredRequest = struct { /// is very silly. This contributes to ~6kb of the initial DevServer allocation. const max_preallocated = 16; - pub const List = std.SinglyLinkedList(DeferredRequest); + pub const List = bun.deprecated.SinglyLinkedList(DeferredRequest); pub const Node = List.Node; const debugLog = bun.Output.Scoped("DlogeferredRequest", .hidden).log; @@ -1759,7 +1759,7 @@ pub const DeferredRequest = struct { }; fn onAbortWrapper(this: *anyopaque) void { - const self: *DeferredRequest = @alignCast(@ptrCast(this)); + const self: *DeferredRequest = @ptrCast(@alignCast(this)); if (!self.isAlive()) return; self.onAbortImpl(); } @@ -1832,7 +1832,7 @@ pub fn startAsyncBundle( if (dev.inspector()) |agent| { var sfa_state = std.heap.stackFallback(256, dev.allocator()); const sfa = sfa_state.get(); - var trigger_files = try std.ArrayList(bun.String).initCapacity(sfa, entry_points.set.count()); + var trigger_files = try std.array_list.Managed(bun.String).initCapacity(sfa, entry_points.set.count()); defer trigger_files.deinit(); defer for (trigger_files.items) |*str| { str.deref(); @@ -1940,7 +1940,7 @@ fn indexFailures(dev: *DevServer) !void { var gts = try dev.initGraphTraceState(sfa, 0); defer gts.deinit(sfa); - var payload = try std.ArrayList(u8).initCapacity(sfa, total_len); + var payload = try std.array_list.Managed(u8).initCapacity(sfa, total_len); defer payload.deinit(); payload.appendAssumeCapacity(MessageId.errors.char()); const w = payload.writer(); @@ -1980,7 +1980,7 @@ fn indexFailures(dev: *DevServer) !void { dev.publish(.errors, payload.items, .binary); } else if (dev.incremental_result.failures_removed.items.len > 0) { - var payload = try std.ArrayList(u8).initCapacity(sfa, @sizeOf(MessageId) + @sizeOf(u32) + dev.incremental_result.failures_removed.items.len * @sizeOf(u32)); + var payload = try std.array_list.Managed(u8).initCapacity(sfa, @sizeOf(MessageId) + @sizeOf(u32) + dev.incremental_result.failures_removed.items.len * @sizeOf(u32)); defer payload.deinit(); payload.appendAssumeCapacity(MessageId.errors.char()); const w = payload.writer(); @@ -2565,7 +2565,7 @@ pub fn finalizeBundle( var has_route_bits_set = false; var hot_update_payload_sfa = std.heap.stackFallback(65536, dev.allocator()); - var hot_update_payload = std.ArrayList(u8).initCapacity(hot_update_payload_sfa.get(), 65536) catch + var hot_update_payload = std.array_list.Managed(u8).initCapacity(hot_update_payload_sfa.get(), 65536) catch unreachable; // enough space defer hot_update_payload.deinit(); hot_update_payload.appendAssumeCapacity(MessageId.hot_update.char()); @@ -2835,7 +2835,7 @@ pub fn finalizeBundle( inspector_agent = null; } if (inspector_agent) |agent| { - var buf = std.ArrayList(u8).init(bun.default_allocator); + var buf = std.array_list.Managed(u8).init(bun.default_allocator); defer buf.deinit(); try dev.encodeSerializedFailures(dev.bundling_failures.keys(), &buf, agent); } @@ -3019,7 +3019,7 @@ pub fn handleParseTaskFailure( dev.graph_safety_lock.lock(); defer dev.graph_safety_lock.unlock(); - debug.log("handleParseTaskFailure({}, .{s}, {}, {d} messages)", .{ + debug.log("handleParseTaskFailure({}, .{s}, {f}, {d} messages)", .{ err, @tagName(graph), bun.fmt.quote(abs_path), @@ -3261,7 +3261,7 @@ const ErrorPageKind = enum { fn encodeSerializedFailures( dev: *const DevServer, failures: []const SerializedFailure, - buf: *std.ArrayList(u8), + buf: *std.array_list.Managed(u8), inspector_agent: ?*BunFrontendDevServerAgent, ) bun.OOM!void { var all_failures_len: usize = 0; @@ -3294,7 +3294,7 @@ fn sendSerializedFailures( kind: ErrorPageKind, inspector_agent: ?*BunFrontendDevServerAgent, ) !void { - var buf: std.ArrayList(u8) = try .initCapacity(dev.allocator(), 2048); + var buf: std.array_list.Managed(u8) = try .initCapacity(dev.allocator(), 2048); errdefer buf.deinit(); try buf.appendSlice(switch (kind) { @@ -3377,7 +3377,7 @@ fn printMemoryLine(dev: *DevServer) void { } if (!debug.isVisible()) return; const stats = dev.allocation_scope.stats(); - Output.prettyErrorln("DevServer tracked {}, measured: {} ({}), process: {}", .{ + Output.prettyErrorln("DevServer tracked {f}, measured: {} ({f}), process: {f}", .{ bun.fmt.size(dev.memoryCost(), .{}), stats.num_allocations, bun.fmt.size(stats.total_memory_allocated, .{}), @@ -3560,15 +3560,16 @@ pub fn dumpBundle(dump_dir: std.fs.Dir, graph: bake.Graph, rel_path: []const u8, const file = try inner_dir.createFile(bun.path.basename(name), .{}); defer file.close(); - - var bufw = std.io.bufferedWriter(file.writer()); + var file_buffer: [1024]u8 = undefined; + var file_writer = file.writerStreaming(&file_buffer); + const bufw = &file_writer.interface; if (!bun.strings.hasSuffixComptime(rel_path, ".map")) { - try bufw.writer().print("// {s} bundled for {s}\n", .{ + try bufw.print("// {f} bundled for {s}\n", .{ bun.fmt.quote(rel_path), @tagName(graph), }); - try bufw.writer().print("// Bundled at {d}, Bun " ++ bun.Global.package_json_version_with_canary ++ "\n", .{ + try bufw.print("// Bundled at {d}, Bun " ++ bun.Global.package_json_version_with_canary ++ "\n", .{ std.time.nanoTimestamp(), }); } @@ -3577,12 +3578,12 @@ pub fn dumpBundle(dump_dir: std.fs.Dir, graph: bake.Graph, rel_path: []const u8, // are never executable on their own as they contain only a single module. if (wrap) - try bufw.writer().writeAll("({\n"); + try bufw.writeAll("({\n"); - try bufw.writer().writeAll(chunk); + try bufw.writeAll(chunk); if (wrap) - try bufw.writer().writeAll("});\n"); + try bufw.writeAll("});\n"); try bufw.flush(); } @@ -3610,7 +3611,7 @@ pub fn emitVisualizerMessageIfNeeded(dev: *DevServer) void { if (dev.emit_incremental_visualizer_events == 0) return; var sfb = std.heap.stackFallback(65536, dev.allocator()); - var payload = std.ArrayList(u8).initCapacity(sfb.get(), 65536) catch + var payload = std.array_list.Managed(u8).initCapacity(sfb.get(), 65536) catch unreachable; // enough capacity on the stack defer payload.deinit(); @@ -3639,7 +3640,7 @@ pub fn emitMemoryVisualizerMessage(dev: *DevServer) void { bun.debugAssert(dev.emit_memory_visualizer_events > 0); var sfb = std.heap.stackFallback(65536, dev.allocator()); - var payload = std.ArrayList(u8).initCapacity(sfb.get(), 65536) catch + var payload = std.array_list.Managed(u8).initCapacity(sfb.get(), 65536) catch unreachable; // enough capacity on the stack defer payload.deinit(); payload.appendAssumeCapacity(MessageId.memory_visualizer.char()); @@ -3647,7 +3648,7 @@ pub fn emitMemoryVisualizerMessage(dev: *DevServer) void { dev.publish(.memory_visualizer, payload.items, .binary); } -pub fn writeMemoryVisualizerMessage(dev: *DevServer, payload: *std.ArrayList(u8)) !void { +pub fn writeMemoryVisualizerMessage(dev: *DevServer, payload: *std.array_list.Managed(u8)) !void { const w = payload.writer(); const Fields = extern struct { incremental_graph_client: u32, @@ -3701,7 +3702,7 @@ pub fn writeMemoryVisualizerMessage(dev: *DevServer, payload: *std.ArrayList(u8) } } -pub fn writeVisualizerMessage(dev: *DevServer, payload: *std.ArrayList(u8)) !void { +pub fn writeVisualizerMessage(dev: *DevServer, payload: *std.array_list.Managed(u8)) !void { payload.appendAssumeCapacity(MessageId.visualizer.char()); const w = payload.writer(); @@ -4057,7 +4058,7 @@ pub fn onFileUpdate(dev: *DevServer, events: []Watcher.Event, changed_files: []? counts[event.index] = update_count; const kind = kinds[event.index]; - debug.log("{s} change: {s} {}", .{ @tagName(kind), file_path, event.op }); + debug.log("{s} change: {s} {f}", .{ @tagName(kind), file_path, event.op }); switch (kind) { .file => { @@ -4083,7 +4084,7 @@ pub fn onFileUpdate(dev: *DevServer, events: []Watcher.Event, changed_files: []? pub fn onWatchError(_: *DevServer, err: bun.sys.Error) void { if (err.path.len > 0) { - Output.err(err, "failed to watch {} for hot-reloading", .{bun.fmt.quote(err.path)}); + Output.err(err, "failed to watch {f} for hot-reloading", .{bun.fmt.quote(err.path)}); } else { Output.err(err, "failed to watch files for hot-reloading", .{}); } @@ -4214,7 +4215,7 @@ fn dumpStateDueToCrash(dev: *DevServer) !void { try file.writeAll("\nlet inlinedData = Uint8Array.from(atob(\""); var sfb = std.heap.stackFallback(4096, dev.allocator()); - var payload = try std.ArrayList(u8).initCapacity(sfb.get(), 4096); + var payload = try std.array_list.Managed(u8).initCapacity(sfb.get(), 4096); defer payload.deinit(); try dev.writeVisualizerMessage(&payload); @@ -4227,7 +4228,7 @@ fn dumpStateDueToCrash(dev: *DevServer) !void { try file.writeAll("\"), c => c.charCodeAt(0));\n"); try file.writeAll(end); - Output.note("Dumped incremental bundler graph to {}", .{bun.fmt.quote(filepath)}); + Output.note("Dumped incremental bundler graph to {f}", .{bun.fmt.quote(filepath)}); } const RouteIndexAndRecurseFlag = packed struct(u32) { diff --git a/src/bake/DevServer/Assets.zig b/src/bake/DevServer/Assets.zig index 3367a5c370..968f128b3f 100644 --- a/src/bake/DevServer/Assets.zig +++ b/src/bake/DevServer/Assets.zig @@ -42,7 +42,7 @@ pub fn replacePath( assert(assets.owner().magic == .valid); defer assert(assets.files.count() == assets.refs.items.len); const alloc = assets.owner().allocator(); - debug.log("replacePath {} {} - {s}/{s} ({s})", .{ + debug.log("replacePath {f} {} - {s}/{s} ({s})", .{ bun.fmt.quote(abs_path), content_hash, DevServer.asset_prefix, @@ -112,7 +112,7 @@ pub fn putOrIncrementRefCount(assets: *Assets, content_hash: u64, ref_count: u32 pub fn unrefByHash(assets: *Assets, content_hash: u64, dec_count: u32) void { const index = assets.files.getIndex(content_hash) orelse - Output.panic("Asset double unref: {s}", .{std.fmt.fmtSliceHexLower(std.mem.asBytes(&content_hash))}); + Output.panic("Asset double unref: {x}", .{std.mem.asBytes(&content_hash)}); assets.unrefByIndex(.init(@intCast(index)), dec_count); } diff --git a/src/bake/DevServer/DirectoryWatchStore.zig b/src/bake/DevServer/DirectoryWatchStore.zig index 35f9226cd0..9efbc3612e 100644 --- a/src/bake/DevServer/DirectoryWatchStore.zig +++ b/src/bake/DevServer/DirectoryWatchStore.zig @@ -94,7 +94,7 @@ fn insert( // TODO: watch the parent dir too. const dev = store.owner(); - debug.log("DirectoryWatchStore.insert({}, {}, {})", .{ + debug.log("DirectoryWatchStore.insert({f}, {f}, {f})", .{ bun.fmt.quote(dir_name_to_watch), bun.fmt.quote(file_path), bun.fmt.quote(specifier), @@ -159,7 +159,7 @@ fn insert( } else .{ bun.invalid_fd, false }; errdefer if (Watcher.requires_file_descriptors) if (owned_fd) fd.close(); if (Watcher.requires_file_descriptors) - debug.log("-> fd: {} ({s})", .{ + debug.log("-> fd: {f} ({s})", .{ fd, if (owned_fd) "from dir cache" else "owned fd", }); @@ -205,7 +205,7 @@ pub fn freeDependencyIndex(store: *DirectoryWatchStore, alloc: Allocator, index: pub fn freeEntry(store: *DirectoryWatchStore, alloc: Allocator, entry_index: usize) void { const entry = store.watches.values()[entry_index]; - debug.log("DirectoryWatchStore.freeEntry({d}, {})", .{ + debug.log("DirectoryWatchStore.freeEntry({d}, {f})", .{ entry_index, entry.dir, }); diff --git a/src/bake/DevServer/ErrorReportRequest.zig b/src/bake/DevServer/ErrorReportRequest.zig index 8cca4662e3..cf9eadc589 100644 --- a/src/bake/DevServer/ErrorReportRequest.zig +++ b/src/bake/DevServer/ErrorReportRequest.zig @@ -239,7 +239,7 @@ pub fn runWithBody(ctx: *ErrorReportRequest, body: []const u8, r: AnyResponse) ! ) catch {}, } - var out: std.ArrayList(u8) = .init(ctx.dev.allocator()); + var out: std.array_list.Managed(u8) = .init(ctx.dev.allocator()); errdefer out.deinit(); const w = out.writer(); @@ -368,8 +368,8 @@ fn extractJsonEncodedSourceCode(contents: []const u8, target_line: u32, comptime // Decode it if (has_extra_escapes) { - var bytes: std.ArrayList(u8) = try .initCapacity(arena, encoded_line.len); - try l.decodeEscapeSequences(0, encoded_line, false, std.ArrayList(u8), &bytes); + var bytes: std.array_list.Managed(u8) = try .initCapacity(arena, encoded_line.len); + try l.decodeEscapeSequences(0, encoded_line, false, std.array_list.Managed(u8), &bytes); decoded_line.* = bytes.items; } else { decoded_line.* = encoded_line; diff --git a/src/bake/DevServer/HotReloadEvent.zig b/src/bake/DevServer/HotReloadEvent.zig index 3b43ded0b1..219acde1b3 100644 --- a/src/bake/DevServer/HotReloadEvent.zig +++ b/src/bake/DevServer/HotReloadEvent.zig @@ -145,12 +145,12 @@ pub fn processFileList( if (entry_points.set.count() == 0) { Output.debugWarn("nothing to bundle", .{}); if (changed_file_paths.len > 0) - Output.debugWarn("modified files: {s}", .{ + Output.debugWarn("modified files: {f}", .{ bun.fmt.fmtSlice(changed_file_paths, ", "), }); if (event.dirs.count() > 0) - Output.debugWarn("modified dirs: {s}", .{ + Output.debugWarn("modified dirs: {f}", .{ bun.fmt.fmtSlice(event.dirs.keys(), ", "), }); diff --git a/src/bake/DevServer/IncrementalGraph.zig b/src/bake/DevServer/IncrementalGraph.zig index 6cb775c573..66c228299c 100644 --- a/src/bake/DevServer/IncrementalGraph.zig +++ b/src/bake/DevServer/IncrementalGraph.zig @@ -733,7 +733,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { const log = bun.Output.scoped(.processChunkDependencies, .visible); const file_index: FileIndex = ctx.getCachedIndex(side, bundle_graph_index).*.unwrap() orelse @panic("unresolved index"); // do not process for failed chunks - log("index id={d} {}:", .{ + log("index id={d} {f}:", .{ file_index.get(), bun.fmt.quote(g.bundled_files.keys()[file_index.get()]), }); @@ -832,7 +832,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { const edge = &g.edges.items[edge_index.get()]; const imported = edge.imported.get(); const log = bun.Output.scoped(.disconnectEdgeFromDependencyList, .hidden); - log("detach edge={d} | id={d} {} -> id={d} {} (first_dep={d})", .{ + log("detach edge={d} | id={d} {f} -> id={d} {f} (first_dep={d})", .{ edge_index.get(), edge.dependency.get(), bun.fmt.quote(g.bundled_files.keys()[edge.dependency.get()]), @@ -1014,7 +1014,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { .seen = true, }; - log("attach edge={d} | id={d} {} -> id={d} {}", .{ + log("attach edge={d} | id={d} {f} -> id={d} {f}", .{ edge.get(), file_index.get(), bun.fmt.quote(g.bundled_files.keys()[file_index.get()]), @@ -1100,7 +1100,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { .seen = true, }; - log("attach edge={d} | id={d} {} -> id={d} {}", .{ + log("attach edge={d} | id={d} {f} -> id={d} {f}", .{ edge.get(), file_index.get(), bun.fmt.quote(g.bundled_files.keys()[file_index.get()]), @@ -1127,7 +1127,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { g.owner().graph_safety_lock.assertLocked(); if (Environment.enable_logs) { - igLog("traceDependencies(.{s}, {}{s})", .{ + igLog("traceDependencies(.{s}, {f}{s})", .{ @tagName(side), bun.fmt.quote(g.bundled_files.keys()[file_index.get()]), if (gts.bits(side).isSet(file_index.get())) " [already visited]" else "", @@ -1145,7 +1145,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { const dev = g.owner(); if (file.is_route) { const route_index = dev.route_lookup.get(file_index) orelse - Output.panic("Route not in lookup index: {d} {}", .{ file_index.get(), bun.fmt.quote(g.bundled_files.keys()[file_index.get()]) }); + Output.panic("Route not in lookup index: {d} {f}", .{ file_index.get(), bun.fmt.quote(g.bundled_files.keys()[file_index.get()]) }); igLog("\\<- Route", .{}); try dev.incremental_result.framework_routes_affected.append(dev.allocator(), route_index); @@ -1159,7 +1159,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { if (file.is_hmr_root) { const key = g.bundled_files.keys()[file_index.get()]; const index = dev.server_graph.getFileIndex(key) orelse - Output.panic("Server Incremental Graph is missing component for {}", .{bun.fmt.quote(key)}); + Output.panic("Server Incremental Graph is missing component for {f}", .{bun.fmt.quote(key)}); try dev.server_graph.traceDependencies(index, gts, goal, index); } else if (file.html_route_bundle_index) |route_bundle_index| { // If the HTML file itself was modified, or an asset was @@ -1207,7 +1207,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { g.owner().graph_safety_lock.assertLocked(); if (Environment.enable_logs) { - igLog("traceImports(.{s}, .{s}, {}{s})", .{ + igLog("traceImports(.{s}, .{s}, {f}{s})", .{ @tagName(side), @tagName(goal), bun.fmt.quote(g.bundled_files.keys()[file_index.get()]), @@ -1227,7 +1227,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { const dev = g.owner(); const key = g.bundled_files.keys()[file_index.get()]; const index = dev.client_graph.getFileIndex(key) orelse - Output.panic("Client Incremental Graph is missing component for {}", .{bun.fmt.quote(key)}); + Output.panic("Client Incremental Graph is missing component for {f}", .{bun.fmt.quote(key)}); try dev.client_graph.traceImports(index, gts, goal); if (Environment.isDebug and file.kind == .css) { @@ -1699,7 +1699,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { g: *Self, options: *const TakeJSBundleOptions, ) ![]u8 { - var chunk = std.ArrayList(u8).init(g.allocator()); + var chunk = std.array_list.Managed(u8).init(g.allocator()); try g.takeJSBundleToList(&chunk, options); bun.assert(chunk.items.len == chunk.capacity); return chunk.items; @@ -1707,7 +1707,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { pub fn takeJSBundleToList( g: *Self, - list: *std.ArrayList(u8), + list: *std.array_list.Managed(u8), options: *const TakeJSBundleOptions, ) !void { const kind = options.kind; @@ -1729,7 +1729,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { // exact upper bound of this can be calculated, but is not to // avoid worrying about windows paths. var end_sfa = std.heap.stackFallback(65536, g.allocator()); - var end_list = std.ArrayList(u8).initCapacity(end_sfa.get(), 65536) catch unreachable; + var end_list = std.array_list.Managed(u8).initCapacity(end_sfa.get(), 65536) catch unreachable; defer end_list.deinit(); const end = end: { const w = end_list.writer(); @@ -1753,7 +1753,7 @@ pub fn IncrementalGraph(comptime side: bake.Side) type { try w.writeAll(",\n bun: \"" ++ bun.Global.package_json_version_with_canary ++ "\""); try w.writeAll(",\n generation: \""); const generation: u32 = @intCast(options.script_id.get() >> 32); - try w.print("{s}", .{std.fmt.fmtSliceHexLower(std.mem.asBytes(&generation))}); + try w.print("{x}", .{std.mem.asBytes(&generation)}); try w.writeAll("\",\n version: \""); try w.writeAll(&g.owner().configuration_hash_key); diff --git a/src/bake/DevServer/SerializedFailure.zig b/src/bake/DevServer/SerializedFailure.zig index 0b4c9609a5..d14af1c133 100644 --- a/src/bake/DevServer/SerializedFailure.zig +++ b/src/bake/DevServer/SerializedFailure.zig @@ -61,7 +61,7 @@ pub fn getOwner(failure: SerializedFailure) Owner { /// This is okay since SerializedFailure can contain more than one error. pub const ArrayHashContextViaOwner = struct { pub fn hash(_: ArrayHashContextViaOwner, k: SerializedFailure) u32 { - return std.hash.uint32(@bitCast(k.getOwner().encode())); + return std.hash.int(@as(u32, @bitCast(k.getOwner().encode()))); } pub fn eql(_: ArrayHashContextViaOwner, a: SerializedFailure, b: SerializedFailure, _: usize) bool { @@ -71,7 +71,7 @@ pub const ArrayHashContextViaOwner = struct { pub const ArrayHashAdapter = struct { pub fn hash(_: ArrayHashAdapter, own: Owner) u32 { - return std.hash.uint32(@bitCast(own.encode())); + return std.hash.int(@as(u32, @bitCast(own.encode()))); } pub fn eql(_: ArrayHashAdapter, a: Owner, b: SerializedFailure, _: usize) bool { @@ -111,7 +111,7 @@ pub fn initFromJs(dev: *DevServer, owner: Owner, value: JSValue) !SerializedFail } // Avoid small re-allocations without requesting so much from the heap var sfb = std.heap.stackFallback(65536, dev.allocator()); - var payload = std.ArrayList(u8).initCapacity(sfb.get(), 65536) catch + var payload = std.array_list.Managed(u8).initCapacity(sfb.get(), 65536) catch unreachable; // enough space const w = payload.writer(); @@ -138,7 +138,7 @@ pub fn initFromLog( // Avoid small re-allocations without requesting so much from the heap var sfb = std.heap.stackFallback(65536, dev.allocator()); - var payload = std.ArrayList(u8).initCapacity(sfb.get(), 65536) catch + var payload = std.array_list.Managed(u8).initCapacity(sfb.get(), 65536) catch unreachable; // enough space const w = payload.writer(); @@ -163,7 +163,7 @@ pub fn initFromLog( // All "write" functions get a corresponding "read" function in ./client/error.ts -const Writer = std.ArrayList(u8).Writer; +const Writer = std.array_list.Managed(u8).Writer; fn writeLogMsg(msg: *const bun.logger.Msg, w: Writer) !void { try w.writeByte(switch (msg.kind) { diff --git a/src/bake/DevServer/SourceMapStore.zig b/src/bake/DevServer/SourceMapStore.zig index cd2a470130..ea65007624 100644 --- a/src/bake/DevServer/SourceMapStore.zig +++ b/src/bake/DevServer/SourceMapStore.zig @@ -91,7 +91,7 @@ pub const Entry = struct { ); // This buffer is temporary, holding the quoted source paths, joined with commas. - var source_map_strings = std.ArrayList(u8).init(arena); + var source_map_strings = std.array_list.Managed(u8).init(arena); defer source_map_strings.deinit(); const buf = bun.path_buffer_pool.get(); @@ -203,7 +203,7 @@ pub const Entry = struct { fn encodeSourceMapPath( side: bake.Side, utf8_input: []const u8, - array_list: *std.ArrayList(u8), + array_list: *std.array_list.Managed(u8), ) error{ OutOfMemory, IncompleteUTF8 }!void { // On the client, percent encode everything so it works in the browser if (side == .client) { diff --git a/src/bake/DevServer/WatcherAtomics.zig b/src/bake/DevServer/WatcherAtomics.zig index 5d2e10953e..86f5e5c37a 100644 --- a/src/bake/DevServer/WatcherAtomics.zig +++ b/src/bake/DevServer/WatcherAtomics.zig @@ -175,7 +175,7 @@ pub fn recycleEventFromDevServer(self: *Self, old_event: *HotReloadEvent) ?*HotR self.dbg_server_event = null; bun.assertf( dbg_event == old_event, - "recycleEventFromDevServer: old_event: expected {?*}, got {?*}", + "recycleEventFromDevServer: old_event: expected {*}, got {*}", .{ dbg_event, old_event }, ); } diff --git a/src/bake/FrameworkRouter.zig b/src/bake/FrameworkRouter.zig index 2975ac631d..8824e851d7 100644 --- a/src/bake/FrameworkRouter.zig +++ b/src/bake/FrameworkRouter.zig @@ -423,8 +423,7 @@ pub const Part = union(enum(u3)) { }; } - pub fn format(part: Part, comptime fmt: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { - comptime bun.assert(fmt.len == 0); + pub fn format(part: Part, writer: *std.Io.Writer) !void { try writer.writeAll("Part \""); try part.toStringForInternalUse(writer); try writer.writeAll("\""); @@ -925,22 +924,22 @@ pub const TinyLog = struct { after[@min(log.cursor_len, after.len)..], }); const w = bun.Output.errorWriterBuffered(); - w.writeByteNTimes(' ', "error: \"".len + log.cursor_at) catch return; + w.splatByteAll(' ', "error: \"".len + log.cursor_at) catch return; if (bun.Output.enable_ansi_colors_stderr) { const symbols = bun.fmt.TableSymbols.unicode; bun.Output.prettyError("" ++ symbols.topColumnSep(), .{}); if (log.cursor_len > 1) { - w.writeBytesNTimes(symbols.horizontalEdge(), log.cursor_len - 1) catch return; + w.splatBytesAll(symbols.horizontalEdge(), log.cursor_len - 1) catch return; } } else { if (log.cursor_len <= 1) { w.writeAll("|") catch return; } else { - w.writeByteNTimes('-', log.cursor_len - 1) catch return; + w.splatByteAll('-', log.cursor_len - 1) catch return; } } w.writeByte('\n') catch return; - w.writeByteNTimes(' ', "error: \"".len + log.cursor_at) catch return; + w.splatByteAll(' ', "error: \"".len + log.cursor_at) catch return; w.writeAll(log.msg.slice()) catch return; bun.Output.prettyError("\n", .{}); bun.Output.flush(); @@ -959,16 +958,16 @@ pub const InsertionContext = struct { pub fn wrap(comptime T: type, ctx: *T) InsertionContext { const wrapper = struct { fn getFileIdForRouter(opaque_ctx: *anyopaque, abs_path: []const u8, associated_route: Route.Index, kind: Route.FileKind) bun.OOM!OpaqueFileId { - const cast_ctx: *T = @alignCast(@ptrCast(opaque_ctx)); + const cast_ctx: *T = @ptrCast(@alignCast(opaque_ctx)); return try cast_ctx.getFileIdForRouter(abs_path, associated_route, kind); } fn onRouterSyntaxError(opaque_ctx: *anyopaque, rel_path: []const u8, log: TinyLog) bun.OOM!void { - const cast_ctx: *T = @alignCast(@ptrCast(opaque_ctx)); + const cast_ctx: *T = @ptrCast(@alignCast(opaque_ctx)); if (!@hasDecl(T, "onRouterSyntaxError")) @panic("TODO: onRouterSyntaxError for " ++ @typeName(T)); return try cast_ctx.onRouterSyntaxError(rel_path, log); } fn onRouterCollisionError(opaque_ctx: *anyopaque, rel_path: []const u8, other_id: OpaqueFileId, file_kind: Route.FileKind) bun.OOM!void { - const cast_ctx: *T = @alignCast(@ptrCast(opaque_ctx)); + const cast_ctx: *T = @ptrCast(@alignCast(opaque_ctx)); if (!@hasDecl(T, "onRouterCollisionError")) @panic("TODO: onRouterCollisionError for " ++ @typeName(T)); return try cast_ctx.onRouterCollisionError(rel_path, other_id, file_kind); } @@ -1220,7 +1219,7 @@ pub const JSFrameworkRouter = struct { try arr.putIndex( global, @intCast(i), - global.createErrorInstance("Invalid route {}: {s}", .{ + global.createErrorInstance("Invalid route {f}: {s}", .{ bun.fmt.quote(item.rel_path), item.log.msg.slice(), }), @@ -1337,7 +1336,7 @@ pub const JSFrameworkRouter = struct { } orelse return .null; - var rendered = try std.ArrayList(u8).initCapacity(alloc, filepath.slice().len); + var rendered = try std.array_list.Managed(u8).initCapacity(alloc, filepath.slice().len); for (parsed.parts) |part| try part.toStringForInternalUse(rendered.writer()); var out = bun.String.init(rendered.items); @@ -1348,7 +1347,7 @@ pub const JSFrameworkRouter = struct { } fn encodedPatternToJS(global: *JSGlobalObject, pattern: EncodedPattern, temp_allocator: Allocator) !JSValue { - var rendered = try std.ArrayList(u8).initCapacity(temp_allocator, pattern.data.len); + var rendered = try std.array_list.Managed(u8).initCapacity(temp_allocator, pattern.data.len); defer rendered.deinit(); var it = pattern.iterate(); while (it.next()) |part| try part.toStringForInternalUse(rendered.writer()); @@ -1357,7 +1356,7 @@ pub const JSFrameworkRouter = struct { } fn partToJS(global: *JSGlobalObject, part: Part, temp_allocator: Allocator) !JSValue { - var rendered = std.ArrayList(u8).init(temp_allocator); + var rendered = std.array_list.Managed(u8).init(temp_allocator); defer rendered.deinit(); try part.toStringForInternalUse(rendered.writer()); var str = bun.String.cloneUTF8(rendered.items); diff --git a/src/bake/production.zig b/src/bake/production.zig index 69b0bac42f..1efe4bdcd9 100644 --- a/src/bake/production.zig +++ b/src/bake/production.zig @@ -350,7 +350,7 @@ pub fn buildWithVm(ctx: bun.cli.Command.Context, cwd: []const u8, vm: *VirtualMa var source_maps: bun.StringArrayHashMapUnmanaged(OutputFile.Index) = .{}; @memset(module_keys, bun.String.dead); for (bundled_outputs, 0..) |file, i| { - log("src_index={any} side={s} src={s} dest={s} - {?d}\n", .{ + log("src_index={?f} side={s} src={s} dest={s} - {?d}\n", .{ file.source_index.unwrap(), if (file.side) |s| @tagName(s) else "null", file.src_path.text, @@ -388,14 +388,14 @@ pub fn buildWithVm(ctx: bun.cli.Command.Context, cwd: []const u8, vm: *VirtualMa // Client-side resources will be written to disk for usage in on the client side _ = file.writeToDisk(root_dir, ".") catch |err| { bun.handleErrorReturnTrace(err, @errorReturnTrace()); - Output.err(err, "Failed to write {} to output directory", .{bun.fmt.quote(file.dest_path)}); + Output.err(err, "Failed to write {f} to output directory", .{bun.fmt.quote(file.dest_path)}); }; }, .server => { if (ctx.bundler_options.bake_debug_dump_server) { _ = file.writeToDisk(root_dir, ".") catch |err| { bun.handleErrorReturnTrace(err, @errorReturnTrace()); - Output.err(err, "Failed to write {} to output directory", .{bun.fmt.quote(file.dest_path)}); + Output.err(err, "Failed to write {f} to output directory", .{bun.fmt.quote(file.dest_path)}); }; } @@ -461,7 +461,7 @@ pub fn buildWithVm(ctx: bun.cli.Command.Context, cwd: []const u8, vm: *VirtualMa const runtime_file: *const OutputFile = &bundled_outputs[runtime_file_index]; _ = runtime_file.writeToDisk(root_dir, ".") catch |err| { bun.handleErrorReturnTrace(err, @errorReturnTrace()); - Output.err(err, "Failed to write {} to output directory", .{bun.fmt.quote(runtime_file.dest_path)}); + Output.err(err, "Failed to write {f} to output directory", .{bun.fmt.quote(runtime_file.dest_path)}); }; } } @@ -504,7 +504,7 @@ pub fn buildWithVm(ctx: bun.cli.Command.Context, cwd: []const u8, vm: *VirtualMa break :brk raw; } orelse { Output.errGeneric("Framework does not support static site generation", .{}); - Output.note("The file {s} is missing the \"prerender\" export, which defines how to generate static files.", .{ + Output.note("The file {f} is missing the \"prerender\" export, which defines how to generate static files.", .{ bun.fmt.quote(bun.path.relative(cwd, entry_points.files.keys()[router_type.server_file.get()].absPath())), }); bun.Global.crash(); @@ -520,7 +520,7 @@ pub fn buildWithVm(ctx: bun.cli.Command.Context, cwd: []const u8, vm: *VirtualMa break :brk raw; } orelse { Output.errGeneric("Framework does not support static site generation", .{}); - Output.note("The file {s} is missing the \"getParams\" export, which defines how to generate static files.", .{ + Output.note("The file {f} is missing the \"getParams\" export, which defines how to generate static files.", .{ bun.fmt.quote(bun.path.relative(cwd, entry_points.files.keys()[router_type.server_file.get()].absPath())), }); bun.Global.crash(); @@ -531,7 +531,7 @@ pub fn buildWithVm(ctx: bun.cli.Command.Context, cwd: []const u8, vm: *VirtualMa try server_param_funcs.putIndex(global, @intCast(i), server_param_func); } - var navigatable_routes = std.ArrayList(FrameworkRouter.Route.Index).init(allocator); + var navigatable_routes = std.array_list.Managed(FrameworkRouter.Route.Index).init(allocator); for (router.routes.items, 0..) |route, i| { _ = route.file_page.unwrap() orelse continue; try navigatable_routes.append(FrameworkRouter.Route.Index.init(@intCast(i))); @@ -744,7 +744,7 @@ extern fn BakeGetModuleNamespace(global: *jsc.JSGlobalObject, key: JSValue) JSVa extern fn BakeLoadModuleByKey(global: *jsc.JSGlobalObject, key: JSValue) JSValue; fn BakeGetOnModuleNamespace(global: *jsc.JSGlobalObject, module: JSValue, property: []const u8) ?JSValue { - const f = @extern(*const fn (*jsc.JSGlobalObject, JSValue, [*]const u8, usize) callconv(.C) JSValue, .{ + const f = @extern(*const fn (*jsc.JSGlobalObject, JSValue, [*]const u8, usize) callconv(.c) JSValue, .{ .name = "BakeGetOnModuleNamespace", }); const result: JSValue = f(global, module, property.ptr, property.len); @@ -782,7 +782,7 @@ extern fn BakeRenderRoutesForProdStatic( /// The result of this function is a JSValue that wont be garbage collected, as /// it will always have at least one reference by the module loader. fn BakeRegisterProductionChunk(global: *jsc.JSGlobalObject, key: bun.String, source_code: bun.String) bun.JSError!JSValue { - const f = @extern(*const fn (*jsc.JSGlobalObject, bun.String, bun.String) callconv(.C) JSValue, .{ + const f = @extern(*const fn (*jsc.JSGlobalObject, bun.String, bun.String) callconv(.c) JSValue, .{ .name = "BakeRegisterProductionChunk", }); const result: JSValue = f(global, key, source_code); @@ -791,7 +791,7 @@ fn BakeRegisterProductionChunk(global: *jsc.JSGlobalObject, key: bun.String, sou return result; } -pub export fn BakeToWindowsPath(input: bun.String) callconv(.C) bun.String { +pub export fn BakeToWindowsPath(input: bun.String) callconv(.c) bun.String { if (comptime bun.Environment.isPosix) { @panic("This code should not be called on POSIX systems."); } @@ -806,7 +806,7 @@ pub export fn BakeToWindowsPath(input: bun.String) callconv(.C) bun.String { return bun.String.cloneUTF16(output_slice); } -pub export fn BakeProdResolve(global: *jsc.JSGlobalObject, a_str: bun.String, specifier_str: bun.String) callconv(.C) bun.String { +pub export fn BakeProdResolve(global: *jsc.JSGlobalObject, a_str: bun.String, specifier_str: bun.String) callconv(.c) bun.String { var sfa = std.heap.stackFallback(@sizeOf(bun.PathBuffer) * 2, bun.default_allocator); const alloc = sfa.get(); @@ -821,7 +821,7 @@ pub export fn BakeProdResolve(global: *jsc.JSGlobalObject, a_str: bun.String, sp defer referrer.deinit(); if (bun.resolver.isPackagePath(specifier.slice())) { - return global.throw("Non-relative import {} from {} are not allowed in production assets. This is a bug in Bun's bundler", .{ + return global.throw("Non-relative import {f} from {f} are not allowed in production assets. This is a bug in Bun's bundler", .{ bun.fmt.quote(specifier.slice()), bun.fmt.quote(referrer.slice()), }) catch bun.String.dead; diff --git a/src/brotli.zig b/src/brotli.zig index 9413cf98f3..06f9e65f63 100644 --- a/src/brotli.zig +++ b/src/brotli.zig @@ -3,7 +3,7 @@ const BrotliDecoder = c.BrotliDecoder; const BrotliEncoder = c.BrotliEncoder; pub const BrotliAllocator = struct { - pub fn alloc(_: ?*anyopaque, len: usize) callconv(.C) *anyopaque { + pub fn alloc(_: ?*anyopaque, len: usize) callconv(.c) *anyopaque { if (bun.heap_breakdown.enabled) { const zone = bun.heap_breakdown.getZone("brotli"); return zone.malloc_zone_malloc(len) orelse bun.outOfMemory(); @@ -12,7 +12,7 @@ pub const BrotliAllocator = struct { return mimalloc.mi_malloc(len) orelse bun.outOfMemory(); } - pub fn free(_: ?*anyopaque, data: ?*anyopaque) callconv(.C) void { + pub fn free(_: ?*anyopaque, data: ?*anyopaque) callconv(.c) void { if (bun.heap_breakdown.enabled) { const zone = bun.heap_breakdown.getZone("brotli"); zone.malloc_zone_free(data); @@ -246,7 +246,7 @@ pub const BrotliCompressionStream = struct { const Self = @This(); pub const WriteError = error{BrotliCompressionError} || InputWriter.Error; - pub const Writer = std.io.Writer(@This(), WriteError, Self.write); + pub const Writer = std.Io.GenericWriter(@This(), WriteError, Self.write); pub fn init(compressor: *BrotliCompressionStream, input_writer: InputWriter) Self { return Self{ diff --git a/src/btjs.zig b/src/btjs.zig index 7f1f6c0b48..341cb5fe1d 100644 --- a/src/btjs.zig +++ b/src/btjs.zig @@ -10,16 +10,15 @@ pub export fn dumpBtjsTrace() [*:0]const u8 { } fn dumpBtjsTraceDebugImpl() [*:0]const u8 { - var result_writer = std.ArrayList(u8).init(bun.default_allocator); - const w = result_writer.writer(); + var result_writer = std.Io.Writer.Allocating.init(bun.default_allocator); + defer result_writer.deinit(); + const w = &result_writer.writer; const debug_info = std.debug.getSelfDebugInfo() catch |err| { w.print("Unable to dump stack trace: Unable to open debug info: {s}\x00", .{@errorName(err)}) catch { - result_writer.deinit(); return "".ptr; }; return @ptrCast((result_writer.toOwnedSlice() catch { - result_writer.deinit(); return "".ptr; }).ptr); }; @@ -27,7 +26,7 @@ fn dumpBtjsTraceDebugImpl() [*:0]const u8 { // std.log.info("jsc_llint_begin: {x}", .{@intFromPtr(&jsc_llint_begin)}); // std.log.info("jsc_llint_end: {x}", .{@intFromPtr(&jsc_llint_end)}); - const tty_config = std.io.tty.detectConfig(std.io.getStdOut()); + const tty_config = std.io.tty.detectConfig(std.fs.File.stdout()); var context: std.debug.ThreadContext = undefined; const has_context = std.debug.getContext(&context); @@ -52,21 +51,19 @@ fn dumpBtjsTraceDebugImpl() [*:0]const u8 { } // remove nulls - for (result_writer.items) |*itm| if (itm.* == 0) { + for (result_writer.written()) |*itm| if (itm.* == 0) { itm.* = ' '; }; // add null terminator - result_writer.append(0) catch { - result_writer.deinit(); + w.writeByte(0) catch { return "".ptr; }; return @ptrCast((result_writer.toOwnedSlice() catch { - result_writer.deinit(); return "".ptr; }).ptr); } -fn printSourceAtAddress(debug_info: *std.debug.SelfInfo, out_stream: anytype, address: usize, tty_config: std.io.tty.Config, fp: usize) !void { +fn printSourceAtAddress(debug_info: *std.debug.SelfInfo, out_stream: *std.Io.Writer, address: usize, tty_config: std.io.tty.Config, fp: usize) !void { if (!bun.Environment.isDebug) unreachable; const module = debug_info.getModuleForAddress(address) catch |err| switch (err) { error.MissingDebugInfo, error.InvalidDebugInfo => return printUnknownSource(debug_info, out_stream, address, tty_config), @@ -93,7 +90,7 @@ fn printSourceAtAddress(debug_info: *std.debug.SelfInfo, out_stream: anytype, ad if (do_llint) { const srcloc = frame.getCallerSrcLoc(bun.jsc.VirtualMachine.get().global); try tty_config.setColor(out_stream, .bold); - try out_stream.print("{s}:{d}:{d}: ", .{ srcloc.str, srcloc.line, srcloc.column }); + try out_stream.print("{f}:{d}:{d}: ", .{ srcloc.str, srcloc.line, srcloc.column }); try tty_config.setColor(out_stream, .reset); } @@ -117,7 +114,7 @@ fn printSourceAtAddress(debug_info: *std.debug.SelfInfo, out_stream: anytype, ad } } -fn printUnknownSource(debug_info: *std.debug.SelfInfo, out_stream: anytype, address: usize, tty_config: std.io.tty.Config) !void { +fn printUnknownSource(debug_info: *std.debug.SelfInfo, out_stream: *std.Io.Writer, address: usize, tty_config: std.io.tty.Config) !void { if (!bun.Environment.isDebug) unreachable; const module_name = debug_info.getModuleNameForAddress(address); return printLineInfo( @@ -132,7 +129,7 @@ fn printUnknownSource(debug_info: *std.debug.SelfInfo, out_stream: anytype, addr ); } fn printLineInfo( - out_stream: anytype, + out_stream: *std.Io.Writer, source_location: ?std.debug.SourceLocation, address: usize, symbol_name: []const u8, @@ -166,7 +163,7 @@ fn printLineInfo( // The caret already takes one char const space_needed = @as(usize, @intCast(sl.column - 1)); - try out_stream.writeByteNTimes(' ', space_needed); + try out_stream.splatByteAll(' ', space_needed); try tty_config.setColor(out_stream, .green); try out_stream.writeAll("^"); try tty_config.setColor(out_stream, .reset); @@ -182,7 +179,7 @@ fn printLineInfo( } } -fn printLineFromFileAnyOs(out_stream: anytype, source_location: std.debug.SourceLocation) !void { +fn printLineFromFileAnyOs(out_stream: *std.Io.Writer, source_location: std.debug.SourceLocation) !void { if (!bun.Environment.isDebug) unreachable; // Need this to always block even in async I/O mode, because this could potentially @@ -238,7 +235,7 @@ fn printLineFromFileAnyOs(out_stream: anytype, source_location: std.debug.Source } } -fn printLastUnwindError(it: *std.debug.StackIterator, debug_info: *std.debug.SelfInfo, out_stream: anytype, tty_config: std.io.tty.Config) void { +fn printLastUnwindError(it: *std.debug.StackIterator, debug_info: *std.debug.SelfInfo, out_stream: *std.Io.Writer, tty_config: std.io.tty.Config) void { if (!bun.Environment.isDebug) unreachable; if (!std.debug.have_ucontext) return; if (it.getLastError()) |unwind_error| { @@ -246,7 +243,7 @@ fn printLastUnwindError(it: *std.debug.StackIterator, debug_info: *std.debug.Sel } } -fn printUnwindError(debug_info: *std.debug.SelfInfo, out_stream: anytype, address: usize, err: std.debug.UnwindError, tty_config: std.io.tty.Config) !void { +fn printUnwindError(debug_info: *std.debug.SelfInfo, out_stream: *std.Io.Writer, address: usize, err: std.debug.UnwindError, tty_config: std.io.tty.Config) !void { if (!bun.Environment.isDebug) unreachable; const module_name = debug_info.getModuleNameForAddress(address) orelse "???"; diff --git a/src/bun.js.zig b/src/bun.js.zig index 9adb3e267a..0d5710262f 100644 --- a/src/bun.js.zig +++ b/src/bun.js.zig @@ -107,17 +107,17 @@ pub const Run = struct { const url = bun.URL.parse(url_str); if (!url.isHTTP() and !url.isHTTPS()) { - Output.errGeneric("preconnect URL must be HTTP or HTTPS: {}", .{bun.fmt.quote(url_str)}); + Output.errGeneric("preconnect URL must be HTTP or HTTPS: {f}", .{bun.fmt.quote(url_str)}); Global.exit(1); } if (url.hostname.len == 0) { - Output.errGeneric("preconnect URL must have a hostname: {}", .{bun.fmt.quote(url_str)}); + Output.errGeneric("preconnect URL must have a hostname: {f}", .{bun.fmt.quote(url_str)}); Global.exit(1); } if (!url.hasValidPort()) { - Output.errGeneric("preconnect URL must have a valid port: {}", .{bun.fmt.quote(url_str)}); + Output.errGeneric("preconnect URL must have a valid port: {f}", .{bun.fmt.quote(url_str)}); Global.exit(1); } @@ -518,13 +518,8 @@ noinline fn dumpBuildError(vm: *jsc.VirtualMachine) void { Output.flush(); - const error_writer = Output.errorWriter(); - var buffered_writer = std.io.bufferedWriter(error_writer); - defer { - buffered_writer.flush() catch {}; - } - - const writer = buffered_writer.writer(); + const writer = Output.errorWriterBuffered(); + defer Output.flush(); vm.log.print(writer) catch {}; } diff --git a/src/bun.js/AsyncModule.zig b/src/bun.js/AsyncModule.zig index 7cc369fc3a..054a9d0c4e 100644 --- a/src/bun.js/AsyncModule.zig +++ b/src/bun.js/AsyncModule.zig @@ -451,7 +451,7 @@ pub const AsyncModule = struct { } log.deinit(); - debug("fulfill: {any}", .{specifier}); + debug("fulfill: {f}", .{specifier}); try bun.jsc.fromJSHostCallGeneric(globalThis, @src(), Bun__onFulfillAsyncModule, .{ globalThis, @@ -566,47 +566,47 @@ pub const AsyncModule = struct { const msg: []u8 = try switch (result.err) { error.TarballHTTP400 => std.fmt.allocPrint( bun.default_allocator, - "HTTP 400 downloading package '{s}@{any}'", + "HTTP 400 downloading package '{s}@{f}'", msg_args, ), error.TarballHTTP401 => std.fmt.allocPrint( bun.default_allocator, - "HTTP 401 downloading package '{s}@{any}'", + "HTTP 401 downloading package '{s}@{f}'", msg_args, ), error.TarballHTTP402 => std.fmt.allocPrint( bun.default_allocator, - "HTTP 402 downloading package '{s}@{any}'", + "HTTP 402 downloading package '{s}@{f}'", msg_args, ), error.TarballHTTP403 => std.fmt.allocPrint( bun.default_allocator, - "HTTP 403 downloading package '{s}@{any}'", + "HTTP 403 downloading package '{s}@{f}'", msg_args, ), error.TarballHTTP404 => std.fmt.allocPrint( bun.default_allocator, - "HTTP 404 downloading package '{s}@{any}'", + "HTTP 404 downloading package '{s}@{f}'", msg_args, ), error.TarballHTTP4xx => std.fmt.allocPrint( bun.default_allocator, - "HTTP 4xx downloading package '{s}@{any}'", + "HTTP 4xx downloading package '{s}@{f}'", msg_args, ), error.TarballHTTP5xx => std.fmt.allocPrint( bun.default_allocator, - "HTTP 5xx downloading package '{s}@{any}'", + "HTTP 5xx downloading package '{s}@{f}'", msg_args, ), error.TarballFailedToExtract => std.fmt.allocPrint( bun.default_allocator, - "Failed to extract tarball for package '{s}@{any}'", + "Failed to extract tarball for package '{s}@{f}'", msg_args, ), else => |err| std.fmt.allocPrint( bun.default_allocator, - "{s} downloading package '{s}@{any}'", + "{s} downloading package '{s}@{f}'", .{ bun.asByteSlice(@errorName(err)), result.name, diff --git a/src/bun.js/ConsoleObject.zig b/src/bun.js/ConsoleObject.zig index 46ced4842c..20e1de9898 100644 --- a/src/bun.js/ConsoleObject.zig +++ b/src/bun.js/ConsoleObject.zig @@ -8,20 +8,37 @@ const DEFAULT_CONSOLE_LOG_DEPTH: u16 = 2; const Counter = std.AutoHashMapUnmanaged(u64, u32); -const BufferedWriter = std.io.BufferedWriter(4096, Output.WriterType); -error_writer: BufferedWriter, -writer: BufferedWriter, +stderr_buffer: [4096]u8, +stdout_buffer: [4096]u8, + +error_writer_backing: @TypeOf(Output.Source.StreamType.quietWriter(undefined)).Adapter, +writer_backing: @TypeOf(Output.Source.StreamType.quietWriter(undefined)).Adapter, +error_writer: *std.Io.Writer, +writer: *std.Io.Writer, + default_indent: u16 = 0, counts: Counter = .{}, pub fn format(_: @This(), comptime _: []const u8, _: anytype, _: anytype) !void {} -pub fn init(error_writer: Output.WriterType, writer: Output.WriterType) ConsoleObject { - return ConsoleObject{ - .error_writer = BufferedWriter{ .unbuffered_writer = error_writer }, - .writer = BufferedWriter{ .unbuffered_writer = writer }, +pub fn init(out: *ConsoleObject, error_writer: Output.Source.StreamType, writer: Output.Source.StreamType) void { + out.* = .{ + .stderr_buffer = undefined, + .stdout_buffer = undefined, + + .error_writer_backing = undefined, + .writer_backing = undefined, + + .error_writer = undefined, + .writer = undefined, }; + + out.error_writer_backing = error_writer.quietWriter().adaptToNewApi(&out.stderr_buffer); + out.writer_backing = writer.quietWriter().adaptToNewApi(&out.stdout_buffer); + + out.error_writer = &out.error_writer_backing.new_interface; + out.writer = &out.writer_backing.new_interface; } pub const MessageLevel = enum(u32) { @@ -134,7 +151,8 @@ fn messageWithTypeAndLevel_( Output.prettyFmt("Assertion failed\n", true) else "Assertion failed\n"; - console.error_writer.unbuffered_writer.writeAll(text) catch {}; + console.error_writer.writeAll(text) catch {}; + console.error_writer.flush() catch {}; return; } @@ -143,11 +161,10 @@ fn messageWithTypeAndLevel_( else Output.enable_ansi_colors_stdout; - var buffered_writer = if (level == .Warning or level == .Error) - &console.error_writer + const writer = if (level == .Warning or level == .Error) + console.error_writer else - &console.writer; - var writer = buffered_writer.writer(); + console.writer; const Writer = @TypeOf(writer); if (bun.jsc.Jest.Jest.runner) |runner| { @@ -188,7 +205,7 @@ fn messageWithTypeAndLevel_( switch (enable_colors) { inline else => |colors| table_printer.printTable(Writer, writer, colors) catch return, } - buffered_writer.flush() catch {}; + writer.flush() catch {}; return; } } @@ -216,8 +233,6 @@ fn messageWithTypeAndLevel_( global, vals, print_length, - @TypeOf(buffered_writer.unbuffered_writer.context), - Writer, writer, print_options, ) @@ -229,7 +244,7 @@ fn messageWithTypeAndLevel_( if (message_type == .Trace) { writeTrace(Writer, writer, global); - buffered_writer.flush() catch {}; + writer.flush() catch {}; } } @@ -295,7 +310,7 @@ pub const TablePrinter = struct { pub const WriteError = error{}; - pub const Writer = std.io.Writer( + pub const Writer = std.Io.GenericWriter( VisibleCharacterCounter, VisibleCharacterCounter.WriteError, VisibleCharacterCounter.write, @@ -314,28 +329,35 @@ pub const TablePrinter = struct { /// Compute how much horizontal space will take a JSValue when printed fn getWidthForValue(this: *TablePrinter, value: JSValue) bun.JSError!u32 { var width: usize = 0; + var old_writer = VisibleCharacterCounter.Writer{ + .context = .{ + .width = &width, + }, + }; + var discard_buf: [512]u8 = undefined; // using a buffer decreases vtable calls but requires unnecessary memcpys. is it faster or slower? + var adapted_writer = old_writer.adaptToNewApi(&discard_buf); var value_formatter = this.value_formatter; const tag = try ConsoleObject.Formatter.Tag.get(value, this.globalObject); value_formatter.quote_strings = !(tag.tag == .String or tag.tag == .StringPossiblyFormatted); value_formatter.format( tag, - VisibleCharacterCounter.Writer, - VisibleCharacterCounter.Writer{ - .context = .{ - .width = &width, - }, - }, + *std.Io.Writer, + &adapted_writer.new_interface, value, this.globalObject, false, ) catch {}; // TODO: + adapted_writer.new_interface.flush() catch |e| switch (e) { + error.WriteFailed => if (Environment.ci_assert) bun.assert(false), // VisibleCharacterCounter write cannot fail + }; + return @truncate(width); } /// Update the sizes of the columns for the values of a given row, and create any additional columns as needed - fn updateColumnsForRow(this: *TablePrinter, columns: *std.ArrayList(Column), row_key: RowKey, row_value: JSValue) bun.JSError!void { + fn updateColumnsForRow(this: *TablePrinter, columns: *std.array_list.Managed(Column), row_key: RowKey, row_value: JSValue) bun.JSError!void { // update size of "(index)" column const row_key_len: u32 = switch (row_key) { .str => |value| @intCast(value.visibleWidthExcludeANSIColors(false)), @@ -402,7 +424,7 @@ pub const TablePrinter = struct { fn writeStringNTimes(comptime Writer: type, writer: Writer, comptime str: []const u8, n: usize) !void { if (comptime str.len == 1) { - try writer.writeByteNTimes(str[0], n); + try writer.splatByteAll(str[0], n); return; } @@ -416,7 +438,7 @@ pub const TablePrinter = struct { comptime Writer: type, writer: Writer, comptime enable_ansi_colors: bool, - columns: *std.ArrayList(Column), + columns: *std.array_list.Managed(Column), row_key: RowKey, row_value: JSValue, ) !void { @@ -429,12 +451,12 @@ pub const TablePrinter = struct { const needed = columns.items[0].width -| len; // Right-align the number column - try writer.writeByteNTimes(' ', needed + PADDING); + try writer.splatByteAll(' ', needed + PADDING); switch (row_key) { - .str => |value| try writer.print("{}", .{value}), + .str => |value| try writer.print("{f}", .{value}), .num => |value| try writer.print("{d}", .{value}), } - try writer.writeByteNTimes(' ', PADDING); + try writer.splatByteAll(' ', PADDING); } for (1..columns.items.len) |col_idx| { @@ -456,11 +478,11 @@ pub const TablePrinter = struct { } if (value == .zero) { - try writer.writeByteNTimes(' ', col.width + (PADDING * 2)); + try writer.splatByteAll(' ', col.width + (PADDING * 2)); } else { const len: u32 = try this.getWidthForValue(value); const needed = col.width -| len; - try writer.writeByteNTimes(' ', PADDING); + try writer.splatByteAll(' ', PADDING); const tag = try ConsoleObject.Formatter.Tag.get(value, this.globalObject); var value_formatter = this.value_formatter; @@ -486,7 +508,7 @@ pub const TablePrinter = struct { enable_ansi_colors, ); - try writer.writeByteNTimes(' ', needed + PADDING); + try writer.splatByteAll(' ', needed + PADDING); } } try writer.writeAll("│\n"); @@ -495,13 +517,13 @@ pub const TablePrinter = struct { pub fn printTable( this: *TablePrinter, comptime Writer: type, - writer: Writer, + writer: *std.Io.Writer, comptime enable_ansi_colors: bool, ) !void { const globalObject = this.globalObject; var stack_fallback = std.heap.stackFallback(@sizeOf(Column) * 16, this.globalObject.allocator()); - var columns = try std.ArrayList(Column).initCapacity(stack_fallback.get(), 16); + var columns = try std.array_list.Managed(Column).initCapacity(stack_fallback.get(), 16); defer { for (columns.items) |*col| { col.name.deref(); @@ -537,7 +559,7 @@ pub const TablePrinter = struct { if (this.is_iterable) { var ctx_: struct { this: *TablePrinter, columns: *@TypeOf(columns), idx: u32 = 0, err: bool = false } = .{ .this = this, .columns = &columns }; try this.tabular_data.forEachWithContext(globalObject, &ctx_, struct { - fn callback(_: *jsc.VM, _: *JSGlobalObject, ctx: *@TypeOf(ctx_), value: JSValue) callconv(.C) void { + fn callback(_: *jsc.VM, _: *JSGlobalObject, ctx: *@TypeOf(ctx_), value: JSValue) callconv(.c) void { updateColumnsForRow(ctx.this, ctx.columns, .{ .num = ctx.idx }, value) catch { ctx.err = true; }; @@ -587,15 +609,15 @@ pub const TablePrinter = struct { if (i > 0) try writer.writeAll("│"); const len = col.name.visibleWidthExcludeANSIColors(false); const needed = col.width -| len; - try writer.writeByteNTimes(' ', 1); + try writer.splatByteAll(' ', 1); if (comptime enable_ansi_colors) { try writer.writeAll(Output.prettyFmt("", true)); } - try writer.print("{}", .{col.name}); + try writer.print("{f}", .{col.name}); if (comptime enable_ansi_colors) { try writer.writeAll(Output.prettyFmt("", true)); } - try writer.writeByteNTimes(' ', needed + PADDING); + try writer.splatByteAll(' ', needed + PADDING); } try writer.writeAll("│\n├"); @@ -611,7 +633,7 @@ pub const TablePrinter = struct { if (this.is_iterable) { var ctx_: struct { this: *TablePrinter, columns: *@TypeOf(columns), writer: Writer, idx: u32 = 0, err: bool = false } = .{ .this = this, .columns = &columns, .writer = writer }; try this.tabular_data.forEachWithContext(globalObject, &ctx_, struct { - fn callback(_: *jsc.VM, _: *JSGlobalObject, ctx: *@TypeOf(ctx_), value: JSValue) callconv(.C) void { + fn callback(_: *jsc.VM, _: *JSGlobalObject, ctx: *@TypeOf(ctx_), value: JSValue) callconv(.c) void { printRow(ctx.this, Writer, ctx.writer, enable_ansi_colors, ctx.columns, .{ .num = ctx.idx }, value) catch { ctx.err = true; }; @@ -704,7 +726,7 @@ pub const FormatOptions = struct { level: ErrorDisplayLevel, enable_colors: bool, colon: Colon, - pub fn format(this: @This(), comptime _: []const u8, opts: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: @This(), writer: *std.Io.Writer) std.Io.Writer.Error!void { if (this.enable_colors) { switch (this.level) { .normal => try writer.writeAll(Output.prettyFmt("", true)), @@ -714,7 +736,7 @@ pub const FormatOptions = struct { } if (!this.name.isEmpty()) { - try this.name.format("", opts, writer); + try this.name.format(writer); } else if (this.level == .warn) { try writer.writeAll("warn"); } else { @@ -807,9 +829,7 @@ pub fn format2( global: *JSGlobalObject, vals: [*]const JSValue, len: usize, - comptime RawWriter: type, - comptime Writer: type, - writer: Writer, + writer: *std.Io.Writer, options: FormatOptions, ) bun.JSError!void { if (len == 1) { @@ -828,7 +848,7 @@ pub fn format2( }; defer fmt.deinit(); const tag = try ConsoleObject.Formatter.Tag.get(vals[0], global); - fmt.writeIndent(Writer, writer) catch return; + fmt.writeIndent(*std.Io.Writer, writer) catch return; if (tag.tag == .String) { if (options.enable_colors) { @@ -837,7 +857,7 @@ pub fn format2( } try fmt.format( tag, - Writer, + *std.Io.Writer, writer, vals[0], global, @@ -849,7 +869,7 @@ pub fn format2( } else { try fmt.format( tag, - Writer, + *std.Io.Writer, writer, vals[0], global, @@ -860,17 +880,15 @@ pub fn format2( _ = writer.write("\n") catch 0; } - writer.context.flush() catch {}; + writer.flush() catch {}; } else { defer { - if (comptime Writer != RawWriter) { - if (options.flush) writer.context.flush() catch {}; - } + if (options.flush) writer.flush() catch {}; } if (options.enable_colors) { try fmt.format( tag, - Writer, + *std.Io.Writer, writer, vals[0], global, @@ -879,7 +897,7 @@ pub fn format2( } else { try fmt.format( tag, - Writer, + *std.Io.Writer, writer, vals[0], global, @@ -893,9 +911,7 @@ pub fn format2( } defer { - if (comptime Writer != RawWriter) { - if (options.flush) writer.context.flush() catch {}; - } + if (options.flush) writer.flush() catch {}; } var this_value: JSValue = vals[0]; @@ -914,7 +930,7 @@ pub fn format2( defer fmt.deinit(); var tag: ConsoleObject.Formatter.Tag.Result = undefined; - fmt.writeIndent(Writer, writer) catch return; + fmt.writeIndent(*std.Io.Writer, writer) catch return; var any = false; if (options.enable_colors) { @@ -932,7 +948,7 @@ pub fn format2( tag.tag = .{ .StringPossiblyFormatted = {} }; } - try fmt.format(tag, Writer, writer, this_value, global, true); + try fmt.format(tag, *std.Io.Writer, writer, this_value, global, true); if (fmt.remaining_values.len == 0) { break; } @@ -954,7 +970,7 @@ pub fn format2( tag.tag = .{ .StringPossiblyFormatted = {} }; } - try fmt.format(tag, Writer, writer, this_value, global, false); + try fmt.format(tag, *std.Io.Writer, writer, this_value, global, false); if (fmt.remaining_values.len == 0) break; @@ -1030,19 +1046,19 @@ pub const Formatter = struct { value: JSValue, pub const WriteError = error{UhOh}; - pub fn format(self: ZigFormatter, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: ZigFormatter, writer: *std.Io.Writer) std.Io.Writer.Error!void { self.formatter.remaining_values = &[_]JSValue{self.value}; defer { self.formatter.remaining_values = &[_]JSValue{}; } - try self.formatter.format( - try Tag.get(self.value, self.formatter.globalThis), + self.formatter.format( + Tag.get(self.value, self.formatter.globalThis) catch |e| return bun.deprecated.jsErrorToWriteError(e), @TypeOf(writer), writer, self.value, self.formatter.globalThis, false, - ); + ) catch |e| return bun.deprecated.jsErrorToWriteError(e); } }; @@ -1620,7 +1636,7 @@ pub const Formatter = struct { } pub fn WrappedWriter(comptime Writer: type) type { - if (@hasDecl(Writer, "is_wrapped_writer")) { + if (Writer != *std.Io.Writer and @hasDecl(Writer, "is_wrapped_writer")) { @compileError("Do not nest WrappedWriter"); } @@ -1713,7 +1729,7 @@ pub const Formatter = struct { } pub inline fn writeString(self: *@This(), str: ZigString) void { - self.print("{}", .{str}); + self.print("{f}", .{str}); } pub inline fn write16Bit(self: *@This(), input: []const u16) void { @@ -1738,7 +1754,7 @@ pub const Formatter = struct { } } - pub fn printComma(this: *ConsoleObject.Formatter, comptime Writer: type, writer: Writer, comptime enable_ansi_colors: bool) !void { + pub fn printComma(this: *ConsoleObject.Formatter, comptime _: type, writer: *std.Io.Writer, comptime enable_ansi_colors: bool) !void { try writer.writeAll(comptime Output.prettyFmt(",", enable_ansi_colors)); this.estimated_line_length += 1; } @@ -1748,7 +1764,7 @@ pub const Formatter = struct { formatter: *ConsoleObject.Formatter, writer: Writer, count: usize = 0, - pub fn forEach(_: *jsc.VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.C) void { + pub fn forEach(_: *jsc.VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.c) void { var this: *@This() = bun.cast(*@This(), ctx orelse return); if (this.formatter.failed) return; if (single_line and this.count > 0) { @@ -1822,7 +1838,7 @@ pub const Formatter = struct { formatter: *ConsoleObject.Formatter, writer: Writer, is_first: bool = true, - pub fn forEach(_: *jsc.VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.C) void { + pub fn forEach(_: *jsc.VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.c) void { var this: *@This() = bun.cast(*@This(), ctx orelse return); if (this.formatter.failed) return; if (single_line) { @@ -1873,7 +1889,7 @@ pub const Formatter = struct { }; if (try getObjectName(globalThis, value)) |name_str| { - writer.print("{} ", .{name_str}); + writer.print("{f} ", .{name_str}); } } @@ -1898,7 +1914,7 @@ pub const Formatter = struct { value: JSValue, is_symbol: bool, is_private_symbol: bool, - ) callconv(.C) void { + ) callconv(.c) void { if (key.eqlComptime("constructor")) return; var ctx: *@This() = bun.cast(*@This(), ctx_ptr orelse return); @@ -1941,14 +1957,14 @@ pub const Formatter = struct { this.addForNewLine(key.len + 1); writer.print( - comptime Output.prettyFmt("{}: ", enable_ansi_colors), + comptime Output.prettyFmt("{f}: ", enable_ansi_colors), .{key}, ); } else if (key.is16Bit() and (!this.quote_keys and JSLexer.isLatin1Identifier(@TypeOf(key.utf16SliceAligned()), key.utf16SliceAligned()))) { this.addForNewLine(key.len + 1); writer.print( - comptime Output.prettyFmt("{}: ", enable_ansi_colors), + comptime Output.prettyFmt("{f}: ", enable_ansi_colors), .{key}, ); } else if (key.is16Bit()) { @@ -1978,14 +1994,14 @@ pub const Formatter = struct { this.addForNewLine(key.len + 2); writer.print( - comptime Output.prettyFmt("{s}: ", enable_ansi_colors), + comptime Output.prettyFmt("{f}: ", enable_ansi_colors), .{bun.fmt.formatJSONStringLatin1(key.slice())}, ); } } else if (Environment.isDebug and is_private_symbol) { this.addForNewLine(1 + "$:".len + key.len); writer.print( - comptime Output.prettyFmt("{s}{any}: ", enable_ansi_colors), + comptime Output.prettyFmt("{s}{f}: ", enable_ansi_colors), .{ if (key.len > 0 and key.charAt(0) == '#') "" else "$", key, @@ -1994,7 +2010,7 @@ pub const Formatter = struct { } else { this.addForNewLine(1 + "[Symbol()]:".len + key.len); writer.print( - comptime Output.prettyFmt("[Symbol({any})]: ", enable_ansi_colors), + comptime Output.prettyFmt("[Symbol({f})]: ", enable_ansi_colors), .{key}, ); } @@ -2040,7 +2056,7 @@ pub const Formatter = struct { this: *ConsoleObject.Formatter, comptime Format: ConsoleObject.Formatter.Tag, comptime Writer: type, - writer_: Writer, + writer_: *std.Io.Writer, value: JSValue, jsType: JSValue.JSType, comptime enable_ansi_colors: bool, @@ -2157,7 +2173,7 @@ pub const Formatter = struct { if (str.isUTF16()) { // streaming print - writer.print("{}", .{str}); + writer.print("{f}", .{str}); } else if (str.asUTF8()) |slice| { // fast path writer.writeAll(slice); @@ -2208,7 +2224,7 @@ pub const Formatter = struct { if (!strings.eqlComptime(number_name.slice(), "Number")) { this.addForNewLine(number_name.len + number_value.len + "[Number ():]".len); - writer.print(comptime Output.prettyFmt("[Number ({s}): {s}]", enable_ansi_colors), .{ + writer.print(comptime Output.prettyFmt("[Number ({f}): {f}]", enable_ansi_colors), .{ number_name, number_value, }); @@ -2216,7 +2232,7 @@ pub const Formatter = struct { } this.addForNewLine(number_name.len + number_value.len + 4); - writer.print(comptime Output.prettyFmt("[{s}: {s}]", enable_ansi_colors), .{ + writer.print(comptime Output.prettyFmt("[{f}: {f}]", enable_ansi_colors), .{ number_name, number_value, }); @@ -2262,7 +2278,7 @@ pub const Formatter = struct { }); // Strings are printed directly, otherwise we recurse. It is possible to end up in an infinite loop. if (result.isString()) { - writer.print("{}", .{result.fmtString(this.globalThis)}); + writer.print("{f}", .{result.fmtString(this.globalThis)}); } else { try this.format(try ConsoleObject.Formatter.Tag.get(result, this.globalThis), Writer, writer_, result, this.globalThis, enable_ansi_colors); } @@ -2273,7 +2289,7 @@ pub const Formatter = struct { if (description.len > 0) { this.addForNewLine(description.len + "()".len); - writer.print(comptime Output.prettyFmt("Symbol({any})", enable_ansi_colors), .{description}); + writer.print(comptime Output.prettyFmt("Symbol({f})", enable_ansi_colors), .{description}); } else { writer.print(comptime Output.prettyFmt("Symbol()", enable_ansi_colors), .{}); } @@ -2311,13 +2327,13 @@ pub const Formatter = struct { if (printable_proto.isEmpty()) { writer.print(comptime Output.prettyFmt("[class (anonymous)]", enable_ansi_colors), .{}); } else { - writer.print(comptime Output.prettyFmt("[class (anonymous) extends {}]", enable_ansi_colors), .{printable_proto}); + writer.print(comptime Output.prettyFmt("[class (anonymous) extends {f}]", enable_ansi_colors), .{printable_proto}); } } else { if (printable_proto.isEmpty()) { - writer.print(comptime Output.prettyFmt("[class {}]", enable_ansi_colors), .{printable}); + writer.print(comptime Output.prettyFmt("[class {f}]", enable_ansi_colors), .{printable}); } else { - writer.print(comptime Output.prettyFmt("[class {} extends {}]", enable_ansi_colors), .{ printable, printable_proto }); + writer.print(comptime Output.prettyFmt("[class {f} extends {f}]", enable_ansi_colors), .{ printable, printable_proto }); } } }, @@ -2333,13 +2349,13 @@ pub const Formatter = struct { if (func_name.isEmpty()) { writer.print(comptime Output.prettyFmt("[Function]", enable_ansi_colors), .{}); } else { - writer.print(comptime Output.prettyFmt("[{}]", enable_ansi_colors), .{func_name}); + writer.print(comptime Output.prettyFmt("[{f}]", enable_ansi_colors), .{func_name}); } } else { if (func_name.isEmpty()) { - writer.print(comptime Output.prettyFmt("[Function: {}]", enable_ansi_colors), .{printable}); + writer.print(comptime Output.prettyFmt("[Function: {f}]", enable_ansi_colors), .{printable}); } else { - writer.print(comptime Output.prettyFmt("[{}: {}]", enable_ansi_colors), .{ func_name, printable }); + writer.print(comptime Output.prettyFmt("[{f}: {f}]", enable_ansi_colors), .{ func_name, printable }); } } }, @@ -2692,14 +2708,14 @@ pub const Formatter = struct { if (!strings.eqlComptime(bool_name.slice(), "Boolean")) { this.addForNewLine(bool_value.len + bool_name.len + "[Boolean (): ]".len); - writer.print(comptime Output.prettyFmt("[Boolean ({s}): {s}]", enable_ansi_colors), .{ + writer.print(comptime Output.prettyFmt("[Boolean ({f}): {f}]", enable_ansi_colors), .{ bool_name, bool_value, }); return; } this.addForNewLine(bool_value.len + "[Boolean: ]".len); - writer.print(comptime Output.prettyFmt("[Boolean: {s}]", enable_ansi_colors), .{bool_value}); + writer.print(comptime Output.prettyFmt("[Boolean: {f}]", enable_ansi_colors), .{bool_value}); return; } if (value.toBoolean()) { @@ -2890,7 +2906,7 @@ pub const Formatter = struct { if (jsType == JSValue.JSType.JSDate) { // in the code for printing dates, it never exceeds this amount var iso_string_buf: [36]u8 = undefined; - var out_buf: []const u8 = std.fmt.bufPrint(&iso_string_buf, "{}", .{str}) catch ""; + var out_buf: []const u8 = std.fmt.bufPrint(&iso_string_buf, "{f}", .{str}) catch ""; if (strings.eql(out_buf, "null")) { out_buf = "Invalid Date"; @@ -2903,7 +2919,7 @@ pub const Formatter = struct { return; } - writer.print("{}", .{str}); + writer.print("{f}", .{str}); }, .Event => { const event_type_value: JSValue = brk: { @@ -3135,7 +3151,7 @@ pub const Formatter = struct { needs_space = false; writer.print( - comptime Output.prettyFmt("{s}=", enable_ansi_colors), + comptime Output.prettyFmt("{f}=", enable_ansi_colors), .{prop.trunc(128)}, ); @@ -3316,7 +3332,7 @@ pub const Formatter = struct { if (display_name.isEmpty()) { display_name = String.static("Object"); } - writer.print(comptime Output.prettyFmt("[{} ...]", enable_ansi_colors), .{ + writer.print(comptime Output.prettyFmt("[{f} ...]", enable_ansi_colors), .{ display_name, }); return; @@ -3335,7 +3351,7 @@ pub const Formatter = struct { try this.printAs(.Function, Writer, writer_, value, jsType, enable_ansi_colors) else { if (try getObjectName(this.globalThis, value)) |name_str| { - writer.print("{} ", .{name_str}); + writer.print("{f} ", .{name_str}); } writer.writeAll("{}"); } @@ -3486,6 +3502,8 @@ pub const Formatter = struct { fn writeTypedArray(this: *ConsoleObject.Formatter, comptime WriterWrapped: type, writer: WriterWrapped, comptime Number: type, slice: []const Number, comptime enable_ansi_colors: bool) void { const fmt_ = if (Number == i64 or Number == u64) "{d}n" + else if (@typeInfo(Number) == .float) + "{f}" else "{d}"; const more = if (Number == i64 or Number == u64) @@ -3500,7 +3518,7 @@ pub const Formatter = struct { const max = 512; leftover = leftover[0..@min(leftover.len, max)]; for (leftover) |el| { - this.printComma(@TypeOf(&writer.ctx), &writer.ctx, enable_ansi_colors) catch return; + this.printComma(@TypeOf(writer.ctx), writer.ctx, enable_ansi_colors) catch return; writer.space(); writer.print(comptime Output.prettyFmt(fmt_, enable_ansi_colors), .{ @@ -3513,7 +3531,7 @@ pub const Formatter = struct { } } - pub fn format(this: *ConsoleObject.Formatter, result: Tag.Result, comptime Writer: type, writer: Writer, value: JSValue, globalThis: *JSGlobalObject, comptime enable_ansi_colors: bool) bun.JSError!void { + pub fn format(this: *ConsoleObject.Formatter, result: Tag.Result, comptime Writer: type, writer: *std.Io.Writer, value: JSValue, globalThis: *JSGlobalObject, comptime enable_ansi_colors: bool) bun.JSError!void { const prevGlobalThis = this.globalThis; defer this.globalThis = prevGlobalThis; this.globalThis = globalThis; @@ -3551,13 +3569,12 @@ pub fn count( const current = @as(u32, if (counter.found_existing) counter.value_ptr.* else @as(u32, 0)) + 1; counter.value_ptr.* = current; - var writer_ctx = &this.writer; - var writer = &writer_ctx.writer(); + const writer = this.writer; if (Output.enable_ansi_colors_stdout) writer.print(comptime Output.prettyFmt("{s}: {d}\n", true), .{ slice, current }) catch unreachable else writer.print(comptime Output.prettyFmt("{s}: {d}\n", false), .{ slice, current }) catch unreachable; - writer_ctx.flush() catch unreachable; + writer.flush() catch unreachable; } pub fn countReset( // console @@ -3668,8 +3685,8 @@ pub fn timeLog( .stack_check = bun.StackCheck.init(), .can_throw_stack_overflow = true, }; - var console = global.bunVM().console; - var writer = console.error_writer.writer(); + const console = global.bunVM().console; + const writer = console.error_writer; const Writer = @TypeOf(writer); for (args[0..args_len]) |arg| { const tag = ConsoleObject.Formatter.Tag.get(arg, global) catch return; @@ -3681,7 +3698,7 @@ pub fn timeLog( } } _ = writer.write("\n") catch 0; - writer.context.flush() catch {}; + writer.flush() catch {}; } pub fn profile( // console diff --git a/src/bun.js/Debugger.zig b/src/bun.js/Debugger.zig index 2dc2d9d6a8..8a1f5e0afe 100644 --- a/src/bun.js/Debugger.zig +++ b/src/bun.js/Debugger.zig @@ -40,7 +40,7 @@ pub fn waitForDebuggerIfNecessary(this: *VirtualMachine) void { bun.Futex.waitForever(&futex_atomic, 1); } if (comptime Environment.enable_logs) - Debugger.log("waitForDebugger: {}", .{Output.ElapsedFormatter{ + Debugger.log("waitForDebugger: {f}", .{Output.ElapsedFormatter{ .colors = Output.enable_ansi_colors_stderr, .duration_ns = @truncate(@as(u128, @intCast(std.time.nanoTimestamp() - bun.cli.start_time))), }}); @@ -60,14 +60,14 @@ pub fn waitForDebuggerIfNecessary(this: *VirtualMachine) void { timer.* = std.mem.zeroes(uv.Timer); timer.init(this.uvLoop()); const onDebuggerTimer = struct { - fn call(handle: *uv.Timer) callconv(.C) void { + fn call(handle: *uv.Timer) callconv(.c) void { const vm = VirtualMachine.get(); vm.debugger.?.poll_ref.unref(vm); uv.uv_close(@ptrCast(handle), deinitTimer); } - fn deinitTimer(handle: *anyopaque) callconv(.C) void { - bun.default_allocator.destroy(@as(*uv.Timer, @alignCast(@ptrCast(handle)))); + fn deinitTimer(handle: *anyopaque) callconv(.c) void { + bun.default_allocator.destroy(@as(*uv.Timer, @ptrCast(@alignCast(handle)))); } }.call; timer.start(wait_for_connection_delay_ms, 0, &onDebuggerTimer); @@ -82,7 +82,7 @@ pub fn waitForDebuggerIfNecessary(this: *VirtualMachine) void { this.eventLoop().autoTickActive(); if (comptime Environment.enable_logs) - log("waited: {}", .{std.fmt.fmtDuration(@intCast(@as(i64, @truncate(std.time.nanoTimestamp() - bun.cli.start_time))))}); + log("waited: {D}", .{@as(i64, @truncate(std.time.nanoTimestamp() - bun.cli.start_time))}); }, .shortly => { // Handle .incrementRefConcurrently @@ -97,7 +97,7 @@ pub fn waitForDebuggerIfNecessary(this: *VirtualMachine) void { this.uwsLoop().tickWithTimeout(&deadline); if (comptime Environment.enable_logs) - log("waited: {}", .{std.fmt.fmtDuration(@intCast(@as(i64, @truncate(std.time.nanoTimestamp() - bun.cli.start_time))))}); + log("waited: {D}", .{@as(i64, @truncate(std.time.nanoTimestamp() - bun.cli.start_time))}); const elapsed = bun.timespec.now(); if (elapsed.order(&deadline) != .lt) { diff --git a/src/bun.js/ResolveMessage.zig b/src/bun.js/ResolveMessage.zig index bec9fa3b40..c7707cb693 100644 --- a/src/bun.js/ResolveMessage.zig +++ b/src/bun.js/ResolveMessage.zig @@ -224,7 +224,7 @@ pub const ResolveMessage = struct { } } - pub fn finalize(this: *ResolveMessage) callconv(.C) void { + pub fn finalize(this: *ResolveMessage) callconv(.c) void { this.msg.deinit(bun.default_allocator); } }; diff --git a/src/bun.js/RuntimeTranspilerCache.zig b/src/bun.js/RuntimeTranspilerCache.zig index 50b05809b3..ed5f9996d8 100644 --- a/src/bun.js/RuntimeTranspilerCache.zig +++ b/src/bun.js/RuntimeTranspilerCache.zig @@ -363,9 +363,9 @@ pub const RuntimeTranspilerCache = struct { buf: []u8, input_hash: u64, ) !usize { - const fmt_name = if (comptime bun.Environment.allow_assert) "{any}.debug.pile" else "{any}.pile"; + const fmt_name = if (comptime bun.Environment.allow_assert) "{x}.debug.pile" else "{x}.pile"; - const printed = try std.fmt.bufPrint(buf, fmt_name, .{std.fmt.fmtSliceHexLower(std.mem.asBytes(&input_hash))}); + const printed = try std.fmt.bufPrint(buf, fmt_name, .{std.mem.asBytes(&input_hash)}); return printed.len; } diff --git a/src/bun.js/RuntimeTranspilerStore.zig b/src/bun.js/RuntimeTranspilerStore.zig index 695a3f10a1..b955cb89b3 100644 --- a/src/bun.js/RuntimeTranspilerStore.zig +++ b/src/bun.js/RuntimeTranspilerStore.zig @@ -70,17 +70,18 @@ pub fn dumpSourceStringFailiable(vm: *VirtualMachine, specifier: string, written ) catch ""; defer bun.default_allocator.free(source_file); - var bufw = std.io.bufferedWriter(file.writer()); - const w = bufw.writer(); + var bufw_buffer: [4096]u8 = undefined; + var bufw = file.writerStreaming(&bufw_buffer); + const w = &bufw.interface; try w.print( \\{{ \\ "version": 3, - \\ "file": {}, + \\ "file": {f}, \\ "sourceRoot": "", - \\ "sources": [{}], - \\ "sourcesContent": [{}], + \\ "sources": [{f}], + \\ "sourcesContent": [{f}], \\ "names": [], - \\ "mappings": "{}" + \\ "mappings": "{f}" \\}} , .{ bun.fmt.formatJSONStringUTF8(std.fs.path.basename(specifier), .{}), @@ -88,7 +89,7 @@ pub fn dumpSourceStringFailiable(vm: *VirtualMachine, specifier: string, written bun.fmt.formatJSONStringUTF8(source_file, .{}), mappings.formatVLQs(), }); - try bufw.flush(); + try w.flush(); } } else { dir.writeFile(.{ diff --git a/src/bun.js/VirtualMachine.zig b/src/bun.js/VirtualMachine.zig index 0e8bba0807..878a90be56 100644 --- a/src/bun.js/VirtualMachine.zig +++ b/src/bun.js/VirtualMachine.zig @@ -206,7 +206,7 @@ pub const OnException = fn (*ZigException) void; pub fn allowAddons(this: *VirtualMachine) callconv(.c) bool { return if (this.transpiler.options.transform_options.allow_addons) |allow_addons| allow_addons else true; } -pub fn allowRejectionHandledWarning(this: *VirtualMachine) callconv(.C) bool { +pub fn allowRejectionHandledWarning(this: *VirtualMachine) callconv(.c) bool { return this.unhandledRejectionsMode() != .bun; } pub fn unhandledRejectionsMode(this: *VirtualMachine) api.UnhandledRejections { @@ -545,14 +545,12 @@ fn wrapUnhandledRejectionErrorForUncaughtException(globalObject: *JSGlobalObject defer if (scope.exception()) |_| scope.clearException(); break :blk Bun__noSideEffectsToString(globalObject.vm(), globalObject, reason); }; - const msg = "This error originated either by throwing inside of an async function without a catch block, " ++ - "or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason \"" ++ - "{s}" ++ - "\"."; + const msg_1 = "This error originated either by throwing inside of an async function without a catch block, " ++ + "or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason \""; if (reasonStr.isString()) { - return globalObject.ERR(.UNHANDLED_REJECTION, msg, .{reasonStr.asString().view(globalObject)}).toJS(); + return globalObject.ERR(.UNHANDLED_REJECTION, msg_1 ++ "{f}\".", .{reasonStr.asString().view(globalObject)}).toJS(); } - return globalObject.ERR(.UNHANDLED_REJECTION, msg, .{"undefined"}).toJS(); + return globalObject.ERR(.UNHANDLED_REJECTION, msg_1 ++ "{s}\".", .{"undefined"}).toJS(); } pub fn unhandledRejection(this: *jsc.VirtualMachine, globalObject: *JSGlobalObject, reason: JSValue, promise: JSValue) void { @@ -794,7 +792,7 @@ pub fn onBeforeExit(this: *VirtualMachine) void { } } -pub fn scriptExecutionStatus(this: *const VirtualMachine) callconv(.C) jsc.ScriptExecutionStatus { +pub fn scriptExecutionStatus(this: *const VirtualMachine) callconv(.c) jsc.ScriptExecutionStatus { if (this.is_shutting_down) { return .stopped; } @@ -808,7 +806,7 @@ pub fn scriptExecutionStatus(this: *const VirtualMachine) callconv(.C) jsc.Scrip return .running; } -pub fn specifierIsEvalEntryPoint(this: *VirtualMachine, specifier: JSValue) callconv(.C) bool { +pub fn specifierIsEvalEntryPoint(this: *VirtualMachine, specifier: JSValue) callconv(.c) bool { if (this.module_loader.eval_source) |eval_source| { var specifier_str = specifier.toBunString(this.global) catch @panic("unexpected exception"); defer specifier_str.deref(); @@ -818,14 +816,14 @@ pub fn specifierIsEvalEntryPoint(this: *VirtualMachine, specifier: JSValue) call return false; } -pub fn setEntryPointEvalResultESM(this: *VirtualMachine, result: JSValue) callconv(.C) void { +pub fn setEntryPointEvalResultESM(this: *VirtualMachine, result: JSValue) callconv(.c) void { // allow esm evaluate to set value multiple times if (!this.entry_point_result.cjs_set_value) { this.entry_point_result.value.set(this.global, result); } } -pub fn setEntryPointEvalResultCJS(this: *VirtualMachine, value: JSValue) callconv(.C) void { +pub fn setEntryPointEvalResultCJS(this: *VirtualMachine, value: JSValue) callconv(.c) void { if (!this.entry_point_result.value.has()) { this.entry_point_result.value.set(this.global, value); this.entry_point_result.cjs_set_value = true; @@ -992,7 +990,7 @@ pub fn initWithModuleGraph( const allocator = opts.allocator; VMHolder.vm = try allocator.create(VirtualMachine); const console = try allocator.create(ConsoleObject); - console.* = ConsoleObject.init(Output.errorWriter(), Output.writer()); + console.init(Output.rawErrorWriter(), Output.rawWriter()); const log = opts.log.?; const transpiler = try Transpiler.init( allocator, @@ -1074,7 +1072,7 @@ pub fn initWithModuleGraph( return vm; } -export fn Bun__isMainThreadVM() callconv(.C) bool { +export fn Bun__isMainThreadVM() callconv(.c) bool { return get().is_main_thread; } @@ -1114,7 +1112,7 @@ pub fn init(opts: Options) !*VirtualMachine { VMHolder.vm = try allocator.create(VirtualMachine); const console = try allocator.create(ConsoleObject); - console.* = ConsoleObject.init(Output.errorWriter(), Output.writer()); + console.init(Output.rawErrorWriter(), Output.rawWriter()); const transpiler = try Transpiler.init( allocator, log, @@ -1277,7 +1275,7 @@ pub fn initWorker( VMHolder.vm = try allocator.create(VirtualMachine); const console = try allocator.create(ConsoleObject); - console.* = ConsoleObject.init(Output.errorWriter(), Output.writer()); + console.init(Output.rawErrorWriter(), Output.rawWriter()); const transpiler = try Transpiler.init( allocator, log, @@ -1375,7 +1373,7 @@ pub fn initBake(opts: Options) anyerror!*VirtualMachine { VMHolder.vm = try allocator.create(VirtualMachine); const console = try allocator.create(ConsoleObject); - console.* = ConsoleObject.init(Output.errorWriter(), Output.writer()); + console.init(Output.rawErrorWriter(), Output.rawWriter()); const transpiler = try Transpiler.init( allocator, log, @@ -1513,7 +1511,7 @@ fn refCountedStringWithWasNew(this: *VirtualMachine, new: *bool, input_: []const return entry.value_ptr.*; } -fn freeRefString(str: *jsc.RefString, _: *anyopaque, _: u32) callconv(.C) void { +fn freeRefString(str: *jsc.RefString, _: *anyopaque, _: u32) callconv(.c) void { str.deinit(); } @@ -1883,13 +1881,13 @@ pub fn processFetchLog(globalThis: *JSGlobalObject, specifier: bun.String, refer .data = logger.rangeData( null, logger.Range.None, - std.fmt.allocPrint(globalThis.allocator(), "Unexpected pending import in \"{}\". To automatically install npm packages with Bun, please use an import statement instead of require() or dynamic import().\nThis error can also happen if dependencies import packages which are not referenced anywhere. Worst case, run `bun install` and opt-out of the node_modules folder until we come up with a better way to handle this error.", .{specifier}) catch unreachable, + std.fmt.allocPrint(globalThis.allocator(), "Unexpected pending import in \"{f}\". To automatically install npm packages with Bun, please use an import statement instead of require() or dynamic import().\nThis error can also happen if dependencies import packages which are not referenced anywhere. Worst case, run `bun install` and opt-out of the node_modules folder until we come up with a better way to handle this error.", .{specifier}) catch unreachable, ), }; } break :brk logger.Msg{ - .data = logger.rangeData(null, logger.Range.None, std.fmt.allocPrint(globalThis.allocator(), "{s} while building {}", .{ @errorName(err), specifier }) catch unreachable), + .data = logger.rangeData(null, logger.Range.None, std.fmt.allocPrint(globalThis.allocator(), "{s} while building {f}", .{ @errorName(err), specifier }) catch unreachable), }; }; { @@ -1935,7 +1933,7 @@ pub fn processFetchLog(globalThis: *JSGlobalObject, specifier: bun.String, refer globalThis.createAggregateError( errors, &ZigString.init( - std.fmt.allocPrint(globalThis.allocator(), "{d} errors building \"{}\"", .{ + std.fmt.allocPrint(globalThis.allocator(), "{d} errors building \"{f}\"", .{ errors.len, specifier, }) catch unreachable, @@ -1961,7 +1959,7 @@ pub fn deinit(this: *VirtualMachine) void { this.has_terminated = true; } -pub const ExceptionList = std.ArrayList(api.JsException); +pub const ExceptionList = std.array_list.Managed(api.JsException); pub fn printException( this: *VirtualMachine, @@ -1992,14 +1990,11 @@ pub noinline fn runErrorHandler(this: *VirtualMachine, result: JSValue, exceptio this.had_errors = false; defer this.had_errors = prev_had_errors; - const error_writer = Output.errorWriter(); - var buffered_writer = std.io.bufferedWriter(error_writer); + const writer = Output.errorWriterBuffered(); defer { - buffered_writer.flush() catch {}; + writer.flush() catch {}; } - const writer = buffered_writer.writer(); - if (result.asException(this.jsc_vm)) |exception| { this.printException( exception, @@ -2053,7 +2048,7 @@ fn loadPreloads(this: *VirtualMachine) !?*JSInternalPromise { null, logger.Loc.Empty, this.allocator, - "{s} resolving preload {}", + "{s} resolving preload {f}", .{ @errorName(e), bun.fmt.formatJSONStringLatin1(preload), @@ -2066,7 +2061,7 @@ fn loadPreloads(this: *VirtualMachine) !?*JSInternalPromise { null, logger.Loc.Empty, this.allocator, - "preload not found {}", + "preload not found {f}", .{ bun.fmt.formatJSONStringLatin1(preload), }, @@ -2380,7 +2375,7 @@ pub fn printErrorlikeObject( exception_list: ?*ExceptionList, formatter: *ConsoleObject.Formatter, comptime Writer: type, - writer: Writer, + writer: *std.Io.Writer, comptime allow_ansi_color: bool, comptime allow_side_effects: bool, ) void { @@ -2414,10 +2409,10 @@ pub fn printErrorlikeObject( current_exception_list: ?*ExceptionList = null, formatter: *ConsoleObject.Formatter, - pub fn iteratorWithColor(vm: *VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.C) void { + pub fn iteratorWithColor(vm: *VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.c) void { iterator(vm, globalObject, nextValue, ctx.?, true); } - pub fn iteratorWithOutColor(vm: *VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.C) void { + pub fn iteratorWithOutColor(vm: *VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.c) void { iterator(vm, globalObject, nextValue, ctx.?, false); } fn iterator(_: *VM, _: *JSGlobalObject, nextValue: JSValue, ctx: ?*anyopaque, comptime color: bool) void { @@ -2451,7 +2446,7 @@ fn printErrorFromMaybePrivateData( exception_list: ?*ExceptionList, formatter: *ConsoleObject.Formatter, comptime Writer: type, - writer: Writer, + writer: *std.Io.Writer, comptime allow_ansi_color: bool, comptime allow_side_effects: bool, ) bool { @@ -2541,12 +2536,12 @@ pub fn printStackTrace(comptime Writer: type, writer: Writer, trace: ZigStackTra if (file.len == 0 and func.len == 0) continue; - const has_name = std.fmt.count("{}", .{frame.nameFormatter(false)}) > 0; + const has_name = std.fmt.count("{f}", .{frame.nameFormatter(false)}) > 0; if (has_name and !frame.position.isInvalid()) { try writer.print( comptime Output.prettyFmt( - " at {} ({})\n", + " at {f} ({f})\n", allow_ansi_colors, ), .{ @@ -2564,7 +2559,7 @@ pub fn printStackTrace(comptime Writer: type, writer: Writer, trace: ZigStackTra } else if (!frame.position.isInvalid()) { try writer.print( comptime Output.prettyFmt( - " at {}\n", + " at {f}\n", allow_ansi_colors, ), .{ @@ -2579,7 +2574,7 @@ pub fn printStackTrace(comptime Writer: type, writer: Writer, trace: ZigStackTra } else if (has_name) { try writer.print( comptime Output.prettyFmt( - " at {}\n", + " at {f}\n", allow_ansi_colors, ), .{ @@ -2591,7 +2586,7 @@ pub fn printStackTrace(comptime Writer: type, writer: Writer, trace: ZigStackTra } else { try writer.print( comptime Output.prettyFmt( - " at {}\n", + " at {f}\n", allow_ansi_colors, ), .{ @@ -2969,7 +2964,7 @@ fn printErrorInstance( const int_size = std.fmt.count("{d}", .{display_line}); const pad = max_line_number_pad - int_size; last_pad = pad; - try writer.writeByteNTimes(' ', pad); + try writer.splatByteAll(' ', pad); const trimmed = std.mem.trimRight(u8, std.mem.trim(u8, source.text.slice(), "\n"), "\t "); const clamped = trimmed[0..@min(trimmed.len, max_line_length)]; @@ -2978,7 +2973,7 @@ fn printErrorInstance( const fmt = if (comptime allow_ansi_color) " | ... truncated \n" else "\n"; try writer.print( comptime Output.prettyFmt( - "{d} | {}" ++ fmt, + "{d} | {f}" ++ fmt, allow_ansi_color, ), .{ display_line, bun.fmt.fmtJavaScript(clamped, .{ .enable_colors = allow_ansi_color }) }, @@ -2986,7 +2981,7 @@ fn printErrorInstance( } else { try writer.print( comptime Output.prettyFmt( - "{d} | {}\n", + "{d} | {f}\n", allow_ansi_color, ), .{ display_line, bun.fmt.fmtJavaScript(clamped, .{ .enable_colors = allow_ansi_color }) }, @@ -3043,7 +3038,7 @@ fn printErrorInstance( const fmt = if (comptime allow_ansi_color) " | ... truncated \n" else "\n"; try writer.print( comptime Output.prettyFmt( - "- | {}" ++ fmt, + "- | {f}" ++ fmt, allow_ansi_color, ), .{bun.fmt.fmtJavaScript(text, .{ .enable_colors = allow_ansi_color })}, @@ -3051,7 +3046,7 @@ fn printErrorInstance( } else { try writer.print( comptime Output.prettyFmt( - "- | {}\n", + "- | {f}\n", allow_ansi_color, ), .{bun.fmt.fmtJavaScript(text, .{ .enable_colors = allow_ansi_color })}, @@ -3064,7 +3059,7 @@ fn printErrorInstance( const display_line = source.line + 1; const int_size = std.fmt.count("{d}", .{display_line}); const pad = max_line_number_pad - int_size; - try writer.writeByteNTimes(' ', pad); + try writer.splatByteAll(' ', pad); defer source.text.deinit(); const text = source.text.slice(); const trimmed = std.mem.trimRight(u8, std.mem.trim(u8, text, "\n"), "\t "); @@ -3076,7 +3071,7 @@ fn printErrorInstance( const fmt = if (comptime allow_ansi_color) " | ... truncated \n\n" else "\n\n"; try writer.print( comptime Output.prettyFmt( - "{d} | {}" ++ fmt, + "{d} | {f}" ++ fmt, allow_ansi_color, ), .{ display_line, bun.fmt.fmtJavaScript(clamped, .{ .enable_colors = allow_ansi_color }) }, @@ -3084,7 +3079,7 @@ fn printErrorInstance( } else { try writer.print( comptime Output.prettyFmt( - "{d} | {}\n", + "{d} | {f}\n", allow_ansi_color, ), .{ display_line, bun.fmt.fmtJavaScript(clamped, .{ .enable_colors = allow_ansi_color }) }, @@ -3093,7 +3088,7 @@ fn printErrorInstance( if (clamped.len < max_line_length_with_divot or top.position.column.zeroBased() > max_line_length_with_divot) { const indent = max_line_number_pad + " | ".len + @as(u64, @intCast(top.position.column.zeroBased())); - try writer.writeByteNTimes(' ', indent); + try writer.splatByteAll(' ', indent); try writer.print(comptime Output.prettyFmt( "^\n", allow_ansi_color, @@ -3112,7 +3107,7 @@ fn printErrorInstance( } // This is usually unsafe to do, but we are protecting them each time first - var errors_to_append = std.ArrayList(JSValue).init(this.allocator); + var errors_to_append = std.array_list.Managed(JSValue).init(this.allocator); defer { for (errors_to_append.items) |err| { err.unprotect(); @@ -3178,9 +3173,9 @@ fn printErrorInstance( const pad_left = longest_name -| field.length(); is_first_property = false; - try writer.writeByteNTimes(' ', pad_left); + try writer.splatByteAll(' ', pad_left); - try writer.print(comptime Output.prettyFmt(" {}: ", allow_ansi_color), .{field}); + try writer.print(comptime Output.prettyFmt(" {f}: ", allow_ansi_color), .{field}); // When we're printing errors for a top-level uncaught exception / rejection, suppress further errors here. if (allow_side_effects) { @@ -3218,9 +3213,9 @@ fn printErrorInstance( if (code) |code_str| { const pad_left = longest_name -| "code".len; is_first_property = false; - try writer.writeByteNTimes(' ', pad_left); + try writer.splatByteAll(' ', pad_left); - try writer.print(comptime Output.prettyFmt(" code: {}\n", allow_ansi_color), .{ + try writer.print(comptime Output.prettyFmt(" code: {f}\n", allow_ansi_color), .{ bun.fmt.quote(code_str), }); } @@ -3265,7 +3260,7 @@ fn printErrorInstance( if (!exception.browser_url.isEmpty()) { try writer.print( comptime Output.prettyFmt( - " from browser tab {}\n", + " from browser tab {f}\n", allow_ansi_color, ), .{exception.browser_url}, @@ -3338,16 +3333,16 @@ fn printErrorNameAndMessage( break :brk .{ String.empty, message }; } else .{ name, message }; - try writer.print(comptime Output.prettyFmt("{}{}\n", allow_ansi_color), .{ + try writer.print(comptime Output.prettyFmt("{f}{f}\n", allow_ansi_color), .{ error_display_level.formatter(display_name, allow_ansi_color, .include_colon), display_message, }); } else if (!name.isEmpty()) { - try writer.print("{}\n", .{error_display_level.formatter(name, allow_ansi_color, .include_colon)}); + try writer.print("{f}\n", .{error_display_level.formatter(name, allow_ansi_color, .include_colon)}); } else if (!message.isEmpty()) { - try writer.print(comptime Output.prettyFmt("{}{}\n", allow_ansi_color), .{ error_display_level.formatter(bun.String.empty, allow_ansi_color, .include_colon), message }); + try writer.print(comptime Output.prettyFmt("{f}{f}\n", allow_ansi_color), .{ error_display_level.formatter(bun.String.empty, allow_ansi_color, .include_colon), message }); } else { - try writer.print(comptime Output.prettyFmt("{}\n", allow_ansi_color), .{error_display_level.formatter(bun.String.empty, allow_ansi_color, .exclude_colon)}); + try writer.print(comptime Output.prettyFmt("{f}\n", allow_ansi_color), .{error_display_level.formatter(bun.String.empty, allow_ansi_color, .exclude_colon)}); } } @@ -3363,10 +3358,9 @@ pub noinline fn printGithubAnnotation(exception: *ZigException) void { const allocator = bun.default_allocator; Output.flush(); - var buffered_writer = std.io.bufferedWriter(Output.errorWriter()); - var writer = buffered_writer.writer(); + var writer = Output.errorWriterBuffered(); defer { - buffered_writer.flush() catch {}; + writer.flush() catch {}; } var has_location = false; @@ -3392,7 +3386,7 @@ pub noinline fn printGithubAnnotation(exception: *ZigException) void { if (name.isEmpty() or name.eqlComptime("Error")) { writer.print("error", .{}) catch {}; } else { - writer.print("{s}", .{name.githubAction()}) catch {}; + writer.print("{f}", .{name.githubAction()}) catch {}; } if (!message.isEmpty()) { @@ -3405,11 +3399,11 @@ pub noinline fn printGithubAnnotation(exception: *ZigException) void { cursor = i + 1; if (msg[i] == '\n') { const first_line = bun.String.borrowUTF8(msg[0..i]); - writer.print(": {s}::", .{first_line.githubAction()}) catch {}; + writer.print(": {f}::", .{first_line.githubAction()}) catch {}; break; } } else { - writer.print(": {s}::", .{message.githubAction()}) catch {}; + writer.print(": {f}::", .{message.githubAction()}) catch {}; } while (strings.indexOfNewlineOrNonASCIIOrANSI(msg, cursor)) |i| { @@ -3421,7 +3415,7 @@ pub noinline fn printGithubAnnotation(exception: *ZigException) void { if (cursor > 0) { const body = ZigString.initUTF8(msg[cursor..]); - writer.print("{s}", .{body.githubAction()}) catch {}; + writer.print("{f}", .{body.githubAction()}) catch {}; } } else { writer.print("::", .{}) catch {}; @@ -3442,14 +3436,14 @@ pub noinline fn printGithubAnnotation(exception: *ZigException) void { if (file.len == 0 and func.len == 0) continue; - const has_name = std.fmt.count("{any}", .{frame.nameFormatter( + const has_name = std.fmt.count("{f}", .{frame.nameFormatter( false, )}) > 0; // %0A = escaped newline if (has_name) { writer.print( - "%0A at {any} ({any})", + "%0A at {f} ({f})", .{ frame.nameFormatter(false), frame.sourceURLFormatter( @@ -3462,7 +3456,7 @@ pub noinline fn printGithubAnnotation(exception: *ZigException) void { ) catch {}; } else { writer.print( - "%0A at {any}", + "%0A at {f}", .{ frame.sourceURLFormatter( file, @@ -3593,7 +3587,7 @@ pub const IPCInstance = struct { }; pub fn initIPCInstance(this: *VirtualMachine, info: bun.FD, mode: IPC.Mode) void { - IPC.log("initIPCInstance {}", .{info}); + IPC.log("initIPCInstance {f}", .{info}); this.ipc = .{ .waiting = .{ .info = info, .mode = mode } }; } @@ -3602,7 +3596,7 @@ pub fn getIPCInstance(this: *VirtualMachine) ?*IPCInstance { if (this.ipc.? != .waiting) return this.ipc.?.initialized; const opts = this.ipc.?.waiting; - IPC.log("getIPCInstance {}", .{opts.info}); + IPC.log("getIPCInstance {f}", .{opts.info}); this.event_loop.ensureWaker(); @@ -3646,7 +3640,7 @@ pub fn getIPCInstance(this: *VirtualMachine) ?*IPCInstance { instance.data.windowsConfigureClient(opts.info) catch { instance.deinit(); this.ipc = null; - Output.warn("Unable to start IPC pipe '{}'", .{opts.info}); + Output.warn("Unable to start IPC pipe '{f}'", .{opts.info}); return null; }; diff --git a/src/bun.js/api/BunObject.zig b/src/bun.js/api/BunObject.zig index 596aa7c18f..f522c106c3 100644 --- a/src/bun.js/api/BunObject.zig +++ b/src/bun.js/api/BunObject.zig @@ -209,7 +209,7 @@ pub fn shellEscape(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) b if (globalThis.hasException()) return .zero; defer bunstr.deref(); - var outbuf = std.ArrayList(u8).init(bun.default_allocator); + var outbuf = std.array_list.Managed(u8).init(bun.default_allocator); defer outbuf.deinit(); if (bun.shell.needsEscapeBunstr(bunstr)) { @@ -246,7 +246,7 @@ pub fn braces(global: *jsc.JSGlobalObject, brace_str: bun.String, opts: gen.Brac const expansion_count = Braces.calculateExpandedAmount(lexer_output.tokens.items[0..]); if (opts.tokenize) { - const str = try std.json.stringifyAlloc(global.bunVM().allocator, lexer_output.tokens.items[0..], .{}); + const str = bun.handleOom(std.fmt.allocPrint(global.bunVM().allocator, "{f}", .{std.json.fmt(lexer_output.tokens.items[0..], .{})})); defer global.bunVM().allocator.free(str); var bun_str = bun.String.fromBytes(str); return bun_str.toJS(global); @@ -256,7 +256,7 @@ pub fn braces(global: *jsc.JSGlobalObject, brace_str: bun.String, opts: gen.Brac const ast_node = parser.parse() catch |err| { return global.throwError(err, "failed to parse braces"); }; - const str = try std.json.stringifyAlloc(global.bunVM().allocator, ast_node, .{}); + const str = bun.handleOom(std.fmt.allocPrint(global.bunVM().allocator, "{f}", .{std.json.fmt(ast_node, .{})})); defer global.bunVM().allocator.free(str); var bun_str = bun.String.fromBytes(str); return bun_str.toJS(global); @@ -266,10 +266,10 @@ pub fn braces(global: *jsc.JSGlobalObject, brace_str: bun.String, opts: gen.Brac return bun.String.toJSArray(global, &.{brace_str}); } - var expanded_strings = try arena.allocator().alloc(std.ArrayList(u8), expansion_count); + var expanded_strings = try arena.allocator().alloc(std.array_list.Managed(u8), expansion_count); for (0..expansion_count) |i| { - expanded_strings[i] = std.ArrayList(u8).init(arena.allocator()); + expanded_strings[i] = std.array_list.Managed(u8).init(arena.allocator()); } Braces.expand( @@ -394,12 +394,10 @@ pub fn inspectTable(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) } // very stable memory address - var array = bun.handleOom(MutableString.init(bun.default_allocator, 0)); + var array = std.Io.Writer.Allocating.init(bun.default_allocator); defer array.deinit(); - var buffered_writer_ = MutableString.BufferedWriter{ .context = &array }; - var buffered_writer = &buffered_writer_; + const writer = &array.writer; - const writer = buffered_writer.writer(); const Writer = @TypeOf(writer); const properties: JSValue = if (arguments[1].jsType().isArray()) arguments[1] else .js_undefined; var table_printer = try ConsoleObject.TablePrinter.init( @@ -420,9 +418,11 @@ pub fn inspectTable(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) }, } - try buffered_writer.flush(); + writer.flush() catch |e| switch (e) { + error.WriteFailed => return error.OutOfMemory, + }; - return bun.String.createUTF8ForJS(globalThis, array.slice()); + return bun.String.createUTF8ForJS(globalThis, array.written()); } pub fn inspect(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!jsc.JSValue { @@ -452,13 +452,9 @@ pub fn inspect(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.J } // very stable memory address - var array = MutableString.init(bun.default_allocator, 0) catch unreachable; + var array = std.Io.Writer.Allocating.init(bun.default_allocator); defer array.deinit(); - var buffered_writer_ = MutableString.BufferedWriter{ .context = &array }; - var buffered_writer = &buffered_writer_; - - const writer = buffered_writer.writer(); - const Writer = MutableString.BufferedWriter.Writer; + const writer = &array.writer; // we buffer this because it'll almost always be < 4096 // when it's under 4096, we want to avoid the dynamic allocation try ConsoleObject.format2( @@ -466,17 +462,15 @@ pub fn inspect(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.J globalThis, arguments.ptr, 1, - Writer, - Writer, writer, formatOptions, ); if (globalThis.hasException()) return error.JSError; - buffered_writer.flush() catch return globalThis.throwOutOfMemory(); + writer.flush() catch return globalThis.throwOutOfMemory(); // we are going to always clone to keep things simple for now // the common case here will be stack-allocated, so it should be fine - var out = ZigString.init(array.slice()).withEncoding(); + var out = ZigString.init(array.written()).withEncoding(); const ret = out.toJS(globalThis); return ret; @@ -484,25 +478,22 @@ pub fn inspect(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.J export fn Bun__inspect(globalThis: *JSGlobalObject, value: JSValue) bun.String { // very stable memory address - var array = MutableString.init(bun.default_allocator, 0) catch unreachable; + var array = std.Io.Writer.Allocating.init(bun.default_allocator); defer array.deinit(); - var buffered_writer = MutableString.BufferedWriter{ .context = &array }; - const writer = buffered_writer.writer(); + const writer = &array.writer; var formatter = ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); - writer.print("{}", .{value.toFmt(&formatter)}) catch return .empty; - buffered_writer.flush() catch return .empty; - return bun.String.cloneUTF8(array.slice()); + writer.print("{f}", .{value.toFmt(&formatter)}) catch return .empty; + writer.flush() catch return .empty; + return bun.String.cloneUTF8(array.written()); } export fn Bun__inspect_singleline(globalThis: *JSGlobalObject, value: JSValue) bun.String { - var array = MutableString.init(bun.default_allocator, 0) catch unreachable; + var array = std.Io.Writer.Allocating.init(bun.default_allocator); defer array.deinit(); - var buffered_writer = MutableString.BufferedWriter{ .context = &array }; - const writer = buffered_writer.writer(); - const Writer = MutableString.BufferedWriter.Writer; - ConsoleObject.format2(.Debug, globalThis, (&value)[0..1].ptr, 1, Writer, Writer, writer, .{ + const writer = &array.writer; + ConsoleObject.format2(.Debug, globalThis, (&value)[0..1].ptr, 1, writer, .{ .enable_colors = false, .add_newline = false, .flush = false, @@ -512,8 +503,8 @@ export fn Bun__inspect_singleline(globalThis: *JSGlobalObject, value: JSValue) b .single_line = true, }) catch return .empty; if (globalThis.hasException()) return .empty; - buffered_writer.flush() catch return .empty; - return bun.String.cloneUTF8(array.slice()); + writer.flush() catch return .empty; + return bun.String.cloneUTF8(array.written()); } pub fn getInspect(globalObject: *jsc.JSGlobalObject, _: *jsc.JSObject) jsc.JSValue { @@ -760,14 +751,14 @@ pub fn sleepSync(globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) b return globalObject.throwInvalidArguments("argument to sleepSync must not be negative, got {d}", .{milliseconds}); } - std.time.sleep(@as(u64, @intCast(milliseconds)) * std.time.ns_per_ms); + std.Thread.sleep(@as(u64, @intCast(milliseconds)) * std.time.ns_per_ms); return .js_undefined; } pub fn gc(vm: *jsc.VirtualMachine, sync: bool) usize { return vm.garbageCollect(sync); } -export fn Bun__gc(vm: *jsc.VirtualMachine, sync: bool) callconv(.C) usize { +export fn Bun__gc(vm: *jsc.VirtualMachine, sync: bool) callconv(.c) usize { return @call(.always_inline, gc, .{ vm, sync }); } @@ -846,9 +837,9 @@ fn doResolveWithArgs(ctx: *jsc.JSGlobalObject, specifier: bun.String, from: bun. if (query_string.len > 0) { var stack = std.heap.stackFallback(1024, ctx.allocator()); const allocator = stack.get(); - var arraylist = std.ArrayList(u8).initCapacity(allocator, 1024) catch unreachable; + var arraylist = std.array_list.Managed(u8).initCapacity(allocator, 1024) catch unreachable; defer arraylist.deinit(); - try arraylist.writer().print("{any}{any}", .{ + try arraylist.writer().print("{f}{f}", .{ errorable.result.value, query_string, }); @@ -931,7 +922,7 @@ export fn Bun__resolveSyncWithPaths( } export fn Bun__resolveSyncWithStrings(global: *JSGlobalObject, specifier: *bun.String, source: *bun.String, is_esm: bool) jsc.JSValue { - Output.scoped(.importMetaResolve, .visible)("source: {s}, specifier: {s}", .{ source.*, specifier.* }); + Output.scoped(.importMetaResolve, .visible)("source: {f}, specifier: {f}", .{ source.*, specifier.* }); return jsc.toJSHostCall(global, @src(), doResolveWithArgs, .{ global, specifier.*, source.*, is_esm, true, false }); } @@ -1246,7 +1237,7 @@ pub fn mmapFile(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun. }; const S = struct { - pub fn x(ptr: ?*anyopaque, size: ?*anyopaque) callconv(.C) void { + pub fn x(ptr: ?*anyopaque, size: ?*anyopaque) callconv(.c) void { _ = bun.sys.munmap(@as([*]align(std.heap.page_size_min) const u8, @ptrCast(@alignCast(ptr)))[0..@intFromPtr(size)]); } }; @@ -1328,7 +1319,7 @@ pub fn getEmbeddedFiles(globalThis: *jsc.JSGlobalObject, _: *jsc.JSObject) bun.J const graph = vm.standalone_module_graph orelse return try jsc.JSValue.createEmptyArray(globalThis, 0); const unsorted_files = graph.files.values(); - var sort_indices = bun.handleOom(std.ArrayList(u32).initCapacity(bun.default_allocator, unsorted_files.len)); + var sort_indices = bun.handleOom(std.array_list.Managed(u32).initCapacity(bun.default_allocator, unsorted_files.len)); defer sort_indices.deinit(); for (0..unsorted_files.len) |index| { // Some % of people using `bun build --compile` want to obscure the source code @@ -1984,7 +1975,7 @@ pub const JSZstd = struct { // .enable_colors = true, // .check_for_unhighlighted_write = false, // }); -// std.fmt.format(writer.writer(), "{}", .{formatter}) catch |err| { +// writer.writer().print("{f}", .{formatter}) catch |err| { // return globalThis.throwError(err, "Error formatting code"); // }; @@ -2005,7 +1996,7 @@ comptime { const string = []const u8; // LazyProperty initializers for stdin/stderr/stdout -pub fn createBunStdin(globalThis: *jsc.JSGlobalObject) callconv(.C) jsc.JSValue { +pub fn createBunStdin(globalThis: *jsc.JSGlobalObject) callconv(.c) jsc.JSValue { var rare_data = globalThis.bunVM().rareData(); var store = rare_data.stdin(); store.ref(); @@ -2015,7 +2006,7 @@ pub fn createBunStdin(globalThis: *jsc.JSGlobalObject) callconv(.C) jsc.JSValue return blob.toJS(globalThis); } -pub fn createBunStderr(globalThis: *jsc.JSGlobalObject) callconv(.C) jsc.JSValue { +pub fn createBunStderr(globalThis: *jsc.JSGlobalObject) callconv(.c) jsc.JSValue { var rare_data = globalThis.bunVM().rareData(); var store = rare_data.stderr(); store.ref(); @@ -2025,7 +2016,7 @@ pub fn createBunStderr(globalThis: *jsc.JSGlobalObject) callconv(.C) jsc.JSValue return blob.toJS(globalThis); } -pub fn createBunStdout(globalThis: *jsc.JSGlobalObject) callconv(.C) jsc.JSValue { +pub fn createBunStdout(globalThis: *jsc.JSGlobalObject) callconv(.c) jsc.JSValue { var rare_data = globalThis.bunVM().rareData(); var store = rare_data.stdout(); store.ref(); diff --git a/src/bun.js/api/FFIObject.zig b/src/bun.js/api/FFIObject.zig index b00bbf88cb..d45da78d31 100644 --- a/src/bun.js/api/FFIObject.zig +++ b/src/bun.js/api/FFIObject.zig @@ -415,7 +415,7 @@ const ValueOrError = union(enum) { }; pub fn getPtrSlice(globalThis: *JSGlobalObject, value: JSValue, byteOffset: ?JSValue, byteLength: ?JSValue) ValueOrError { - if (!value.isNumber() or value.asNumber() < 0 or value.asNumber() > std.math.maxInt(usize)) { + if (!value.isNumber() or value.asNumber() < 0 or value.asNumber() > @as(f64, @as(comptime_float, std.math.maxInt(usize)))) { return .{ .err = globalThis.toInvalidArguments("ptr must be a number.", .{}) }; } diff --git a/src/bun.js/api/HashObject.zig b/src/bun.js/api/HashObject.zig index 7fea5e68a5..3d547a1a62 100644 --- a/src/bun.js/api/HashObject.zig +++ b/src/bun.js/api/HashObject.zig @@ -29,7 +29,7 @@ pub const xxHash3 = hashWrap(struct { pub const murmur32v2 = hashWrap(std.hash.murmur.Murmur2_32); pub const murmur32v3 = hashWrap(std.hash.murmur.Murmur3_32); pub const murmur64v2 = hashWrap(std.hash.murmur.Murmur2_64); -pub const rapidhash = hashWrap(std.hash.RapidHash); +pub const rapidhash = hashWrap(bun.deprecated.RapidHash); pub fn create(globalThis: *jsc.JSGlobalObject) jsc.JSValue { const function = jsc.createCallback(globalThis, ZigString.static("hash"), 1, wyhash); diff --git a/src/bun.js/api/JSBundler.zig b/src/bun.js/api/JSBundler.zig index 7c8673868c..0b549f9a5d 100644 --- a/src/bun.js/api/JSBundler.zig +++ b/src/bun.js/api/JSBundler.zig @@ -617,7 +617,7 @@ pub const JSBundler = struct { const value_type = property_value.jsType(); if (!value_type.isStringLike()) { - return globalThis.throwInvalidArguments("define \"{s}\" must be a JSON string", .{prop}); + return globalThis.throwInvalidArguments("define \"{f}\" must be a JSON string", .{prop}); } var val = jsc.ZigString.init(""); @@ -1471,7 +1471,7 @@ pub const BuildArtifact = struct { globalThis: *jsc.JSGlobalObject, ) JSValue { var buf: [512]u8 = undefined; - const out = std.fmt.bufPrint(&buf, "{any}", .{bun.fmt.truncatedHash32(this.hash)}) catch @panic("Unexpected"); + const out = std.fmt.bufPrint(&buf, "{f}", .{bun.fmt.truncatedHash32(this.hash)}) catch @panic("Unexpected"); return ZigString.init(out).toJS(globalThis); } @@ -1495,7 +1495,7 @@ pub const BuildArtifact = struct { return jsc.JSValue.jsNull(); } - pub fn finalize(this: *BuildArtifact) callconv(.C) void { + pub fn finalize(this: *BuildArtifact) callconv(.c) void { this.deinit(); bun.default_allocator.destroy(this); @@ -1552,7 +1552,7 @@ pub const BuildArtifact = struct { try formatter.writeIndent(Writer, writer); try writer.print( comptime Output.prettyFmt( - "hash: \"{any}\"", + "hash: \"{f}\"", enable_ansi_colors, ), .{bun.fmt.truncatedHash32(this.hash)}, diff --git a/src/bun.js/api/JSTranspiler.zig b/src/bun.js/api/JSTranspiler.zig index b0fab5ab2f..fd76a26a97 100644 --- a/src/bun.js/api/JSTranspiler.zig +++ b/src/bun.js/api/JSTranspiler.zig @@ -80,7 +80,7 @@ pub const Config = struct { const value_type = property_value.jsType(); if (!value_type.isStringLike()) { - return globalThis.throwInvalidArguments("define \"{s}\" must be a JSON string", .{prop}); + return globalThis.throwInvalidArguments("define \"{f}\" must be a JSON string", .{prop}); } names[define_iter.i] = prop.toOwnedSlice(allocator) catch unreachable; @@ -89,7 +89,7 @@ pub const Config = struct { if (val.len == 0) { val = jsc.ZigString.init("\"\""); } - values[define_iter.i] = std.fmt.allocPrint(allocator, "{}", .{val}) catch unreachable; + values[define_iter.i] = std.fmt.allocPrint(allocator, "{f}", .{val}) catch unreachable; } this.transform.define = api.StringMap{ @@ -109,7 +109,7 @@ pub const Config = struct { try external.toZigString(&zig_str, globalThis); if (zig_str.len == 0) break :external; var single_external = allocator.alloc(string, 1) catch unreachable; - single_external[0] = std.fmt.allocPrint(allocator, "{}", .{zig_str}) catch unreachable; + single_external[0] = std.fmt.allocPrint(allocator, "{f}", .{zig_str}) catch unreachable; this.transform.external = single_external; } else if (toplevel_type.isArray()) { const count = try external.getLength(globalThis); @@ -126,7 +126,7 @@ pub const Config = struct { var zig_str = jsc.ZigString.init(""); try entry.toZigString(&zig_str, globalThis); if (zig_str.len == 0) continue; - externals[i] = std.fmt.allocPrint(allocator, "{}", .{zig_str}) catch unreachable; + externals[i] = std.fmt.allocPrint(allocator, "{f}", .{zig_str}) catch unreachable; i += 1; } @@ -330,7 +330,7 @@ pub const Config = struct { if (!value.isString()) continue; const str = try value.getZigString(globalThis); if (str.len == 0) continue; - const name = std.fmt.bufPrint(buf.items.ptr[buf.items.len..buf.capacity], "{}", .{str}) catch { + const name = std.fmt.bufPrint(buf.items.ptr[buf.items.len..buf.capacity], "{f}", .{str}) catch { return globalThis.throwInvalidArguments("Error reading exports.eliminate. TODO: utf-16", .{}); }; const name_slice = buf.items.ptr[buf.items.len..][0..name.len]; @@ -624,7 +624,7 @@ fn exportReplacementValue(value: JSValue, globalThis: *JSGlobalObject, allocator if (value.isString()) { const str = JSAst.E.String{ - .data = try std.fmt.allocPrint(allocator, "{}", .{try value.getZigString(globalThis)}), + .data = try std.fmt.allocPrint(allocator, "{f}", .{try value.getZigString(globalThis)}), }; const out = try allocator.create(JSAst.E.String); out.* = str; diff --git a/src/bun.js/api/Timer.zig b/src/bun.js/api/Timer.zig index 19afe26222..3559134bd0 100644 --- a/src/bun.js/api/Timer.zig +++ b/src/bun.js/api/Timer.zig @@ -133,7 +133,7 @@ pub const All = struct { } } - pub fn onUVTimer(uv_timer_t: *uv.Timer) callconv(.C) void { + pub fn onUVTimer(uv_timer_t: *uv.Timer) callconv(.c) void { const all: *All = @fieldParentPtr("uv_timer", uv_timer_t); const vm: *VirtualMachine = @alignCast(@fieldParentPtr("timer", all)); all.drainTimers(vm); @@ -155,7 +155,7 @@ pub const All = struct { // Matches Node.js behavior this.uv_idle.start(struct { - fn cb(_: *uv.uv_idle_t) callconv(.C) void { + fn cb(_: *uv.uv_idle_t) callconv(.c) void { // prevent libuv from polling forever } }.cb); @@ -200,7 +200,7 @@ pub const All = struct { } } - pub fn getNextID() callconv(.C) i32 { + pub fn getNextID() callconv(.c) i32 { VirtualMachine.get().timer.last_id +%= 1; return VirtualMachine.get().timer.last_id; } @@ -257,7 +257,7 @@ pub const All = struct { return false; } - export fn Bun__internal_drainTimers(vm: *VirtualMachine) callconv(.C) void { + export fn Bun__internal_drainTimers(vm: *VirtualMachine) callconv(.c) void { drainTimers(&vm.timer, vm); } diff --git a/src/bun.js/api/Timer/DateHeaderTimer.zig b/src/bun.js/api/Timer/DateHeaderTimer.zig index 7969218c10..e4cfec106b 100644 --- a/src/bun.js/api/Timer/DateHeaderTimer.zig +++ b/src/bun.js/api/Timer/DateHeaderTimer.zig @@ -65,7 +65,7 @@ pub fn run(this: *DateHeaderTimer, vm: *VirtualMachine) void { } } -pub export fn Bun__internal_ensureDateHeaderTimerIsEnabled(loop: *uws.Loop) callconv(.C) void { +pub export fn Bun__internal_ensureDateHeaderTimerIsEnabled(loop: *uws.Loop) callconv(.c) void { if (jsc.VirtualMachine.getOrNull()) |vm| { vm.timer.updateDateHeaderTimerIfNecessary(loop, vm); } diff --git a/src/bun.js/api/bun/dns.zig b/src/bun.js/api/bun/dns.zig index 39dc1bb30e..df8073350c 100644 --- a/src/bun.js/api/bun/dns.zig +++ b/src/bun.js/api/bun/dns.zig @@ -1,6 +1,6 @@ const dns = @This(); -const GetAddrInfoAsyncCallback = fn (i32, ?*std.c.addrinfo, ?*anyopaque) callconv(.C) void; +const GetAddrInfoAsyncCallback = fn (i32, ?*std.c.addrinfo, ?*anyopaque) callconv(.c) void; const INET6_ADDRSTRLEN = if (bun.Environment.isWindows) 65 else 46; const IANA_DNS_PORT = 53; @@ -14,9 +14,9 @@ const LibInfo = struct { // static int32_t (*getaddrinfo_async_handle_reply)(void*); // static void (*getaddrinfo_async_cancel)(mach_port_t); // typedef void getaddrinfo_async_callback(int32_t, struct addrinfo*, void*) - const GetaddrinfoAsyncStart = fn (*bun.mach_port, noalias node: ?[*:0]const u8, noalias service: ?[*:0]const u8, noalias hints: ?*const std.c.addrinfo, callback: *const GetAddrInfoAsyncCallback, noalias context: ?*anyopaque) callconv(.C) i32; - const GetaddrinfoAsyncHandleReply = fn (?*bun.mach_port) callconv(.C) i32; - const GetaddrinfoAsyncCancel = fn (?*bun.mach_port) callconv(.C) void; + const GetaddrinfoAsyncStart = fn (*bun.mach_port, noalias node: ?[*:0]const u8, noalias service: ?[*:0]const u8, noalias hints: ?*const std.c.addrinfo, callback: *const GetAddrInfoAsyncCallback, noalias context: ?*anyopaque) callconv(.c) i32; + const GetaddrinfoAsyncHandleReply = fn (?*bun.mach_port) callconv(.c) i32; + const GetaddrinfoAsyncCancel = fn (?*bun.mach_port) callconv(.c) void; var handle: ?*anyopaque = null; var loaded = false; @@ -168,9 +168,9 @@ const LibC = struct { const LibUVBackend = struct { const log = Output.scoped(.LibUVBackend, .visible); - fn onRawLibUVComplete(uv_info: *libuv.uv_getaddrinfo_t, _: c_int, _: ?*libuv.addrinfo) callconv(.C) void { + fn onRawLibUVComplete(uv_info: *libuv.uv_getaddrinfo_t, _: c_int, _: ?*libuv.addrinfo) callconv(.c) void { //TODO: We schedule a task to run because otherwise the promise will not be solved, we need to investigate this - const this: *GetAddrInfoRequest = @alignCast(@ptrCast(uv_info.data)); + const this: *GetAddrInfoRequest = @ptrCast(@alignCast(uv_info.data)); const Holder = struct { uv_info: *libuv.uv_getaddrinfo_t, task: jsc.AnyTask, @@ -218,9 +218,9 @@ const LibUVBackend = struct { var hints = query.options.toLibC(); var port_buf: [128]u8 = undefined; - const port = std.fmt.bufPrintIntToSlice(&port_buf, query.port, 10, .lower, .{}); - port_buf[port.len] = 0; - const portZ = port_buf[0..port.len :0]; + const port_len = std.fmt.printInt(&port_buf, query.port, 10, .lower, .{}); + port_buf[port_len] = 0; + const portZ = port_buf[0..port_len :0]; var hostname: bun.PathBuffer = undefined; _ = strings.copy(hostname[0..], query.name); hostname[query.name.len] = 0; @@ -708,7 +708,7 @@ pub const GetAddrInfoRequest = struct { status: i32, addr_info: ?*std.c.addrinfo, arg: ?*anyopaque, - ) callconv(.C) void { + ) callconv(.c) void { const this = @as(*GetAddrInfoRequest, @ptrCast(@alignCast(arg))); log("getAddrInfoAsyncCallback: status={d}", .{status}); @@ -750,9 +750,9 @@ pub const GetAddrInfoRequest = struct { defer bun.default_allocator.free(@constCast(query.name)); var hints = query.options.toLibC(); var port_buf: [128]u8 = undefined; - const port = std.fmt.bufPrintIntToSlice(&port_buf, query.port, 10, .lower, .{}); - port_buf[port.len] = 0; - const portZ = port_buf[0..port.len :0]; + const port_len = std.fmt.printInt(&port_buf, query.port, 10, .lower, .{}); + port_buf[port_len] = 0; + const portZ = port_buf[0..port_len :0]; var hostname: bun.PathBuffer = undefined; _ = strings.copy(hostname[0..], query.name); hostname[query.name.len] = 0; @@ -761,13 +761,13 @@ pub const GetAddrInfoRequest = struct { const debug_timer = bun.Output.DebugTimer.start(); const err = std.c.getaddrinfo( host.ptr, - if (port.len > 0) portZ.ptr else null, + if (port_len > 0) portZ.ptr else null, if (hints) |*hint| hint else null, &addrinfo, ); - bun.sys.syslog("getaddrinfo({s}, {d}) = {d} ({any})", .{ + bun.sys.syslog("getaddrinfo({s}, {s}) = {d} ({f})", .{ query.name, - port, + portZ, err, debug_timer, }); @@ -862,7 +862,7 @@ pub const GetAddrInfoRequest = struct { pub fn onLibUVComplete(uv_info: *libuv.uv_getaddrinfo_t) void { log("onLibUVComplete: status={d}", .{uv_info.retcode.int()}); - const this: *GetAddrInfoRequest = @alignCast(@ptrCast(uv_info.data)); + const this: *GetAddrInfoRequest = @ptrCast(@alignCast(uv_info.data)); bun.assert(uv_info == &this.backend.libc.uv); if (this.backend == .libinfo) { if (this.backend.libinfo.file_poll) |poll| poll.deinit(); @@ -1443,10 +1443,10 @@ pub const internal = struct { if (ai.addr) |addr| { if (ai.family == std.c.AF.INET) { const addr_in: *std.c.sockaddr.in = @ptrCast(&results[i].addr); - addr_in.* = @as(*std.c.sockaddr.in, @alignCast(@ptrCast(addr))).*; + addr_in.* = @as(*std.c.sockaddr.in, @ptrCast(@alignCast(addr))).*; } else if (ai.family == std.c.AF.INET6) { const addr_in: *std.c.sockaddr.in6 = @ptrCast(&results[i].addr); - addr_in.* = @as(*std.c.sockaddr.in6, @alignCast(@ptrCast(addr))).*; + addr_in.* = @as(*std.c.sockaddr.in6, @ptrCast(@alignCast(addr))).*; } } else { results[i].addr = std.mem.zeroes(std.c.sockaddr.storage); @@ -1479,7 +1479,7 @@ pub const internal = struct { entry.info.next = null; } if (entry.info.addr != null) { - entry.info.addr = @alignCast(@ptrCast(&entry.addr)); + entry.info.addr = @ptrCast(@alignCast(&entry.addr)); } } @@ -1611,7 +1611,7 @@ pub const internal = struct { status: i32, addr_info: ?*std.c.addrinfo, arg: ?*anyopaque, - ) callconv(.C) void { + ) callconv(.c) void { const req: *Request = bun.cast(*Request, arg); const status_int: c_int = @intCast(status); if (status == @intFromEnum(std.c.EAI.NONAME) and req.can_retry_for_addrconfig) { @@ -1760,7 +1760,7 @@ pub const internal = struct { _ = getaddrinfo(loop, hostname, port, null); } - fn us_getaddrinfo(loop: *bun.uws.Loop, _host: ?[*:0]const u8, port: u16, socket: *?*anyopaque) callconv(.C) c_int { + fn us_getaddrinfo(loop: *bun.uws.Loop, _host: ?[*:0]const u8, port: u16, socket: *?*anyopaque) callconv(.c) c_int { const host: ?[:0]const u8 = std.mem.span(_host); var is_cache_hit: bool = false; const req = getaddrinfo(loop, host, port, &is_cache_hit).?; @@ -1771,7 +1771,7 @@ pub const internal = struct { fn us_getaddrinfo_set( request: *Request, socket: *bun.uws.ConnectingSocket, - ) callconv(.C) void { + ) callconv(.c) void { global_cache.lock.lock(); defer global_cache.lock.unlock(); const query = DNSRequestOwner{ @@ -1785,7 +1785,7 @@ pub const internal = struct { bun.handleOom(request.notify.append(bun.default_allocator, .{ .socket = socket })); } - fn freeaddrinfo(req: *Request, err: c_int) callconv(.C) void { + fn freeaddrinfo(req: *Request, err: c_int) callconv(.c) void { global_cache.lock.lock(); defer global_cache.lock.unlock(); @@ -1801,7 +1801,7 @@ pub const internal = struct { } } - fn getRequestResult(req: *Request) callconv(.C) *Request.Result { + fn getRequestResult(req: *Request) callconv(.c) *Request.Result { return &req.result.?; } }; @@ -2386,7 +2386,7 @@ pub const Resolver = struct { } } - pub fn onDNSPollUv(watcher: [*c]bun.windows.libuv.uv_poll_t, status: c_int, events: c_int) callconv(.C) void { + pub fn onDNSPollUv(watcher: [*c]bun.windows.libuv.uv_poll_t, status: c_int, events: c_int) callconv(.c) void { const poll = UvDnsPoll.fromPoll(watcher); const vm = poll.parent.vm; vm.eventLoop().enter(); @@ -2408,8 +2408,8 @@ pub const Resolver = struct { ); } - pub fn onCloseUv(watcher: *anyopaque) callconv(.C) void { - const poll = UvDnsPoll.fromPoll(@alignCast(@ptrCast(watcher))); + pub fn onCloseUv(watcher: *anyopaque) callconv(.c) void { + const poll = UvDnsPoll.fromPoll(@ptrCast(@alignCast(watcher))); poll.destroy(); } diff --git a/src/bun.js/api/bun/js_bun_spawn_bindings.zig b/src/bun.js/api/bun/js_bun_spawn_bindings.zig index 38dba791f5..165b950d57 100644 --- a/src/bun.js/api/bun/js_bun_spawn_bindings.zig +++ b/src/bun.js/api/bun/js_bun_spawn_bindings.zig @@ -44,7 +44,7 @@ fn getArgv0(globalThis: *jsc.JSGlobalObject, PATH: []const u8, cwd: []const u8, } /// `argv` for `Bun.spawn` & `Bun.spawnSync` -fn getArgv(globalThis: *jsc.JSGlobalObject, args: JSValue, PATH: []const u8, cwd: []const u8, argv0: *?[*:0]const u8, allocator: std.mem.Allocator, argv: *std.ArrayList(?[*:0]const u8)) bun.JSError!void { +fn getArgv(globalThis: *jsc.JSGlobalObject, args: JSValue, PATH: []const u8, cwd: []const u8, argv0: *?[*:0]const u8, allocator: std.mem.Allocator, argv: *std.array_list.Managed(?[*:0]const u8)) bun.JSError!void { var cmds_array = try args.arrayIterator(globalThis); // + 1 for argv0 // + 1 for null terminator @@ -125,13 +125,13 @@ pub fn spawnMaybeSync( var on_exit_callback = JSValue.zero; var on_disconnect_callback = JSValue.zero; var PATH = jsc_vm.transpiler.env.get("PATH") orelse ""; - var argv = std.ArrayList(?[*:0]const u8).init(allocator); + var argv = std.array_list.Managed(?[*:0]const u8).init(allocator); var cmd_value = JSValue.zero; var detached = false; var args = args_; var maybe_ipc_mode: if (is_sync) void else ?IPC.Mode = if (is_sync) {} else null; var ipc_callback: JSValue = .zero; - var extra_fds = std.ArrayList(bun.spawn.SpawnOptions.Stdio).init(bun.default_allocator); + var extra_fds = std.array_list.Managed(bun.spawn.SpawnOptions.Stdio).init(bun.default_allocator); var argv0: ?[*:0]const u8 = null; var ipc_channel: i32 = -1; var timeout: ?i32 = null; @@ -808,7 +808,7 @@ pub fn spawnMaybeSync( jsc_vm.counters.mark(.spawnSync_blocking); const debug_timer = Output.DebugTimer.start(); subprocess.process.wait(true); - log("spawnSync fast path took {}", .{debug_timer}); + log("spawnSync fast path took {f}", .{debug_timer}); // watchOrReap will handle the already exited case for us. } @@ -974,7 +974,7 @@ fn throwCommandNotFound(globalThis: *jsc.JSGlobalObject, command: []const u8) bu return globalThis.throwValue(err.toErrorInstance(globalThis)); } -pub fn appendEnvpFromJS(globalThis: *jsc.JSGlobalObject, object: *jsc.JSObject, envp: *std.ArrayList(?[*:0]const u8), PATH: *[]const u8) bun.JSError!void { +pub fn appendEnvpFromJS(globalThis: *jsc.JSGlobalObject, object: *jsc.JSObject, envp: *std.array_list.Managed(?[*:0]const u8), PATH: *[]const u8) bun.JSError!void { var object_iter = try jsc.JSPropertyIterator(.{ .skip_empty_name = false, .include_value = true }).init(globalThis, object); defer object_iter.deinit(); @@ -986,7 +986,7 @@ pub fn appendEnvpFromJS(globalThis: *jsc.JSGlobalObject, object: *jsc.JSObject, var value = object_iter.value; if (value.isUndefined()) continue; - const line = try std.fmt.allocPrintZ(envp.allocator, "{}={}", .{ key, try value.getZigString(globalThis) }); + const line = try std.fmt.allocPrintSentinel(envp.allocator, "{f}={f}", .{ key, try value.getZigString(globalThis) }, 0); if (key.eqlComptime("PATH")) { PATH.* = bun.asByteSlice(line["PATH=".len..]); diff --git a/src/bun.js/api/bun/lshpack.zig b/src/bun.js/api/bun/lshpack.zig index c8fde68e5d..1415f3d590 100644 --- a/src/bun.js/api/bun/lshpack.zig +++ b/src/bun.js/api/bun/lshpack.zig @@ -55,8 +55,8 @@ pub const HPACK = extern struct { } }; -const lshpack_wrapper_alloc = ?*const fn (size: usize) callconv(.C) ?*anyopaque; -const lshpack_wrapper_free = ?*const fn (ptr: ?*anyopaque) callconv(.C) void; +const lshpack_wrapper_alloc = ?*const fn (size: usize) callconv(.c) ?*anyopaque; +const lshpack_wrapper_free = ?*const fn (ptr: ?*anyopaque) callconv(.c) void; extern fn lshpack_wrapper_init(alloc: lshpack_wrapper_alloc, free: lshpack_wrapper_free, capacity: usize) ?*HPACK; extern fn lshpack_wrapper_deinit(self: *HPACK) void; extern fn lshpack_wrapper_decode(self: *HPACK, src: [*]const u8, src_len: usize, output: *lshpack_header) usize; diff --git a/src/bun.js/api/bun/process.zig b/src/bun.js/api/bun/process.zig index 2ac122bf6a..175b3533f4 100644 --- a/src/bun.js/api/bun/process.zig +++ b/src/bun.js/api/bun/process.zig @@ -36,7 +36,7 @@ const IO_COUNTERS = extern struct { OtherTransferCount: u64 = 0, }; -extern "kernel32" fn GetProcessIoCounters(handle: std.os.windows.HANDLE, counters: *IO_COUNTERS) callconv(std.os.windows.WINAPI) c_int; +extern "kernel32" fn GetProcessIoCounters(handle: std.os.windows.HANDLE, counters: *IO_COUNTERS) callconv(.winapi) c_int; pub fn uv_getrusage(process: *uv.uv_process_t) win_rusage { var usage_info: Rusage = .{ .utime = .{}, .stime = .{} }; @@ -382,7 +382,7 @@ pub const Process = struct { } } - fn onExitUV(process: *uv.uv_process_t, exit_status: i64, term_signal: c_int) callconv(.C) void { + fn onExitUV(process: *uv.uv_process_t, exit_status: i64, term_signal: c_int) callconv(.c) void { const poller: *PollerWindows = @fieldParentPtr("uv", process); var this: *Process = @fieldParentPtr("poller", poller); const exit_code: u8 = if (exit_status >= 0) @as(u8, @truncate(@as(u64, @intCast(exit_status)))) else 0; @@ -416,7 +416,7 @@ pub const Process = struct { } } - fn onCloseUV(uv_handle: *uv.uv_process_t) callconv(.C) void { + fn onCloseUV(uv_handle: *uv.uv_process_t) callconv(.c) void { const poller: *Poller = @fieldParentPtr("uv", uv_handle); var this: *Process = @fieldParentPtr("poller", poller); bun.windows.libuv.log("Process.onClose({d})", .{uv_handle.pid}); @@ -603,7 +603,7 @@ pub const Status = union(enum) { }; } - pub fn format(self: @This(), comptime _: []const u8, _: anytype, writer: anytype) !void { + pub fn format(self: @This(), writer: *std.Io.Writer) !void { if (self.signalCode()) |signal_code| { if (signal_code.toExitCode()) |code| { try writer.print("code: {d}", .{code}); @@ -619,7 +619,7 @@ pub const Status = union(enum) { try writer.print("signal: {d}", .{@intFromEnum(signal)}); }, .err => |err| { - try writer.print("{}", .{err}); + try writer.print("{f}", .{err}); }, else => {}, } @@ -741,7 +741,7 @@ const WaiterThreadPosix = struct { fn NewQueue(comptime T: type) type { return struct { queue: ConcurrentQueue = .{}, - active: std.ArrayList(*T) = std.ArrayList(*T).init(bun.default_allocator), + active: std.array_list.Managed(*T) = std.array_list.Managed(*T).init(bun.default_allocator), const TaskQueueEntry = struct { process: *T, @@ -913,7 +913,7 @@ const WaiterThreadPosix = struct { thread.detach(); } - fn wakeup(_: c_int) callconv(.C) void { + fn wakeup(_: c_int) callconv(.c) void { const one = @as([8]u8, @bitCast(@as(usize, 1))); _ = bun.sys.write(instance.eventfd, &one).unwrap() catch 0; } @@ -924,8 +924,8 @@ const WaiterThreadPosix = struct { } if (comptime Environment.isLinux) { - var current_mask = std.posix.empty_sigset; - std.os.linux.sigaddset(¤t_mask, std.posix.SIG.CHLD); + var current_mask = std.posix.sigemptyset(); + std.os.linux.sigaddset(current_mask[0..1], std.posix.SIG.CHLD); const act = std.posix.Sigaction{ .handler = .{ .handler = &wakeup }, .mask = current_mask, @@ -960,7 +960,7 @@ const WaiterThreadPosix = struct { _ = std.posix.poll(&polls, std.math.maxInt(i32)) catch 0; } else { - var mask = std.posix.empty_sigset; + var mask = std.posix.sigemptyset(); var signal: c_int = std.posix.SIG.CHLD; const rc = std.c.sigwait(&mask, &signal); _ = rc; @@ -1016,7 +1016,7 @@ pub const WindowsSpawnResult = struct { stdin: StdioResult = .unavailable, stdout: StdioResult = .unavailable, stderr: StdioResult = .unavailable, - extra_pipes: std.ArrayList(StdioResult) = std.ArrayList(StdioResult).init(bun.default_allocator), + extra_pipes: std.array_list.Managed(StdioResult) = std.array_list.Managed(StdioResult).init(bun.default_allocator), stream: bool = true, sync: bool = false, @@ -1101,7 +1101,7 @@ pub const PosixSpawnResult = struct { stdout: ?bun.FileDescriptor = null, stderr: ?bun.FileDescriptor = null, ipc: ?bun.FileDescriptor = null, - extra_pipes: std.ArrayList(bun.FileDescriptor) = std.ArrayList(bun.FileDescriptor).init(bun.default_allocator), + extra_pipes: std.array_list.Managed(bun.FileDescriptor) = std.array_list.Managed(bun.FileDescriptor).init(bun.default_allocator), memfds: [3]bool = .{ false, false, false }, @@ -1261,12 +1261,12 @@ pub fn spawnProcessPosix( try actions.chdir(options.cwd); } var spawned = PosixSpawnResult{}; - var extra_fds = std.ArrayList(bun.FileDescriptor).init(bun.default_allocator); + var extra_fds = std.array_list.Managed(bun.FileDescriptor).init(bun.default_allocator); errdefer extra_fds.deinit(); var stack_fallback = std.heap.stackFallback(2048, bun.default_allocator); const allocator = stack_fallback.get(); - var to_close_at_end = std.ArrayList(bun.FileDescriptor).init(allocator); - var to_set_cloexec = std.ArrayList(bun.FileDescriptor).init(allocator); + var to_close_at_end = std.array_list.Managed(bun.FileDescriptor).init(allocator); + var to_set_cloexec = std.array_list.Managed(bun.FileDescriptor).init(allocator); defer { for (to_set_cloexec.items) |fd| { _ = bun.sys.setCloseOnExec(fd); @@ -1279,7 +1279,7 @@ pub fn spawnProcessPosix( to_close_at_end.clearAndFree(); } - var to_close_on_error = std.ArrayList(bun.FileDescriptor).init(allocator); + var to_close_on_error = std.array_list.Managed(bun.FileDescriptor).init(allocator); errdefer { for (to_close_on_error.items) |fd| { @@ -1492,7 +1492,7 @@ pub fn spawnProcessPosix( .result => |pid| { spawned.pid = pid; spawned.extra_pipes = extra_fds; - extra_fds = std.ArrayList(bun.FileDescriptor).init(bun.default_allocator); + extra_fds = std.array_list.Managed(bun.FileDescriptor).init(bun.default_allocator); if (comptime Environment.isLinux) { // If it's spawnSync and we want to block the entire thread @@ -1553,7 +1553,7 @@ pub fn spawnProcessWindows( uv_process_options.cwd = cwd.ptr; - var uv_files_to_close = std.ArrayList(uv.uv_file).init(allocator); + var uv_files_to_close = std.array_list.Managed(uv.uv_file).init(allocator); var failed = false; @@ -1578,7 +1578,7 @@ pub fn spawnProcessWindows( uv_process_options.flags |= uv.UV_PROCESS_DETACHED; } - var stdio_containers = try std.ArrayList(uv.uv_stdio_container_t).initCapacity(allocator, 3 + options.extra_fds.len); + var stdio_containers = try std.array_list.Managed(uv.uv_stdio_container_t).initCapacity(allocator, 3 + options.extra_fds.len); defer stdio_containers.deinit(); @memset(stdio_containers.allocatedSlice(), std.mem.zeroes(uv.uv_stdio_container_t)); stdio_containers.items.len = 3 + options.extra_fds.len; @@ -1752,7 +1752,7 @@ pub fn spawnProcessWindows( var result = WindowsSpawnResult{ .process_ = process, - .extra_pipes = try std.ArrayList(WindowsSpawnResult.StdioResult).initCapacity(bun.default_allocator, options.extra_fds.len), + .extra_pipes = try std.array_list.Managed(WindowsSpawnResult.StdioResult).initCapacity(bun.default_allocator, options.extra_fds.len), }; const result_stdios = .{ &result.stdin, &result.stdout, &result.stderr }; @@ -1842,8 +1842,8 @@ pub const sync = struct { pub const Result = struct { status: Status, - stdout: std.ArrayList(u8) = .{ .items = &.{}, .allocator = bun.default_allocator, .capacity = 0 }, - stderr: std.ArrayList(u8) = .{ .items = &.{}, .allocator = bun.default_allocator, .capacity = 0 }, + stdout: std.array_list.Managed(u8) = .{ .items = &.{}, .allocator = bun.default_allocator, .capacity = 0 }, + stderr: std.array_list.Managed(u8) = .{ .items = &.{}, .allocator = bun.default_allocator, .capacity = 0 }, pub fn isOK(this: *const Result) bool { return this.status.isOK(); @@ -1856,7 +1856,7 @@ pub const sync = struct { }; const SyncWindowsPipeReader = struct { - chunks: std.ArrayList([]u8) = .{ .items = &.{}, .allocator = bun.default_allocator, .capacity = 0 }, + chunks: std.array_list.Managed([]u8) = .{ .items = &.{}, .allocator = bun.default_allocator, .capacity = 0 }, pipe: *uv.Pipe, err: bun.sys.E = .SUCCESS, @@ -1879,7 +1879,7 @@ pub const sync = struct { this.pipe.close(onClose); } - fn onClose(pipe: *uv.Pipe) callconv(.C) void { + fn onClose(pipe: *uv.Pipe) callconv(.c) void { const this: *SyncWindowsPipeReader = pipe.getData(SyncWindowsPipeReader) orelse @panic("Expected SyncWindowsPipeReader to have data"); const context = this.context; const chunks = this.chunks.items; @@ -2008,7 +2008,7 @@ pub const sync = struct { switch (reader.start()) { .err => |err| { _ = this.process.kill(1); - Output.panic("Unexpected error starting {s} pipe reader\n{}", .{ @tagName(tag), err }); + Output.panic("Unexpected error starting {s} pipe reader\n{f}", .{ @tagName(tag), err }); }, .result => {}, } @@ -2021,11 +2021,11 @@ pub const sync = struct { const result = Result{ .status = this.status orelse @panic("Expected Process to have exited when waiting_count == 0"), - .stdout = std.ArrayList(u8).fromOwnedSlice( + .stdout = std.array_list.Managed(u8).fromOwnedSlice( bun.default_allocator, bun.handleOom(flattenOwnedChunks(bun.default_allocator, bun.default_allocator, this.stdout)), ), - .stderr = std.ArrayList(u8).fromOwnedSlice( + .stderr = std.array_list.Managed(u8).fromOwnedSlice( bun.default_allocator, bun.handleOom(flattenOwnedChunks(bun.default_allocator, bun.default_allocator, this.stderr)), ), @@ -2067,7 +2067,7 @@ pub const sync = struct { try string_builder.allocate(bun.default_allocator); - var args = bun.handleOom(std.ArrayList(?[*:0]u8).initCapacity(bun.default_allocator, argv.len + 1)); + var args = bun.handleOom(std.array_list.Managed(?[*:0]u8).initCapacity(bun.default_allocator, argv.len + 1)); defer args.deinit(); for (argv) |arg| { @@ -2109,9 +2109,9 @@ pub const sync = struct { Bun__sendPendingSignalIfNecessary(); - var out = [2]std.ArrayList(u8){ - std.ArrayList(u8).init(bun.default_allocator), - std.ArrayList(u8).init(bun.default_allocator), + var out = [2]std.array_list.Managed(u8){ + std.array_list.Managed(u8).init(bun.default_allocator), + std.array_list.Managed(u8).init(bun.default_allocator), }; var out_fds = [2]bun.FileDescriptor{ process.stdout orelse bun.invalid_fd, process.stderr orelse bun.invalid_fd }; var success = false; diff --git a/src/bun.js/api/bun/socket.zig b/src/bun.js/api/bun/socket.zig index 1c16f58b12..e5746333bc 100644 --- a/src/bun.js/api/bun/socket.zig +++ b/src/bun.js/api/bun/socket.zig @@ -14,7 +14,7 @@ fn JSSocketType(comptime ssl: bool) type { } } -fn selectALPNCallback(_: ?*BoringSSL.SSL, out: [*c][*c]const u8, outlen: [*c]u8, in: [*c]const u8, inlen: c_uint, arg: ?*anyopaque) callconv(.C) c_int { +fn selectALPNCallback(_: ?*BoringSSL.SSL, out: [*c][*c]const u8, outlen: [*c]u8, in: [*c]const u8, inlen: c_uint, arg: ?*anyopaque) callconv(.c) c_int { const this = bun.cast(*TLSSocket, arg); if (this.protos) |protos| { if (protos.len == 0) { @@ -76,7 +76,7 @@ pub fn NewSocket(comptime ssl: bool) type { has_pending_activity: std.atomic.Value(bool) = std.atomic.Value(bool).init(true), native_callback: NativeCallbacks = .none, - pub fn hasPendingActivity(this: *This) callconv(.C) bool { + pub fn hasPendingActivity(this: *This) callconv(.c) bool { return this.has_pending_activity.load(.acquire); } diff --git a/src/bun.js/api/bun/socket/Listener.zig b/src/bun.js/api/bun/socket/Listener.zig index 75252b70e2..fbb6c69c5e 100644 --- a/src/bun.js/api/bun/socket/Listener.zig +++ b/src/bun.js/api/bun/socket/Listener.zig @@ -457,7 +457,7 @@ fn doStop(this: *Listener, force_close: bool) void { } } -pub fn finalize(this: *Listener) callconv(.C) void { +pub fn finalize(this: *Listener) callconv(.c) void { log("finalize", .{}); const listener = this.listener; this.listener = .none; @@ -908,7 +908,7 @@ pub const WindowsNamedPipeListeningContext = if (Environment.isWindows) struct { } } - fn onPipeClosed(pipe: *uv.Pipe) callconv(.C) void { + fn onPipeClosed(pipe: *uv.Pipe) callconv(.c) void { const this: *WindowsNamedPipeListeningContext = @ptrCast(@alignCast(pipe.data)); this.deinit(); } diff --git a/src/bun.js/api/bun/socket/SocketAddress.zig b/src/bun.js/api/bun/socket/SocketAddress.zig index 1e0e8fe634..473e112839 100644 --- a/src/bun.js/api/bun/socket/SocketAddress.zig +++ b/src/bun.js/api/bun/socket/SocketAddress.zig @@ -84,7 +84,7 @@ pub const Options = struct { const ty = global.determineSpecificType(port_) catch { return global.ERR(.SOCKET_BAD_PORT, "The \"options.port\" argument must be a valid IP port number.", .{}).throw(); }; - return global.ERR(.SOCKET_BAD_PORT, "The \"options.port\" argument must be a valid IP port number. Got {s}.", .{ty}).throw(); + return global.ERR(.SOCKET_BAD_PORT, "The \"options.port\" argument must be a valid IP port number. Got {f}.", .{ty}).throw(); } }; @@ -595,7 +595,7 @@ pub const sockaddr = extern union { pub fn fmt(self: *const sockaddr, buf: *[inet.INET6_ADDRSTRLEN]u8) [:0]const u8 { const addr_src: *const anyopaque = if (self.family() == AF.INET) @ptrCast(&self.sin.addr) else @ptrCast(&self.sin6.addr); const formatted = std.mem.sliceTo(ares.ares_inet_ntop(self.family().int(), addr_src, buf, buf.len) orelse { - std.debug.panic("Invariant violation: SocketAddress created with invalid IPv6 address ({any})", .{self}); + std.debug.panic("Invariant violation: SocketAddress created with invalid IPv6 address", .{}); }, 0); if (comptime bun.Environment.isDebug) bun.assertWithLocation(bun.strings.isAllASCII(formatted), @src()); return formatted; diff --git a/src/bun.js/api/bun/socket/tls_socket_functions.zig b/src/bun.js/api/bun/socket/tls_socket_functions.zig index 94e4f9d906..1c8ea80325 100644 --- a/src/bun.js/api/bun/socket/tls_socket_functions.zig +++ b/src/bun.js/api/bun/socket/tls_socket_functions.zig @@ -566,7 +566,7 @@ pub fn setVerifyMode(this: *This, globalObject: *jsc.JSGlobalObject, callframe: return .js_undefined; } -fn alwaysAllowSSLVerifyCallback(_: c_int, _: ?*BoringSSL.X509_STORE_CTX) callconv(.C) c_int { +fn alwaysAllowSSLVerifyCallback(_: c_int, _: ?*BoringSSL.X509_STORE_CTX) callconv(.c) c_int { return 1; } diff --git a/src/bun.js/api/bun/spawn/stdio.zig b/src/bun.js/api/bun/spawn/stdio.zig index 8ff2915176..457cc34d69 100644 --- a/src/bun.js/api/bun/spawn/stdio.zig +++ b/src/bun.js/api/bun/spawn/stdio.zig @@ -360,7 +360,7 @@ pub const Stdio = union(enum) { if (file_fd >= std.math.maxInt(i32)) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); - return globalThis.throwInvalidArguments("file descriptor must be a valid integer, received: {}", .{value.toFmt(&formatter)}); + return globalThis.throwInvalidArguments("file descriptor must be a valid integer, received: {f}", .{value.toFmt(&formatter)}); } if (fd.stdioTag()) |tag| switch (tag) { diff --git a/src/bun.js/api/bun/subprocess.zig b/src/bun.js/api/bun/subprocess.zig index 39bfa0143b..f81e52c1f6 100644 --- a/src/bun.js/api/bun/subprocess.zig +++ b/src/bun.js/api/bun/subprocess.zig @@ -108,7 +108,7 @@ pub const StdioKind = enum { } }; -pub fn onAbortSignal(subprocess_ctx: ?*anyopaque, _: jsc.JSValue) callconv(.C) void { +pub fn onAbortSignal(subprocess_ctx: ?*anyopaque, _: jsc.JSValue) callconv(.c) void { var this: *Subprocess = @ptrCast(@alignCast(subprocess_ctx.?)); this.clearAbortSignal(); _ = this.tryKill(this.killSignal); @@ -167,7 +167,7 @@ pub fn updateHasPendingActivity(this: *Subprocess) void { const has_pending = this.computeHasPendingActivity(); if (comptime Environment.isDebug) { - log("updateHasPendingActivity() -> {any}", .{has_pending}); + log("updateHasPendingActivity() -> {}", .{has_pending}); } // Upgrade or downgrade the reference based on pending activity @@ -574,7 +574,7 @@ pub fn onProcessExit(this: *Subprocess, process: *Process, status: bun.spawn.Sta if (existing_stdin_value.isCell()) { if (stdin == null) { // TODO: review this cast - stdin = @alignCast(@ptrCast(jsc.WebCore.FileSink.JSSink.fromJS(existing_value))); + stdin = @ptrCast(@alignCast(jsc.WebCore.FileSink.JSSink.fromJS(existing_value))); } if (!this.flags.is_stdin_a_readable_stream) { @@ -701,7 +701,7 @@ fn closeIO(this: *Subprocess, comptime io: @Type(.enum_literal)) void { } } -fn onPipeClose(this: *uv.Pipe) callconv(.C) void { +fn onPipeClose(this: *uv.Pipe) callconv(.c) void { // safely free the pipes bun.default_allocator.destroy(this); } @@ -747,7 +747,7 @@ fn clearAbortSignal(this: *Subprocess) void { } } -pub fn finalize(this: *Subprocess) callconv(.C) void { +pub fn finalize(this: *Subprocess) callconv(.c) void { log("finalize", .{}); // Ensure any code which references the "this" value doesn't attempt to // access it after it's been freed We cannot call any methods which diff --git a/src/bun.js/api/bun/subprocess/ResourceUsage.zig b/src/bun.js/api/bun/subprocess/ResourceUsage.zig index b4300ae9f3..e8283448e7 100644 --- a/src/bun.js/api/bun/subprocess/ResourceUsage.zig +++ b/src/bun.js/api/bun/subprocess/ResourceUsage.zig @@ -62,7 +62,7 @@ pub fn getContextSwitches(this: *ResourceUsage, globalObject: *JSGlobalObject) J return ctx; } -pub fn finalize(this: *ResourceUsage) callconv(.C) void { +pub fn finalize(this: *ResourceUsage) callconv(.c) void { bun.destroy(this); } diff --git a/src/bun.js/api/bun/subprocess/StaticPipeWriter.zig b/src/bun.js/api/bun/subprocess/StaticPipeWriter.zig index ddc8fc0c60..3815646700 100644 --- a/src/bun.js/api/bun/subprocess/StaticPipeWriter.zig +++ b/src/bun.js/api/bun/subprocess/StaticPipeWriter.zig @@ -90,7 +90,7 @@ pub fn NewStaticPipeWriter(comptime ProcessType: type) type { } pub fn onError(this: *This, err: bun.sys.Error) void { - log("StaticPipeWriter(0x{x}) onError(err={any})", .{ @intFromPtr(this), err }); + log("StaticPipeWriter(0x{x}) onError(err={f})", .{ @intFromPtr(this), err }); this.source.detach(); } diff --git a/src/bun.js/api/bun/udp_socket.zig b/src/bun.js/api/bun/udp_socket.zig index 0be967a24a..19c7941164 100644 --- a/src/bun.js/api/bun/udp_socket.zig +++ b/src/bun.js/api/bun/udp_socket.zig @@ -8,7 +8,7 @@ extern fn htons(hshort: u16) u16; extern fn inet_ntop(af: c_int, src: ?*const anyopaque, dst: [*c]u8, size: c_int) ?[*:0]const u8; extern fn inet_pton(af: c_int, src: [*c]const u8, dst: ?*anyopaque) c_int; -fn onClose(socket: *uws.udp.Socket) callconv(.C) void { +fn onClose(socket: *uws.udp.Socket) callconv(.c) void { jsc.markBinding(@src()); const this: *UDPSocket = bun.cast(*UDPSocket, socket.user().?); @@ -18,7 +18,7 @@ fn onClose(socket: *uws.udp.Socket) callconv(.C) void { this.socket = null; } -fn onDrain(socket: *uws.udp.Socket) callconv(.C) void { +fn onDrain(socket: *uws.udp.Socket) callconv(.c) void { jsc.markBinding(@src()); const this: *UDPSocket = bun.cast(*UDPSocket, socket.user().?); @@ -35,7 +35,7 @@ fn onDrain(socket: *uws.udp.Socket) callconv(.C) void { }; } -fn onData(socket: *uws.udp.Socket, buf: *uws.udp.PacketBuffer, packets: c_int) callconv(.C) void { +fn onData(socket: *uws.udp.Socket, buf: *uws.udp.PacketBuffer, packets: c_int) callconv(.c) void { jsc.markBinding(@src()); const udpSocket: *UDPSocket = bun.cast(*UDPSocket, socket.user().?); @@ -307,7 +307,7 @@ pub const UDPSocket = struct { const sys_err = jsc.SystemError{ .errno = err, .code = bun.String.static(code), - .message = bun.handleOom(bun.String.createFormat("bind {s} {}", .{ code, this.config.hostname })), + .message = bun.handleOom(bun.String.createFormat("bind {s} {f}", .{ code, this.config.hostname })), }; const error_value = sys_err.toErrorInstance(globalThis); error_value.put(globalThis, "address", this.config.hostname.toJS(globalThis)); diff --git a/src/bun.js/api/crypto/CryptoHasher.zig b/src/bun.js/api/crypto/CryptoHasher.zig index f40c324f0b..fd90be83ac 100644 --- a/src/bun.js/api/crypto/CryptoHasher.zig +++ b/src/bun.js/api/crypto/CryptoHasher.zig @@ -16,7 +16,7 @@ pub const CryptoHasher = union(enum) { // For using only CryptoHasherZig in c++ pub const Extern = struct { - fn getByName(global: *JSGlobalObject, name_bytes: [*:0]const u8, name_len: usize) callconv(.C) ?*CryptoHasher { + fn getByName(global: *JSGlobalObject, name_bytes: [*:0]const u8, name_len: usize) callconv(.c) ?*CryptoHasher { const name = name_bytes[0..name_len]; if (CryptoHasherZig.init(name)) |inner| { @@ -50,7 +50,7 @@ pub const CryptoHasher = union(enum) { return null; } - fn getFromOther(global: *JSGlobalObject, other_handle: *CryptoHasher) callconv(.C) ?*CryptoHasher { + fn getFromOther(global: *JSGlobalObject, other_handle: *CryptoHasher) callconv(.c) ?*CryptoHasher { switch (other_handle.*) { .zig => |other| { const hasher = CryptoHasher.new(.{ @@ -71,11 +71,11 @@ pub const CryptoHasher = union(enum) { } } - fn destroy(handle: *CryptoHasher) callconv(.C) void { + fn destroy(handle: *CryptoHasher) callconv(.c) void { handle.finalize(); } - fn update(handle: *CryptoHasher, input_bytes: [*]const u8, input_len: usize) callconv(.C) bool { + fn update(handle: *CryptoHasher, input_bytes: [*]const u8, input_len: usize) callconv(.c) bool { const input = input_bytes[0..input_len]; switch (handle.*) { @@ -93,7 +93,7 @@ pub const CryptoHasher = union(enum) { } } - fn digest(handle: *CryptoHasher, global: *JSGlobalObject, buf: [*]u8, buf_len: usize) callconv(.C) u32 { + fn digest(handle: *CryptoHasher, global: *JSGlobalObject, buf: [*]u8, buf_len: usize) callconv(.c) u32 { const digest_buf = buf[0..buf_len]; switch (handle.*) { .zig => { @@ -110,7 +110,7 @@ pub const CryptoHasher = union(enum) { } } - fn getDigestSize(handle: *CryptoHasher) callconv(.C) u32 { + fn getDigestSize(handle: *CryptoHasher) callconv(.c) u32 { return switch (handle.*) { .zig => |inner| inner.digest_length, .evp => |inner| inner.size(), @@ -215,7 +215,7 @@ pub const CryptoHasher = union(enum) { output: ?jsc.Node.StringOrBuffer, ) bun.JSError!jsc.JSValue { var evp = EVP.byName(algorithm, globalThis) orelse return try CryptoHasherZig.hashByName(globalThis, algorithm, input, output) orelse { - return globalThis.throwInvalidArguments("Unsupported algorithm \"{any}\"", .{algorithm}); + return globalThis.throwInvalidArguments("Unsupported algorithm \"{f}\"", .{algorithm}); }; defer evp.deinit(); @@ -297,7 +297,7 @@ pub const CryptoHasher = union(enum) { break :brk .{ .evp = EVP.byName(algorithm, globalThis) orelse return CryptoHasherZig.constructor(algorithm) orelse { - return globalThis.throwInvalidArguments("Unsupported algorithm {any}", .{algorithm}); + return globalThis.throwInvalidArguments("Unsupported algorithm {f}", .{algorithm}); }, }; }); diff --git a/src/bun.js/api/crypto/PasswordObject.zig b/src/bun.js/api/crypto/PasswordObject.zig index 59e07638e1..8f8d7a1fde 100644 --- a/src/bun.js/api/crypto/PasswordObject.zig +++ b/src/bun.js/api/crypto/PasswordObject.zig @@ -308,7 +308,7 @@ pub const PasswordObject = struct { pub const JSPasswordObject = struct { const PascalToUpperUnderscoreCaseFormatter = struct { input: []const u8, - pub fn format(self: @This(), comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: @This(), writer: *std.Io.Writer) !void { for (self.input) |c| { if (std.ascii.isUpper(c)) { try writer.writeByte('_'); @@ -357,7 +357,7 @@ pub const JSPasswordObject = struct { hash: []const u8, pub fn toErrorInstance(this: Value, globalObject: *jsc.JSGlobalObject) jsc.JSValue { - const error_code = bun.handleOom(std.fmt.allocPrint(bun.default_allocator, "PASSWORD{}", .{PascalToUpperUnderscoreCaseFormatter{ .input = @errorName(this.err) }})); + const error_code = bun.handleOom(std.fmt.allocPrint(bun.default_allocator, "PASSWORD{f}", .{PascalToUpperUnderscoreCaseFormatter{ .input = @errorName(this.err) }})); defer bun.default_allocator.free(error_code); const instance = globalObject.createErrorInstance("Password hashing failed with error \"{s}\"", .{@errorName(this.err)}); instance.put(globalObject, ZigString.static("code"), jsc.ZigString.init(error_code).toJS(globalObject)); @@ -569,7 +569,7 @@ pub const JSPasswordObject = struct { pass: bool, pub fn toErrorInstance(this: Value, globalObject: *jsc.JSGlobalObject) jsc.JSValue { - const error_code = bun.handleOom(std.fmt.allocPrint(bun.default_allocator, "PASSWORD{}", .{PascalToUpperUnderscoreCaseFormatter{ .input = @errorName(this.err) }})); + const error_code = bun.handleOom(std.fmt.allocPrint(bun.default_allocator, "PASSWORD{f}", .{PascalToUpperUnderscoreCaseFormatter{ .input = @errorName(this.err) }})); defer bun.default_allocator.free(error_code); const instance = globalObject.createErrorInstance("Password verification failed with error \"{s}\"", .{@errorName(this.err)}); instance.put(globalObject, ZigString.static("code"), jsc.ZigString.init(error_code).toJS(globalObject)); diff --git a/src/bun.js/api/ffi.zig b/src/bun.js/api/ffi.zig index ff84db1694..18f647124f 100644 --- a/src/bun.js/api/ffi.zig +++ b/src/bun.js/api/ffi.zig @@ -67,7 +67,7 @@ pub const FFI = struct { closed: bool = false, shared_state: ?*TCC.State = null, - pub fn finalize(_: *FFI) callconv(.C) void {} + pub fn finalize(_: *FFI) callconv(.c) void {} const CompileC = struct { source: Source = .{ .file = "" }, @@ -126,27 +126,27 @@ pub const FFI = struct { }; const stdarg = struct { - extern "c" fn ffi_vfprintf(*anyopaque, [*:0]const u8, ...) callconv(.C) c_int; - extern "c" fn ffi_vprintf([*:0]const u8, ...) callconv(.C) c_int; - extern "c" fn ffi_fprintf(*anyopaque, [*:0]const u8, ...) callconv(.C) c_int; - extern "c" fn ffi_printf([*:0]const u8, ...) callconv(.C) c_int; - extern "c" fn ffi_fscanf(*anyopaque, [*:0]const u8, ...) callconv(.C) c_int; - extern "c" fn ffi_scanf([*:0]const u8, ...) callconv(.C) c_int; - extern "c" fn ffi_sscanf([*:0]const u8, [*:0]const u8, ...) callconv(.C) c_int; - extern "c" fn ffi_vsscanf([*:0]const u8, [*:0]const u8, ...) callconv(.C) c_int; - extern "c" fn ffi_fopen([*:0]const u8, [*:0]const u8) callconv(.C) *anyopaque; - extern "c" fn ffi_fclose(*anyopaque) callconv(.C) c_int; - extern "c" fn ffi_fgetc(*anyopaque) callconv(.C) c_int; - extern "c" fn ffi_fputc(c: c_int, *anyopaque) callconv(.C) c_int; - extern "c" fn ffi_feof(*anyopaque) callconv(.C) c_int; - extern "c" fn ffi_fileno(*anyopaque) callconv(.C) c_int; - extern "c" fn ffi_ungetc(c: c_int, *anyopaque) callconv(.C) c_int; - extern "c" fn ffi_ftell(*anyopaque) callconv(.C) c_long; - extern "c" fn ffi_fseek(*anyopaque, c_long, c_int) callconv(.C) c_int; - extern "c" fn ffi_fflush(*anyopaque) callconv(.C) c_int; + extern "c" fn ffi_vfprintf(*anyopaque, [*:0]const u8, ...) callconv(.c) c_int; + extern "c" fn ffi_vprintf([*:0]const u8, ...) callconv(.c) c_int; + extern "c" fn ffi_fprintf(*anyopaque, [*:0]const u8, ...) callconv(.c) c_int; + extern "c" fn ffi_printf([*:0]const u8, ...) callconv(.c) c_int; + extern "c" fn ffi_fscanf(*anyopaque, [*:0]const u8, ...) callconv(.c) c_int; + extern "c" fn ffi_scanf([*:0]const u8, ...) callconv(.c) c_int; + extern "c" fn ffi_sscanf([*:0]const u8, [*:0]const u8, ...) callconv(.c) c_int; + extern "c" fn ffi_vsscanf([*:0]const u8, [*:0]const u8, ...) callconv(.c) c_int; + extern "c" fn ffi_fopen([*:0]const u8, [*:0]const u8) callconv(.c) *anyopaque; + extern "c" fn ffi_fclose(*anyopaque) callconv(.c) c_int; + extern "c" fn ffi_fgetc(*anyopaque) callconv(.c) c_int; + extern "c" fn ffi_fputc(c: c_int, *anyopaque) callconv(.c) c_int; + extern "c" fn ffi_feof(*anyopaque) callconv(.c) c_int; + extern "c" fn ffi_fileno(*anyopaque) callconv(.c) c_int; + extern "c" fn ffi_ungetc(c: c_int, *anyopaque) callconv(.c) c_int; + extern "c" fn ffi_ftell(*anyopaque) callconv(.c) c_long; + extern "c" fn ffi_fseek(*anyopaque, c_long, c_int) callconv(.c) c_int; + extern "c" fn ffi_fflush(*anyopaque) callconv(.c) c_int; - extern "c" fn calloc(nmemb: usize, size: usize) callconv(.C) ?*anyopaque; - extern "c" fn perror([*:0]const u8) callconv(.C) void; + extern "c" fn calloc(nmemb: usize, size: usize) callconv(.c) ?*anyopaque; + extern "c" fn perror([*:0]const u8) callconv(.c) void; const mac = if (Environment.isMac) struct { var ffi_stdinp: *anyopaque = @extern(*anyopaque, .{ .name = "__stdinp" }); @@ -211,7 +211,7 @@ pub const FFI = struct { } }; - pub fn handleCompilationError(this_: ?*CompileC, message: ?[*:0]const u8) callconv(.C) void { + pub fn handleCompilationError(this_: ?*CompileC, message: ?[*:0]const u8) callconv(.c) void { const this = this_ orelse return; var msg = std.mem.span(message orelse ""); if (msg.len == 0) return; @@ -483,7 +483,7 @@ pub const FFI = struct { const duped = bun.handleOom(bun.default_allocator.dupeZ(u8, symbol)); defer bun.default_allocator.free(duped); function.symbol_from_dynamic_library = state.getSymbol(duped) orelse { - return globalThis.throw("{} is missing from {s}. Was it included in the source code?", .{ bun.fmt.quote(symbol), this.source.first() }); + return globalThis.throw("{f} is missing from {s}. Was it included in the source code?", .{ bun.fmt.quote(symbol), this.source.first() }); }; } @@ -541,7 +541,7 @@ pub const FFI = struct { pub fn fromJSArray(globalThis: *jsc.JSGlobalObject, value: jsc.JSValue, comptime property: []const u8) bun.JSError!StringArray { var iter = try value.arrayIterator(globalThis); - var items = std.ArrayList([:0]const u8).init(bun.default_allocator); + var items = std.array_list.Managed([:0]const u8).init(bun.default_allocator); while (try iter.next()) |val| { if (!val.isString()) { @@ -566,7 +566,7 @@ pub const FFI = struct { } const str = try value.getZigString(globalThis); if (str.isEmpty()) return .{}; - var items = std.ArrayList([:0]const u8).init(bun.default_allocator); + var items = std.array_list.Managed([:0]const u8).init(bun.default_allocator); bun.handleOom(items.append(bun.handleOom(str.toOwnedSliceZ(bun.default_allocator)))); return .{ .items = items.items }; } @@ -629,7 +629,7 @@ pub const FFI = struct { if (flags_value.isArray()) { var iter = try flags_value.arrayIterator(globalThis); - var flags = std.ArrayList(u8).init(allocator); + var flags = std.array_list.Managed(u8).init(allocator); defer flags.deinit(); bun.handleOom(flags.appendSlice(CompileC.default_tcc_options)); @@ -645,7 +645,7 @@ pub const FFI = struct { } bun.handleOom(flags.append(0)); compile_c.flags = flags.items[0 .. flags.items.len - 1 :0]; - flags = std.ArrayList(u8).init(allocator); + flags = std.array_list.Managed(u8).init(allocator); } else { if (!flags_value.isString()) { return globalThis.throwInvalidArgumentTypeValue("flags", "string", flags_value); @@ -726,7 +726,7 @@ pub const FFI = struct { var tcc_state: ?*TCC.State, var bytes_to_free_on_error = compile_c.compile(globalThis) catch |err| { switch (err) { error.DeferredErrors => { - var combined = std.ArrayList(u8).init(bun.default_allocator); + var combined = std.array_list.Managed(u8).init(bun.default_allocator); defer combined.deinit(); var writer = combined.writer(); bun.handleOom(writer.print("{d} errors while compiling {s}\n", .{ compile_c.deferred_errors.items.len, if (compile_c.current_file_for_errors.len > 0) compile_c.current_file_for_errors else compile_c.source.first() })); @@ -913,7 +913,7 @@ pub const FFI = struct { return val; } - var arraylist = std.ArrayList(u8).init(allocator); + var arraylist = std.array_list.Managed(u8).init(allocator); defer arraylist.deinit(); var writer = arraylist.writer(); @@ -946,7 +946,7 @@ pub const FFI = struct { return val; } jsc.markBinding(@src()); - var strs = bun.handleOom(std.ArrayList(bun.String).initCapacity(allocator, symbols.count())); + var strs = bun.handleOom(std.array_list.Managed(bun.String).initCapacity(allocator, symbols.count())); defer { for (strs.items) |str| { str.deref(); @@ -954,7 +954,7 @@ pub const FFI = struct { strs.deinit(); } for (symbols.values()) |*function| { - var arraylist = std.ArrayList(u8).init(allocator); + var arraylist = std.array_list.Managed(u8).init(allocator); var writer = arraylist.writer(); function.printSourceCode(&writer) catch { // an error while generating source code @@ -1390,7 +1390,7 @@ pub const FFI = struct { const value = symbols_iter.value; if (value.isEmptyOrUndefinedOrNull()) { - return global.toTypeError(.INVALID_ARG_VALUE, "Expected an object for key \"{any}\"", .{prop}); + return global.toTypeError(.INVALID_ARG_VALUE, "Expected an object for key \"{f}\"", .{prop}); } var function: Function = .{ .allocator = allocator }; @@ -1493,7 +1493,7 @@ pub const FFI = struct { bun.runtimeEmbedFile(.src, "bun.js/api/FFI.h"); } - pub fn handleTCCError(ctx: ?*Function, message: [*c]const u8) callconv(.C) void { + pub fn handleTCCError(ctx: ?*Function, message: [*c]const u8) callconv(.c) void { var this = ctx.?; var msg = std.mem.span(message); if (msg.len > 0) { @@ -1512,7 +1512,7 @@ pub const FFI = struct { const tcc_options = "-std=c11 -nostdlib -Wl,--export-all-symbols" ++ if (Environment.isDebug) " -g" else ""; pub fn compile(this: *Function, napiEnv: ?*napi.NapiEnv) !void { - var source_code = std.ArrayList(u8).init(this.allocator); + var source_code = std.array_list.Managed(u8).init(this.allocator); var source_code_writer = source_code.writer(); try this.printSourceCode(&source_code_writer); @@ -1587,7 +1587,7 @@ pub const FFI = struct { is_threadsafe: bool, ) !void { jsc.markBinding(@src()); - var source_code = std.ArrayList(u8).init(this.allocator); + var source_code = std.array_list.Managed(u8).init(this.allocator); var source_code_writer = source_code.writer(); const ffi_wrapper = Bun__createFFICallbackFunction(js_context, js_function); try this.printCallbackSourceCode(js_context, ffi_wrapper, &source_code_writer); @@ -1838,10 +1838,10 @@ pub const FFI = struct { first = false; try writer.writeAll(" "); - const lengthBuf = std.fmt.bufPrintIntToSlice(arg_buf["arg".len..], i, 10, .lower, .{}); - const argName = arg_buf[0 .. 3 + lengthBuf.len]; + const lengthBuf = std.fmt.printInt(arg_buf["arg".len..], i, 10, .lower, .{}); + const argName = arg_buf[0 .. 3 + lengthBuf]; if (arg.needsACastInC()) { - try writer.print("{any}", .{arg.toC(argName)}); + try writer.print("{f}", .{arg.toC(argName)}); } else { try writer.writeAll(argName); } @@ -1862,7 +1862,7 @@ pub const FFI = struct { try writer.writeAll("return "); if (!(this.return_type == .void)) { - try writer.print("{any}.asZigRepr", .{this.return_type.toJS("return_value")}); + try writer.print("{f}.asZigRepr", .{this.return_type.toJS("return_value")}); } else { try writer.writeAll("ValueUndefined.asZigRepr"); } @@ -1891,7 +1891,7 @@ pub const FFI = struct { { const ptr = @intFromPtr(globalObject); const fmt = bun.fmt.hexIntUpper(ptr); - try writer.print("#define JS_GLOBAL_OBJECT (void*)0x{any}ULL\n", .{fmt}); + try writer.print("#define JS_GLOBAL_OBJECT (void*)0x{f}ULL\n", .{fmt}); } try writer.writeAll("#define IS_CALLBACK 1\n"); @@ -1944,9 +1944,9 @@ pub const FFI = struct { arg_buf[0.."arg".len].* = "arg".*; for (this.arg_types.items, 0..) |arg, i| { - const printed = std.fmt.bufPrintIntToSlice(arg_buf["arg".len..], i, 10, .lower, .{}); - const arg_name = arg_buf[0 .. "arg".len + printed.len]; - try writer.print("arguments[{d}] = {any}.asZigRepr;\n", .{ i, arg.toJS(arg_name) }); + const printed = std.fmt.printInt(arg_buf["arg".len..], i, 10, .lower, .{}); + const arg_name = arg_buf[0 .. "arg".len + printed]; + try writer.print("arguments[{d}] = {f}.asZigRepr;\n", .{ i, arg.toJS(arg_name) }); } } @@ -1961,13 +1961,13 @@ pub const FFI = struct { if (this.arg_types.items.len > 0) { inner_buf = try std.fmt.bufPrint( inner_buf_[1..], - "FFI_Callback_call((void*)0x{any}ULL, {d}, arguments)", + "FFI_Callback_call((void*)0x{f}ULL, {d}, arguments)", .{ fmt, this.arg_types.items.len }, ); } else { inner_buf = try std.fmt.bufPrint( inner_buf_[1..], - "FFI_Callback_call((void*)0x{any}ULL, 0, (ZIG_REPR_TYPE*)0)", + "FFI_Callback_call((void*)0x{f}ULL, 0, (ZIG_REPR_TYPE*)0)", .{fmt}, ); } @@ -1979,7 +1979,7 @@ pub const FFI = struct { const len = inner_buf.len + 1; inner_buf = inner_buf_[0..len]; inner_buf[0] = '_'; - try writer.print("return {s}", .{this.return_type.toCExact(inner_buf)}); + try writer.print("return {f}", .{this.return_type.toCExact(inner_buf)}); } try writer.writeAll(";\n}\n\n"); @@ -2088,7 +2088,7 @@ pub const FFI = struct { const EnumMapFormatter = struct { name: []const u8, entry: ABIType, - pub fn format(self: EnumMapFormatter, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: EnumMapFormatter, writer: *std.Io.Writer) !void { try writer.writeAll("['"); // these are not all valid identifiers try writer.writeAll(self.name); @@ -2136,7 +2136,7 @@ pub const FFI = struct { tag: ABIType, exact: bool = false, - pub fn format(self: ToCFormatter, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: ToCFormatter, writer: *std.Io.Writer) !void { switch (self.tag) { .void => { return; @@ -2199,7 +2199,7 @@ pub const FFI = struct { symbol: []const u8, tag: ABIType, - pub fn format(self: ToJSFormatter, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: ToJSFormatter, writer: *std.Io.Writer) !void { switch (self.tag) { .void => {}, .bool => { @@ -2354,10 +2354,10 @@ const CompilerRT = struct { } const MyFunctionSStructWorkAround = struct { - JSVALUE_TO_INT64: *const fn (JSValue0: jsc.JSValue) callconv(.C) i64, - JSVALUE_TO_UINT64: *const fn (JSValue0: jsc.JSValue) callconv(.C) u64, - INT64_TO_JSVALUE: *const fn (arg0: *jsc.JSGlobalObject, arg1: i64) callconv(.C) jsc.JSValue, - UINT64_TO_JSVALUE: *const fn (arg0: *jsc.JSGlobalObject, arg1: u64) callconv(.C) jsc.JSValue, + JSVALUE_TO_INT64: *const fn (JSValue0: jsc.JSValue) callconv(.c) i64, + JSVALUE_TO_UINT64: *const fn (JSValue0: jsc.JSValue) callconv(.c) u64, + INT64_TO_JSVALUE: *const fn (arg0: *jsc.JSGlobalObject, arg1: i64) callconv(.c) jsc.JSValue, + UINT64_TO_JSVALUE: *const fn (arg0: *jsc.JSGlobalObject, arg1: u64) callconv(.c) jsc.JSValue, bun_call: *const @TypeOf(jsc.C.JSObjectCallAsFunction), }; const headers = JSValue.exposed_to_ffi; @@ -2373,7 +2373,7 @@ const CompilerRT = struct { dest: [*]u8, c: u8, byte_count: usize, - ) callconv(.C) void { + ) callconv(.c) void { @memset(dest[0..byte_count], c); } @@ -2381,7 +2381,7 @@ const CompilerRT = struct { noalias dest: [*]u8, noalias source: [*]const u8, byte_count: usize, - ) callconv(.C) void { + ) callconv(.c) void { @memcpy(dest[0..byte_count], source[0..byte_count]); } diff --git a/src/bun.js/api/filesystem_router.zig b/src/bun.js/api/filesystem_router.zig index bd7e8b8118..11a6959265 100644 --- a/src/bun.js/api/filesystem_router.zig +++ b/src/bun.js/api/filesystem_router.zig @@ -68,7 +68,7 @@ pub const FileSystemRouter = struct { var arena = globalThis.allocator().create(bun.ArenaAllocator) catch unreachable; arena.* = bun.ArenaAllocator.init(globalThis.allocator()); const allocator = arena.allocator(); - var extensions = std.ArrayList(string).init(allocator); + var extensions = std.array_list.Managed(string).init(allocator); if (try argument.get(globalThis, "fileExtensions")) |file_extensions| { if (!file_extensions.jsType().isArray()) { origin_str.deinit(); @@ -251,8 +251,8 @@ pub const FileSystemRouter = struct { return globalThis.throwValue(try log.toJS(globalThis, globalThis.allocator(), "loading routes")); }; - this.arena.deinit(); this.router.deinit(); + this.arena.deinit(); globalThis.allocator().destroy(this.arena); this.arena = arena; @@ -375,7 +375,7 @@ pub const FileSystemRouter = struct { pub fn finalize( this: *FileSystemRouter, - ) callconv(.C) void { + ) callconv(.c) void { if (this.asset_prefix) |prefix| { prefix.deref(); } @@ -484,7 +484,7 @@ pub const MatchedRoute = struct { pub fn finalize( this: *MatchedRoute, - ) callconv(.C) void { + ) callconv(.c) void { this.deinit(); } diff --git a/src/bun.js/api/glob.zig b/src/bun.js/api/glob.zig index 44e459c3ff..6f66f6b4ec 100644 --- a/src/bun.js/api/glob.zig +++ b/src/bun.js/api/glob.zig @@ -6,7 +6,7 @@ pub const fromJS = js.fromJS; pub const fromJSDirect = js.fromJSDirect; pattern: []const u8, -pattern_codepoints: ?std.ArrayList(u32) = null, +pattern_codepoints: ?std.array_list.Managed(u32) = null, has_pending_activity: std.atomic.Value(usize) = std.atomic.Value(usize).init(0), const ScanOpts = struct { @@ -285,7 +285,7 @@ pub fn constructor(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) b pub fn finalize( this: *Glob, -) callconv(.C) void { +) callconv(.c) void { const alloc = jsc.VirtualMachine.get().allocator; alloc.free(this.pattern); if (this.pattern_codepoints) |*codepoints| { @@ -294,7 +294,7 @@ pub fn finalize( alloc.destroy(this); } -pub fn hasPendingActivity(this: *Glob) callconv(.C) bool { +pub fn hasPendingActivity(this: *Glob) callconv(.c) bool { return this.has_pending_activity.load(.seq_cst) > 0; } @@ -377,7 +377,7 @@ pub fn match(this: *Glob, globalThis: *JSGlobalObject, callframe: *jsc.CallFrame return jsc.JSValue.jsBoolean(bun.glob.match(this.pattern, str.slice()).matches()); } -pub fn convertUtf8(codepoints: *std.ArrayList(u32), pattern: []const u8) !void { +pub fn convertUtf8(codepoints: *std.array_list.Managed(u32), pattern: []const u8) !void { const iter = CodepointIterator.init(pattern); var cursor = CodepointIterator.Cursor{}; while (iter.next(&cursor)) { diff --git a/src/bun.js/api/html_rewriter.zig b/src/bun.js/api/html_rewriter.zig index 5cc0c0d9f1..259abc74f1 100644 --- a/src/bun.js/api/html_rewriter.zig +++ b/src/bun.js/api/html_rewriter.zig @@ -59,7 +59,7 @@ pub const HTMLRewriter = struct { callFrame: *jsc.CallFrame, listener: JSValue, ) bun.JSError!JSValue { - const selector_slice = bun.handleOom(std.fmt.allocPrint(bun.default_allocator, "{}", .{selector_name})); + const selector_slice = bun.handleOom(std.fmt.allocPrint(bun.default_allocator, "{f}", .{selector_name})); defer bun.default_allocator.free(selector_slice); var selector = LOLHTML.HTMLSelector.parse(selector_slice) catch @@ -250,13 +250,13 @@ pub const HTMLRewriter = struct { failed: bool = false, output: jsc.WebCore.Sink, signal: jsc.WebCore.Signal = .{}, - backpressure: std.fifo.LinearFifo(u8, .Dynamic) = std.fifo.LinearFifo(u8, .Dynamic).init(bun.default_allocator), + backpressure: bun.LinearFifo(u8, .Dynamic) = bun.LinearFifo(u8, .Dynamic).init(bun.default_allocator), pub fn finalize(this: *HTMLRewriterLoader) void { if (this.finalized) return; this.rewriter.deinit(); this.backpressure.deinit(); - this.backpressure = std.fifo.LinearFifo(u8, .Dynamic).init(bun.default_allocator); + this.backpressure = bun.LinearFifo(u8, .Dynamic).init(bun.default_allocator); this.finalized = true; } diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig index 4853f5f847..7924f5cea3 100644 --- a/src/bun.js/api/server.zig +++ b/src/bun.js/api/server.zig @@ -104,7 +104,7 @@ pub const AnyRoute = union(enum) { } } const is_index_route = bun.strings.eql(path.path.slice(), index_path); - var builder = std.ArrayList(u8).init(bun.default_allocator); + var builder = std.array_list.Managed(u8).init(bun.default_allocator); defer builder.deinit(); if (!strings.hasPrefixComptime(relative_path, "/")) { try builder.append('/'); @@ -171,11 +171,11 @@ pub const AnyRoute = union(enum) { switch (bun.sys.existsAtType(bun.FD.cwd(), store_path)) { .result => |file_type| { if (file_type == .directory) { - return global.throwInvalidArguments("Bundled file {} cannot be a directory. You may want to configure --asset-naming or `naming` when bundling.", .{bun.fmt.quote(store_path)}); + return global.throwInvalidArguments("Bundled file {f} cannot be a directory. You may want to configure --asset-naming or `naming` when bundling.", .{bun.fmt.quote(store_path)}); } }, .err => { - return global.throwInvalidArguments("Bundled file {} not found. You may want to configure --asset-naming or `naming` when bundling.", .{bun.fmt.quote(store_path)}); + return global.throwInvalidArguments("Bundled file {f} not found. You may want to configure --asset-naming or `naming` when bundling.", .{bun.fmt.quote(store_path)}); }, } } @@ -210,8 +210,8 @@ pub const AnyRoute = union(enum) { dedupe_html_bundle_map: std.AutoHashMap(*HTMLBundle, bun.ptr.RefPtr(HTMLBundle.Route)), js_string_allocations: bun.bake.StringRefList, global: *jsc.JSGlobalObject, - framework_router_list: std.ArrayList(bun.bake.Framework.FileSystemRouterType), - user_routes: *std.ArrayList(ServerConfig.StaticRouteEntry), + framework_router_list: std.array_list.Managed(bun.bake.Framework.FileSystemRouterType), + user_routes: *std.array_list.Managed(ServerConfig.StaticRouteEntry), }; pub fn fromJS( @@ -1377,7 +1377,7 @@ pub fn NewServer(protocol_enum: enum { http, https }, development_kind: enum { d }, }; - const buf = try std.fmt.allocPrint(default_allocator, "{any}", .{fmt}); + const buf = try std.fmt.allocPrint(default_allocator, "{f}", .{fmt}); defer default_allocator.free(buf); return bun.String.cloneUTF8(buf); @@ -1768,7 +1768,7 @@ pub fn NewServer(protocol_enum: enum { http, https }, development_kind: enum { d switch (bun.sys.getErrno(@as(i32, -1))) { .SUCCESS => { error_instance = (jsc.SystemError{ - .message = bun.String.init(std.fmt.bufPrint(&output_buf, "Failed to listen on unix socket {}", .{bun.fmt.QuotedFormatter{ .text = unix }}) catch "Failed to start server"), + .message = bun.String.init(std.fmt.bufPrint(&output_buf, "Failed to listen on unix socket {f}", .{bun.fmt.QuotedFormatter{ .text = unix }}) catch "Failed to start server"), .code = bun.String.static("EADDRINUSE"), .syscall = bun.String.static("listen"), }).toErrorInstance(globalThis); @@ -2456,7 +2456,7 @@ pub fn NewServer(protocol_enum: enum { http, https }, development_kind: enum { d // uuid: string, // } // } - const json_string = std.fmt.allocPrint(bun.default_allocator, "{{ \"workspace\": {{ \"root\": {}, \"uuid\": \"{}\" }} }}", .{ + const json_string = std.fmt.allocPrint(bun.default_allocator, "{{ \"workspace\": {{ \"root\": {f}, \"uuid\": \"{f}\" }} }}", .{ bun.fmt.formatJSONStringUTF8(this.dev_server.?.root, .{}), uuid, }) catch |err| bun.handleOom(err); diff --git a/src/bun.js/api/server/FileRoute.zig b/src/bun.js/api/server/FileRoute.zig index 48f86bd559..7a1c8aee01 100644 --- a/src/bun.js/api/server/FileRoute.zig +++ b/src/bun.js/api/server/FileRoute.zig @@ -452,7 +452,7 @@ const StreamTransfer = struct { } pub fn onReaderError(this: *StreamTransfer, err: bun.sys.Error) void { - log("onReaderError {any}", .{err}); + log("onReaderError {f}", .{err}); defer this.deref(); // deref the ref because reader is done if (!this.state.has_ended_response) { diff --git a/src/bun.js/api/server/HTMLBundle.zig b/src/bun.js/api/server/HTMLBundle.zig index c6c4e5f272..a09d4d990b 100644 --- a/src/bun.js/api/server/HTMLBundle.zig +++ b/src/bun.js/api/server/HTMLBundle.zig @@ -324,9 +324,9 @@ pub const Route = struct { if (server.config().isDevelopment()) { switch (bun.Output.enable_ansi_colors_stderr) { inline else => |enable_ansi_colors| { - var writer = bun.Output.errorWriterBuffered(); - this.state.err.printWithEnableAnsiColors(&writer, enable_ansi_colors) catch {}; - writer.context.flush() catch {}; + const writer = bun.Output.errorWriterBuffered(); + this.state.err.printWithEnableAnsiColors(writer, enable_ansi_colors) catch {}; + writer.flush() catch {}; }, } } @@ -372,7 +372,7 @@ pub const Route = struct { var hashbuf: [64]u8 = undefined; const etag_str = std.fmt.bufPrint( &hashbuf, - "{}", + "{f}", .{bun.fmt.hexIntLower(output_file.hash)}, ) catch |err| switch (err) { error.NoSpaceLeft => unreachable, diff --git a/src/bun.js/api/server/NodeHTTPResponse.zig b/src/bun.js/api/server/NodeHTTPResponse.zig index 707683602a..60746e6057 100644 --- a/src/bun.js/api/server/NodeHTTPResponse.zig +++ b/src/bun.js/api/server/NodeHTTPResponse.zig @@ -278,7 +278,7 @@ pub fn create( response_ptr: *anyopaque, upgrade_ctx: ?*anyopaque, node_response_ptr: *?*NodeHTTPResponse, -) callconv(.C) jsc.JSValue { +) callconv(.c) jsc.JSValue { const vm = globalObject.bunVM(); const method = HTTP.Method.which(request.method()) orelse HTTP.Method.OPTIONS; // GET in node.js can have a body diff --git a/src/bun.js/api/server/RequestContext.zig b/src/bun.js/api/server/RequestContext.zig index eb5d3158cc..8764b3e49c 100644 --- a/src/bun.js/api/server/RequestContext.zig +++ b/src/bun.js/api/server/RequestContext.zig @@ -150,7 +150,7 @@ pub fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, const globalThis: *jsc.JSGlobalObject = server.globalThis; Output.enableBuffering(); - var writer = Output.errorWriter(); + const writer = Output.errorWriter(); if (bun.strings.eqlComptime(class_name, "Response")) { Output.errGeneric("Expected a native Response object, but received a polyfilled Response object. Bun.serve() only supports native Response objects.", .{}); @@ -160,14 +160,14 @@ pub fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, .quote_strings = true, }; defer formatter.deinit(); - Output.errGeneric("Expected a Response object, but received '{}'", .{value.toFmt(&formatter)}); + Output.errGeneric("Expected a Response object, but received '{f}'", .{value.toFmt(&formatter)}); } else { Output.errGeneric("Expected a Response object", .{}); } Output.flush(); if (!globalThis.hasException()) { - jsc.ConsoleObject.writeTrace(@TypeOf(&writer), &writer, globalThis); + jsc.ConsoleObject.writeTrace(@TypeOf(writer), writer, globalThis); } Output.flush(); } @@ -428,7 +428,7 @@ pub fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, Output.flush(); // Explicitly use `this.allocator` and *not* the arena - var bb = std.ArrayList(u8).init(this.allocator); + var bb = std.array_list.Managed(u8).init(this.allocator); const bb_writer = bb.writer(); Fallback.renderBackend( @@ -696,7 +696,7 @@ pub fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, const globalThis = this.server.?.globalThis; if (comptime Environment.isDebug) { - ctxLog("finalizeWithoutDeinit: has_finalized {any}", .{this.flags.has_finalized}); + ctxLog("finalizeWithoutDeinit: has_finalized {}", .{this.flags.has_finalized}); this.flags.has_finalized = true; } @@ -1675,7 +1675,7 @@ pub fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, return; } - streamLog("onResolve({any})", .{wrote_anything}); + streamLog("onResolve({})", .{wrote_anything}); if (!req.flags.has_written_status) { req.renderMetadata(); } @@ -1741,7 +1741,7 @@ pub fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, if (comptime debug_mode) { if (req.server) |server| { if (!err.isEmptyOrUndefinedOrNull()) { - var exception_list: std.ArrayList(Api.JsException) = std.ArrayList(Api.JsException).init(req.allocator); + var exception_list: std.array_list.Managed(Api.JsException) = std.array_list.Managed(Api.JsException).init(req.allocator); defer exception_list.deinit(); server.vm.runErrorHandler(err, &exception_list); @@ -1776,7 +1776,7 @@ pub fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, }, }; - var bb = std.ArrayList(u8).init(allocator); + var bb = std.array_list.Managed(u8).init(allocator); defer bb.clearAndFree(); const bb_writer = bb.writer(); @@ -2039,11 +2039,11 @@ pub fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, const PathnameFormatter = struct { ctx: *RequestContext, - pub fn format(formatter: @This(), comptime fmt: []const u8, opts: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(formatter: @This(), writer: *std.Io.Writer) !void { var this = formatter.ctx; if (!this.pathname.isEmpty()) { - try this.pathname.format(fmt, opts, writer); + try this.pathname.format(writer); return; } @@ -2077,7 +2077,7 @@ pub fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, var arena = std.heap.ArenaAllocator.init(this.allocator); defer arena.deinit(); const allocator = arena.allocator(); - var exception_list: std.ArrayList(Api.JsException) = std.ArrayList(Api.JsException).init(allocator); + var exception_list: std.array_list.Managed(Api.JsException) = std.array_list.Managed(Api.JsException).init(allocator); defer exception_list.deinit(); const prev_exception_list = vm.onUnhandledRejectionExceptionList; vm.onUnhandledRejectionExceptionList = &exception_list; @@ -2089,7 +2089,7 @@ pub fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, vm.log, error.ExceptionOcurred, exception_list.items, - "{s} - {} failed", + "{s} - {f} failed", .{ @as(string, @tagName(this.method)), this.ensurePathname() }, ); } else { diff --git a/src/bun.js/api/server/ServerConfig.zig b/src/bun.js/api/server/ServerConfig.zig index 5ba1941675..4974ab8894 100644 --- a/src/bun.js/api/server/ServerConfig.zig +++ b/src/bun.js/api/server/ServerConfig.zig @@ -57,9 +57,9 @@ ipv6_only: bool = false, is_node_http: bool = false, had_routes_object: bool = false, -static_routes: std.ArrayList(StaticRouteEntry) = std.ArrayList(StaticRouteEntry).init(bun.default_allocator), -negative_routes: std.ArrayList([:0]const u8) = std.ArrayList([:0]const u8).init(bun.default_allocator), -user_routes_to_build: std.ArrayList(UserRouteBuilder) = std.ArrayList(UserRouteBuilder).init(bun.default_allocator), +static_routes: std.array_list.Managed(StaticRouteEntry) = std.array_list.Managed(StaticRouteEntry).init(bun.default_allocator), +negative_routes: std.array_list.Managed([:0]const u8) = std.array_list.Managed([:0]const u8).init(bun.default_allocator), +user_routes_to_build: std.array_list.Managed(UserRouteBuilder) = std.array_list.Managed(UserRouteBuilder).init(bun.default_allocator), bake: ?bun.bake.UserOptions = null, @@ -164,7 +164,7 @@ fn normalizeStaticRoutesList(this: *ServerConfig) !void { } }; - var static_routes_dedupe_list = std.ArrayList(u64).init(bun.default_allocator); + var static_routes_dedupe_list = std.array_list.Managed(u64).init(bun.default_allocator); try static_routes_dedupe_list.ensureTotalCapacity(@truncate(this.static_routes.items.len)); defer static_routes_dedupe_list.deinit(); @@ -284,7 +284,7 @@ pub fn deinit(this: *ServerConfig) void { } pub fn computeID(this: *const ServerConfig, allocator: std.mem.Allocator) []const u8 { - var arraylist = std.ArrayList(u8).init(allocator); + var arraylist = std.array_list.Managed(u8).init(allocator); var writer = arraylist.writer(); writer.writeAll("[http]-") catch {}; @@ -522,7 +522,7 @@ pub fn fromJS( // This list is not used in the success case defer init_ctx.dedupe_html_bundle_map.deinit(); - var framework_router_list = std.ArrayList(bun.bake.FrameworkRouter.Type).init(bun.default_allocator); + var framework_router_list = std.array_list.Managed(bun.bake.FrameworkRouter.Type).init(bun.default_allocator); errdefer framework_router_list.deinit(); errdefer { @@ -543,11 +543,11 @@ pub fn fromJS( } if (path.len == 0 or (path[0] != '/')) { - return global.throwInvalidArguments("Invalid route {}. Path must start with '/'", .{bun.fmt.quote(path)}); + return global.throwInvalidArguments("Invalid route {f}. Path must start with '/'", .{bun.fmt.quote(path)}); } if (!is_ascii) { - return global.throwInvalidArguments("Invalid route {}. Please encode all non-ASCII characters in the path.", .{bun.fmt.quote(path)}); + return global.throwInvalidArguments("Invalid route {f}. Please encode all non-ASCII characters in the path.", .{bun.fmt.quote(path)}); } if (value == .false) { diff --git a/src/bun.js/api/server/StaticRoute.zig b/src/bun.js/api/server/StaticRoute.zig index 1ddfcaa2ad..f996168236 100644 --- a/src/bun.js/api/server/StaticRoute.zig +++ b/src/bun.js/api/server/StaticRoute.zig @@ -103,7 +103,7 @@ pub fn fromJS(globalThis: *jsc.JSGlobalObject, argument: jsc.JSValue) bun.JSErro .Null, .Empty => { break :brk .{ .InternalBlob = .{ - .bytes = std.ArrayList(u8).init(bun.default_allocator), + .bytes = std.array_list.Managed(u8).init(bun.default_allocator), }, }; }, diff --git a/src/bun.js/bindings/AbortSignal.zig b/src/bun.js/bindings/AbortSignal.zig index 4d3444c07a..3f9322de63 100644 --- a/src/bun.js/bindings/AbortSignal.zig +++ b/src/bun.js/bindings/AbortSignal.zig @@ -1,7 +1,7 @@ pub const AbortSignal = opaque { extern fn WebCore__AbortSignal__aborted(arg0: *AbortSignal) bool; extern fn WebCore__AbortSignal__abortReason(arg0: *AbortSignal) JSValue; - extern fn WebCore__AbortSignal__addListener(arg0: *AbortSignal, arg1: ?*anyopaque, ArgFn2: ?*const fn (?*anyopaque, JSValue) callconv(.C) void) *AbortSignal; + extern fn WebCore__AbortSignal__addListener(arg0: *AbortSignal, arg1: ?*anyopaque, ArgFn2: ?*const fn (?*anyopaque, JSValue) callconv(.c) void) *AbortSignal; extern fn WebCore__AbortSignal__cleanNativeBindings(arg0: *AbortSignal, arg1: ?*anyopaque) void; extern fn WebCore__AbortSignal__create(arg0: *JSGlobalObject) JSValue; extern fn WebCore__AbortSignal__fromJS(JSValue0: JSValue) ?*AbortSignal; @@ -20,7 +20,7 @@ pub const AbortSignal = opaque { pub fn callback( ptr: ?*anyopaque, reason: JSValue, - ) callconv(.C) void { + ) callconv(.c) void { const val = bun.cast(*Context, ptr.?); call(val, reason); } @@ -32,7 +32,7 @@ pub const AbortSignal = opaque { pub fn addListener( this: *AbortSignal, ctx: ?*anyopaque, - callback: *const fn (?*anyopaque, JSValue) callconv(.C) void, + callback: *const fn (?*anyopaque, JSValue) callconv(.c) void, ) *AbortSignal { return WebCore__AbortSignal__addListener(this, ctx, callback); } diff --git a/src/bun.js/bindings/AnyPromise.zig b/src/bun.js/bindings/AnyPromise.zig index 601de348c0..efa9a23f36 100644 --- a/src/bun.js/bindings/AnyPromise.zig +++ b/src/bun.js/bindings/AnyPromise.zig @@ -53,7 +53,7 @@ pub const AnyPromise = union(enum) { }; } - extern fn JSC__AnyPromise__wrap(*jsc.JSGlobalObject, JSValue, *anyopaque, *const fn (*anyopaque, *jsc.JSGlobalObject) callconv(.C) jsc.JSValue) void; + extern fn JSC__AnyPromise__wrap(*jsc.JSGlobalObject, JSValue, *anyopaque, *const fn (*anyopaque, *jsc.JSGlobalObject) callconv(.c) jsc.JSValue) void; pub fn wrap( this: AnyPromise, diff --git a/src/bun.js/bindings/CPUFeatures.zig b/src/bun.js/bindings/CPUFeatures.zig index 065792caf3..29e4a6e040 100644 --- a/src/bun.js/bindings/CPUFeatures.zig +++ b/src/bun.js/bindings/CPUFeatures.zig @@ -31,7 +31,7 @@ pub const Flags = switch (@import("builtin").cpu.arch) { else => unreachable, }; -pub fn format(features: @This(), comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { +pub fn format(features: @This(), writer: *std.Io.Writer) !void { var is_first = true; inline for (@typeInfo(Flags).@"struct".fields) |field| brk: { if (comptime (bun.strings.eql(field.name, "padding") or diff --git a/src/bun.js/bindings/CallFrame.zig b/src/bun.js/bindings/CallFrame.zig index 0f833bd564..e38650a31c 100644 --- a/src/bun.js/bindings/CallFrame.zig +++ b/src/bun.js/bindings/CallFrame.zig @@ -102,7 +102,7 @@ pub const CallFrame = opaque { number: f64, // double integer: i64, // integer }; - const registers: [*]const Register = @alignCast(@ptrCast(self)); + const registers: [*]const Register = @ptrCast(@alignCast(self)); // argumentCountIncludingThis takes the register at the defined offset, then // calls 'ALWAYS_INLINE int32_t Register::unboxedInt32() const', // which in turn calls 'ALWAYS_INLINE int32_t Register::payload() const' @@ -150,7 +150,7 @@ pub const CallFrame = opaque { const slice = self.arguments(); comptime bun.assert(max <= 15); return switch (@as(u4, @min(slice.len, max))) { - 0 => .{ .ptr = undefined, .len = 0 }, + 0 => .{ .ptr = @splat(.zero), .len = 0 }, inline 1...15 => |count| Arguments(max).init(comptime @min(count, max), slice.ptr), }; } diff --git a/src/bun.js/bindings/DOMFormData.zig b/src/bun.js/bindings/DOMFormData.zig index 09d654d58e..4c6d6f0a60 100644 --- a/src/bun.js/bindings/DOMFormData.zig +++ b/src/bun.js/bindings/DOMFormData.zig @@ -2,7 +2,7 @@ pub const DOMFormData = opaque { extern fn WebCore__DOMFormData__cast_(JSValue0: JSValue, arg1: *VM) ?*DOMFormData; extern fn WebCore__DOMFormData__create(arg0: *JSGlobalObject) JSValue; extern fn WebCore__DOMFormData__createFromURLQuery(arg0: *JSGlobalObject, arg1: *ZigString) JSValue; - extern fn WebCore__DOMFormData__toQueryString(arg0: *DOMFormData, arg1: *anyopaque, arg2: *const fn (arg0: *anyopaque, *ZigString) callconv(.C) void) void; + extern fn WebCore__DOMFormData__toQueryString(arg0: *DOMFormData, arg1: *anyopaque, arg2: *const fn (arg0: *anyopaque, *ZigString) callconv(.c) void) void; extern fn WebCore__DOMFormData__fromJS(JSValue0: JSValue) ?*DOMFormData; extern fn WebCore__DOMFormData__append(arg0: *DOMFormData, arg1: *ZigString, arg2: *ZigString) void; extern fn WebCore__DOMFormData__appendBlob(arg0: *DOMFormData, arg1: *JSGlobalObject, arg2: *ZigString, arg3: *anyopaque, arg4: *ZigString) void; @@ -24,18 +24,18 @@ pub const DOMFormData = opaque { extern fn DOMFormData__toQueryString( *DOMFormData, ctx: *anyopaque, - callback: *const fn (ctx: *anyopaque, *ZigString) callconv(.C) void, + callback: *const fn (ctx: *anyopaque, *ZigString) callconv(.c) void, ) void; pub fn toQueryString( this: *DOMFormData, comptime Ctx: type, ctx: Ctx, - comptime callback: fn (ctx: Ctx, ZigString) callconv(.C) void, + comptime callback: fn (ctx: Ctx, ZigString) callconv(.c) void, ) void { const Wrapper = struct { const cb = callback; - pub fn run(c: *anyopaque, str: *ZigString) callconv(.C) void { + pub fn run(c: *anyopaque, str: *ZigString) callconv(.c) void { cb(@as(Ctx, @ptrCast(c)), str.*); } }; @@ -77,7 +77,7 @@ pub const DOMFormData = opaque { value_ptr: *anyopaque, filename: ?*ZigString, is_blob: u8, - ) callconv(.C) void; + ) callconv(.c) void; extern fn DOMFormData__forEach(*DOMFormData, ?*anyopaque, ForEachFunction) void; pub const FormDataEntry = union(enum) { @@ -101,7 +101,7 @@ pub const DOMFormData = opaque { value_ptr: *anyopaque, filename: ?*ZigString, is_blob: u8, - ) callconv(.C) void { + ) callconv(.c) void { const ctx_ = bun.cast(*Context, ctx_ptr.?); const value = if (is_blob == 0) FormDataEntry{ .string = bun.cast(*ZigString, value_ptr).* } diff --git a/src/bun.js/bindings/HTTPServerAgent.zig b/src/bun.js/bindings/HTTPServerAgent.zig index 7f74625d92..df03b4b85f 100644 --- a/src/bun.js/bindings/HTTPServerAgent.zig +++ b/src/bun.js/bindings/HTTPServerAgent.zig @@ -37,7 +37,7 @@ pub fn notifyServerStopped(this: *const HTTPServerAgent, server: jsc.API.AnyServ pub fn notifyServerRoutesUpdated(this: *const HTTPServerAgent, server: jsc.API.AnyServer) !void { if (this.agent) |agent| { const config = server.config(); - var routes = std.ArrayList(Route).init(bun.default_allocator); + var routes = std.array_list.Managed(Route).init(bun.default_allocator); defer { for (routes.items) |*route| { route.deinit(); diff --git a/src/bun.js/bindings/JSGlobalObject.zig b/src/bun.js/bindings/JSGlobalObject.zig index 3ef7062c74..e882f8de98 100644 --- a/src/bun.js/bindings/JSGlobalObject.zig +++ b/src/bun.js/bindings/JSGlobalObject.zig @@ -91,7 +91,7 @@ pub const JSGlobalObject = opaque { ) bun.JSError { const actual_string_value = try determineSpecificType(this, value); defer actual_string_value.deref(); - return this.ERR(.INVALID_ARG_VALUE, "The \"{s}\" argument is invalid. Received {}", .{ argname, actual_string_value }).throw(); + return this.ERR(.INVALID_ARG_VALUE, "The \"{s}\" argument is invalid. Received {f}", .{ argname, actual_string_value }).throw(); } pub fn throwInvalidArgumentValueCustom( @@ -102,7 +102,7 @@ pub const JSGlobalObject = opaque { ) bun.JSError { const actual_string_value = try determineSpecificType(this, value); defer actual_string_value.deref(); - return this.ERR(.INVALID_ARG_VALUE, "The \"{s}\" argument {s}. Received {}", .{ argname, message, actual_string_value }).throw(); + return this.ERR(.INVALID_ARG_VALUE, "The \"{s}\" argument {s}. Received {f}", .{ argname, message, actual_string_value }).throw(); } /// Throw an `ERR_INVALID_ARG_VALUE` when the invalid value is a property of an object. @@ -118,9 +118,9 @@ pub const JSGlobalObject = opaque { const actual_string_value = try determineSpecificType(this, value); defer actual_string_value.deref(); if (comptime expected) |_expected| { - return this.ERR(.INVALID_ARG_VALUE, "The property \"{s}\" is invalid. Expected {s}, received {}", .{ argname, _expected, actual_string_value }).throw(); + return this.ERR(.INVALID_ARG_VALUE, "The property \"{s}\" is invalid. Expected {s}, received {f}", .{ argname, _expected, actual_string_value }).throw(); } else { - return this.ERR(.INVALID_ARG_VALUE, "The property \"{s}\" is invalid. Received {}", .{ argname, actual_string_value }).throw(); + return this.ERR(.INVALID_ARG_VALUE, "The property \"{s}\" is invalid. Received {f}", .{ argname, actual_string_value }).throw(); } } @@ -165,7 +165,7 @@ pub const JSGlobalObject = opaque { ) bun.JSError { const actual_string_value = try determineSpecificType(this, value); defer actual_string_value.deref(); - return this.ERR(.INVALID_ARG_TYPE, "The \"{s}\" argument must be of type {s}. Received {}", .{ argname, typename, actual_string_value }).throw(); + return this.ERR(.INVALID_ARG_TYPE, "The \"{s}\" argument must be of type {s}. Received {f}", .{ argname, typename, actual_string_value }).throw(); } pub fn throwInvalidArgumentTypeValue2( @@ -176,7 +176,7 @@ pub const JSGlobalObject = opaque { ) JSError { const actual_string_value = try determineSpecificType(this, value); defer actual_string_value.deref(); - return this.ERR(.INVALID_ARG_TYPE, "The \"{s}\" argument must be {s}. Received {}", .{ argname, typename, actual_string_value }).throw(); + return this.ERR(.INVALID_ARG_TYPE, "The \"{s}\" argument must be {s}. Received {f}", .{ argname, typename, actual_string_value }).throw(); } /// "The argument must be one of type . Received " @@ -188,7 +188,7 @@ pub const JSGlobalObject = opaque { ) bun.JSError { const actual_string_value = try determineSpecificType(this, value); defer actual_string_value.deref(); - return this.ERR(.INVALID_ARG_TYPE, "The \"{s}\" argument must be one of type {s}. Received {}", .{ argname, typename, actual_string_value }).throw(); + return this.ERR(.INVALID_ARG_TYPE, "The \"{s}\" argument must be one of type {s}. Received {f}", .{ argname, typename, actual_string_value }).throw(); } pub fn throwInvalidArgumentRangeValue( @@ -197,7 +197,7 @@ pub const JSGlobalObject = opaque { typename: []const u8, value: i64, ) bun.JSError { - return this.ERR(.OUT_OF_RANGE, "The \"{s}\" is out of range. {s}. Received {}", .{ argname, typename, value }).throw(); + return this.ERR(.OUT_OF_RANGE, "The \"{s}\" is out of range. {s}. Received {f}", .{ argname, typename, value }).throw(); } pub fn throwInvalidPropertyTypeValue( @@ -261,15 +261,15 @@ pub const JSGlobalObject = opaque { pub fn createErrorInstance(this: *JSGlobalObject, comptime fmt: [:0]const u8, args: anytype) JSValue { if (comptime std.meta.fieldNames(@TypeOf(args)).len > 0) { var stack_fallback = std.heap.stackFallback(1024 * 4, this.allocator()); - var buf = bun.MutableString.init2048(stack_fallback.get()) catch unreachable; + var buf = std.Io.Writer.Allocating.initCapacity(stack_fallback.get(), 2048) catch unreachable; defer buf.deinit(); - var writer = buf.writer(); + var writer = &buf.writer; writer.print(fmt, args) catch // if an exception occurs in the middle of formatting the error message, it's better to just return the formatting string than an error about an error return ZigString.static(fmt).toErrorInstance(this); // Ensure we clone it. - var str = ZigString.initUTF8(buf.slice()); + var str = ZigString.initUTF8(buf.written()); return str.toErrorInstance(this); } else { @@ -383,7 +383,7 @@ pub const JSGlobalObject = opaque { return this.throwValue(instance); } - extern fn JSC__JSGlobalObject__queueMicrotaskCallback(*JSGlobalObject, *anyopaque, Function: *const (fn (*anyopaque) callconv(.C) void)) void; + extern fn JSC__JSGlobalObject__queueMicrotaskCallback(*JSGlobalObject, *anyopaque, Function: *const (fn (*anyopaque) callconv(.c) void)) void; pub fn queueMicrotaskCallback( this: *JSGlobalObject, ctx_val: anytype, @@ -393,7 +393,7 @@ pub const JSGlobalObject = opaque { const Fn = Function; const ContextType = @TypeOf(ctx_val); const Wrapper = struct { - pub fn call(p: *anyopaque) callconv(.C) void { + pub fn call(p: *anyopaque) callconv(.c) void { Fn(bun.cast(ContextType, p)); } }; @@ -666,7 +666,7 @@ pub const JSGlobalObject = opaque { } pub fn throwRangeError(this: *JSGlobalObject, value: anytype, options: bun.fmt.OutOfRangeOptions) bun.JSError { - return this.ERR(.OUT_OF_RANGE, "{}", .{bun.fmt.outOfRange(value, options)}).throw(); + return this.ERR(.OUT_OF_RANGE, "{f}", .{bun.fmt.outOfRange(value, options)}).throw(); } pub const IntegerRange = struct { @@ -842,14 +842,14 @@ pub const JSGlobalObject = opaque { return Zig__GlobalObject__resetModuleRegistryMap(global, map); } - pub fn resolve(res: *ErrorableString, global: *JSGlobalObject, specifier: *bun.String, source: *bun.String, query: *ZigString) callconv(.C) void { + pub fn resolve(res: *ErrorableString, global: *JSGlobalObject, specifier: *bun.String, source: *bun.String, query: *ZigString) callconv(.c) void { jsc.markBinding(@src()); return jsc.VirtualMachine.resolve(res, global, specifier.*, source.*, query, true) catch { bun.debugAssert(res.success == false); }; } - pub fn reportUncaughtException(global: *JSGlobalObject, exception: *jsc.Exception) callconv(.C) JSValue { + pub fn reportUncaughtException(global: *JSGlobalObject, exception: *jsc.Exception) callconv(.c) JSValue { jsc.markBinding(@src()); return jsc.VirtualMachine.reportUncaughtException(global, exception); } @@ -859,7 +859,7 @@ pub const JSGlobalObject = opaque { _ = global.reportUncaughtException(global.takeException(proof).asException(global.vm()).?); } - pub fn onCrash() callconv(.C) void { + pub fn onCrash() callconv(.c) void { jsc.markBinding(@src()); bun.Output.flush(); @panic("A C++ exception occurred"); @@ -884,7 +884,7 @@ pub const JSGlobalObject = opaque { ZigString.static("null").*; if (!content_type.eqlComptime("application/wasm")) { - return this.ERR(.WEBASSEMBLY_RESPONSE, "WebAssembly response has unsupported MIME type '{}'", .{content_type}).throw(); + return this.ERR(.WEBASSEMBLY_RESPONSE, "WebAssembly response has unsupported MIME type '{f}'", .{content_type}).throw(); } if (!response.isOK()) { diff --git a/src/bun.js/bindings/JSObject.zig b/src/bun.js/bindings/JSObject.zig index 914b90b60c..ae9577e64e 100644 --- a/src/bun.js/bindings/JSObject.zig +++ b/src/bun.js/bindings/JSObject.zig @@ -120,11 +120,11 @@ pub const JSObject = opaque { return JSC__createStructure(global, owner.asCell(), length, names); } - const InitializeCallback = *const fn (ctx: *anyopaque, obj: *JSObject, global: *JSGlobalObject) callconv(.C) void; + const InitializeCallback = *const fn (ctx: *anyopaque, obj: *JSObject, global: *JSGlobalObject) callconv(.c) void; pub fn Initializer(comptime Ctx: type, comptime func: fn (*Ctx, obj: *JSObject, global: *JSGlobalObject) bun.JSError!void) type { return struct { - pub fn call(this: *anyopaque, obj: *JSObject, global: *JSGlobalObject) callconv(.C) void { + pub fn call(this: *anyopaque, obj: *JSObject, global: *JSGlobalObject) callconv(.c) void { func(@ptrCast(@alignCast(this)), obj, global) catch |err| bun.jsc.host_fn.voidFromJSError(err, global); } }; diff --git a/src/bun.js/bindings/JSPromise.zig b/src/bun.js/bindings/JSPromise.zig index d57a75052b..c31df4857d 100644 --- a/src/bun.js/bindings/JSPromise.zig +++ b/src/bun.js/bindings/JSPromise.zig @@ -12,7 +12,7 @@ pub const JSPromise = opaque { extern fn JSC__JSPromise__rejectedPromiseValue(arg0: *JSGlobalObject, JSValue1: JSValue) JSValue; extern fn JSC__JSPromise__resolvedPromise(arg0: *JSGlobalObject, JSValue1: JSValue) *JSPromise; extern fn JSC__JSPromise__resolvedPromiseValue(arg0: *JSGlobalObject, JSValue1: JSValue) JSValue; - extern fn JSC__JSPromise__wrap(*jsc.JSGlobalObject, *anyopaque, *const fn (*anyopaque, *jsc.JSGlobalObject) callconv(.C) jsc.JSValue) jsc.JSValue; + extern fn JSC__JSPromise__wrap(*jsc.JSGlobalObject, *anyopaque, *const fn (*anyopaque, *jsc.JSGlobalObject) callconv(.c) jsc.JSValue) jsc.JSValue; pub fn Weak(comptime T: type) type { return struct { diff --git a/src/bun.js/bindings/JSRef.zig b/src/bun.js/bindings/JSRef.zig index a8e8516570..ac934b9a4c 100644 --- a/src/bun.js/bindings/JSRef.zig +++ b/src/bun.js/bindings/JSRef.zig @@ -140,7 +140,8 @@ pub const JSRef = union(enum) { switch (this.*) { .weak => { bun.assert(!this.weak.isEmptyOrUndefinedOrNull()); - this.* = .{ .strong = .create(this.weak, globalThis) }; + const weak = this.weak; + this.* = .{ .strong = .create(weak, globalThis) }; }, .strong => {}, .finalized => { diff --git a/src/bun.js/bindings/JSString.zig b/src/bun.js/bindings/JSString.zig index 35af854c16..695f7229b7 100644 --- a/src/bun.js/bindings/JSString.zig +++ b/src/bun.js/bindings/JSString.zig @@ -77,10 +77,10 @@ pub const JSString = opaque { return JSC__JSString__is8Bit(this); } - pub const JStringIteratorAppend8Callback = *const fn (*Iterator, [*]const u8, u32) callconv(.C) void; - pub const JStringIteratorAppend16Callback = *const fn (*Iterator, [*]const u16, u32) callconv(.C) void; - pub const JStringIteratorWrite8Callback = *const fn (*Iterator, [*]const u8, u32, u32) callconv(.C) void; - pub const JStringIteratorWrite16Callback = *const fn (*Iterator, [*]const u16, u32, u32) callconv(.C) void; + pub const JStringIteratorAppend8Callback = *const fn (*Iterator, [*]const u8, u32) callconv(.c) void; + pub const JStringIteratorAppend16Callback = *const fn (*Iterator, [*]const u16, u32) callconv(.c) void; + pub const JStringIteratorWrite8Callback = *const fn (*Iterator, [*]const u8, u32, u32) callconv(.c) void; + pub const JStringIteratorWrite16Callback = *const fn (*Iterator, [*]const u16, u32, u32) callconv(.c) void; pub const Iterator = extern struct { data: ?*anyopaque, stop: u8, diff --git a/src/bun.js/bindings/JSValue.zig b/src/bun.js/bindings/JSValue.zig index 15157d95f9..75a891f659 100644 --- a/src/bun.js/bindings/JSValue.zig +++ b/src/bun.js/bindings/JSValue.zig @@ -25,7 +25,7 @@ pub const JSValue = enum(i64) { pub const is_pointer = false; pub const JSType = @import("./JSType.zig").JSType; - pub fn format(_: JSValue, comptime _: []const u8, _: std.fmt.FormatOptions, _: anytype) !void { + pub fn format(_: JSValue, _: *std.Io.Writer) !void { @compileError("Formatting a JSValue directly is not allowed. Use jsc.ConsoleObject.Formatter"); } @@ -80,9 +80,9 @@ pub const JSValue = enum(i64) { value: JSValue, is_symbol: bool, is_private_symbol: bool, - ) callconv(.C) void; + ) callconv(.c) void; - extern fn JSC__JSValue__forEachPropertyNonIndexed(JSValue0: JSValue, arg1: *JSGlobalObject, arg2: ?*anyopaque, ArgFn3: ?*const fn (*JSGlobalObject, ?*anyopaque, *ZigString, JSValue, bool, bool) callconv(.C) void) void; + extern fn JSC__JSValue__forEachPropertyNonIndexed(JSValue0: JSValue, arg1: *JSGlobalObject, arg2: ?*anyopaque, ArgFn3: ?*const fn (*JSGlobalObject, ?*anyopaque, *ZigString, JSValue, bool, bool) callconv(.c) void) void; pub fn forEachPropertyNonIndexed( this: JSValue, @@ -540,11 +540,7 @@ pub const JSValue = enum(i64) { return bun.jsc.fromJSHostCall(globalObject, @src(), JSBuffer__bufferFromLength, .{ globalObject, @intCast(len) }); } - pub fn jestSnapshotPrettyFormat(this: JSValue, out: *MutableString, globalObject: *JSGlobalObject) !void { - var buffered_writer = MutableString.BufferedWriter{ .context = out }; - const writer = buffered_writer.writer(); - const Writer = @TypeOf(writer); - + pub fn jestSnapshotPrettyFormat(this: JSValue, out: *std.Io.Writer, globalObject: *JSGlobalObject) !void { const fmt_options = JestPrettyFormat.FormatOptions{ .enable_colors = false, .add_newline = false, @@ -557,13 +553,11 @@ pub const JSValue = enum(i64) { globalObject, @as([*]const JSValue, @ptrCast(&this)), 1, - Writer, - Writer, - writer, + out, fmt_options, ); - try buffered_writer.flush(); + try out.flush(); } extern fn JSBuffer__bufferFromLength(*JSGlobalObject, i64) JSValue; @@ -832,7 +826,7 @@ pub const JSValue = enum(i64) { return std.math.minInt(T); } - if (num >= std.math.maxInt(T) or std.math.isPositiveInf(num)) { + if (num >= @as(f64, @as(comptime_float, std.math.maxInt(T))) or std.math.isPositiveInf(num)) { return std.math.maxInt(T); } @@ -1940,10 +1934,10 @@ pub const JSValue = enum(i64) { value: jsc.JSValue, globalObject: *jsc.JSGlobalObject, - pub fn format(this: StringFormatter, comptime text: []const u8, opts: std.fmt.FormatOptions, writer: anytype) !void { - const str = try this.value.toBunString(this.globalObject); + pub fn format(this: StringFormatter, writer: *std.Io.Writer) std.Io.Writer.Error!void { + const str = this.value.toBunString(this.globalObject) catch |e| return bun.deprecated.jsErrorToWriteError(e); defer str.deref(); - try str.format(text, opts, writer); + try str.format(writer); } }; @@ -2116,12 +2110,12 @@ pub const JSValue = enum(i64) { return JSC__JSValue__isAggregateError(this, globalObject); } - extern fn JSC__JSValue__forEach(this: JSValue, globalObject: *JSGlobalObject, ctx: ?*anyopaque, callback: *const fn (vm: *VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.C) void) void; + extern fn JSC__JSValue__forEach(this: JSValue, globalObject: *JSGlobalObject, ctx: ?*anyopaque, callback: *const fn (vm: *VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.c) void) void; pub fn forEach( this: JSValue, globalObject: *JSGlobalObject, ctx: ?*anyopaque, - callback: *const fn (vm: *VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.C) void, + callback: *const fn (vm: *VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.c) void, ) bun.JSError!void { return bun.jsc.fromJSHostCallGeneric(globalObject, @src(), JSC__JSValue__forEach, .{ this, globalObject, ctx, callback }); } @@ -2131,9 +2125,9 @@ pub const JSValue = enum(i64) { this: JSValue, globalObject: *JSGlobalObject, ctx: anytype, - callback: *const fn (vm: *VM, globalObject: *JSGlobalObject, ctx: @TypeOf(ctx), nextValue: JSValue) callconv(.C) void, + callback: *const fn (vm: *VM, globalObject: *JSGlobalObject, ctx: @TypeOf(ctx), nextValue: JSValue) callconv(.c) void, ) bun.JSError!void { - const func = @as(*const fn (vm: *VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.C) void, @ptrCast(callback)); + const func = @as(*const fn (vm: *VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.c) void, @ptrCast(callback)); return bun.jsc.fromJSHostCallGeneric(globalObject, @src(), JSC__JSValue__forEach, .{ this, globalObject, ctx, func }); } @@ -2175,7 +2169,7 @@ pub const JSValue = enum(i64) { } pub fn uncheckedPtrCast(value: JSValue, comptime T: type) *T { - return @alignCast(@ptrCast(value.asEncoded().asPtr)); + return @ptrCast(@alignCast(value.asEncoded().asPtr)); } /// For any callback JSValue created in JS that you will not call *immediately*, you must wrap it @@ -2362,7 +2356,7 @@ pub const JSValue = enum(i64) { pub fn dump(value: jsc.WebCore.JSValue, globalObject: *jsc.JSGlobalObject) !void { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalObject }; defer formatter.deinit(); - try Output.errorWriter().print("{}\n", .{value.toFmt(globalObject, &formatter)}); + try Output.errorWriter().print("{f}\n", .{value.toFmt(globalObject, &formatter)}); Output.flush(); } diff --git a/src/bun.js/bindings/ServerRouteList.cpp b/src/bun.js/bindings/ServerRouteList.cpp index 07a8c3557d..ab96b0b848 100644 --- a/src/bun.js/bindings/ServerRouteList.cpp +++ b/src/bun.js/bindings/ServerRouteList.cpp @@ -18,7 +18,7 @@ using namespace WebCore; /** ServerRouteList holds all the callbacks used by routes in Bun.serve() - The easier approach would be an std.ArrayList of JSC.Strong in Zig, but that + The easier approach would be an std.array_list.Managed of JSC.Strong in Zig, but that would mean that now we're holding a Strong reference for every single callback. This would show up in profiling, and it's a lot of strong references. We could use a JSArray instead, but that would incur unnecessary diff --git a/src/bun.js/bindings/SystemError.zig b/src/bun.js/bindings/SystemError.zig index 128b5d6c8f..cc1d521013 100644 --- a/src/bun.js/bindings/SystemError.zig +++ b/src/bun.js/bindings/SystemError.zig @@ -72,13 +72,13 @@ pub const SystemError = extern struct { return SystemError__toErrorInstanceWithInfoObject(this, global); } - pub fn format(self: SystemError, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: SystemError, writer: *std.Io.Writer) !void { if (!self.path.isEmpty()) { // TODO: remove this hardcoding switch (bun.Output.enable_ansi_colors_stderr) { inline else => |enable_colors| try writer.print( comptime bun.Output.prettyFmt( - "{}: {s}: {} ({}())", + "{f}: {f}: {f} ({f}())", enable_colors, ), .{ @@ -94,7 +94,7 @@ pub const SystemError = extern struct { switch (bun.Output.enable_ansi_colors_stderr) { inline else => |enable_colors| try writer.print( comptime bun.Output.prettyFmt( - "{}: {} ({}())", + "{f}: {f} ({f}())", enable_colors, ), .{ diff --git a/src/bun.js/bindings/URLSearchParams.zig b/src/bun.js/bindings/URLSearchParams.zig index 64f6be1efd..857067b4b7 100644 --- a/src/bun.js/bindings/URLSearchParams.zig +++ b/src/bun.js/bindings/URLSearchParams.zig @@ -14,7 +14,7 @@ pub const URLSearchParams = opaque { extern fn URLSearchParams__toString( self: *URLSearchParams, ctx: *anyopaque, - callback: *const fn (ctx: *anyopaque, str: *const ZigString) callconv(.C) void, + callback: *const fn (ctx: *anyopaque, str: *const ZigString) callconv(.c) void, ) void; pub fn toString( @@ -26,7 +26,7 @@ pub const URLSearchParams = opaque { jsc.markBinding(@src()); const Wrap = struct { const cb_ = callback; - pub fn cb(c: *anyopaque, str: *const ZigString) callconv(.C) void { + pub fn cb(c: *anyopaque, str: *const ZigString) callconv(.c) void { cb_( bun.cast(*Ctx, c), str.*, diff --git a/src/bun.js/bindings/VM.zig b/src/bun.js/bindings/VM.zig index 641987e610..cc29608cf0 100644 --- a/src/bun.js/bindings/VM.zig +++ b/src/bun.js/bindings/VM.zig @@ -29,9 +29,9 @@ pub const VM = opaque { } /// deprecated in favor of getAPILock to avoid an annoying callback wrapper - extern fn JSC__VM__holdAPILock(this: *VM, ctx: ?*anyopaque, callback: *const fn (ctx: ?*anyopaque) callconv(.C) void) void; + extern fn JSC__VM__holdAPILock(this: *VM, ctx: ?*anyopaque, callback: *const fn (ctx: ?*anyopaque) callconv(.c) void) void; /// deprecated in favor of getAPILock to avoid an annoying callback wrapper - pub fn holdAPILock(this: *VM, ctx: ?*anyopaque, callback: *const fn (ctx: ?*anyopaque) callconv(.C) void) void { + pub fn holdAPILock(this: *VM, ctx: ?*anyopaque, callback: *const fn (ctx: ?*anyopaque) callconv(.c) void) void { JSC__VM__holdAPILock(this, ctx, callback); } @@ -51,8 +51,8 @@ pub const VM = opaque { } }; - extern fn JSC__VM__deferGC(this: *VM, ctx: ?*anyopaque, callback: *const fn (ctx: ?*anyopaque) callconv(.C) void) void; - pub fn deferGC(this: *VM, ctx: ?*anyopaque, callback: *const fn (ctx: ?*anyopaque) callconv(.C) void) void { + extern fn JSC__VM__deferGC(this: *VM, ctx: ?*anyopaque, callback: *const fn (ctx: ?*anyopaque) callconv(.c) void) void; + pub fn deferGC(this: *VM, ctx: ?*anyopaque, callback: *const fn (ctx: ?*anyopaque) callconv(.c) void) void { JSC__VM__deferGC(this, ctx, callback); } extern fn JSC__VM__reportExtraMemory(*VM, usize) void; diff --git a/src/bun.js/bindings/ZigException.zig b/src/bun.js/bindings/ZigException.zig index a1579d8367..0adb68a4bf 100644 --- a/src/bun.js/bindings/ZigException.zig +++ b/src/bun.js/bindings/ZigException.zig @@ -125,7 +125,7 @@ pub const ZigException = extern struct { pub fn addToErrorList( this: *ZigException, - error_list: *std.ArrayList(api.JsException), + error_list: *std.array_list.Managed(api.JsException), root_path: string, origin: ?*const ZigURL, ) !void { diff --git a/src/bun.js/bindings/ZigStackFrame.zig b/src/bun.js/bindings/ZigStackFrame.zig index 5a5039f220..d7da652b67 100644 --- a/src/bun.js/bindings/ZigStackFrame.zig +++ b/src/bun.js/bindings/ZigStackFrame.zig @@ -31,7 +31,7 @@ pub const ZigStackFrame = extern struct { } if (!this.source_url.isEmpty()) { - frame.file = try std.fmt.allocPrint(allocator, "{}", .{this.sourceURLFormatter(root_path, origin, true, false)}); + frame.file = try std.fmt.allocPrint(allocator, "{f}", .{this.sourceURLFormatter(root_path, origin, true, false)}); } frame.position = this.position; @@ -49,7 +49,7 @@ pub const ZigStackFrame = extern struct { remapped: bool = false, root_path: string = "", - pub fn format(this: SourceURLFormatter, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: SourceURLFormatter, writer: *std.Io.Writer) !void { if (this.enable_color) { try writer.writeAll(Output.prettyFmt("", true)); } @@ -110,28 +110,26 @@ pub const ZigStackFrame = extern struct { if (!this.exclude_line_column) { if (this.position.line.isValid() and this.position.column.isValid()) { if (this.enable_color) { - try std.fmt.format( - writer, + try writer.print( comptime Output.prettyFmt("{d}:{d}", true), .{ this.position.line.oneBased(), this.position.column.oneBased() }, ); } else { - try std.fmt.format(writer, "{d}:{d}", .{ + try writer.print("{d}:{d}", .{ this.position.line.oneBased(), this.position.column.oneBased(), }); } } else if (this.position.line.isValid()) { if (this.enable_color) { - try std.fmt.format( - writer, + try writer.print( comptime Output.prettyFmt("{d}", true), .{ this.position.line.oneBased(), }, ); } else { - try std.fmt.format(writer, "{d}", .{ + try writer.print("{d}", .{ this.position.line.oneBased(), }); } @@ -146,21 +144,21 @@ pub const ZigStackFrame = extern struct { enable_color: bool, is_async: bool, - pub fn format(this: NameFormatter, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: NameFormatter, writer: *std.Io.Writer) !void { const name = this.function_name; switch (this.code_type) { .Eval => { if (this.enable_color) { - try std.fmt.format(writer, comptime Output.prettyFmt("", true) ++ "eval" ++ Output.prettyFmt("", true), .{}); + try writer.print(comptime Output.prettyFmt("", true) ++ "eval" ++ Output.prettyFmt("", true), .{}); } else { try writer.writeAll("eval"); } if (!name.isEmpty()) { if (this.enable_color) { - try std.fmt.format(writer, comptime Output.prettyFmt(" {}", true), .{name}); + try writer.print(comptime Output.prettyFmt(" {f}", true), .{name}); } else { - try std.fmt.format(writer, " {}", .{name}); + try writer.print(" {f}", .{name}); } } }, @@ -168,23 +166,23 @@ pub const ZigStackFrame = extern struct { if (!name.isEmpty()) { if (this.enable_color) { if (this.is_async) { - try std.fmt.format(writer, comptime Output.prettyFmt("async {}", true), .{name}); + try writer.print(comptime Output.prettyFmt("async {f}", true), .{name}); } else { - try std.fmt.format(writer, comptime Output.prettyFmt("{}", true), .{name}); + try writer.print(comptime Output.prettyFmt("{f}", true), .{name}); } } else { if (this.is_async) { - try std.fmt.format(writer, "async {}", .{name}); + try writer.print("async {f}", .{name}); } else { - try std.fmt.format(writer, "{}", .{name}); + try writer.print("{f}", .{name}); } } } else { if (this.enable_color) { if (this.is_async) { - try std.fmt.format(writer, comptime Output.prettyFmt("", true) ++ "async " ++ Output.prettyFmt("", true), .{}); + try writer.print(comptime Output.prettyFmt("", true) ++ "async " ++ Output.prettyFmt("", true), .{}); } else { - try std.fmt.format(writer, comptime Output.prettyFmt("", true) ++ "" ++ Output.prettyFmt("", true), .{}); + try writer.print(comptime Output.prettyFmt("", true) ++ "" ++ Output.prettyFmt("", true), .{}); } } else { if (this.is_async) { @@ -197,17 +195,17 @@ pub const ZigStackFrame = extern struct { .Global => {}, .Wasm => { if (!name.isEmpty()) { - try std.fmt.format(writer, "{}", .{name}); + try writer.print("{f}", .{name}); } else { try writer.writeAll("WASM"); } }, .Constructor => { - try std.fmt.format(writer, "new {}", .{name}); + try writer.print("new {f}", .{name}); }, else => { if (!name.isEmpty()) { - try std.fmt.format(writer, "{}", .{name}); + try writer.print("{f}", .{name}); } }, } diff --git a/src/bun.js/bindings/ZigString.zig b/src/bun.js/bindings/ZigString.zig index 2ea8bf825f..5c406889f3 100644 --- a/src/bun.js/bindings/ZigString.zig +++ b/src/bun.js/bindings/ZigString.zig @@ -138,14 +138,14 @@ pub const ZigString = extern struct { return strings.isAllASCII(this.slice()); } - extern fn ZigString__toJSONObject(this: *const ZigString, *jsc.JSGlobalObject) callconv(.C) jsc.JSValue; + extern fn ZigString__toJSONObject(this: *const ZigString, *jsc.JSGlobalObject) callconv(.c) jsc.JSValue; pub fn toJSONObject(this: ZigString, globalThis: *jsc.JSGlobalObject) JSValue { jsc.markBinding(@src()); return ZigString__toJSONObject(&this, globalThis); } - extern fn BunString__toURL(this: *const ZigString, *jsc.JSGlobalObject) callconv(.C) jsc.JSValue; + extern fn BunString__toURL(this: *const ZigString, *jsc.JSGlobalObject) callconv(.c) jsc.JSValue; pub fn toURL(this: ZigString, globalThis: *jsc.JSGlobalObject) JSValue { jsc.markBinding(@src()); @@ -234,7 +234,7 @@ pub const ZigString = extern struct { if (this.isUTF8()) return try allocator.dupeZ(u8, this.slice()); - var list = std.ArrayList(u8).init(allocator); + var list = std.array_list.Managed(u8).init(allocator); list = if (this.is16Bit()) try strings.toUTF8ListWithType(list, this.utf16SliceAligned()) else @@ -256,7 +256,7 @@ pub const ZigString = extern struct { if (this.isUTF8()) return allocator.dupeZ(u8, this.slice()); - var list = std.ArrayList(u8).init(allocator); + var list = std.array_list.Managed(u8).init(allocator); list = if (this.is16Bit()) try strings.toUTF8ListWithType(list, this.utf16SliceAligned()) else @@ -508,7 +508,7 @@ pub const ZigString = extern struct { pub const GithubActionFormatter = struct { text: ZigString, - pub fn format(this: GithubActionFormatter, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: GithubActionFormatter, writer: *std.Io.Writer) !void { var bytes = this.text.toSlice(bun.default_allocator); defer bytes.deinit(); try bun.fmt.githubActionWriter(writer, bytes.slice()); @@ -535,7 +535,7 @@ pub const ZigString = extern struct { } fn from16SliceMaybeGlobal(slice_: []const u16, global: bool) ZigString { - var str = init(@as([*]const u8, @alignCast(@ptrCast(slice_.ptr)))[0..slice_.len]); + var str = init(@as([*]const u8, @ptrCast(@alignCast(slice_.ptr)))[0..slice_.len]); str.markUTF16(); if (global) { str.markGlobal(); @@ -606,7 +606,7 @@ pub const ZigString = extern struct { this._unsafe_ptr_do_not_use = @as([*]const u8, @ptrFromInt(@intFromPtr(this._unsafe_ptr_do_not_use) | (1 << 62))); } - pub fn format(self: ZigString, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: ZigString, writer: *std.Io.Writer) !void { if (self.isUTF8()) { try writer.writeAll(self.slice()); return; @@ -702,7 +702,7 @@ pub const ZigString = extern struct { } pub fn sliceZBuf(this: ZigString, buf: *bun.PathBuffer) ![:0]const u8 { - return try std.fmt.bufPrintZ(buf, "{}", .{this}); + return try std.fmt.bufPrintZ(buf, "{f}", .{this}); } pub inline fn full(this: *const ZigString) []const u8 { @@ -742,12 +742,12 @@ pub const ZigString = extern struct { extern fn ZigString__toExternalValueWithCallback( this: *const ZigString, global: *JSGlobalObject, - callback: *const fn (ctx: ?*anyopaque, ptr: ?*anyopaque, len: usize) callconv(.C) void, + callback: *const fn (ctx: ?*anyopaque, ptr: ?*anyopaque, len: usize) callconv(.c) void, ) JSValue; pub fn toExternalValueWithCallback( this: *const ZigString, global: *JSGlobalObject, - callback: *const fn (ctx: ?*anyopaque, ptr: ?*anyopaque, len: usize) callconv(.C) void, + callback: *const fn (ctx: ?*anyopaque, ptr: ?*anyopaque, len: usize) callconv(.c) void, ) JSValue { return ZigString__toExternalValueWithCallback(this, global, callback); } @@ -756,16 +756,16 @@ pub const ZigString = extern struct { this: *const ZigString, global: *JSGlobalObject, ctx: ?*anyopaque, - callback: *const fn (ctx: ?*anyopaque, ptr: ?*anyopaque, len: usize) callconv(.C) void, + callback: *const fn (ctx: ?*anyopaque, ptr: ?*anyopaque, len: usize) callconv(.c) void, ) JSValue; pub fn external( this: *const ZigString, global: *JSGlobalObject, ctx: ?*anyopaque, - callback: *const fn (ctx: ?*anyopaque, ptr: ?*anyopaque, len: usize) callconv(.C) void, + callback: *const fn (ctx: ?*anyopaque, ptr: ?*anyopaque, len: usize) callconv(.c) void, ) JSValue { if (this.len > String.max_length()) { - callback(ctx, @constCast(@ptrCast(this.byteSlice().ptr)), this.len); + callback(ctx, @ptrCast(@constCast(this.byteSlice().ptr)), this.len); global.ERR(.STRING_TOO_LONG, "Cannot create a string longer than 2^32-1 characters", .{}).throw() catch {}; // TODO: propagate? return .zero; } diff --git a/src/bun.js/bindings/codegen.zig b/src/bun.js/bindings/codegen.zig index 5a2bbceb29..2f161dcdc4 100644 --- a/src/bun.js/bindings/codegen.zig +++ b/src/bun.js/bindings/codegen.zig @@ -1,5 +1,5 @@ -pub const CallbackGetterFn = fn (jsc.JSValue) callconv(.C) jsc.JSValue; -pub const CallbackSetterFn = fn (jsc.JSValue, jsc.JSValue) callconv(.C) void; +pub const CallbackGetterFn = fn (jsc.JSValue) callconv(.c) jsc.JSValue; +pub const CallbackSetterFn = fn (jsc.JSValue, jsc.JSValue) callconv(.c) void; pub fn CallbackWrapper(comptime Getter: *const CallbackGetterFn, comptime Setter: *const CallbackSetterFn) type { return struct { diff --git a/src/bun.js/event_loop.zig b/src/bun.js/event_loop.zig index d8de605e34..bd364eb7ce 100644 --- a/src/bun.js/event_loop.zig +++ b/src/bun.js/event_loop.zig @@ -110,7 +110,7 @@ pub fn pipeReadBuffer(this: *const EventLoop) []u8 { return this.virtual_machine.rareData().pipeReadBuffer(); } -pub const Queue = std.fifo.LinearFifo(Task, .Dynamic); +pub const Queue = bun.LinearFifo(Task, .Dynamic); const log = bun.Output.scoped(.EventLoop, .hidden); pub fn tickWhilePaused(this: *EventLoop, done: *bool) void { @@ -383,7 +383,7 @@ pub fn autoTick(this: *EventLoop) void { loop.tickWithTimeout(if (ctx.timer.getTimeout(×pec, ctx)) ×pec else null); if (comptime Environment.isDebug) { - log("tick {}, timeout: {}", .{ std.fmt.fmtDuration(event_loop_sleep_timer.read()), std.fmt.fmtDuration(timespec.ns()) }); + log("tick {D}, timeout: {D}", .{ event_loop_sleep_timer.read(), timespec.ns() }); } } else { loop.tickWithoutIdle(); @@ -429,7 +429,7 @@ pub fn tickPossiblyForever(this: *EventLoop) void { this.tick(); } -fn noopForeverTimer(_: *uws.Timer) callconv(.C) void { +fn noopForeverTimer(_: *uws.Timer) callconv(.c) void { // do nothing } diff --git a/src/bun.js/event_loop/GarbageCollectionController.zig b/src/bun.js/event_loop/GarbageCollectionController.zig index 2a13be5a9b..7ff4ee3c79 100644 --- a/src/bun.js/event_loop/GarbageCollectionController.zig +++ b/src/bun.js/event_loop/GarbageCollectionController.zig @@ -72,7 +72,7 @@ pub fn bunVM(this: *GarbageCollectionController) *VirtualMachine { return @alignCast(@fieldParentPtr("gc_controller", this)); } -pub fn onGCTimer(timer: *uws.Timer) callconv(.C) void { +pub fn onGCTimer(timer: *uws.Timer) callconv(.c) void { var this = timer.as(*GarbageCollectionController); if (this.disabled) return; this.gc_timer_state = .run_on_next_tick; @@ -101,7 +101,7 @@ pub fn updateGCRepeatTimer(this: *GarbageCollectionController, comptime setting: } } -pub fn onGCRepeatingTimer(timer: *uws.Timer) callconv(.C) void { +pub fn onGCRepeatingTimer(timer: *uws.Timer) callconv(.c) void { var this = timer.as(*GarbageCollectionController); const prev_heap_size = this.gc_last_heap_size_on_repeating_timer; this.performGC(); diff --git a/src/bun.js/event_loop/MiniEventLoop.zig b/src/bun.js/event_loop/MiniEventLoop.zig index db8723d6a2..c64f307a11 100644 --- a/src/bun.js/event_loop/MiniEventLoop.zig +++ b/src/bun.js/event_loop/MiniEventLoop.zig @@ -74,7 +74,7 @@ pub fn initGlobal(env: ?*bun.DotEnv.Loader, cwd: ?[]const u8) *MiniEventLoop { return global; } -const Queue = std.fifo.LinearFifo(*AnyTaskWithExtraContext, .Dynamic); +const Queue = bun.LinearFifo(*AnyTaskWithExtraContext, .Dynamic); pub const Task = AnyTaskWithExtraContext; diff --git a/src/bun.js/event_loop/SpawnSyncEventLoop.zig b/src/bun.js/event_loop/SpawnSyncEventLoop.zig index deeaea42eb..eb566b2d9e 100644 --- a/src/bun.js/event_loop/SpawnSyncEventLoop.zig +++ b/src/bun.js/event_loop/SpawnSyncEventLoop.zig @@ -33,17 +33,17 @@ did_timeout: bool = false, /// Minimal handler for the isolated loop const Handler = struct { - pub fn wakeup(loop: *uws.Loop) callconv(.C) void { + pub fn wakeup(loop: *uws.Loop) callconv(.c) void { _ = loop; // No-op: we don't need to wake up from another thread for spawnSync } - pub fn pre(loop: *uws.Loop) callconv(.C) void { + pub fn pre(loop: *uws.Loop) callconv(.c) void { _ = loop; // No-op: no pre-tick work needed for spawnSync } - pub fn post(loop: *uws.Loop) callconv(.C) void { + pub fn post(loop: *uws.Loop) callconv(.c) void { _ = loop; // No-op: no post-tick work needed for spawnSync } @@ -71,7 +71,7 @@ pub fn init(self: *SpawnSyncEventLoop, vm: *jsc.VirtualMachine) void { self.uws_loop.internal_loop_data.jsc_vm = null; } -fn onCloseUVTimer(timer: *bun.windows.libuv.Timer) callconv(.C) void { +fn onCloseUVTimer(timer: *bun.windows.libuv.Timer) callconv(.c) void { bun.default_allocator.destroy(timer); } @@ -117,7 +117,7 @@ pub fn handle(this: *SpawnSyncEventLoop) jsc.EventLoopHandle { return jsc.EventLoopHandle.init(&this.event_loop); } -fn onUVTimer(timer_: *bun.windows.libuv.Timer) callconv(.C) void { +fn onUVTimer(timer_: *bun.windows.libuv.Timer) callconv(.c) void { const this: *SpawnSyncEventLoop = @ptrCast(@alignCast(timer_.data)); this.did_timeout = true; this.uws_loop.uv_loop.stop(); diff --git a/src/bun.js/event_loop/Task.zig b/src/bun.js/event_loop/Task.zig index 58cc3a6129..b27b500eb7 100644 --- a/src/bun.js/event_loop/Task.zig +++ b/src/bun.js/event_loop/Task.zig @@ -104,7 +104,7 @@ pub fn tickQueueWithCount(this: *EventLoop, virtual_machine: *VirtualMachine, co bun.Output.panic( \\{d} JavaScript functions were called outside of the microtask queue without draining microtasks. \\ - \\Last function name: {} + \\Last function name: {f} \\ \\Use EventLoop.runCallback() to run JavaScript functions outside of the microtask queue. \\ diff --git a/src/bun.js/hot_reloader.zig b/src/bun.js/hot_reloader.zig index ec49bcf0f9..2e311bd484 100644 --- a/src/bun.js/hot_reloader.zig +++ b/src/bun.js/hot_reloader.zig @@ -374,7 +374,7 @@ pub fn NewHotReloader(comptime Ctx: type, comptime EventLoopType: type, comptime } if (this.verbose) - debug("File changed: {s} ({})", .{ fs.relativeTo(file_path), event }); + debug("File changed: {s}", .{fs.relativeTo(file_path)}); if (event.op.write or event.op.delete or event.op.rename) { if (comptime Environment.isMac) { @@ -535,7 +535,7 @@ pub fn NewHotReloader(comptime Ctx: type, comptime EventLoopType: type, comptime } if (this.verbose) { - debug("Dir change: {s} (affecting {d}, {})", .{ fs.relativeTo(file_path), affected.len, event }); + debug("Dir change: {s} (affecting {d})", .{ fs.relativeTo(file_path), affected.len }); } }, } diff --git a/src/bun.js/ipc.zig b/src/bun.js/ipc.zig index d6ef0f2158..5ac9975619 100644 --- a/src/bun.js/ipc.zig +++ b/src/bun.js/ipc.zig @@ -143,7 +143,7 @@ const advanced = struct { }; const json = struct { - fn jsonIPCDataStringFreeCB(context: *bool, _: *anyopaque, _: u32) callconv(.C) void { + fn jsonIPCDataStringFreeCB(context: *bool, _: *anyopaque, _: u32) callconv(.c) void { context.* = true; } @@ -410,7 +410,7 @@ pub const WindowsWrite = struct { } }; pub const SendQueue = struct { - queue: std.ArrayList(SendHandle), + queue: std.array_list.Managed(SendHandle), waiting_for_ack: ?SendHandle = null, retry_count: u32 = 0, @@ -530,7 +530,7 @@ pub const SendQueue = struct { this._socketClosed(); this.getGlobalThis().bunVM().enqueueTask(jsc.ManagedTask.New(SendQueue, _onAfterIPCClosed).init(this)); } - fn _windowsOnClosed(windows: *uv.Pipe) callconv(.C) void { + fn _windowsOnClosed(windows: *uv.Pipe) callconv(.c) void { log("SendQueue#_windowsOnClosed", .{}); bun.default_allocator.destroy(windows); } @@ -693,7 +693,7 @@ pub const SendQueue = struct { log("IPC call continueSend() from empty item", .{}); return continueSend(this, global, reason); } - // log("sending ipc message: '{'}' (has_handle={})", .{ std.zig.fmtEscapes(to_send), first.handle != null }); + // log("sending ipc message: '{'}' (has_handle={})", .{ std.zig.fmtString(to_send), first.handle != null }); bun.assert(!this.write_in_progress); this.write_in_progress = true; this._write(to_send, if (first.handle) |handle| handle.fd else null); @@ -764,7 +764,7 @@ pub const SendQueue = struct { const payload_length = serialize(self.mode, &msg.data, global, value, is_internal) catch return .failure; bun.assert(msg.data.list.items.len == start_offset + payload_length); - // log("enqueueing ipc message: '{'}'", .{std.zig.fmtEscapes(msg.data.list.items[start_offset..])}); + // log("enqueueing ipc message: '{'}'", .{std.zig.fmtString(msg.data.list.items[start_offset..])}); log("IPC call continueSend() from serializeAndSend", .{}); self.continueSend(global, .new_message_appended); @@ -779,7 +779,7 @@ pub const SendQueue = struct { if (item.data.list.items.len > 100) { log(" {d}|{d}", .{ item.data.cursor, item.data.list.items.len - item.data.cursor }); } else { - log(" '{'}'|'{'}'", .{ std.zig.fmtEscapes(item.data.list.items[0..item.data.cursor]), std.zig.fmtEscapes(item.data.list.items[item.data.cursor..]) }); + log(" \"{f}\"|\"{f}\"", .{ std.zig.fmtString(item.data.list.items[0..item.data.cursor]), std.zig.fmtString(item.data.list.items[item.data.cursor..]) }); } } } @@ -863,7 +863,7 @@ pub const SendQueue = struct { }; } - fn onServerPipeClose(this: *uv.Pipe) callconv(.C) void { + fn onServerPipeClose(this: *uv.Pipe) callconv(.c) void { // safely free the pipes bun.default_allocator.destroy(this); } @@ -1033,8 +1033,8 @@ fn handleIPCMessage(send_queue: *SendQueue, message: DecodedIPCMessage, globalTh defer formatter.deinit(); switch (message) { .version => |version| log("received ipc message: version: {}", .{version}), - .data => |jsvalue| log("received ipc message: {}", .{jsvalue.toFmt(&formatter)}), - .internal => |jsvalue| log("received ipc message: internal: {}", .{jsvalue.toFmt(&formatter)}), + .data => |jsvalue| log("received ipc message: {f}", .{jsvalue.toFmt(&formatter)}), + .internal => |jsvalue| log("received ipc message: internal: {f}", .{jsvalue.toFmt(&formatter)}), } } var internal_command: ?IPCCommand = null; @@ -1126,7 +1126,7 @@ fn handleIPCMessage(send_queue: *SendQueue, message: DecodedIPCMessage, globalTh fn onData2(send_queue: *SendQueue, all_data: []const u8) void { var data = all_data; - // log("onData '{'}'", .{std.zig.fmtEscapes(data)}); + // log("onData '{'}'", .{std.zig.fmtString(data)}); // In the VirtualMachine case, `globalThis` is an optional, in case // the vm is freed before the socket closes. diff --git a/src/bun.js/javascript_core_c_api.zig b/src/bun.js/javascript_core_c_api.zig index c295df5ee1..d1d62fe8e5 100644 --- a/src/bun.js/javascript_core_c_api.zig +++ b/src/bun.js/javascript_core_c_api.zig @@ -19,7 +19,7 @@ pub const JSGlobalContextRef = ?*jsc.JSGlobalObject; pub const struct_OpaqueJSPropertyNameAccumulator = generic; pub const JSPropertyNameAccumulatorRef = ?*struct_OpaqueJSPropertyNameAccumulator; -pub const JSTypedArrayBytesDeallocator = ?*const fn (*anyopaque, *anyopaque) callconv(.C) void; +pub const JSTypedArrayBytesDeallocator = ?*const fn (*anyopaque, *anyopaque) callconv(.c) void; pub const OpaqueJSValue = generic; pub const JSValueRef = ?*OpaqueJSValue; pub const JSObjectRef = ?*OpaqueJSValue; @@ -92,9 +92,9 @@ pub const JSClassAttributes = enum(c_uint) { pub const kJSClassAttributeNone = @intFromEnum(JSClassAttributes.kJSClassAttributeNone); pub const kJSClassAttributeNoAutomaticPrototype = @intFromEnum(JSClassAttributes.kJSClassAttributeNoAutomaticPrototype); -pub const JSObjectInitializeCallback = *const fn (*jsc.JSGlobalObject, JSObjectRef) callconv(.C) void; -pub const JSObjectFinalizeCallback = *const fn (JSObjectRef) callconv(.C) void; -pub const JSObjectGetPropertyNamesCallback = *const fn (*jsc.JSGlobalObject, JSObjectRef, JSPropertyNameAccumulatorRef) callconv(.C) void; +pub const JSObjectInitializeCallback = *const fn (*jsc.JSGlobalObject, JSObjectRef) callconv(.c) void; +pub const JSObjectFinalizeCallback = *const fn (JSObjectRef) callconv(.c) void; +pub const JSObjectGetPropertyNamesCallback = *const fn (*jsc.JSGlobalObject, JSObjectRef, JSPropertyNameAccumulatorRef) callconv(.c) void; pub const ExceptionRef = [*c]JSValueRef; pub const JSObjectCallAsFunctionCallback = *const fn ( ctx: *jsc.JSGlobalObject, @@ -103,10 +103,10 @@ pub const JSObjectCallAsFunctionCallback = *const fn ( argumentCount: usize, arguments: [*c]const JSValueRef, exception: ExceptionRef, -) callconv(.C) JSValueRef; -pub const JSObjectCallAsConstructorCallback = *const fn (*jsc.JSGlobalObject, JSObjectRef, usize, [*c]const JSValueRef, ExceptionRef) callconv(.C) JSObjectRef; -pub const JSObjectHasInstanceCallback = *const fn (*jsc.JSGlobalObject, JSObjectRef, JSValueRef, ExceptionRef) callconv(.C) bool; -pub const JSObjectConvertToTypeCallback = *const fn (*jsc.JSGlobalObject, JSObjectRef, JSType, ExceptionRef) callconv(.C) JSValueRef; +) callconv(.c) JSValueRef; +pub const JSObjectCallAsConstructorCallback = *const fn (*jsc.JSGlobalObject, JSObjectRef, usize, [*c]const JSValueRef, ExceptionRef) callconv(.c) JSObjectRef; +pub const JSObjectHasInstanceCallback = *const fn (*jsc.JSGlobalObject, JSObjectRef, JSValueRef, ExceptionRef) callconv(.c) bool; +pub const JSObjectConvertToTypeCallback = *const fn (*jsc.JSGlobalObject, JSObjectRef, JSType, ExceptionRef) callconv(.c) JSValueRef; pub extern "c" fn JSObjectGetPrototype(ctx: *jsc.JSGlobalObject, object: JSObjectRef) JSValueRef; pub extern "c" fn JSObjectGetPropertyAtIndex(ctx: *jsc.JSGlobalObject, object: JSObjectRef, propertyIndex: c_uint, exception: ExceptionRef) JSValueRef; diff --git a/src/bun.js/jsc.zig b/src/bun.js/jsc.zig index 53cac93cfc..61adcd7564 100644 --- a/src/bun.js/jsc.zig +++ b/src/bun.js/jsc.zig @@ -6,10 +6,10 @@ //! TODO: Remove remaining aliases to `webcore` and `api` /// The calling convention used for JavaScript functions <> Native -pub const conv = if (bun.Environment.isWindows and bun.Environment.isX64) - std.builtin.CallingConvention.SysV +pub const conv: std.builtin.CallingConvention = if (bun.Environment.isWindows and bun.Environment.isX64) + .{ .x86_64_sysv = .{} } else - std.builtin.CallingConvention.C; + .c; /// Web Template Framework pub const wtf = @import("./bindings/WTF.zig").WTF; @@ -227,10 +227,10 @@ pub const Ref = struct { } }; -pub const OpaqueCallback = *const fn (current: ?*anyopaque) callconv(.C) void; +pub const OpaqueCallback = *const fn (current: ?*anyopaque) callconv(.c) void; pub fn OpaqueWrap(comptime Context: type, comptime Function: fn (this: *Context) void) OpaqueCallback { return struct { - pub fn callback(ctx: ?*anyopaque) callconv(.C) void { + pub fn callback(ctx: ?*anyopaque) callconv(.c) void { const context: *Context = @as(*Context, @ptrCast(@alignCast(ctx.?))); Function(context); } @@ -251,8 +251,8 @@ pub fn toJSTime(sec: isize, nsec: isize) JSTimeType { pub const MAX_SAFE_INTEGER = 9007199254740991; pub const MIN_SAFE_INTEGER = -9007199254740991; -extern "c" fn JSCInitialize(env: [*]const [*:0]u8, count: usize, cb: *const fn ([*]const u8, len: usize) callconv(.C) void, eval_mode: bool) void; -fn onJSCInvalidEnvVar(name: [*]const u8, len: usize) callconv(.C) void { +extern "c" fn JSCInitialize(env: [*]const [*:0]u8, count: usize, cb: *const fn ([*]const u8, len: usize) callconv(.c) void, eval_mode: bool) void; +fn onJSCInvalidEnvVar(name: [*]const u8, len: usize) callconv(.c) void { bun.Output.errGeneric( \\invalid JSC environment variable \\ diff --git a/src/bun.js/jsc/host_fn.zig b/src/bun.js/jsc/host_fn.zig index 0712b05d43..1d001bd826 100644 --- a/src/bun.js/jsc/host_fn.zig +++ b/src/bun.js/jsc/host_fn.zig @@ -55,7 +55,7 @@ fn debugExceptionAssertion(globalThis: *JSGlobalObject, value: JSValue, comptime \\Native function returned a non-zero JSValue while an exception is pending \\ \\ fn: {s} - \\ value: {} + \\ value: {f} \\ , .{ &func, // use `(lldb) image lookup --address 0x1ec4` to discover what function failed diff --git a/src/bun.js/node.zig b/src/bun.js/node.zig index 6a593f717c..b2af1b6c1a 100644 --- a/src/bun.js/node.zig +++ b/src/bun.js/node.zig @@ -332,6 +332,13 @@ pub fn Maybe(comptime ReturnTypeT: type, comptime ErrorTypeT: type) type { }, }; } + + pub fn format(this: @This(), writer: *std.Io.Writer) !void { + return switch (this) { + .result => try writer.print("Result(...)", .{}), + .err => |e| try writer.print("Error(" ++ bun.deprecated.autoFormatLabelFallback(ErrorType, "{any}") ++ ")", .{e}), + }; + } }; } diff --git a/src/bun.js/node/assert/myers_diff.zig b/src/bun.js/node/assert/myers_diff.zig index bb6286ac77..b932ba4a10 100644 --- a/src/bun.js/node/assert/myers_diff.zig +++ b/src/bun.js/node/assert/myers_diff.zig @@ -151,7 +151,7 @@ pub fn DifferWithEql(comptime Line: type, comptime opts: Options, comptime areLi @memset(graph, 0); graph.len = graph_size; - var trace = std.ArrayList([]const uint).init(trace_alloc); + var trace = std.array_list.Managed([]const uint).init(trace_alloc); // reserve enough space for each frame to avoid realloc on ptr list. Lists may end up in the heap, but // this list is at the very from (and ∴ on stack). try trace.ensureTotalCapacityPrecise(max + 1); @@ -217,7 +217,7 @@ pub fn DifferWithEql(comptime Line: type, comptime opts: Options, comptime areLi fn backtrack( allocator: Allocator, - trace: *const std.ArrayList([]const uint), + trace: *const std.array_list.Managed([]const uint), actual: []const Line, expected: []const Line, ) Error!DiffList(Line) { @@ -291,11 +291,11 @@ pub fn DifferWithEql(comptime Line: type, comptime opts: Options, comptime areLi }; } -pub fn printDiff(T: type, diffs: std.ArrayList(Diff(T))) !void { +pub fn printDiff(T: type, diffs: std.array_list.Managed(Diff(T))) !void { const stdout = if (builtin.is_test) - std.io.getStdErr().writer() + std.fs.File.stderr().writer() else - std.io.getStdOut().writer(); + std.fs.File.stdout().writer(); const specifier = switch (T) { u8 => "c", @@ -375,7 +375,7 @@ pub const DiffKind = enum { delete, equal, - pub fn format(value: DiffKind, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(value: DiffKind, writer: *std.Io.Writer) !void { return switch (value) { .insert => writer.writeByte('+'), .delete => writer.writeByte('-'), @@ -394,8 +394,7 @@ pub fn Diff(comptime T: type) type { return self.kind == other.kind and mem.eql(T, self.value, other.value); } - /// pub fn format(value: ?, comptime fmt: []const u8, options: std.fmt.FormatOptions, writer: anytype) !void - pub fn format(value: anytype, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(value: anytype, writer: *std.Io.Writer) !void { const specifier = switch (T) { u8 => "c", u32 => "u", @@ -408,7 +407,7 @@ pub fn Diff(comptime T: type) type { } pub fn DiffList(comptime T: type) type { - return std.ArrayList(Diff(T)); + return std.array_list.Managed(Diff(T)); } // ============================================================================= diff --git a/src/bun.js/node/buffer.zig b/src/bun.js/node/buffer.zig index f9be0f93d3..85339f2ce6 100644 --- a/src/bun.js/node/buffer.zig +++ b/src/bun.js/node/buffer.zig @@ -4,7 +4,7 @@ pub const BufferVectorized = struct { buf_ptr: [*]u8, fill_length: usize, encoding: jsc.Node.Encoding, - ) callconv(.C) bool { + ) callconv(.c) bool { if (str.len == 0) return true; var buf = buf_ptr[0..fill_length]; diff --git a/src/bun.js/node/dir_iterator.zig b/src/bun.js/node/dir_iterator.zig index 8df7500594..c660271eaa 100644 --- a/src/bun.js/node/dir_iterator.zig +++ b/src/bun.js/node/dir_iterator.zig @@ -233,14 +233,14 @@ pub fn NewIterator(comptime use_windows_ospath: bool) type { self.first = false; if (io.Information == 0) { - bun.sys.syslog("NtQueryDirectoryFile({}) = 0", .{self.dir}); + bun.sys.syslog("NtQueryDirectoryFile({f}) = 0", .{self.dir}); return .{ .result = null }; } self.index = 0; self.end_index = io.Information; // If the handle is not a directory, we'll get STATUS_INVALID_PARAMETER. if (rc == .INVALID_PARAMETER) { - bun.sys.syslog("NtQueryDirectoryFile({}) = {s}", .{ self.dir, @tagName(rc) }); + bun.sys.syslog("NtQueryDirectoryFile({f}) = {s}", .{ self.dir, @tagName(rc) }); return .{ .err = .{ .errno = @intFromEnum(bun.sys.SystemErrno.ENOTDIR), @@ -250,13 +250,13 @@ pub fn NewIterator(comptime use_windows_ospath: bool) type { } if (rc == .NO_MORE_FILES) { - bun.sys.syslog("NtQueryDirectoryFile({}) = {s}", .{ self.dir, @tagName(rc) }); + bun.sys.syslog("NtQueryDirectoryFile({f}) = {s}", .{ self.dir, @tagName(rc) }); self.end_index = self.index; return .{ .result = null }; } if (rc != .SUCCESS) { - bun.sys.syslog("NtQueryDirectoryFile({}) = {s}", .{ self.dir, @tagName(rc) }); + bun.sys.syslog("NtQueryDirectoryFile({f}) = {s}", .{ self.dir, @tagName(rc) }); if ((bun.windows.Win32Error.fromNTStatus(rc).toSystemErrno())) |errno| { return .{ @@ -275,7 +275,7 @@ pub fn NewIterator(comptime use_windows_ospath: bool) type { }; } - bun.sys.syslog("NtQueryDirectoryFile({}) = {d}", .{ self.dir, self.end_index }); + bun.sys.syslog("NtQueryDirectoryFile({f}) = {d}", .{ self.dir, self.end_index }); } const dir_info: FILE_DIRECTORY_INFORMATION_PTR = @ptrCast(@alignCast(&self.buf[self.index])); diff --git a/src/bun.js/node/fs_events.zig b/src/bun.js/node/fs_events.zig index 22315f8d0a..ba0e3b4482 100644 --- a/src/bun.js/node/fs_events.zig +++ b/src/bun.js/node/fs_events.zig @@ -20,7 +20,7 @@ pub const CFRunLoopSourceRef = ?*anyopaque; pub const CFStringRef = ?*anyopaque; pub const CFTypeRef = ?*anyopaque; pub const FSEventStreamRef = ?*anyopaque; -pub const FSEventStreamCallback = *const fn (FSEventStreamRef, ?*anyopaque, usize, ?*anyopaque, *FSEventStreamEventFlags, *FSEventStreamEventId) callconv(.C) void; +pub const FSEventStreamCallback = *const fn (FSEventStreamRef, ?*anyopaque, usize, ?*anyopaque, *FSEventStreamEventFlags, *FSEventStreamEventId) callconv(.c) void; // we only care about info and perform pub const CFRunLoopSourceContext = extern struct { @@ -33,7 +33,7 @@ pub const CFRunLoopSourceContext = extern struct { hash: ?*anyopaque = null, schedule: ?*anyopaque = null, cancel: ?*anyopaque = null, - perform: *const fn (?*anyopaque) callconv(.C) void, + perform: *const fn (?*anyopaque) callconv(.c) void, }; pub const FSEventStreamContext = extern struct { @@ -99,18 +99,18 @@ fn dlsym(handle: ?*anyopaque, comptime Type: type, comptime symbol: [:0]const u8 pub const CoreFoundation = struct { handle: ?*anyopaque, - ArrayCreate: *fn (CFAllocatorRef, [*]?*anyopaque, CFIndex, ?*CFArrayCallBacks) callconv(.C) CFArrayRef, - Release: *fn (CFTypeRef) callconv(.C) void, + ArrayCreate: *fn (CFAllocatorRef, [*]?*anyopaque, CFIndex, ?*CFArrayCallBacks) callconv(.c) CFArrayRef, + Release: *fn (CFTypeRef) callconv(.c) void, - RunLoopAddSource: *fn (CFRunLoopRef, CFRunLoopSourceRef, CFStringRef) callconv(.C) void, - RunLoopGetCurrent: *fn () callconv(.C) CFRunLoopRef, - RunLoopRemoveSource: *fn (CFRunLoopRef, CFRunLoopSourceRef, CFStringRef) callconv(.C) void, - RunLoopRun: *fn () callconv(.C) void, - RunLoopSourceCreate: *fn (CFAllocatorRef, CFIndex, *CFRunLoopSourceContext) callconv(.C) CFRunLoopSourceRef, - RunLoopSourceSignal: *fn (CFRunLoopSourceRef) callconv(.C) void, - RunLoopStop: *fn (CFRunLoopRef) callconv(.C) void, - RunLoopWakeUp: *fn (CFRunLoopRef) callconv(.C) void, - StringCreateWithFileSystemRepresentation: *fn (CFAllocatorRef, [*]const u8) callconv(.C) CFStringRef, + RunLoopAddSource: *fn (CFRunLoopRef, CFRunLoopSourceRef, CFStringRef) callconv(.c) void, + RunLoopGetCurrent: *fn () callconv(.c) CFRunLoopRef, + RunLoopRemoveSource: *fn (CFRunLoopRef, CFRunLoopSourceRef, CFStringRef) callconv(.c) void, + RunLoopRun: *fn () callconv(.c) void, + RunLoopSourceCreate: *fn (CFAllocatorRef, CFIndex, *CFRunLoopSourceContext) callconv(.c) CFRunLoopSourceRef, + RunLoopSourceSignal: *fn (CFRunLoopSourceRef) callconv(.c) void, + RunLoopStop: *fn (CFRunLoopRef) callconv(.c) void, + RunLoopWakeUp: *fn (CFRunLoopRef) callconv(.c) void, + StringCreateWithFileSystemRepresentation: *fn (CFAllocatorRef, [*]const u8) callconv(.c) CFStringRef, RunLoopDefaultMode: *CFStringRef, pub fn get() CoreFoundation { @@ -136,12 +136,12 @@ pub const CoreFoundation = struct { pub const CoreServices = struct { handle: ?*anyopaque, - FSEventStreamCreate: *fn (CFAllocatorRef, FSEventStreamCallback, *FSEventStreamContext, CFArrayRef, FSEventStreamEventId, CFTimeInterval, FSEventStreamCreateFlags) callconv(.C) FSEventStreamRef, - FSEventStreamInvalidate: *fn (FSEventStreamRef) callconv(.C) void, - FSEventStreamRelease: *fn (FSEventStreamRef) callconv(.C) void, - FSEventStreamScheduleWithRunLoop: *fn (FSEventStreamRef, CFRunLoopRef, CFStringRef) callconv(.C) void, - FSEventStreamStart: *fn (FSEventStreamRef) callconv(.C) c_int, - FSEventStreamStop: *fn (FSEventStreamRef) callconv(.C) void, + FSEventStreamCreate: *fn (CFAllocatorRef, FSEventStreamCallback, *FSEventStreamContext, CFArrayRef, FSEventStreamEventId, CFTimeInterval, FSEventStreamCreateFlags) callconv(.c) FSEventStreamRef, + FSEventStreamInvalidate: *fn (FSEventStreamRef) callconv(.c) void, + FSEventStreamRelease: *fn (FSEventStreamRef) callconv(.c) void, + FSEventStreamScheduleWithRunLoop: *fn (FSEventStreamRef, CFRunLoopRef, CFStringRef) callconv(.c) void, + FSEventStreamStart: *fn (FSEventStreamRef) callconv(.c) c_int, + FSEventStreamStop: *fn (FSEventStreamRef) callconv(.c) void, // libuv set it to -1 so the actual value is this kFSEventStreamEventIdSinceNow: FSEventStreamEventId = 18446744073709551615, @@ -175,17 +175,17 @@ fn InitLibrary() void { fsevents_cf = CoreFoundation{ .handle = fsevents_cf_handle, - .ArrayCreate = dlsym(fsevents_cf_handle, *fn (CFAllocatorRef, [*]?*anyopaque, CFIndex, ?*CFArrayCallBacks) callconv(.C) CFArrayRef, "CFArrayCreate") orelse @panic("Cannot Load CoreFoundation"), - .Release = dlsym(fsevents_cf_handle, *fn (CFTypeRef) callconv(.C) void, "CFRelease") orelse @panic("Cannot Load CoreFoundation"), - .RunLoopAddSource = dlsym(fsevents_cf_handle, *fn (CFRunLoopRef, CFRunLoopSourceRef, CFStringRef) callconv(.C) void, "CFRunLoopAddSource") orelse @panic("Cannot Load CoreFoundation"), - .RunLoopGetCurrent = dlsym(fsevents_cf_handle, *fn () callconv(.C) CFRunLoopRef, "CFRunLoopGetCurrent") orelse @panic("Cannot Load CoreFoundation"), - .RunLoopRemoveSource = dlsym(fsevents_cf_handle, *fn (CFRunLoopRef, CFRunLoopSourceRef, CFStringRef) callconv(.C) void, "CFRunLoopRemoveSource") orelse @panic("Cannot Load CoreFoundation"), - .RunLoopRun = dlsym(fsevents_cf_handle, *fn () callconv(.C) void, "CFRunLoopRun") orelse @panic("Cannot Load CoreFoundation"), - .RunLoopSourceCreate = dlsym(fsevents_cf_handle, *fn (CFAllocatorRef, CFIndex, *CFRunLoopSourceContext) callconv(.C) CFRunLoopSourceRef, "CFRunLoopSourceCreate") orelse @panic("Cannot Load CoreFoundation"), - .RunLoopSourceSignal = dlsym(fsevents_cf_handle, *fn (CFRunLoopSourceRef) callconv(.C) void, "CFRunLoopSourceSignal") orelse @panic("Cannot Load CoreFoundation"), - .RunLoopStop = dlsym(fsevents_cf_handle, *fn (CFRunLoopRef) callconv(.C) void, "CFRunLoopStop") orelse @panic("Cannot Load CoreFoundation"), - .RunLoopWakeUp = dlsym(fsevents_cf_handle, *fn (CFRunLoopRef) callconv(.C) void, "CFRunLoopWakeUp") orelse @panic("Cannot Load CoreFoundation"), - .StringCreateWithFileSystemRepresentation = dlsym(fsevents_cf_handle, *fn (CFAllocatorRef, [*]const u8) callconv(.C) CFStringRef, "CFStringCreateWithFileSystemRepresentation") orelse @panic("Cannot Load CoreFoundation"), + .ArrayCreate = dlsym(fsevents_cf_handle, *fn (CFAllocatorRef, [*]?*anyopaque, CFIndex, ?*CFArrayCallBacks) callconv(.c) CFArrayRef, "CFArrayCreate") orelse @panic("Cannot Load CoreFoundation"), + .Release = dlsym(fsevents_cf_handle, *fn (CFTypeRef) callconv(.c) void, "CFRelease") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopAddSource = dlsym(fsevents_cf_handle, *fn (CFRunLoopRef, CFRunLoopSourceRef, CFStringRef) callconv(.c) void, "CFRunLoopAddSource") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopGetCurrent = dlsym(fsevents_cf_handle, *fn () callconv(.c) CFRunLoopRef, "CFRunLoopGetCurrent") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopRemoveSource = dlsym(fsevents_cf_handle, *fn (CFRunLoopRef, CFRunLoopSourceRef, CFStringRef) callconv(.c) void, "CFRunLoopRemoveSource") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopRun = dlsym(fsevents_cf_handle, *fn () callconv(.c) void, "CFRunLoopRun") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopSourceCreate = dlsym(fsevents_cf_handle, *fn (CFAllocatorRef, CFIndex, *CFRunLoopSourceContext) callconv(.c) CFRunLoopSourceRef, "CFRunLoopSourceCreate") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopSourceSignal = dlsym(fsevents_cf_handle, *fn (CFRunLoopSourceRef) callconv(.c) void, "CFRunLoopSourceSignal") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopStop = dlsym(fsevents_cf_handle, *fn (CFRunLoopRef) callconv(.c) void, "CFRunLoopStop") orelse @panic("Cannot Load CoreFoundation"), + .RunLoopWakeUp = dlsym(fsevents_cf_handle, *fn (CFRunLoopRef) callconv(.c) void, "CFRunLoopWakeUp") orelse @panic("Cannot Load CoreFoundation"), + .StringCreateWithFileSystemRepresentation = dlsym(fsevents_cf_handle, *fn (CFAllocatorRef, [*]const u8) callconv(.c) CFStringRef, "CFStringCreateWithFileSystemRepresentation") orelse @panic("Cannot Load CoreFoundation"), .RunLoopDefaultMode = dlsym(fsevents_cf_handle, *CFStringRef, "kCFRunLoopDefaultMode") orelse @panic("Cannot Load CoreFoundation"), }; @@ -194,12 +194,12 @@ fn InitLibrary() void { fsevents_cs = CoreServices{ .handle = fsevents_cs_handle, - .FSEventStreamCreate = dlsym(fsevents_cs_handle, *fn (CFAllocatorRef, FSEventStreamCallback, *FSEventStreamContext, CFArrayRef, FSEventStreamEventId, CFTimeInterval, FSEventStreamCreateFlags) callconv(.C) FSEventStreamRef, "FSEventStreamCreate") orelse @panic("Cannot Load CoreServices"), - .FSEventStreamInvalidate = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef) callconv(.C) void, "FSEventStreamInvalidate") orelse @panic("Cannot Load CoreServices"), - .FSEventStreamRelease = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef) callconv(.C) void, "FSEventStreamRelease") orelse @panic("Cannot Load CoreServices"), - .FSEventStreamScheduleWithRunLoop = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef, CFRunLoopRef, CFStringRef) callconv(.C) void, "FSEventStreamScheduleWithRunLoop") orelse @panic("Cannot Load CoreServices"), - .FSEventStreamStart = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef) callconv(.C) c_int, "FSEventStreamStart") orelse @panic("Cannot Load CoreServices"), - .FSEventStreamStop = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef) callconv(.C) void, "FSEventStreamStop") orelse @panic("Cannot Load CoreServices"), + .FSEventStreamCreate = dlsym(fsevents_cs_handle, *fn (CFAllocatorRef, FSEventStreamCallback, *FSEventStreamContext, CFArrayRef, FSEventStreamEventId, CFTimeInterval, FSEventStreamCreateFlags) callconv(.c) FSEventStreamRef, "FSEventStreamCreate") orelse @panic("Cannot Load CoreServices"), + .FSEventStreamInvalidate = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef) callconv(.c) void, "FSEventStreamInvalidate") orelse @panic("Cannot Load CoreServices"), + .FSEventStreamRelease = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef) callconv(.c) void, "FSEventStreamRelease") orelse @panic("Cannot Load CoreServices"), + .FSEventStreamScheduleWithRunLoop = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef, CFRunLoopRef, CFStringRef) callconv(.c) void, "FSEventStreamScheduleWithRunLoop") orelse @panic("Cannot Load CoreServices"), + .FSEventStreamStart = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef) callconv(.c) c_int, "FSEventStreamStart") orelse @panic("Cannot Load CoreServices"), + .FSEventStreamStop = dlsym(fsevents_cs_handle, *fn (FSEventStreamRef) callconv(.c) void, "FSEventStreamStop") orelse @panic("Cannot Load CoreServices"), }; } @@ -278,7 +278,7 @@ pub const FSEventsLoop = struct { } // Runs in CF thread, executed after `enqueueTaskConcurrent()` - fn CFLoopCallback(arg: ?*anyopaque) callconv(.C) void { + fn CFLoopCallback(arg: ?*anyopaque) callconv(.c) void { if (arg) |self| { const this = bun.cast(*FSEventsLoop, self); @@ -329,7 +329,7 @@ pub const FSEventsLoop = struct { } // Runs in CF thread, when there're events in FSEventStream - fn _events_cb(_: FSEventStreamRef, info: ?*anyopaque, numEvents: usize, eventPaths: ?*anyopaque, eventFlags: *FSEventStreamEventFlags, _: *FSEventStreamEventId) callconv(.C) void { + fn _events_cb(_: FSEventStreamRef, info: ?*anyopaque, numEvents: usize, eventPaths: ?*anyopaque, eventFlags: *FSEventStreamEventFlags, _: *FSEventStreamEventId) callconv(.c) void { const paths_ptr = bun.cast([*][*:0]const u8, eventPaths); const paths = paths_ptr[0..numEvents]; var loop = bun.cast(*FSEventsLoop, info); diff --git a/src/bun.js/node/net/BlockList.zig b/src/bun.js/node/net/BlockList.zig index 49bf605828..b9af1c7d37 100644 --- a/src/bun.js/node/net/BlockList.zig +++ b/src/bun.js/node/net/BlockList.zig @@ -8,7 +8,7 @@ pub const toJS = js.toJS; ref_count: RefCount = .init(), globalThis: *jsc.JSGlobalObject, -da_rules: std.ArrayList(Rule), +da_rules: std.array_list.Managed(Rule), mutex: bun.Mutex = .{}, /// We cannot lock/unlock a mutex @@ -199,7 +199,7 @@ const StructuredCloneWriter = struct { ctx: *anyopaque, impl: *const fn (*anyopaque, ptr: [*]const u8, len: u32) callconv(jsc.conv) void, - pub const Writer = std.io.Writer(@This(), Error, write); + pub const Writer = std.Io.GenericWriter(@This(), Error, write); pub const Error = error{}; fn write(this: StructuredCloneWriter, bytes: []const u8) Error!usize { diff --git a/src/bun.js/node/node_cluster_binding.zig b/src/bun.js/node/node_cluster_binding.zig index ba6dafd3d4..583f48d9e7 100644 --- a/src/bun.js/node/node_cluster_binding.zig +++ b/src/bun.js/node/node_cluster_binding.zig @@ -45,7 +45,7 @@ pub fn sendHelperChild(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFram // similar code as Bun__Process__send var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); - if (Environment.isDebug) log("child: {}", .{message.toFmt(&formatter)}); + if (Environment.isDebug) log("child: {f}", .{message.toFmt(&formatter)}); const ipc_instance = vm.getIPCInstance().?; @@ -200,7 +200,7 @@ pub fn sendHelperPrimary(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFr // similar code as bun.jsc.Subprocess.doSend var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); - if (Environment.isDebug) log("primary: {}", .{message.toFmt(&formatter)}); + if (Environment.isDebug) log("primary: {f}", .{message.toFmt(&formatter)}); _ = handle; const success = ipc_data.serializeAndSend(globalThis, message, .internal, .null, null); diff --git a/src/bun.js/node/node_crypto_binding.zig b/src/bun.js/node/node_crypto_binding.zig index 6226dae43c..7f2651847c 100644 --- a/src/bun.js/node/node_crypto_binding.zig +++ b/src/bun.js/node/node_crypto_binding.zig @@ -485,7 +485,7 @@ pub fn setEngine(global: *JSGlobalObject, _: *jsc.CallFrame) JSError!JSValue { fn forEachHash(_: *const BoringSSL.EVP_MD, maybe_from: ?[*:0]const u8, _: ?[*:0]const u8, ctx: *anyopaque) callconv(.c) void { const from = maybe_from orelse return; - const hashes: *bun.CaseInsensitiveASCIIStringArrayHashMap(void) = @alignCast(@ptrCast(ctx)); + const hashes: *bun.CaseInsensitiveASCIIStringArrayHashMap(void) = @ptrCast(@alignCast(ctx)); bun.handleOom(hashes.put(bun.span(from), {})); } @@ -494,7 +494,7 @@ fn getHashes(global: *JSGlobalObject, _: *jsc.CallFrame) JSError!JSValue { defer hashes.deinit(); // TODO(dylan-conway): cache the names - BoringSSL.EVP_MD_do_all_sorted(&forEachHash, @alignCast(@ptrCast(&hashes))); + BoringSSL.EVP_MD_do_all_sorted(&forEachHash, @ptrCast(@alignCast(&hashes))); const array = try JSValue.createEmptyArray(global, hashes.count()); diff --git a/src/bun.js/node/node_fs.zig b/src/bun.js/node/node_fs.zig index 89b7d123a9..c90d2a40ae 100644 --- a/src/bun.js/node/node_fs.zig +++ b/src/bun.js/node/node_fs.zig @@ -20,7 +20,7 @@ else // All async FS functions are run in a thread pool, but some implementations may // decide to do something slightly different. For example, reading a file has // an extra stack buffer in the async case. -pub const Flavor = enum { sync, @"async" }; +pub const Flavor = enum { sync, async }; pub const Async = struct { pub const access = NewAsyncFSTask(Return.Access, Arguments.Access, NodeFS.access); @@ -259,7 +259,7 @@ pub const Async = struct { return task.promise.value(); } - fn uv_callback(req: *uv.fs_t) callconv(.C) void { + fn uv_callback(req: *uv.fs_t) callconv(.c) void { defer uv.uv_fs_req_cleanup(req); const this: *Task = @ptrCast(@alignCast(req.data.?)); var node_fs = NodeFS{}; @@ -273,7 +273,7 @@ pub const Async = struct { this.globalObject.bunVM().eventLoop().enqueueTask(jsc.Task.init(this)); } - fn uv_callbackreq(req: *uv.fs_t) callconv(.C) void { + fn uv_callbackreq(req: *uv.fs_t) callconv(.c) void { defer uv.uv_fs_req_cleanup(req); const this: *Task = @ptrCast(@alignCast(req.data.?)); var node_fs = NodeFS{}; @@ -377,7 +377,7 @@ pub const Async = struct { var this: *Task = @alignCast(@fieldParentPtr("task", task)); var node_fs = NodeFS{}; - this.result = function(&node_fs, this.args, .@"async"); + this.result = function(&node_fs, this.args, .async); if (this.result == .err) { this.result.err = this.result.err.clone(bun.default_allocator); @@ -961,9 +961,9 @@ pub const AsyncReaddirRecursiveTask = struct { pub const ResultListEntry = struct { pub const Value = union(Return.Readdir.Tag) { - with_file_types: std.ArrayList(bun.jsc.Node.Dirent), - buffers: std.ArrayList(Buffer), - files: std.ArrayList(bun.String), + with_file_types: std.array_list.Managed(bun.jsc.Node.Dirent), + buffers: std.array_list.Managed(Buffer), + files: std.array_list.Managed(bun.String), pub fn deinit(this: *@This()) void { switch (this.*) { @@ -1041,9 +1041,9 @@ pub const AsyncReaddirRecursiveTask = struct { .subtask_count = .{ .raw = 1 }, .root_path = PathString.init(bun.handleOom(bun.default_allocator.dupeZ(u8, args.path.slice()))), .result_list = switch (args.tag()) { - .files => .{ .files = std.ArrayList(bun.String).init(bun.default_allocator) }, + .files => .{ .files = std.array_list.Managed(bun.String).init(bun.default_allocator) }, .with_file_types => .{ .with_file_types = .init(bun.default_allocator) }, - .buffers => .{ .buffers = std.ArrayList(Buffer).init(bun.default_allocator) }, + .buffers => .{ .buffers = std.array_list.Managed(Buffer).init(bun.default_allocator) }, }, }); task.ref.ref(vm); @@ -1066,7 +1066,7 @@ pub const AsyncReaddirRecursiveTask = struct { var stack = std.heap.stackFallback(8192, bun.default_allocator); // This is a stack-local copy to avoid resizing heap-allocated arrays in the common case of a small directory - var entries = std.ArrayList(ResultType).init(stack.get()); + var entries = std.array_list.Managed(ResultType).init(stack.get()); defer entries.deinit(); @@ -1116,7 +1116,7 @@ pub const AsyncReaddirRecursiveTask = struct { this.performWork(this.root_path.sliceAssumeZ(), &buf, true); } - pub fn writeResults(this: *AsyncReaddirRecursiveTask, comptime ResultType: type, result: *std.ArrayList(ResultType)) void { + pub fn writeResults(this: *AsyncReaddirRecursiveTask, comptime ResultType: type, result: *std.array_list.Managed(ResultType)) void { if (result.items.len > 0) { const Field = switch (ResultType) { bun.String => .files, @@ -1128,7 +1128,7 @@ pub const AsyncReaddirRecursiveTask = struct { errdefer { bun.default_allocator.destroy(list); } - var clone = bun.handleOom(std.ArrayList(ResultType).initCapacity(bun.default_allocator, result.items.len)); + var clone = bun.handleOom(std.array_list.Managed(ResultType).initCapacity(bun.default_allocator, result.items.len)); clone.appendSliceAssumeCapacity(result.items); _ = this.result_list_count.fetchAdd(clone.items.len, .monotonic); list.* = ResultListEntry{ .next = null, .value = @unionInit(ResultListEntry.Value, @tagName(Field), clone) }; @@ -1866,7 +1866,7 @@ pub const Arguments = struct { if (str.eqlComptime("dir")) break :link_type .dir; if (str.eqlComptime("file")) break :link_type .file; if (str.eqlComptime("junction")) break :link_type .junction; - return ctx.ERR(.INVALID_ARG_VALUE, "Symlink type must be one of \"dir\", \"file\", or \"junction\". Received \"{}\"", .{str}).throw(); + return ctx.ERR(.INVALID_ARG_VALUE, "Symlink type must be one of \"dir\", \"file\", or \"junction\". Received \"{f}\"", .{str}).throw(); } // not a string. fallthrough to auto detect. return ctx.ERR(.INVALID_ARG_VALUE, "Symlink type must be one of \"dir\", \"file\", or \"junction\".", .{}).throw(); @@ -4010,7 +4010,7 @@ pub const NodeFS = struct { }, } - var working_mem: *bun.OSPathBuffer = @alignCast(@ptrCast(&this.sync_error_buf)); + var working_mem: *bun.OSPathBuffer = @ptrCast(@alignCast(&this.sync_error_buf)); @memcpy(working_mem[0..len], path[0..len]); @@ -4435,7 +4435,7 @@ pub const NodeFS = struct { fd: bun.FileDescriptor, basename: [:0]const u8, comptime ExpectedType: type, - entries: *std.ArrayList(ExpectedType), + entries: *std.array_list.Managed(ExpectedType), ) Maybe(void) { const is_u16 = comptime Environment.isWindows and (ExpectedType == bun.String or ExpectedType == bun.jsc.Node.Dirent); @@ -4538,7 +4538,7 @@ pub const NodeFS = struct { async_task: *AsyncReaddirRecursiveTask, basename: [:0]const u8, comptime ExpectedType: type, - entries: *std.ArrayList(ExpectedType), + entries: *std.array_list.Managed(ExpectedType), comptime is_root: bool, ) Maybe(void) { const root_basename = async_task.root_path.slice(); @@ -4673,10 +4673,10 @@ pub const NodeFS = struct { args: Arguments.Readdir, root_basename: [:0]const u8, comptime ExpectedType: type, - entries: *std.ArrayList(ExpectedType), + entries: *std.array_list.Managed(ExpectedType), ) Maybe(void) { var iterator_stack = std.heap.stackFallback(128, bun.default_allocator); - var stack = std.fifo.LinearFifo([:0]const u8, .{ .Dynamic = {} }).init(iterator_stack.get()); + var stack = bun.LinearFifo([:0]const u8, .{ .Dynamic = {} }).init(iterator_stack.get()); var basename_stack = std.heap.stackFallback(8192 * 2, bun.default_allocator); const basename_allocator = basename_stack.get(); defer { @@ -4850,7 +4850,7 @@ pub const NodeFS = struct { if (comptime recursive and flavor == .sync) { var buf_to_pass: bun.PathBuffer = undefined; - var entries = std.ArrayList(ExpectedType).init(bun.default_allocator); + var entries = std.array_list.Managed(ExpectedType).init(bun.default_allocator); return switch (readdirWithEntriesRecursiveSync(&buf_to_pass, args, path, ExpectedType, &entries)) { .err => |err| { for (entries.items) |*result| { @@ -4896,7 +4896,7 @@ pub const NodeFS = struct { defer fd.close(); - var entries = std.ArrayList(ExpectedType).init(bun.default_allocator); + var entries = std.array_list.Managed(ExpectedType).init(bun.default_allocator); return switch (readdirWithEntries(args, fd, path, ExpectedType, &entries)) { .err => |err| return .{ .err = err, @@ -5139,7 +5139,7 @@ pub const NodeFS = struct { } } - var buf = std.ArrayList(u8).init(bun.default_allocator); + var buf = std.array_list.Managed(u8).init(bun.default_allocator); defer if (!did_succeed) buf.clearAndFree(); buf.ensureTotalCapacityPrecise( @min( @@ -5889,7 +5889,7 @@ pub const NodeFS = struct { bun.assert(flavor == .sync); const watcher = args.createStatWatcher() catch |err| { - const buf = bun.handleOom(std.fmt.allocPrint(bun.default_allocator, "Failed to watch file {}", .{bun.fmt.QuotedFormatter{ .text = args.path.slice() }})); + const buf = bun.handleOom(std.fmt.allocPrint(bun.default_allocator, "Failed to watch file {f}", .{bun.fmt.QuotedFormatter{ .text = args.path.slice() }})); defer bun.default_allocator.free(buf); args.global_this.throwValue((jsc.SystemError{ .message = bun.String.init(buf), @@ -6544,7 +6544,7 @@ pub const NodeFS = struct { fn throwInvalidFdError(global: *jsc.JSGlobalObject, value: jsc.JSValue) bun.JSError { if (value.isNumber()) { - return global.ERR(.OUT_OF_RANGE, "The value of \"fd\" is out of range. It must be an integer. Received {d}", .{bun.fmt.double(value.asNumber())}).throw(); + return global.ERR(.OUT_OF_RANGE, "The value of \"fd\" is out of range. It must be an integer. Received {f}", .{bun.fmt.double(value.asNumber())}).throw(); } return global.throwInvalidArgumentTypeValue("fd", "number", value); } @@ -6604,6 +6604,8 @@ pub fn zigDeleteTree(self: std.fs.Dir, sub_path: []const u8, kind_hint: std.fs.F }, error.FileNotFound, error.AccessDenied, + error.PermissionDenied, + error.ProcessNotFound, error.SymLinkLoop, error.ProcessFdQuotaExceeded, error.NameTooLong, @@ -6640,6 +6642,7 @@ pub fn zigDeleteTree(self: std.fs.Dir, sub_path: []const u8, kind_hint: std.fs.F error.FileNotFound, error.NotDir, error.AccessDenied, + error.PermissionDenied, error.InvalidUtf8, error.InvalidWtf8, error.SymLinkLoop, @@ -6696,6 +6699,8 @@ pub fn zigDeleteTree(self: std.fs.Dir, sub_path: []const u8, kind_hint: std.fs.F }, error.AccessDenied, + error.PermissionDenied, + error.ProcessNotFound, error.SymLinkLoop, error.ProcessFdQuotaExceeded, error.NameTooLong, @@ -6722,6 +6727,7 @@ pub fn zigDeleteTree(self: std.fs.Dir, sub_path: []const u8, kind_hint: std.fs.F }, error.AccessDenied, + error.PermissionDenied, error.InvalidUtf8, error.InvalidWtf8, error.SymLinkLoop, @@ -6764,6 +6770,8 @@ fn zigDeleteTreeOpenInitialSubpath(self: std.fs.Dir, sub_path: []const u8, kind_ error.NotDir, error.FileNotFound, error.AccessDenied, + error.PermissionDenied, + error.ProcessNotFound, error.SymLinkLoop, error.ProcessFdQuotaExceeded, error.NameTooLong, @@ -6789,6 +6797,7 @@ fn zigDeleteTreeOpenInitialSubpath(self: std.fs.Dir, sub_path: []const u8, kind_ error.FileNotFound, error.AccessDenied, + error.PermissionDenied, error.InvalidUtf8, error.InvalidWtf8, error.SymLinkLoop, @@ -6847,6 +6856,8 @@ fn zigDeleteTreeMinStackSizeWithKindHint(self: std.fs.Dir, sub_path: []const u8, }, error.AccessDenied, + error.PermissionDenied, + error.ProcessNotFound, error.SymLinkLoop, error.ProcessFdQuotaExceeded, error.NameTooLong, @@ -6881,6 +6892,7 @@ fn zigDeleteTreeMinStackSizeWithKindHint(self: std.fs.Dir, sub_path: []const u8, }, error.AccessDenied, + error.PermissionDenied, error.InvalidUtf8, error.InvalidWtf8, error.SymLinkLoop, diff --git a/src/bun.js/node/node_fs_watcher.zig b/src/bun.js/node/node_fs_watcher.zig index a108be9464..0b0e8afc24 100644 --- a/src/bun.js/node/node_fs_watcher.zig +++ b/src/bun.js/node/node_fs_watcher.zig @@ -206,9 +206,9 @@ pub const FSWatcher = struct { } } - pub fn format(this: *const StringOrBytesToDecode, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: *const StringOrBytesToDecode, writer: *std.Io.Writer) !void { switch (this.*) { - .string => |str| try writer.print("{}", .{str}), + .string => |str| try writer.print("{f}", .{str}), .bytes_to_free => |utf8| try writer.print("{s}", .{utf8}), } } @@ -286,9 +286,9 @@ pub const FSWatcher = struct { switch (event) { .rename, .change => |value| { if (is_file) { - Output.prettyErrorln(" File changed: {}", .{value}); + Output.prettyErrorln(" File changed: {f}", .{value}); } else { - Output.prettyErrorln(" Dir changed: {}", .{value}); + Output.prettyErrorln(" Dir changed: {f}", .{value}); } }, else => {}, diff --git a/src/bun.js/node/node_os.zig b/src/bun.js/node/node_os.zig index f9426e7ecc..9da343a975 100644 --- a/src/bun.js/node/node_os.zig +++ b/src/bun.js/node/node_os.zig @@ -56,12 +56,12 @@ fn cpusImplLinux(globalThis: *jsc.JSGlobalObject) !jsc.JSValue { var num_cpus: u32 = 0; var stack_fallback = std.heap.stackFallback(1024 * 8, bun.default_allocator); - var file_buf = std.ArrayList(u8).init(stack_fallback.get()); + var file_buf = std.array_list.Managed(u8).init(stack_fallback.get()); defer file_buf.deinit(); // Read /proc/stat to get number of CPUs and times { - const file = try std.fs.openFileAbsolute("/proc/stat", .{}); + const file = try std.fs.cwd().openFile("/proc/stat", .{}); defer file.close(); const read = try bun.sys.File.from(file).readToEndWithArrayList(&file_buf, .probably_small).unwrap(); @@ -101,7 +101,7 @@ fn cpusImplLinux(globalThis: *jsc.JSGlobalObject) !jsc.JSValue { } // Read /proc/cpuinfo to get model information (optional) - if (std.fs.openFileAbsolute("/proc/cpuinfo", .{})) |file| { + if (std.fs.cwd().openFile("/proc/cpuinfo", .{})) |file| { defer file.close(); const read = try bun.sys.File.from(file).readToEndWithArrayList(&file_buf, .probably_small).unwrap(); @@ -152,7 +152,7 @@ fn cpusImplLinux(globalThis: *jsc.JSGlobalObject) !jsc.JSValue { var path_buf: [128]u8 = undefined; const path = try std.fmt.bufPrint(&path_buf, "/sys/devices/system/cpu/cpu{}/cpufreq/scaling_cur_freq", .{cpu_index}); - if (std.fs.openFileAbsolute(path, .{})) |file| { + if (std.fs.cwd().openFile(path, .{})) |file| { defer file.close(); const read = try bun.sys.File.from(file).readToEndWithArrayList(&file_buf, .probably_small).unwrap(); @@ -278,7 +278,7 @@ pub fn cpusImplWindows(globalThis: *jsc.JSGlobalObject) !jsc.JSValue { pub fn freemem() u64 { // OsBinding.cpp - return @extern(*const fn () callconv(.C) u64, .{ + return @extern(*const fn () callconv(.c) u64, .{ .name = "Bun__Os__getFreeMemory", })(); } diff --git a/src/bun.js/node/node_process.zig b/src/bun.js/node/node_process.zig index 91362e45f0..fbc29403f1 100644 --- a/src/bun.js/node/node_process.zig +++ b/src/bun.js/node/node_process.zig @@ -14,7 +14,7 @@ comptime { var title_mutex = bun.Mutex{}; -pub fn getTitle(_: *JSGlobalObject, title: *bun.String) callconv(.C) void { +pub fn getTitle(_: *JSGlobalObject, title: *bun.String) callconv(.c) void { title_mutex.lock(); defer title_mutex.unlock(); const str = bun.cli.Bun__Node__ProcessTitle; @@ -22,7 +22,7 @@ pub fn getTitle(_: *JSGlobalObject, title: *bun.String) callconv(.C) void { } // TODO: https://github.com/nodejs/node/blob/master/deps/uv/src/unix/darwin-proctitle.c -pub fn setTitle(globalObject: *JSGlobalObject, newvalue: *bun.String) callconv(.C) void { +pub fn setTitle(globalObject: *JSGlobalObject, newvalue: *bun.String) callconv(.c) void { defer newvalue.deref(); title_mutex.lock(); defer title_mutex.unlock(); @@ -36,11 +36,11 @@ pub fn setTitle(globalObject: *JSGlobalObject, newvalue: *bun.String) callconv(. bun.cli.Bun__Node__ProcessTitle = new_title; } -pub fn createArgv0(globalObject: *jsc.JSGlobalObject) callconv(.C) jsc.JSValue { +pub fn createArgv0(globalObject: *jsc.JSGlobalObject) callconv(.c) jsc.JSValue { return jsc.ZigString.fromUTF8(bun.argv[0]).toJS(globalObject); } -pub fn getExecPath(globalObject: *jsc.JSGlobalObject) callconv(.C) jsc.JSValue { +pub fn getExecPath(globalObject: *jsc.JSGlobalObject) callconv(.c) jsc.JSValue { const out = bun.selfExePath() catch { // if for any reason we are unable to get the executable path, we just return argv[0] return createArgv0(globalObject); @@ -69,7 +69,7 @@ fn createExecArgv(globalObject: *jsc.JSGlobalObject) bun.JSError!jsc.JSValue { if (vm.standalone_module_graph) |graph| { if (graph.compile_exec_argv.len > 0) { // Use tokenize to split the compile_exec_argv string by whitespace - var args = std.ArrayList(bun.String).init(temp_alloc); + var args = std.array_list.Managed(bun.String).init(temp_alloc); defer args.deinit(); defer for (args.items) |*arg| arg.deref(); @@ -87,7 +87,7 @@ fn createExecArgv(globalObject: *jsc.JSGlobalObject) bun.JSError!jsc.JSValue { return try jsc.JSValue.createEmptyArray(globalObject, 0); } - var args = try std.ArrayList(bun.String).initCapacity(temp_alloc, bun.argv.len - 1); + var args = try std.array_list.Managed(bun.String).initCapacity(temp_alloc, bun.argv.len - 1); defer args.deinit(); defer for (args.items) |*arg| arg.deref(); @@ -146,7 +146,7 @@ fn createExecArgv(globalObject: *jsc.JSGlobalObject) bun.JSError!jsc.JSValue { return bun.String.toJSArray(globalObject, args.items); } -fn createArgv(globalObject: *jsc.JSGlobalObject) callconv(.C) jsc.JSValue { +fn createArgv(globalObject: *jsc.JSGlobalObject) callconv(.c) jsc.JSValue { const vm = globalObject.bunVM(); // Allocate up to 32 strings in stack @@ -220,7 +220,7 @@ pub fn getExecArgv(global: *JSGlobalObject) callconv(.c) JSValue { return Bun__Process__getExecArgv(global); } -pub fn getEval(globalObject: *jsc.JSGlobalObject) callconv(.C) jsc.JSValue { +pub fn getEval(globalObject: *jsc.JSGlobalObject) callconv(.c) jsc.JSValue { const vm = globalObject.bunVM(); if (vm.module_loader.eval_source) |source| { return jsc.ZigString.init(source.contents).toJS(globalObject); @@ -298,7 +298,7 @@ pub fn exit(globalObject: *jsc.JSGlobalObject, code: u8) callconv(.c) void { } // TODO: switch this to using *bun.wtf.String when it is added -pub fn Bun__Process__editWindowsEnvVar(k: bun.String, v: bun.String) callconv(.C) void { +pub fn Bun__Process__editWindowsEnvVar(k: bun.String, v: bun.String) callconv(.c) void { comptime bun.assert(bun.Environment.isWindows); if (k.tag == .Empty) return; const wtf1 = k.value.WTFStringImpl; diff --git a/src/bun.js/node/path.zig b/src/bun.js/node/path.zig index bf8a26b857..6f2103c58f 100644 --- a/src/bun.js/node/path.zig +++ b/src/bun.js/node/path.zig @@ -151,20 +151,6 @@ inline fn posixCwdT(comptime T: type, buf: []T) MaybeBuf(T) { return MaybeBuf(T){ .result = cwd }; } -pub fn getCwdWindowsU8(buf: []u8) MaybeBuf(u8) { - const u16Buf: bun.WPathBuffer = undefined; - switch (getCwdWindowsU16(&u16Buf)) { - .result => |r| { - // Handles conversion from UTF-16 to UTF-8 including surrogates ;) - const result = strings.convertUTF16ToUTF8InBuffer(&buf, r) catch { - return MaybeBuf(u8).errnoSys(0, Syscall.Tag.getcwd).?; - }; - return MaybeBuf(u8){ .result = result }; - }, - .err => |e| return MaybeBuf(u8){ .err = e }, - } -} - const withoutTrailingSlash = if (Environment.isWindows) strings.withoutTrailingSlashWindowsPath else strings.withoutTrailingSlash; pub fn getCwdWindowsU16(buf: []u16) MaybeBuf(u16) { diff --git a/src/bun.js/node/path_watcher.zig b/src/bun.js/node/path_watcher.zig index 16c1f5b462..f683cfe308 100644 --- a/src/bun.js/node/path_watcher.zig +++ b/src/bun.js/node/path_watcher.zig @@ -34,7 +34,7 @@ pub const PathWatcherManager = struct { return true; } - fn hasPendingTasks(this: *PathWatcherManager) callconv(.C) bool { + fn hasPendingTasks(this: *PathWatcherManager) callconv(.c) bool { return this.has_pending_tasks.load(.acquire); } @@ -166,7 +166,7 @@ pub const PathWatcherManager = struct { const kind = kinds[event.index]; if (comptime Environment.isDebug) { - log("[watch] {s} ({s}, {})", .{ file_path, @tagName(kind), event.op }); + log("[watch] {s} ({s}, {f})", .{ file_path, @tagName(kind), event.op }); } switch (kind) { @@ -306,7 +306,7 @@ pub const PathWatcherManager = struct { // stop all watchers for (watchers) |w| { if (w) |watcher| { - log("[watch] error: {}", .{err}); + log("[watch] error: {f}", .{err}); watcher.emit(.{ .@"error" = err }, 0, timestamp, false); watcher.flush(); } @@ -419,7 +419,7 @@ pub const PathWatcherManager = struct { return .{ .err = .{ .errno = @truncate(@intFromEnum(switch (err) { - error.AccessDenied => bun.sys.E.ACCES, + error.AccessDenied, error.PermissionDenied => bun.sys.E.ACCES, error.SystemResources => bun.sys.E.NOMEM, error.Unexpected, error.InvalidUtf8, @@ -497,7 +497,7 @@ pub const PathWatcherManager = struct { defer watcher.unrefPendingDirectory(); switch (this.processWatcher(watcher, &buf)) { .err => |err| { - log("[watch] error registering directory: {s}", .{err}); + log("[watch] error registering directory: {f}", .{err}); watcher.emit(.{ .@"error" = err }, 0, std.time.milliTimestamp(), false); watcher.flush(); }, @@ -807,7 +807,7 @@ pub const PathWatcher = struct { return true; } - pub fn hasPendingDirectories(this: *PathWatcher) callconv(.C) bool { + pub fn hasPendingDirectories(this: *PathWatcher) callconv(.c) bool { return this.has_pending_directories.load(.acquire); } diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig index cfdc1640a0..e48361c3a0 100644 --- a/src/bun.js/node/types.zig +++ b/src/bun.js/node/types.zig @@ -132,8 +132,9 @@ pub const StringOrBuffer = union(enum) { switch (this.*) { .string => { this.string.toThreadSafe(); + const str = this.string; this.* = .{ - .threadsafe_string = this.string, + .threadsafe_string = str, }; }, .threadsafe_string => {}, @@ -382,7 +383,7 @@ pub const Encoding = enum(u8) { } pub fn throwEncodingError(globalObject: *jsc.JSGlobalObject, value: jsc.JSValue) bun.JSError { - return globalObject.ERR(.INVALID_ARG_VALUE, "encoding '{}' is an invalid encoding", .{value.fmtString(globalObject)}).throw(); + return globalObject.ERR(.INVALID_ARG_VALUE, "encoding '{f}' is an invalid encoding", .{value.fmtString(globalObject)}).throw(); } pub fn encodeWithSize(encoding: Encoding, globalObject: *jsc.JSGlobalObject, comptime size: usize, input: *const [size]u8) bun.JSError!jsc.JSValue { @@ -402,8 +403,8 @@ pub const Encoding = enum(u8) { var buf: [size * 4]u8 = undefined; const out = std.fmt.bufPrint( &buf, - "{}", - .{std.fmt.fmtSliceHexLower(input)}, + "{x}", + .{input}, ) catch |err| switch (err) { error.NoSpaceLeft => unreachable, }; @@ -447,8 +448,8 @@ pub const Encoding = enum(u8) { var buf: [max_size * 4]u8 = undefined; const out = std.fmt.bufPrint( &buf, - "{}", - .{std.fmt.fmtSliceHexLower(input)}, + "{x}", + .{input}, ) catch |err| switch (err) { error.NoSpaceLeft => unreachable, }; @@ -535,9 +536,8 @@ pub const PathLike = union(enum) { switch (this.*) { .slice_with_underlying_string => { this.slice_with_underlying_string.toThreadSafe(); - this.* = .{ - .threadsafe_string = this.slice_with_underlying_string, - }; + const slice_with_underlying_string = this.slice_with_underlying_string; + this.* = .{ .threadsafe_string = slice_with_underlying_string }; }, .buffer => { this.buffer.buffer.value.protect(); @@ -781,14 +781,14 @@ pub const Valid = struct { pub fn pathNullBytes(slice: []const u8, global: *jsc.JSGlobalObject) bun.JSError!void { if (bun.strings.indexOfChar(slice, 0) != null) { - return global.ERR(.INVALID_ARG_VALUE, "The argument 'path' must be a string, Uint8Array, or URL without null bytes. Received {}", .{bun.fmt.quote(slice)}).throw(); + return global.ERR(.INVALID_ARG_VALUE, "The argument 'path' must be a string, Uint8Array, or URL without null bytes. Received {f}", .{bun.fmt.quote(slice)}).throw(); } } }; pub const VectorArrayBuffer = struct { value: jsc.JSValue, - buffers: std.ArrayList(bun.PlatformIOVec), + buffers: std.array_list.Managed(bun.PlatformIOVec), pub fn toJS(this: VectorArrayBuffer, _: *jsc.JSGlobalObject) jsc.JSValue { return this.value; @@ -799,7 +799,7 @@ pub const VectorArrayBuffer = struct { return globalObject.throwInvalidArguments("Expected ArrayBufferView[]", .{}); } - var bufferlist = std.ArrayList(bun.PlatformIOVec).init(allocator); + var bufferlist = std.array_list.Managed(bun.PlatformIOVec).init(allocator); var i: usize = 0; const len = try val.getLength(globalObject); bun.handleOom(bufferlist.ensureTotalCapacityPrecise(len)); @@ -850,7 +850,7 @@ pub fn modeFromJS(ctx: *jsc.JSGlobalObject, value: jsc.JSValue) bun.JSError!?Mod break :brk std.fmt.parseInt(Mode, slice, 8) catch { var formatter = bun.jsc.ConsoleObject.Formatter{ .globalThis = ctx }; defer formatter.deinit(); - return ctx.throwValue(ctx.ERR(.INVALID_ARG_VALUE, "The argument 'mode' must be a 32-bit unsigned integer or an octal string. Received {}", .{value.toFmt(&formatter)}).toJS()); + return ctx.throwValue(ctx.ERR(.INVALID_ARG_VALUE, "The argument 'mode' must be a 32-bit unsigned integer or an octal string. Received {f}", .{value.toFmt(&formatter)}).toJS()); }; }; @@ -898,10 +898,7 @@ pub const PathOrFileDescriptor = union(Tag) { }; } - pub fn format(this: jsc.Node.PathOrFileDescriptor, comptime fmt: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { - if (fmt.len != 0 and fmt[0] != 's') { - @compileError("Unsupported format argument: '" ++ fmt ++ "'."); - } + pub fn format(this: jsc.Node.PathOrFileDescriptor, writer: *std.Io.Writer) !void { switch (this) { .path => |p| try writer.writeAll(p.slice()), .fd => |fd| try writer.print("{}", .{fd}), @@ -1030,7 +1027,7 @@ pub const FileSystemFlags = enum(c_int) { } // it's definitely wrong when the string is super long else if (str.len > 12) { - return ctx.throwInvalidArguments("Invalid flag '{any}'. Learn more at https://nodejs.org/api/fs.html#fs_file_system_flags", .{str}); + return ctx.throwInvalidArguments("Invalid flag '{f}'. Learn more at https://nodejs.org/api/fs.html#fs_file_system_flags", .{str}); } const flags: i32 = brk: { @@ -1054,7 +1051,7 @@ pub const FileSystemFlags = enum(c_int) { break :brk map.getWithEql(str, jsc.ZigString.eqlComptime) orelse break :brk null; } orelse { - return ctx.throwInvalidArguments("Invalid flag '{any}'. Learn more at https://nodejs.org/api/fs.html#fs_file_system_flags", .{str}); + return ctx.throwInvalidArguments("Invalid flag '{f}'. Learn more at https://nodejs.org/api/fs.html#fs_file_system_flags", .{str}); }; return @enumFromInt(flags); diff --git a/src/bun.js/node/util/parse_args.zig b/src/bun.js/node/util/parse_args.zig index 5904dff0aa..f7df4974e2 100644 --- a/src/bun.js/node/util/parse_args.zig +++ b/src/bun.js/node/util/parse_args.zig @@ -71,24 +71,24 @@ const OptionToken = struct { globalThis: *JSGlobalObject, /// Formats the raw name of the arg (includes any dashes and excludes inline values) - pub fn format(this: RawNameFormatter, comptime fmt: []const u8, opts: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: RawNameFormatter, writer: *std.Io.Writer) !void { const token = this.token; const raw = token.raw.asBunString(this.globalThis); if (token.optgroup_idx) |optgroup_idx| { - try raw.substringWithLen(optgroup_idx, optgroup_idx + 1).format(fmt, opts, writer); + try raw.substringWithLen(optgroup_idx, optgroup_idx + 1).format(writer); } else { switch (token.parse_type) { .lone_short_option, .lone_long_option => { - try raw.format(fmt, opts, writer); + try raw.format(writer); }, .short_option_and_value => { var susbtr = raw.substringWithLen(0, 2); - try susbtr.format(fmt, opts, writer); + try susbtr.format(writer); }, .long_option_and_value => { const equal_index = raw.indexOfAsciiChar('=').?; var substr = raw.substringWithLen(0, equal_index); - try substr.format(fmt, opts, writer); + try substr.format(writer); }, } } @@ -100,7 +100,7 @@ const OptionToken = struct { if (this.optgroup_idx) |optgroup_idx| { const raw = this.raw.asBunString(globalThis); var buf: [8]u8 = undefined; - const str = std.fmt.bufPrint(&buf, "-{}", .{raw.substringWithLen(optgroup_idx, optgroup_idx + 1)}) catch unreachable; + const str = std.fmt.bufPrint(&buf, "-{f}", .{raw.substringWithLen(optgroup_idx, optgroup_idx + 1)}) catch unreachable; return String.borrowUTF8(str).toJS(globalThis); } else { switch (this.parse_type) { @@ -173,14 +173,14 @@ fn checkOptionLikeValue(globalThis: *JSGlobalObject, token: OptionToken) bun.JSE if (token.raw.asBunString(globalThis).hasPrefixComptime("--")) { err = globalThis.toTypeError( .PARSE_ARGS_INVALID_OPTION_VALUE, - "Option '{}' argument is ambiguous.\nDid you forget to specify the option argument for '{}'?\nTo specify an option argument starting with a dash use '{}=-XYZ'.", + "Option '{f}' argument is ambiguous.\nDid you forget to specify the option argument for '{f}'?\nTo specify an option argument starting with a dash use '{f}=-XYZ'.", .{ raw_name, raw_name, raw_name }, ); } else { const token_name = token.name.asBunString(globalThis); err = globalThis.toTypeError( .PARSE_ARGS_INVALID_OPTION_VALUE, - "Option '{}' argument is ambiguous.\nDid you forget to specify the option argument for '{}'?\nTo specify an option argument starting with a dash use '--{}=-XYZ' or '{}-XYZ'.", + "Option '{f}' argument is ambiguous.\nDid you forget to specify the option argument for '{f}'?\nTo specify an option argument starting with a dash use '--{f}=-XYZ' or '{f}-XYZ'.", .{ raw_name, raw_name, token_name, raw_name }, ); } @@ -198,12 +198,12 @@ fn checkOptionUsage(globalThis: *JSGlobalObject, options: []const OptionDefiniti // the option was found earlier because we trimmed 'no-' from the name, so we throw // the expected unknown option error. const raw_name: OptionToken.RawNameFormatter = .{ .token = token, .globalThis = globalThis }; - const err = globalThis.toTypeError(.PARSE_ARGS_UNKNOWN_OPTION, "Unknown option '{}'", .{raw_name}); + const err = globalThis.toTypeError(.PARSE_ARGS_UNKNOWN_OPTION, "Unknown option '{f}'", .{raw_name}); return globalThis.throwValue(err); } const err = globalThis.toTypeError( .PARSE_ARGS_INVALID_OPTION_VALUE, - "Option '{s}{s}{s}--{s} ' argument missing", + "Option '{s}{f}{s}--{f} ' argument missing", .{ if (!option.short_name.isEmpty()) "-" else "", option.short_name, @@ -216,7 +216,7 @@ fn checkOptionUsage(globalThis: *JSGlobalObject, options: []const OptionDefiniti .boolean => if (token.value != .jsvalue or !token.value.jsvalue.isUndefined()) { const err = globalThis.toTypeError( .PARSE_ARGS_INVALID_OPTION_VALUE, - "Option '{s}{s}{s}--{s}' does not take an argument", + "Option '{s}{f}{s}--{f}' does not take an argument", .{ if (!option.short_name.isEmpty()) "-" else "", option.short_name, @@ -232,11 +232,11 @@ fn checkOptionUsage(globalThis: *JSGlobalObject, options: []const OptionDefiniti const err = if (allow_positionals) (globalThis.toTypeError( .PARSE_ARGS_UNKNOWN_OPTION, - "Unknown option '{}'. To specify a positional argument starting with a '-', place it at the end of the command after '--', as in '-- \"{}\"", + "Unknown option '{f}'. To specify a positional argument starting with a '-', place it at the end of the command after '--', as in '-- \"{f}\"", .{ raw_name, raw_name }, )) else (globalThis.toTypeError( .PARSE_ARGS_UNKNOWN_OPTION, - "Unknown option '{}'", + "Unknown option '{f}'", .{raw_name}, )); return globalThis.throwValue(err); @@ -279,7 +279,7 @@ fn storeOption(globalThis: *JSGlobalObject, option_name: ValueRef, option_value: } } -fn parseOptionDefinitions(globalThis: *JSGlobalObject, options_obj: JSValue, option_definitions: *std.ArrayList(OptionDefinition)) bun.JSError!void { +fn parseOptionDefinitions(globalThis: *JSGlobalObject, options_obj: JSValue, option_definitions: *std.array_list.Managed(OptionDefinition)) bun.JSError!void { try validators.validateObject(globalThis, options_obj, "options", .{}, .{}); var iter = try jsc.JSPropertyIterator(.{ .skip_empty_name = false, .include_value = true }).init( @@ -295,17 +295,17 @@ fn parseOptionDefinitions(globalThis: *JSGlobalObject, options_obj: JSValue, opt }; const obj: JSValue = iter.value; - try validators.validateObject(globalThis, obj, "options.{s}", .{option.long_name}, .{}); + try validators.validateObject(globalThis, obj, "options.{f}", .{option.long_name}, .{}); // type field is required const option_type: JSValue = try obj.getOwn(globalThis, "type") orelse .js_undefined; - option.type = try validators.validateStringEnum(OptionValueType, globalThis, option_type, "options.{s}.type", .{option.long_name}); + option.type = try validators.validateStringEnum(OptionValueType, globalThis, option_type, "options.{f}.type", .{option.long_name}); if (try obj.getOwn(globalThis, "short")) |short_option| { - try validators.validateString(globalThis, short_option, "options.{s}.short", .{option.long_name}); + try validators.validateString(globalThis, short_option, "options.{f}.short", .{option.long_name}); var short_option_str = try short_option.toBunString(globalThis); if (short_option_str.length() != 1) { - const err = globalThis.toTypeError(.INVALID_ARG_VALUE, "options.{s}.short must be a single character", .{option.long_name}); + const err = globalThis.toTypeError(.INVALID_ARG_VALUE, "options.{f}.short must be a single character", .{option.long_name}); return globalThis.throwValue(err); } option.short_name = short_option_str; @@ -313,7 +313,7 @@ fn parseOptionDefinitions(globalThis: *JSGlobalObject, options_obj: JSValue, opt if (try obj.getOwn(globalThis, "multiple")) |multiple_value| { if (!multiple_value.isUndefined()) { - option.multiple = try validators.validateBoolean(globalThis, multiple_value, "options.{s}.multiple", .{option.long_name}); + option.multiple = try validators.validateBoolean(globalThis, multiple_value, "options.{f}.multiple", .{option.long_name}); } } @@ -322,16 +322,16 @@ fn parseOptionDefinitions(globalThis: *JSGlobalObject, options_obj: JSValue, opt switch (option.type) { .string => { if (option.multiple) { - _ = try validators.validateStringArray(globalThis, default_value, "options.{s}.default", .{option.long_name}); + _ = try validators.validateStringArray(globalThis, default_value, "options.{f}.default", .{option.long_name}); } else { - try validators.validateString(globalThis, default_value, "options.{s}.default", .{option.long_name}); + try validators.validateString(globalThis, default_value, "options.{f}.default", .{option.long_name}); } }, .boolean => { if (option.multiple) { - _ = try validators.validateBooleanArray(globalThis, default_value, "options.{s}.default", .{option.long_name}); + _ = try validators.validateBooleanArray(globalThis, default_value, "options.{f}.default", .{option.long_name}); } else { - _ = try validators.validateBoolean(globalThis, default_value, "options.{s}.default", .{option.long_name}); + _ = try validators.validateBoolean(globalThis, default_value, "options.{f}.default", .{option.long_name}); } }, } @@ -339,7 +339,7 @@ fn parseOptionDefinitions(globalThis: *JSGlobalObject, options_obj: JSValue, opt } } - log("[OptionDef] \"{s}\" (type={s}, short={s}, multiple={d}, default={?s})", .{ + log("[OptionDef] \"{f}\" (type={s}, short={f}, multiple={d}, default={?s})", .{ String.init(long_option), @tagName(option.type), if (!option.short_name.isEmpty()) option.short_name else String.static("none"), @@ -368,7 +368,7 @@ fn tokenizeArgs( const arg = arg_ref.asBunString(globalThis); const token_rawtype = classifyToken(arg, options); - log(" [Arg #{d}] {s} ({s})", .{ index, @tagName(token_rawtype), arg }); + log(" [Arg #{d}] {s} ({f})", .{ index, @tagName(token_rawtype), arg }); switch (token_rawtype) { // Check if `arg` is an options terminator. @@ -578,7 +578,7 @@ const ParseArgsState = struct { if (!this.allow_positionals) { const err = globalThis.toTypeError( .PARSE_ARGS_UNEXPECTED_POSITIONAL, - "Unexpected argument '{s}'. This command does not take positional arguments", + "Unexpected argument '{f}'. This command does not take positional arguments", .{token.value.asBunString(globalThis)}, ); return globalThis.throwValue(err); @@ -679,7 +679,7 @@ pub fn parseArgs(globalThis: *JSGlobalObject, callframe: *jsc.CallFrame) bun.JSE // Phase 0.C: Parse the options definitions var options_defs_allocator = std.heap.stackFallback(2048, globalThis.allocator()); - var option_defs = std.ArrayList(OptionDefinition).init(options_defs_allocator.get()); + var option_defs = std.array_list.Managed(OptionDefinition).init(options_defs_allocator.get()); defer option_defs.deinit(); if (!config_options.isUndefinedOrNull()) { @@ -722,7 +722,7 @@ pub fn parseArgs(globalThis: *JSGlobalObject, callframe: *jsc.CallFrame) bun.JSE if (option.default_value) |default_value| { if (!option.long_name.eqlComptime("__proto__")) { if (try state.values.getOwn(globalThis, option.long_name) == null) { - log(" Setting \"{}\" to default value", .{option.long_name}); + log(" Setting \"{f}\" to default value", .{option.long_name}); try state.values.putMayBeIndex(globalThis, &option.long_name, default_value); } } diff --git a/src/bun.js/node/util/validators.zig b/src/bun.js/node/util/validators.zig index b47e98a92d..cf6d9ce565 100644 --- a/src/bun.js/node/util/validators.zig +++ b/src/bun.js/node/util/validators.zig @@ -33,7 +33,7 @@ pub fn throwErrInvalidArgType( ) bun.JSError { @branchHint(.cold); const actual_type = getTypeName(globalThis, value); - return throwErrInvalidArgTypeWithMessage(globalThis, "The \"" ++ name_fmt ++ "\" property must be of type {s}, got {s}", name_args ++ .{ expected_type, actual_type }); + return throwErrInvalidArgTypeWithMessage(globalThis, "The \"" ++ name_fmt ++ "\" property must be of type {s}, got {f}", name_args ++ .{ expected_type, actual_type }); } pub fn throwRangeError( @@ -118,14 +118,14 @@ pub fn validateInt32(globalThis: *JSGlobalObject, value: JSValue, comptime name_ if (!value.isAnyInt()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); - return throwRangeError(globalThis, "The value of \"" ++ name_fmt ++ "\" is out of range. It must be an integer. Received {}", name_args ++ .{value.toFmt(&formatter)}); + return throwRangeError(globalThis, "The value of \"" ++ name_fmt ++ "\" is out of range. It must be an integer. Received {f}", name_args ++ .{value.toFmt(&formatter)}); } const num = value.asNumber(); // Use floating point comparison here to ensure values out of i32 range get caught instead of clamp/truncated. if (num < @as(f64, @floatFromInt(min)) or num > @as(f64, @floatFromInt(max))) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); - return throwRangeError(globalThis, "The value of \"" ++ name_fmt ++ "\" is out of range. It must be >= {d} and <= {d}. Received {}", name_args ++ .{ min, max, value.toFmt(&formatter) }); + return throwRangeError(globalThis, "The value of \"" ++ name_fmt ++ "\" is out of range. It must be >= {d} and <= {d}. Received {f}", name_args ++ .{ min, max, value.toFmt(&formatter) }); } return @intFromFloat(num); } @@ -137,7 +137,7 @@ pub fn validateUint32(globalThis: *JSGlobalObject, value: JSValue, comptime name if (!value.isAnyInt()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); - return throwRangeError(globalThis, "The value of \"" ++ name_fmt ++ "\" is out of range. It must be an integer. Received {}", name_args ++ .{value.toFmt(&formatter)}); + return throwRangeError(globalThis, "The value of \"" ++ name_fmt ++ "\" is out of range. It must be an integer. Received {f}", name_args ++ .{value.toFmt(&formatter)}); } const num: i64 = value.asInt52(); const min: i64 = if (greater_than_zero) 1 else 0; @@ -145,7 +145,7 @@ pub fn validateUint32(globalThis: *JSGlobalObject, value: JSValue, comptime name if (num < min or num > max) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); - return throwRangeError(globalThis, "The value of \"" ++ name_fmt ++ "\" is out of range. It must be >= {d} and <= {d}. Received {}", name_args ++ .{ min, max, value.toFmt(&formatter) }); + return throwRangeError(globalThis, "The value of \"" ++ name_fmt ++ "\" is out of range. It must be >= {d} and <= {d}. Received {f}", name_args ++ .{ min, max, value.toFmt(&formatter) }); } return @truncate(@as(u63, @intCast(num))); } @@ -223,7 +223,7 @@ pub fn validateObject(globalThis: *JSGlobalObject, value: JSValue, comptime name pub fn validateArray(globalThis: *JSGlobalObject, value: JSValue, comptime name_fmt: string, name_args: anytype, comptime min_length: ?i32) bun.JSError!void { if (!value.jsType().isArray()) { const actual_type = getTypeName(globalThis, value); - return throwErrInvalidArgTypeWithMessage(globalThis, "The \"" ++ name_fmt ++ "\" property must be an instance of Array, got {s}", name_args ++ .{actual_type}); + return throwErrInvalidArgTypeWithMessage(globalThis, "The \"" ++ name_fmt ++ "\" property must be an instance of Array, got {f}", name_args ++ .{actual_type}); } if (comptime min_length != null) { if (value.getLength(globalThis) < min_length) { diff --git a/src/bun.js/node/win_watcher.zig b/src/bun.js/node/win_watcher.zig index 016fa08e36..3468ad785f 100644 --- a/src/bun.js/node/win_watcher.zig +++ b/src/bun.js/node/win_watcher.zig @@ -95,7 +95,7 @@ pub const PathWatcher = struct { const Callback = *const fn (ctx: ?*anyopaque, event: Event, is_file: bool) void; const UpdateEndCallback = *const fn (ctx: ?*anyopaque) void; - fn uvEventCallback(event: *uv.uv_fs_event_t, filename: ?[*:0]const u8, events: c_int, status: uv.ReturnCode) callconv(.C) void { + fn uvEventCallback(event: *uv.uv_fs_event_t, filename: ?[*:0]const u8, events: c_int, status: uv.ReturnCode) callconv(.c) void { if (event.data == null) { Output.debugWarn("uvEventCallback called with null data", .{}); return; @@ -137,7 +137,7 @@ pub const PathWatcher = struct { var debug_count: if (bun.Environment.isDebug) usize else u0 = 0; for (this.handlers.values(), 0..) |*event, i| { if (event.emit(hash, timestamp, event_type)) { - const ctx: *FSWatcher = @alignCast(@ptrCast(this.handlers.keys()[i])); + const ctx: *FSWatcher = @ptrCast(@alignCast(this.handlers.keys()[i])); onPathUpdateFn(ctx, event_type.toEvent(switch (ctx.encoding) { .utf8 => .{ .string = bun.String.cloneUTF8(path) }, else => .{ .bytes_to_free = bun.handleOom(bun.default_allocator.dupeZ(u8, path)) }, @@ -215,7 +215,7 @@ pub const PathWatcher = struct { return .{ .result = this }; } - fn uvClosedCallback(handler: *anyopaque) callconv(.C) void { + fn uvClosedCallback(handler: *anyopaque) callconv(.c) void { log("onClose", .{}); const event = bun.cast(*uv.uv_fs_event_t, handler); const this = bun.cast(*PathWatcher, event.data); diff --git a/src/bun.js/rare_data.zig b/src/bun.js/rare_data.zig index bc10ca0809..0315e60da3 100644 --- a/src/bun.js/rare_data.zig +++ b/src/bun.js/rare_data.zig @@ -295,7 +295,7 @@ pub const CleanupHook = struct { }; } - pub const Function = *const fn (?*anyopaque) callconv(.C) void; + pub const Function = *const fn (?*anyopaque) callconv(.c) void; }; pub fn pushCleanupHook( diff --git a/src/bun.js/test/Collection.zig b/src/bun.js/test/Collection.zig index ddba5f3d66..c0847ae547 100644 --- a/src/bun.js/test/Collection.zig +++ b/src/bun.js/test/Collection.zig @@ -1,13 +1,13 @@ //! for the collection phase of test execution where we discover all the test() calls locked: bool = false, // set to true after collection phase ends -describe_callback_queue: std.ArrayList(QueuedDescribe), -current_scope_callback_queue: std.ArrayList(QueuedDescribe), +describe_callback_queue: std.array_list.Managed(QueuedDescribe), +current_scope_callback_queue: std.array_list.Managed(QueuedDescribe), root_scope: *DescribeScope, active_scope: *DescribeScope, -filter_buffer: std.ArrayList(u8), +filter_buffer: std.array_list.Managed(u8), const QueuedDescribe = struct { callback: jsc.Strong.Deprecated, diff --git a/src/bun.js/test/DoneCallback.zig b/src/bun.js/test/DoneCallback.zig index c6457edf65..7c1c4e49a3 100644 --- a/src/bun.js/test/DoneCallback.zig +++ b/src/bun.js/test/DoneCallback.zig @@ -8,7 +8,7 @@ pub const fromJS = js.fromJS; pub fn finalize( this: *DoneCallback, -) callconv(.C) void { +) callconv(.c) void { groupLog.begin(@src()); defer groupLog.end(); diff --git a/src/bun.js/test/Execution.zig b/src/bun.js/test/Execution.zig index be1d774f2d..69f90ac347 100644 --- a/src/bun.js/test/Execution.zig +++ b/src/bun.js/test/Execution.zig @@ -372,7 +372,7 @@ fn stepSequenceOne(buntest_strong: bun_test.BunTestPtr, globalThis: *jsc.JSGloba }, }, }; - groupLog.log("runSequence queued callback: {}", .{callback_data}); + groupLog.log("runSequence queued callback: {f}", .{callback_data}); if (BunTest.runTestCallback(buntest_strong, globalThis, cb.get(), next_item.has_done_parameter, callback_data, &next_item.timespec) != null) { now.* = bun.timespec.now(); @@ -411,7 +411,7 @@ pub fn getCurrentAndValidExecutionSequence(this: *Execution, data: bun_test.BunT groupLog.begin(@src()); defer groupLog.end(); - groupLog.log("runOneCompleted: data: {}", .{data}); + groupLog.log("runOneCompleted: data: {f}", .{data}); if (data != .execution) { groupLog.log("runOneCompleted: the data is not execution", .{}); @@ -493,7 +493,7 @@ fn onSequenceStarted(_: *Execution, sequence: *ExecutionSequence) void { sequence.started_at = bun.timespec.now(); if (sequence.test_entry) |entry| { - log("Running test: \"{}\"", .{std.zig.fmtEscapes(entry.base.name orelse "(unnamed)")}); + log("Running test: \"{f}\"", .{std.zig.fmtString(entry.base.name orelse "(unnamed)")}); if (entry.base.test_id_for_debugger != 0) { if (jsc.VirtualMachine.get().debugger) |*debugger| { diff --git a/src/bun.js/test/Order.zig b/src/bun.js/test/Order.zig index ed9d021378..df2902c766 100644 --- a/src/bun.js/test/Order.zig +++ b/src/bun.js/test/Order.zig @@ -1,15 +1,15 @@ //! take Collection phase output and convert to Execution phase input -groups: std.ArrayList(ConcurrentGroup), -sequences: std.ArrayList(ExecutionSequence), +groups: std.array_list.Managed(ConcurrentGroup), +sequences: std.array_list.Managed(ExecutionSequence), arena: std.mem.Allocator, previous_group_was_concurrent: bool = false, cfg: Config, pub fn init(gpa: std.mem.Allocator, arena: std.mem.Allocator, cfg: Config) Order { return .{ - .groups = std.ArrayList(ConcurrentGroup).init(gpa), - .sequences = std.ArrayList(ExecutionSequence).init(gpa), + .groups = std.array_list.Managed(ConcurrentGroup).init(gpa), + .sequences = std.array_list.Managed(ExecutionSequence).init(gpa), .cfg = cfg, .arena = arena, }; diff --git a/src/bun.js/test/ScopeFunctions.zig b/src/bun.js/test/ScopeFunctions.zig index 7f4c6438ef..d5f4fa5e29 100644 --- a/src/bun.js/test/ScopeFunctions.zig +++ b/src/bun.js/test/ScopeFunctions.zig @@ -68,7 +68,7 @@ pub fn fnEach(this: *ScopeFunctions, globalThis: *JSGlobalObject, callFrame: *Ca if (array.isUndefinedOrNull() or !array.isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); - return globalThis.throw("Expected array, got {}", .{array.toFmt(&formatter)}); + return globalThis.throw("Expected array, got {f}", .{array.toFmt(&formatter)}); } if (this.each != .zero) return globalThis.throw("Cannot {s} on {f}", .{ "each", this }); @@ -100,14 +100,14 @@ pub fn callAsFunction(globalThis: *JSGlobalObject, callFrame: *CallFrame) bun.JS if (this.each.isUndefinedOrNull() or !this.each.isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); - return globalThis.throw("Expected array, got {}", .{this.each.toFmt(&formatter)}); + return globalThis.throw("Expected array, got {f}", .{this.each.toFmt(&formatter)}); } var iter = try this.each.arrayIterator(globalThis); var test_idx: usize = 0; while (try iter.next()) |item| : (test_idx += 1) { if (item == .zero) break; - var args_list: std.ArrayList(Strong) = .init(bunTest.gpa); + var args_list: std.array_list.Managed(Strong) = .init(bunTest.gpa); defer args_list.deinit(); defer for (args_list.items) |*arg| arg.deinit(); @@ -124,7 +124,7 @@ pub fn callAsFunction(globalThis: *JSGlobalObject, callFrame: *CallFrame) bun.JS bun.handleOom(args_list.append(.init(bunTest.gpa, item))); } - var args_list_raw = bun.handleOom(std.ArrayList(jsc.JSValue).initCapacity(bunTest.gpa, args_list.items.len)); // safe because the items are held strongly in args_list + var args_list_raw = bun.handleOom(std.array_list.Managed(jsc.JSValue).initCapacity(bunTest.gpa, args_list.items.len)); // safe because the items are held strongly in args_list defer args_list_raw.deinit(); for (args_list.items) |arg| bun.handleOom(args_list_raw.append(arg.get())); @@ -176,8 +176,8 @@ fn enqueueDescribeOrTestCallback(this: *ScopeFunctions, bunTest: *bun_test.BunTe // only allow in collection phase switch (bunTest.phase) { .collection => {}, // ok - .execution => return globalThis.throw("Cannot call {}() inside a test. Call it inside describe() instead.", .{this}), - .done => return globalThis.throw("Cannot call {}() after the test run has completed", .{this}), + .execution => return globalThis.throw("Cannot call {f}() inside a test. Call it inside describe() instead.", .{this}), + .done => return globalThis.throw("Cannot call {f}() after the test run has completed", .{this}), } // handle test reporter agent for debugger @@ -235,7 +235,7 @@ fn enqueueDescribeOrTestCallback(this: *ScopeFunctions, bunTest: *bun_test.BunTe bun.debugAssert(rem.buf.len == 0); const str = bun.String.fromBytes(bunTest.collection.filter_buffer.items); - groupLog.log("matches_filter \"{}\"", .{std.zig.fmtEscapes(bunTest.collection.filter_buffer.items)}); + groupLog.log("matches_filter \"{f}\"", .{std.zig.fmtString(bunTest.collection.filter_buffer.items)}); matches_filter = filter_regex.matches(str); }; @@ -327,7 +327,7 @@ fn getDescription(gpa: std.mem.Allocator, globalThis: *jsc.JSGlobalObject, descr return slice.intoOwnedSlice(gpa); } - return globalThis.throwPretty("{s}() expects first argument to be a named class, named function, number, or string", .{signature}); + return globalThis.throwPretty("{f}() expects first argument to be a named class, named function, number, or string", .{signature}); } pub fn parseArguments(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame, signature: Signature, gpa: std.mem.Allocator, cfg: struct { callback: CallbackMode, kind: FunctionKind = .test_or_describe }) bun.JSError!ParseArgumentsResult { @@ -355,7 +355,7 @@ pub fn parseArguments(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame break :blk callback.withAsyncContextIfNeeded(globalThis); } else { const ordinal = if (cfg.kind == .hook) "first" else "second"; - return globalThis.throw("{s} expects a function as the {s} argument", .{ signature, ordinal }); + return globalThis.throw("{f} expects a function as the {s} argument", .{ signature, ordinal }); }; var result: ParseArgumentsResult = .{ @@ -370,30 +370,30 @@ pub fn parseArguments(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame if (options.isNumber()) { timeout_option = options.asNumber(); } else if (options.isFunction()) { - return globalThis.throw("{}() expects options to be a number or object, not a function", .{signature}); + return globalThis.throw("{f}() expects options to be a number or object, not a function", .{signature}); } else if (options.isObject()) { if (try options.get(globalThis, "timeout")) |timeout| { if (!timeout.isNumber()) { - return globalThis.throwPretty("{}() expects timeout to be a number", .{signature}); + return globalThis.throwPretty("{f}() expects timeout to be a number", .{signature}); } timeout_option = timeout.asNumber(); } if (try options.get(globalThis, "retry")) |retries| { if (!retries.isNumber()) { - return globalThis.throwPretty("{}() expects retry to be a number", .{signature}); + return globalThis.throwPretty("{f}() expects retry to be a number", .{signature}); } result.options.retry = retries.asNumber(); } if (try options.get(globalThis, "repeats")) |repeats| { if (!repeats.isNumber()) { - return globalThis.throwPretty("{}() expects repeats to be a number", .{signature}); + return globalThis.throwPretty("{f}() expects repeats to be a number", .{signature}); } result.options.repeats = repeats.asNumber(); } } else if (options.isUndefinedOrNull()) { // no options } else { - return globalThis.throw("{}() expects a number, object, or undefined as the third argument", .{signature}); + return globalThis.throw("{f}() expects a number, object, or undefined as the third argument", .{signature}); } result.description = if (description.isUndefinedOrNull()) null else try getDescription(gpa, globalThis, description, signature); @@ -411,7 +411,7 @@ pub const toJS = js.toJS; pub const fromJS = js.fromJS; pub const fromJSDirect = js.fromJSDirect; -pub fn format(this: ScopeFunctions, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { +pub fn format(this: ScopeFunctions, writer: *std.Io.Writer) !void { try writer.print("{s}", .{@tagName(this.mode)}); switch (this.cfg.self_concurrent) { .yes => try writer.print(".concurrent", .{}), @@ -425,7 +425,7 @@ pub fn format(this: ScopeFunctions, comptime _: []const u8, _: std.fmt.FormatOpt pub fn finalize( this: *ScopeFunctions, -) callconv(.C) void { +) callconv(.c) void { groupLog.begin(@src()); defer groupLog.end(); diff --git a/src/bun.js/test/bun_test.zig b/src/bun.js/test/bun_test.zig index 02a4c90078..6931ca5780 100644 --- a/src/bun.js/test/bun_test.zig +++ b/src/bun.js/test/bun_test.zig @@ -9,9 +9,9 @@ pub const js_fns = struct { pub const Signature = union(enum) { scope_functions: *const ScopeFunctions, str: []const u8, - pub fn format(this: Signature, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: Signature, writer: *std.Io.Writer) !void { switch (this) { - .scope_functions => try writer.print("{}", .{this.scope_functions.*}), + .scope_functions => try writer.print("{f}", .{this.scope_functions.*}), .str => try writer.print("{s}", .{this.str}), } } @@ -19,19 +19,19 @@ pub const js_fns = struct { const GetActiveCfg = struct { signature: Signature, allow_in_preload: bool }; fn getActiveTestRoot(globalThis: *jsc.JSGlobalObject, cfg: GetActiveCfg) bun.JSError!*BunTestRoot { if (bun.jsc.Jest.Jest.runner == null) { - return globalThis.throw("Cannot use {s} outside of the test runner. Run \"bun test\" to run tests.", .{cfg.signature}); + return globalThis.throw("Cannot use {f} outside of the test runner. Run \"bun test\" to run tests.", .{cfg.signature}); } const bunTestRoot = &bun.jsc.Jest.Jest.runner.?.bun_test_root; const vm = globalThis.bunVM(); if (vm.is_in_preload and !cfg.allow_in_preload) { - return globalThis.throw("Cannot use {s} during preload.", .{cfg.signature}); + return globalThis.throw("Cannot use {f} during preload.", .{cfg.signature}); } return bunTestRoot; } pub fn cloneActiveStrong(globalThis: *jsc.JSGlobalObject, cfg: GetActiveCfg) bun.JSError!BunTestPtr { const bunTestRoot = try getActiveTestRoot(globalThis, cfg); const bunTest = bunTestRoot.cloneActiveFile() orelse { - return globalThis.throw("Cannot use {s} outside of a test file.", .{cfg.signature}); + return globalThis.throw("Cannot use {f} outside of a test file.", .{cfg.signature}); }; return bunTest; @@ -217,7 +217,7 @@ pub const BunTest = struct { /// Whether tests in this file should default to concurrent execution default_concurrent: bool, first_last: BunTestRoot.FirstLast, - extra_execution_entries: std.ArrayList(*ExecutionEntry), + extra_execution_entries: std.array_list.Managed(*ExecutionEntry), wants_wakeup: bool = false, phase: enum { @@ -308,7 +308,7 @@ pub const BunTest = struct { return the_sequence.active_entry; } - pub fn format(this: *const RefDataValue, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: *const RefDataValue, writer: *std.Io.Writer) !void { switch (this.*) { .start => try writer.print("start", .{}), .collection => try writer.print("collection: active_scope={?s}", .{this.collection.active_scope.base.name}), @@ -336,7 +336,7 @@ pub const BunTest = struct { fn #destroy(this: *RefData) void { group.begin(@src()); defer group.end(); - group.log("refData: {}", .{this.phase}); + group.log("refData: {f}", .{this.phase}); var buntest_weak = this.buntest_weak; bun.destroy(this); @@ -387,7 +387,7 @@ pub const BunTest = struct { pub fn ref(this_strong: BunTestPtr, phase: RefDataValue) *RefData { group.begin(@src()); defer group.end(); - group.log("ref: {}", .{phase}); + group.log("ref: {f}", .{phase}); return bun.new(RefData, .{ .buntest_weak = this_strong.cloneWeak(), @@ -631,7 +631,7 @@ pub const BunTest = struct { var done_callback: jsc.JSValue = .zero; if (cfg_done_parameter) { - group.log("callTestCallback -> appending done callback param: data {}", .{cfg_data}); + group.log("callTestCallback -> appending done callback param: data {f}", .{cfg_data}); done_callback = DoneCallback.createUnbound(globalThis); done_arg = DoneCallback.bind(done_callback, globalThis) catch |e| blk: { this.onUncaughtException(globalThis, globalThis.takeException(e), false, cfg_data); @@ -679,7 +679,7 @@ pub const BunTest = struct { if (result.asPromise()) |promise| { defer result.ensureStillAlive(); // because sometimes we use promise without result - group.log("callTestCallback -> promise: data {}", .{cfg_data}); + group.log("callTestCallback -> promise: data {f}", .{cfg_data}); switch (promise.status(globalThis.vm())) { .pending => { @@ -842,11 +842,11 @@ pub const BaseScope = struct { pub const DescribeScope = struct { base: BaseScope, - entries: std.ArrayList(TestScheduleEntry), - beforeAll: std.ArrayList(*ExecutionEntry), - beforeEach: std.ArrayList(*ExecutionEntry), - afterEach: std.ArrayList(*ExecutionEntry), - afterAll: std.ArrayList(*ExecutionEntry), + entries: std.array_list.Managed(TestScheduleEntry), + beforeAll: std.array_list.Managed(*ExecutionEntry), + beforeEach: std.array_list.Managed(*ExecutionEntry), + afterEach: std.array_list.Managed(*ExecutionEntry), + afterAll: std.array_list.Managed(*ExecutionEntry), /// if true, the describe callback threw an error. do not run any tests declared in this scope. failed: bool = false, @@ -906,7 +906,7 @@ pub const DescribeScope = struct { return entry; } pub const HookTag = enum { beforeAll, beforeEach, afterEach, afterAll }; - pub fn getHookEntries(this: *DescribeScope, tag: HookTag) *std.ArrayList(*ExecutionEntry) { + pub fn getHookEntries(this: *DescribeScope, tag: HookTag) *std.array_list.Managed(*ExecutionEntry) { switch (tag) { .beforeAll => return &this.beforeAll, .beforeEach => return &this.beforeEach, diff --git a/src/bun.js/test/debug.zig b/src/bun.js/test/debug.zig index 7933ab53f9..5031362c8f 100644 --- a/src/bun.js/test/debug.zig +++ b/src/bun.js/test/debug.zig @@ -7,7 +7,7 @@ pub fn dumpSub(current: TestScheduleEntry) bun.JSError!void { } pub fn dumpDescribe(describe: *DescribeScope) bun.JSError!void { if (!group.getLogEnabled()) return; - group.beginMsg("describe \"{}\" (concurrent={}, mode={s}, only={s}, has_callback={})", .{ std.zig.fmtEscapes(describe.base.name orelse "(unnamed)"), describe.base.concurrent, @tagName(describe.base.mode), @tagName(describe.base.only), describe.base.has_callback }); + group.beginMsg("describe \"{f}\" (concurrent={}, mode={s}, only={s}, has_callback={})", .{ std.zig.fmtString(describe.base.name orelse "(unnamed)"), describe.base.concurrent, @tagName(describe.base.mode), @tagName(describe.base.only), describe.base.has_callback }); defer group.end(); for (describe.beforeAll.items) |entry| try dumpTest(entry, "beforeAll"); @@ -18,7 +18,7 @@ pub fn dumpDescribe(describe: *DescribeScope) bun.JSError!void { } pub fn dumpTest(current: *ExecutionEntry, label: []const u8) bun.JSError!void { if (!group.getLogEnabled()) return; - group.beginMsg("{s} \"{}\" (concurrent={}, only={})", .{ label, std.zig.fmtEscapes(current.base.name orelse "(unnamed)"), current.base.concurrent, current.base.only }); + group.beginMsg("{s} \"{f}\" (concurrent={}, only={})", .{ label, std.zig.fmtString(current.base.name orelse "(unnamed)"), current.base.concurrent, current.base.only }); defer group.end(); } pub fn dumpOrder(this: *Execution) bun.JSError!void { @@ -36,19 +36,19 @@ pub fn dumpOrder(this: *Execution) bun.JSError!void { var current_entry = sequence.first_entry; while (current_entry) |entry| : (current_entry = entry.next) { - group.log("ExecutionEntry \"{}\" (concurrent={}, mode={s}, only={s}, has_callback={})", .{ std.zig.fmtEscapes(entry.base.name orelse "(unnamed)"), entry.base.concurrent, @tagName(entry.base.mode), @tagName(entry.base.only), entry.base.has_callback }); + group.log("ExecutionEntry \"{f}\" (concurrent={}, mode={s}, only={s}, has_callback={})", .{ std.zig.fmtString(entry.base.name orelse "(unnamed)"), entry.base.concurrent, @tagName(entry.base.mode), @tagName(entry.base.only), entry.base.has_callback }); } } } } pub const group = struct { - fn printIndent() void { - std.io.getStdOut().writer().print("\x1b[90m", .{}) catch {}; + fn printIndent(writer: *std.Io.Writer) void { + writer.print("\x1b[90m", .{}) catch {}; for (0..indent) |_| { - std.io.getStdOut().writer().print("│ ", .{}) catch {}; + writer.print("│ ", .{}) catch {}; } - std.io.getStdOut().writer().print("\x1b[m", .{}) catch {}; + writer.print("\x1b[m", .{}) catch {}; } var indent: usize = 0; var last_was_start = false; @@ -64,9 +64,14 @@ pub const group = struct { } pub fn beginMsg(comptime fmtt: []const u8, args: anytype) void { if (!getLogEnabled()) return; - printIndent(); - std.io.getStdOut().writer().print("\x1b[32m++ \x1b[0m", .{}) catch {}; - std.io.getStdOut().writer().print(fmtt ++ "\n", args) catch {}; + + var buf: [64]u8 = undefined; + var writer = std.fs.File.stdout().writerStreaming(&buf); + + printIndent(&writer.interface); + writer.interface.print("\x1b[32m++ \x1b[0m", .{}) catch {}; + writer.interface.print(fmtt ++ "\n", args) catch {}; + writer.interface.flush() catch {}; indent += 1; last_was_start = true; } @@ -74,14 +79,21 @@ pub const group = struct { if (!getLogEnabled()) return; indent -= 1; defer last_was_start = false; - if (last_was_start) return; //std.io.getStdOut().writer().print("\x1b[A", .{}) catch {}; - printIndent(); - std.io.getStdOut().writer().print("\x1b[32m{s}\x1b[m\n", .{if (last_was_start) "+-" else "--"}) catch {}; + if (last_was_start) return; //std.fs.File.stdout().writer().print("\x1b[A", .{}) catch {}; + + var buf: [64]u8 = undefined; + var writer = std.fs.File.stdout().writerStreaming(&buf); + printIndent(&writer.interface); + writer.interface.print("\x1b[32m{s}\x1b[m\n", .{if (last_was_start) "+-" else "--"}) catch {}; + writer.interface.flush() catch {}; } pub fn log(comptime fmtt: []const u8, args: anytype) void { if (!getLogEnabled()) return; - printIndent(); - std.io.getStdOut().writer().print(fmtt ++ "\n", args) catch {}; + var buf: [64]u8 = undefined; + var writer = std.fs.File.stdout().writerStreaming(&buf); + printIndent(&writer.interface); + writer.interface.print(fmtt ++ "\n", args) catch {}; + writer.interface.flush() catch {}; last_was_start = false; } }; diff --git a/src/bun.js/test/diff/printDiff.zig b/src/bun.js/test/diff/printDiff.zig index 5726334f94..c17dd9c472 100644 --- a/src/bun.js/test/diff/printDiff.zig +++ b/src/bun.js/test/diff/printDiff.zig @@ -34,7 +34,7 @@ fn removeTrailingNewline(text: []const u8) []const u8 { return text[0 .. text.len - 1]; } -pub fn printDiffMain(arena: std.mem.Allocator, not: bool, received_slice: []const u8, expected_slice: []const u8, writer: anytype, config: DiffConfig) !void { +pub fn printDiffMain(arena: std.mem.Allocator, not: bool, received_slice: []const u8, expected_slice: []const u8, writer: anytype, config: DiffConfig) std.Io.Writer.Error!void { if (not) { switch (config.enable_ansi_colors) { true => try writer.print("Expected: not " ++ colors.red ++ "{s}" ++ colors.reset, .{expected_slice}), @@ -55,35 +55,35 @@ pub fn printDiffMain(arena: std.mem.Allocator, not: bool, received_slice: []cons var dmp = DMPUsize.default; dmp.config.diff_timeout = 200; - const linesToChars = try DMP.diffLinesToChars(arena, expected_slice, received_slice); - const charDiffs = try dmp.diff(arena, linesToChars.chars_1, linesToChars.chars_2, false); - const diffs = try DMP.diffCharsToLines(arena, &charDiffs, linesToChars.line_array.items); + const linesToChars = bun.handleOom(DMP.diffLinesToChars(arena, expected_slice, received_slice)); + const charDiffs = bun.handleOom(dmp.diff(arena, linesToChars.chars_1, linesToChars.chars_2, false)); + const diffs = bun.handleOom(DMP.diffCharsToLines(arena, &charDiffs, linesToChars.line_array.items)); - var diff_segments = std.ArrayList(DiffSegment).init(arena); + var diff_segments = std.array_list.Managed(DiffSegment).init(arena); for (diffs.items) |diff| { if (diff.operation == .delete) { - try diff_segments.append(DiffSegment{ + bun.handleOom(diff_segments.append(DiffSegment{ .removed = diff.text, .inserted = "", .mode = .removed, - }); + })); } else if (diff.operation == .insert) { if (diff_segments.items.len > 0 and diff_segments.items[diff_segments.items.len - 1].mode == .removed) { diff_segments.items[diff_segments.items.len - 1].inserted = diff.text; diff_segments.items[diff_segments.items.len - 1].mode = .modified; } else { - try diff_segments.append(DiffSegment{ + bun.handleOom(diff_segments.append(DiffSegment{ .removed = "", .inserted = diff.text, .mode = .inserted, - }); + })); } } else if (diff.operation == .equal) { - try diff_segments.append(DiffSegment{ + bun.handleOom(diff_segments.append(DiffSegment{ .removed = diff.text, .inserted = diff.text, .mode = .equal, - }); + })); } } @@ -96,21 +96,21 @@ pub fn printDiffMain(arena: std.mem.Allocator, not: bool, received_slice: []cons // Determine if the diff needs to be chunked if (expected_slice.len > config.min_bytes_before_chunking or received_slice.len > config.min_bytes_before_chunking) { // Split 'equal' segments into lines - var new_diff_segments = std.ArrayList(DiffSegment).init(arena); + var new_diff_segments = std.array_list.Managed(DiffSegment).init(arena); for (diff_segments.items) |diff_segment| { if (diff_segment.mode == .equal) { var split = std.mem.splitScalar(u8, diff_segment.removed, '\n'); while (split.next()) |line| { - try new_diff_segments.append(DiffSegment{ + bun.handleOom(new_diff_segments.append(DiffSegment{ .removed = line, .inserted = line, .mode = .equal, .skip = true, - }); + })); } } else { - try new_diff_segments.append(diff_segment); + bun.handleOom(new_diff_segments.append(diff_segment)); } } @@ -404,7 +404,7 @@ fn printModifiedSegment( writer: anytype, config: DiffConfig, modified_style: ModifiedStyle, -) !void { +) std.Io.Writer.Error!void { const removed_prefix = switch (modified_style.single_line) { true => prefix_styles.single_line_removed, false => prefix_styles.removed, @@ -418,8 +418,8 @@ fn printModifiedSegment( return printModifiedSegmentWithoutDiffdiff(writer, config, segment, modified_style); } - var char_diff = try DMP.default.diff(arena, segment.removed, segment.inserted, true); - try DMP.diffCleanupSemantic(arena, &char_diff); + var char_diff = bun.handleOom(DMP.default.diff(arena, segment.removed, segment.inserted, true)); + bun.handleOom(DMP.diffCleanupSemantic(arena, &char_diff)); var deleted_highlighted_length: usize = 0; var inserted_highlighted_length: usize = 0; @@ -515,7 +515,7 @@ pub fn printDiff( writer: anytype, diff_segments: []const DiffSegment, config: DiffConfig, -) !void { +) std.Io.Writer.Error!void { var removed_line_number: usize = 1; var inserted_line_number: usize = 1; var removed_diff_lines: usize = 0; diff --git a/src/bun.js/test/diff_format.zig b/src/bun.js/test/diff_format.zig index d4d60f7d05..b7a12da253 100644 --- a/src/bun.js/test/diff_format.zig +++ b/src/bun.js/test/diff_format.zig @@ -6,7 +6,7 @@ pub const DiffFormatter = struct { globalThis: *JSGlobalObject, not: bool = false, - pub fn format(this: DiffFormatter, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: DiffFormatter, writer: *std.Io.Writer) std.Io.Writer.Error!void { var scope = bun.AllocationScope.init(default_allocator); // defer scope.deinit(); // TODO: fix leaks const allocator = scope.allocator(); @@ -24,20 +24,12 @@ pub const DiffFormatter = struct { if (this.received == null or this.expected == null) return; const received = this.received.?; - var received_buf = MutableString.init(allocator, 0) catch unreachable; - var expected_buf = MutableString.init(allocator, 0) catch unreachable; - defer { - received_buf.deinit(); - expected_buf.deinit(); - } + var received_buf = std.Io.Writer.Allocating.init(allocator); + defer received_buf.deinit(); + var expected_buf = std.Io.Writer.Allocating.init(allocator); + defer expected_buf.deinit(); { - var buffered_writer_ = MutableString.BufferedWriter{ .context = &received_buf }; - var buffered_writer = &buffered_writer_; - - const buf_writer = buffered_writer.writer(); - const Writer = @TypeOf(buf_writer); - const fmt_options = JestPrettyFormat.FormatOptions{ .enable_colors = false, .add_newline = false, @@ -49,30 +41,22 @@ pub const DiffFormatter = struct { this.globalThis, @as([*]const JSValue, @ptrCast(&received)), 1, - Writer, - Writer, - buf_writer, + &received_buf.writer, fmt_options, ) catch {}; // TODO: - buffered_writer.flush() catch unreachable; - - buffered_writer_.context = &expected_buf; JestPrettyFormat.format( .Debug, this.globalThis, @as([*]const JSValue, @ptrCast(&this.expected)), 1, - Writer, - Writer, - buf_writer, + &expected_buf.writer, fmt_options, ) catch {}; // TODO: - buffered_writer.flush() catch unreachable; } - var received_slice = received_buf.slice(); - var expected_slice = expected_buf.slice(); + var received_slice = received_buf.written(); + var expected_slice = expected_buf.written(); if (std.mem.startsWith(u8, received_slice, "\n")) received_slice = received_slice[1..]; if (std.mem.startsWith(u8, expected_slice, "\n")) expected_slice = expected_slice[1..]; if (std.mem.endsWith(u8, received_slice, "\n")) received_slice = received_slice[0 .. received_slice.len - 1]; @@ -92,7 +76,6 @@ const DiffConfig = printDiffFile.DiffConfig; const printDiffMain = printDiffFile.printDiffMain; const bun = @import("bun"); -const MutableString = bun.MutableString; const Output = bun.Output; const default_allocator = bun.default_allocator; diff --git a/src/bun.js/test/expect.zig b/src/bun.js/test/expect.zig index 441970f034..fd18757855 100644 --- a/src/bun.js/test/expect.zig +++ b/src/bun.js/test/expect.zig @@ -119,10 +119,10 @@ pub const Expect = struct { switch (!custom_label.isEmpty()) { inline else => |use_default_label| { if (use_default_label) { - const fmt = comptime Output.prettyFmt("expect(received).{s}{s}({s})\n\n" ++ message_fmt, colors); + const fmt = comptime Output.prettyFmt("expect(received)." ++ bun.deprecated.autoFormatLabel(@TypeOf(chain)) ++ bun.deprecated.autoFormatLabel(@TypeOf(matcher_name)) ++ "(" ++ bun.deprecated.autoFormatLabel(@TypeOf(matcher_params)) ++ ")\n\n" ++ message_fmt, colors); return globalThis.throwPretty(fmt, .{ chain, matcher_name, matcher_params } ++ message_args); } else { - const fmt = comptime Output.prettyFmt("{}\n\n" ++ message_fmt, colors); + const fmt = comptime Output.prettyFmt("{f}\n\n" ++ message_fmt, colors); return globalThis.throwPretty(fmt, .{custom_label} ++ message_args); } }, @@ -190,7 +190,7 @@ pub const Expect = struct { if (!silent) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - const message = "Expected promise that rejects\nReceived promise that resolved: {any}\n"; + const message = "Expected promise that rejects\nReceived promise that resolved: {f}\n"; return throwPrettyMatcherError(globalThis, custom_label, matcher_name, matcher_params, flags, message, .{value.toFmt(&formatter)}); } return error.JSError; @@ -203,7 +203,7 @@ pub const Expect = struct { if (!silent) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - const message = "Expected promise that resolves\nReceived promise that rejected: {any}\n"; + const message = "Expected promise that resolves\nReceived promise that rejected: {f}\n"; return throwPrettyMatcherError(globalThis, custom_label, matcher_name, matcher_params, flags, message, .{value.toFmt(&formatter)}); } return error.JSError; @@ -219,7 +219,7 @@ pub const Expect = struct { if (!silent) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - const message = "Expected promise\nReceived: {any}\n"; + const message = "Expected promise\nReceived: {f}\n"; return throwPrettyMatcherError(globalThis, custom_label, matcher_name, matcher_params, flags, message, .{value.toFmt(&formatter)}); } return error.JSError; @@ -244,7 +244,7 @@ pub const Expect = struct { } /// Called by C++ when matching with asymmetric matchers - fn readFlagsAndProcessPromise(instanceValue: JSValue, globalThis: *JSGlobalObject, outFlags: *Expect.Flags.FlagsCppType, value: *JSValue, any_constructor_type: *u8) callconv(.C) bool { + fn readFlagsAndProcessPromise(instanceValue: JSValue, globalThis: *JSGlobalObject, outFlags: *Expect.Flags.FlagsCppType, value: *JSValue, any_constructor_type: *u8) callconv(.c) bool { const flags: Expect.Flags = flags: { if (ExpectCustomAsymmetricMatcher.fromJS(instanceValue)) |instance| { break :flags instance.flags; @@ -326,7 +326,7 @@ pub const Expect = struct { pub fn finalize( this: *Expect, - ) callconv(.C) void { + ) callconv(.c) void { this.custom_label.deref(); if (this.parent) |parent| parent.deref(); VirtualMachine.get().allocator.destroy(this); @@ -374,7 +374,7 @@ pub const Expect = struct { if (this.custom_label.isEmpty()) { return globalThis.throwPretty(signature ++ fmt, args); } else { - return globalThis.throwPretty("{}" ++ fmt, .{this.custom_label} ++ args); + return globalThis.throwPretty("{f}" ++ fmt, .{this.custom_label} ++ args); } } @@ -708,9 +708,9 @@ pub const Expect = struct { const update = runner.snapshots.update_snapshots; var needs_write = false; - var pretty_value: MutableString = try MutableString.init(default_allocator, 0); + var pretty_value = std.Io.Writer.Allocating.init(default_allocator); defer pretty_value.deinit(); - try this.matchAndFmtSnapshot(globalThis, value, property_matchers, &pretty_value, fn_name); + try this.matchAndFmtSnapshot(globalThis, value, property_matchers, &pretty_value.writer, fn_name); var start_indent: ?[]const u8 = null; var end_indent: ?[]const u8 = null; @@ -719,7 +719,7 @@ pub const Expect = struct { defer runner.snapshots.allocator.free(buf); const trim_res = trimLeadingWhitespaceForInlineSnapshot(saved_value, buf); - if (strings.eqlLong(pretty_value.slice(), trim_res.trimmed, true)) { + if (strings.eqlLong(pretty_value.written(), trim_res.trimmed, true)) { runner.snapshots.passed += 1; return .js_undefined; } else if (update) { @@ -730,9 +730,9 @@ pub const Expect = struct { } else { runner.snapshots.failed += 1; const signature = comptime getSignature(fn_name, "expected", false); - const fmt = signature ++ "\n\n{any}\n"; + const fmt = signature ++ "\n\n{f}\n"; const diff_format = DiffFormatter{ - .received_string = pretty_value.slice(), + .received_string = pretty_value.written(), .expected_string = trim_res.trimmed, .globalThis = globalThis, }; @@ -748,7 +748,7 @@ pub const Expect = struct { if (!update) { const signature = comptime getSignature(fn_name, "", false); // Only creating new snapshots can reach here (updating with mismatches errors earlier with diff) - return this.throw(globalThis, signature, "\n\nMatcher error: Inline snapshot creation is disabled in CI environments unless --update-snapshots is used.\nTo override, set the environment variable CI=false.\n\nReceived: {s}", .{pretty_value.slice()}); + return this.throw(globalThis, signature, "\n\nMatcher error: Inline snapshot creation is disabled in CI environments unless --update-snapshots is used.\nTo override, set the environment variable CI=false.\n\nReceived: {s}", .{pretty_value.written()}); } } var buntest_strong = this.bunTest() orelse { @@ -770,13 +770,13 @@ pub const Expect = struct { \\ \\ \\Matcher error: Inline snapshot matchers must be called from the test file: - \\ Expected to be called from file: "{}" - \\ {s} called from file: "{}" + \\ Expected to be called from file: "{f}" + \\ {s} called from file: "{f}" \\ , .{ - std.zig.fmtEscapes(fget.source.path.text), + std.zig.fmtString(fget.source.path.text), fn_name, - std.zig.fmtEscapes(srcloc.str.toUTF8(runner.snapshots.allocator).slice()), + std.zig.fmtString(srcloc.str.toUTF8(runner.snapshots.allocator).slice()), }); } @@ -784,7 +784,7 @@ pub const Expect = struct { try runner.snapshots.addInlineSnapshotToWrite(file_id, .{ .line = srcloc.line, .col = srcloc.column, - .value = pretty_value.toOwnedSlice(), + .value = try pretty_value.toOwnedSlice(), .has_matchers = property_matchers != null, .is_added = result == null, .kind = fn_name, @@ -795,7 +795,7 @@ pub const Expect = struct { return .js_undefined; } - pub fn matchAndFmtSnapshot(this: *Expect, globalThis: *JSGlobalObject, value: JSValue, property_matchers: ?JSValue, pretty_value: *MutableString, comptime fn_name: []const u8) bun.JSError!void { + pub fn matchAndFmtSnapshot(this: *Expect, globalThis: *JSGlobalObject, value: JSValue, property_matchers: ?JSValue, pretty_value: *std.Io.Writer, comptime fn_name: []const u8) bun.JSError!void { if (property_matchers) |_prop_matchers| { if (!value.isObject()) { const signature = comptime getSignature(fn_name, "properties, hint", false); @@ -808,7 +808,7 @@ pub const Expect = struct { // TODO: print diff with properties from propertyMatchers const signature = comptime getSignature(fn_name, "propertyMatchers", false); const fmt = signature ++ "\n\nExpected propertyMatchers to match properties from received object" ++ - "\n\nReceived: {any}\n"; + "\n\nReceived: {f}\n"; var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); @@ -819,15 +819,15 @@ pub const Expect = struct { value.jestSnapshotPrettyFormat(pretty_value, globalThis) catch { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); - return globalThis.throw("Failed to pretty format value: {s}", .{value.toFmt(&formatter)}); + return globalThis.throw("Failed to pretty format value: {f}", .{value.toFmt(&formatter)}); }; } pub fn snapshot(this: *Expect, globalThis: *JSGlobalObject, value: JSValue, property_matchers: ?JSValue, hint: []const u8, comptime fn_name: []const u8) bun.JSError!JSValue { - var pretty_value: MutableString = try MutableString.init(default_allocator, 0); + var pretty_value = std.Io.Writer.Allocating.init(default_allocator); defer pretty_value.deinit(); - try this.matchAndFmtSnapshot(globalThis, value, property_matchers, &pretty_value, fn_name); + try this.matchAndFmtSnapshot(globalThis, value, property_matchers, &pretty_value.writer, fn_name); - const existing_value = Jest.runner.?.snapshots.getOrPut(this, pretty_value.slice(), hint) catch |err| { + const existing_value = Jest.runner.?.snapshots.getOrPut(this, pretty_value.written(), hint) catch |err| { var buntest_strong = this.bunTest() orelse return globalThis.throw("Snapshot matchers cannot be used outside of a test", .{}); defer buntest_strong.deinit(); const buntest = buntest_strong.get(); @@ -845,9 +845,9 @@ pub const Expect = struct { runner.snapshots.last_error_snapshot_name = null; }; if (snapshot_name) |name| { - break :blk globalThis.throw("Snapshot creation is disabled in CI environments unless --update-snapshots is used\nTo override, set the environment variable CI=false.\n\nSnapshot name: \"{s}\"\nReceived: {s}", .{ name, pretty_value.slice() }); + break :blk globalThis.throw("Snapshot creation is disabled in CI environments unless --update-snapshots is used\nTo override, set the environment variable CI=false.\n\nSnapshot name: \"{s}\"\nReceived: {s}", .{ name, pretty_value.written() }); } else { - break :blk globalThis.throw("Snapshot creation is disabled in CI environments unless --update-snapshots is used\nTo override, set the environment variable CI=false.\n\nReceived: {s}", .{pretty_value.slice()}); + break :blk globalThis.throw("Snapshot creation is disabled in CI environments unless --update-snapshots is used\nTo override, set the environment variable CI=false.\n\nReceived: {s}", .{pretty_value.written()}); } }, error.SnapshotInConcurrentGroup => globalThis.throw("Snapshot matchers are not supported in concurrent tests", .{}), @@ -855,22 +855,22 @@ pub const Expect = struct { else => blk: { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis }; defer formatter.deinit(); - break :blk globalThis.throw("Failed to snapshot value: {any}", .{value.toFmt(&formatter)}); + break :blk globalThis.throw("Failed to snapshot value: {f}", .{value.toFmt(&formatter)}); }, }; }; if (existing_value) |saved_value| { - if (strings.eqlLong(pretty_value.slice(), saved_value, true)) { + if (strings.eqlLong(pretty_value.written(), saved_value, true)) { Jest.runner.?.snapshots.passed += 1; return .js_undefined; } Jest.runner.?.snapshots.failed += 1; const signature = comptime getSignature(fn_name, "expected", false); - const fmt = signature ++ "\n\n{any}\n"; + const fmt = signature ++ "\n\n{f}\n"; const diff_format = DiffFormatter{ - .received_string = pretty_value.slice(), + .received_string = pretty_value.written(), .expected_string = saved_value, .globalThis = globalThis, }; @@ -948,7 +948,7 @@ pub const Expect = struct { if (!matcher_fn.jsType().isFunction()) { const type_name = if (matcher_fn.isNull()) bun.String.static("null") else bun.String.init(matcher_fn.jsTypeString(globalThis).getZigString(globalThis)); - return globalThis.throwInvalidArguments("expect.extend: `{s}` is not a valid matcher. Must be a function, is \"{s}\"", .{ matcher_name, type_name }); + return globalThis.throwInvalidArguments("expect.extend: `{f}` is not a valid matcher. Must be a function, is \"{f}\"", .{ matcher_name, type_name }); } // Mutate the Expect/ExpectStatic prototypes/constructor with new instances of JSCustomExpectMatcherFunction. @@ -973,7 +973,7 @@ pub const Expect = struct { globalThis: *JSGlobalObject, matcher_fn: JSValue, - pub fn format(this: CustomMatcherParamsFormatter, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: CustomMatcherParamsFormatter, writer: *std.Io.Writer) !void { // try to detect param names from matcher_fn (user function) source code if (jsc.JSFunction.getSourceCode(this.matcher_fn)) |source_str| { const source_slice = source_str.toUTF8(this.globalThis.allocator()); @@ -1022,10 +1022,10 @@ pub const Expect = struct { defer formatter.deinit(); const fmt = - "Unexpected return from matcher function `{s}`.\n" ++ + "Unexpected return from matcher function `{f}`.\n" ++ "Matcher functions should return an object in the following format:\n" ++ " {{message?: string | function, pass: boolean}}\n" ++ - "'{any}' was returned"; + "'{f}' was returned"; const err = switch (Output.enable_ansi_colors_stderr) { inline else => |colors| globalThis.createErrorInstance(Output.prettyFmt(fmt, colors), .{ matcher_name, result.toFmt(&formatter) }), }; @@ -1061,7 +1061,7 @@ pub const Expect = struct { .rejected => { // TODO: rewrite this code to use .then() instead of blocking the event loop jsc.VirtualMachine.get().runErrorHandler(result, null); - return globalThis.throw("Matcher `{s}` returned a promise that rejected", .{matcher_name}); + return globalThis.throw("Matcher `{f}` returned a promise that rejected", .{matcher_name}); }, } } @@ -1116,7 +1116,7 @@ pub const Expect = struct { .globalThis = globalThis, .matcher_fn = matcher_fn, }; - return throwPrettyMatcherError(globalThis, bun.String.empty, matcher_name, matcher_params, .{}, "{s}", .{message_text}); + return throwPrettyMatcherError(globalThis, bun.String.empty, matcher_name, matcher_params, .{}, "{f}", .{message_text}); } /// Function that is run for either `expect.myMatcher()` call or `expect().myMatcher` call, @@ -1163,7 +1163,7 @@ pub const Expect = struct { // prepare the args array const args = callFrame.arguments(); var allocator = std.heap.stackFallback(8 * @sizeOf(JSValue), globalThis.allocator()); - var matcher_args = try std.ArrayList(JSValue).initCapacity(allocator.get(), args.len + 1); + var matcher_args = try std.array_list.Managed(JSValue).initCapacity(allocator.get(), args.len + 1); matcher_args.appendAssumeCapacity(value); for (args) |arg| matcher_args.appendAssumeCapacity(arg); @@ -1204,13 +1204,13 @@ pub const Expect = struct { if (!expected.isNumber()) { var fmt = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; - return globalThis.throw("Expected value must be a non-negative integer: {any}", .{expected.toFmt(&fmt)}); + return globalThis.throw("Expected value must be a non-negative integer: {f}", .{expected.toFmt(&fmt)}); } const expected_assertions: f64 = try expected.toNumber(globalThis); if (@round(expected_assertions) != expected_assertions or std.math.isInf(expected_assertions) or std.math.isNan(expected_assertions) or expected_assertions < 0 or expected_assertions > std.math.maxInt(u32)) { var fmt = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; - return globalThis.throw("Expected value must be a non-negative integer: {any}", .{expected.toFmt(&fmt)}); + return globalThis.throw("Expected value must be a non-negative integer: {f}", .{expected.toFmt(&fmt)}); } const unsigned_expected_assertions: u32 = @intFromFloat(expected_assertions); @@ -1277,7 +1277,7 @@ pub const ExpectStatic = struct { pub fn finalize( this: *ExpectStatic, - ) callconv(.C) void { + ) callconv(.c) void { VirtualMachine.get().allocator.destroy(this); } @@ -1371,7 +1371,7 @@ pub const ExpectAnything = struct { pub fn finalize( this: *ExpectAnything, - ) callconv(.C) void { + ) callconv(.c) void { VirtualMachine.get().allocator.destroy(this); } @@ -1399,7 +1399,7 @@ pub const ExpectStringMatching = struct { pub fn finalize( this: *ExpectStringMatching, - ) callconv(.C) void { + ) callconv(.c) void { VirtualMachine.get().allocator.destroy(this); } @@ -1435,7 +1435,7 @@ pub const ExpectCloseTo = struct { pub fn finalize( this: *ExpectCloseTo, - ) callconv(.C) void { + ) callconv(.c) void { VirtualMachine.get().allocator.destroy(this); } @@ -1480,7 +1480,7 @@ pub const ExpectObjectContaining = struct { pub fn finalize( this: *ExpectObjectContaining, - ) callconv(.C) void { + ) callconv(.c) void { VirtualMachine.get().allocator.destroy(this); } @@ -1516,7 +1516,7 @@ pub const ExpectStringContaining = struct { pub fn finalize( this: *ExpectStringContaining, - ) callconv(.C) void { + ) callconv(.c) void { VirtualMachine.get().allocator.destroy(this); } @@ -1550,7 +1550,7 @@ pub const ExpectAny = struct { flags: Expect.Flags = .{}, - pub fn finalize(this: *ExpectAny) callconv(.C) void { + pub fn finalize(this: *ExpectAny) callconv(.c) void { VirtualMachine.get().allocator.destroy(this); } @@ -1605,7 +1605,7 @@ pub const ExpectArrayContaining = struct { pub fn finalize( this: *ExpectArrayContaining, - ) callconv(.C) void { + ) callconv(.c) void { VirtualMachine.get().allocator.destroy(this); } @@ -1645,7 +1645,7 @@ pub const ExpectCustomAsymmetricMatcher = struct { pub fn finalize( this: *ExpectCustomAsymmetricMatcher, - ) callconv(.C) void { + ) callconv(.c) void { VirtualMachine.get().allocator.destroy(this); } @@ -1690,7 +1690,7 @@ pub const ExpectCustomAsymmetricMatcher = struct { } /// Function called by c++ function "matchAsymmetricMatcher" to execute the custom matcher against the provided leftValue - pub fn execute(this: *ExpectCustomAsymmetricMatcher, thisValue: JSValue, globalThis: *JSGlobalObject, received: JSValue) callconv(.C) bool { + pub fn execute(this: *ExpectCustomAsymmetricMatcher, thisValue: JSValue, globalThis: *JSGlobalObject, received: JSValue) callconv(.c) bool { // retrieve the user-provided matcher implementation function (the function passed to expect.extend({ ... })) const matcher_fn: JSValue = js.matcherFnGetCached(thisValue) orelse { globalThis.throw("Internal consistency error: the ExpectCustomAsymmetricMatcher(matcherFn) was garbage collected but it should not have been!", .{}) catch {}; @@ -1710,7 +1710,7 @@ pub const ExpectCustomAsymmetricMatcher = struct { // retrieve the asymmetric matcher args // if null, it means the function has not yet been called to capture the args, which is a misuse of the matcher const captured_args: JSValue = js.capturedArgsGetCached(thisValue) orelse { - globalThis.throw("expect.{s} misused, it needs to be instantiated by calling it with 0 or more arguments", .{matcher_name}) catch {}; + globalThis.throw("expect.{f} misused, it needs to be instantiated by calling it with 0 or more arguments", .{matcher_name}) catch {}; return false; }; captured_args.ensureStillAlive(); @@ -1718,7 +1718,7 @@ pub const ExpectCustomAsymmetricMatcher = struct { // prepare the args array as `[received, ...captured_args]` const args_count = captured_args.getLength(globalThis) catch return false; var allocator = std.heap.stackFallback(8 * @sizeOf(JSValue), globalThis.allocator()); - var matcher_args = std.ArrayList(JSValue).initCapacity(allocator.get(), args_count + 1) catch { + var matcher_args = std.array_list.Managed(JSValue).initCapacity(allocator.get(), args_count + 1) catch { globalThis.throwOutOfMemory() catch {}; return false; }; @@ -1753,14 +1753,14 @@ pub const ExpectCustomAsymmetricMatcher = struct { const captured_args: JSValue = js.capturedArgsGetCached(thisValue) orelse return false; var stack_fallback = std.heap.stackFallback(256, globalThis.allocator()); const args_len = captured_args.getLength(globalThis) catch |e| return maybeClear(dontThrow, globalThis, e); - var args = try std.ArrayList(JSValue).initCapacity(stack_fallback.get(), args_len); + var args = try std.array_list.Managed(JSValue).initCapacity(stack_fallback.get(), args_len); var iter = captured_args.arrayIterator(globalThis) catch |e| return maybeClear(dontThrow, globalThis, e); while (iter.next() catch |e| return maybeClear(dontThrow, globalThis, e)) |arg| { args.appendAssumeCapacity(arg); } const result = matcher_fn.call(globalThis, thisValue, args.items) catch |e| return maybeClear(dontThrow, globalThis, e); - try writer.print("{}", .{result.toBunString(globalThis) catch |e| return maybeClear(dontThrow, globalThis, e)}); + try writer.print("{f}", .{result.toBunString(globalThis) catch |e| return maybeClear(dontThrow, globalThis, e)}); } } return false; @@ -1790,7 +1790,7 @@ pub const ExpectMatcherContext = struct { pub fn finalize( this: *ExpectMatcherContext, - ) callconv(.C) void { + ) callconv(.c) void { VirtualMachine.get().allocator.destroy(this); } @@ -1833,7 +1833,7 @@ pub const ExpectMatcherUtils = struct { pub const fromJS = js.fromJS; pub const fromJSDirect = js.fromJSDirect; - fn createSingleton(globalThis: *JSGlobalObject) callconv(.C) JSValue { + fn createSingleton(globalThis: *JSGlobalObject) callconv(.c) JSValue { var instance = globalThis.bunVM().allocator.create(ExpectMatcherUtils) catch { return globalThis.throwOutOfMemoryValue(); }; @@ -1842,7 +1842,7 @@ pub const ExpectMatcherUtils = struct { pub fn finalize( this: *ExpectMatcherUtils, - ) callconv(.C) void { + ) callconv(.c) void { VirtualMachine.get().allocator.destroy(this); } @@ -1862,7 +1862,7 @@ pub const ExpectMatcherUtils = struct { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - try writer.print("{}", .{value.toFmt(&formatter)}); + try writer.print("{f}", .{value.toFmt(&formatter)}); if (comptime color_or_null) |_| { if (Output.enable_ansi_colors_stderr) { @@ -1947,12 +1947,12 @@ pub const ExpectMatcherUtils = struct { }; if (is_not) { - const signature = comptime Expect.getSignature("{s}", "expected", true); - const fmt = signature ++ "\n\n{any}\n"; + const signature = comptime Expect.getSignature("{f}", "expected", true); + const fmt = signature ++ "\n\n{f}\n"; return try JSValue.printStringPretty(globalThis, 2048, fmt, .{ matcher_name, diff_formatter }); } else { - const signature = comptime Expect.getSignature("{s}", "expected", false); - const fmt = signature ++ "\n\n{any}\n"; + const signature = comptime Expect.getSignature("{f}", "expected", false); + const fmt = signature ++ "\n\n{f}\n"; return try JSValue.printStringPretty(globalThis, 2048, fmt, .{ matcher_name, diff_formatter }); } } @@ -1966,7 +1966,7 @@ pub const ExpectTypeOf = struct { pub fn finalize( this: *ExpectTypeOf, - ) callconv(.C) void { + ) callconv(.c) void { VirtualMachine.get().allocator.destroy(this); } @@ -2002,7 +2002,7 @@ pub const mock = struct { if (!returns.jsType().isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - return globalThis.throw("Expected value must be a mock function: {any}", .{value.toFmt(&formatter)}); + return globalThis.throw("Expected value must be a mock function: {f}", .{value.toFmt(&formatter)}); } return try returns.arrayIterator(globalThis); @@ -2015,7 +2015,7 @@ pub const mock = struct { } var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - return globalThis.throw("Expected value must be a mock function with returns: {any}", .{value.toFmt(&formatter)}); + return globalThis.throw("Expected value must be a mock function with returns: {f}", .{value.toFmt(&formatter)}); } pub fn jestMockReturnObject_value(globalThis: *JSGlobalObject, value: bun.jsc.JSValue) bun.JSError!JSValue { return (try value.get(globalThis, "value")) orelse .js_undefined; @@ -2026,10 +2026,10 @@ pub const mock = struct { calls: JSValue, formatter: *jsc.ConsoleObject.Formatter, - pub fn format(self: @This(), comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: @This(), writer: *std.Io.Writer) std.Io.Writer.Error!void { var printed_once = false; - const calls_count = @as(u32, @intCast(try self.calls.getLength(self.globalThis))); + const calls_count = @as(u32, @intCast(self.calls.getLength(self.globalThis) catch |e| return bun.deprecated.jsErrorToWriteError(e))); if (calls_count == 0) { try writer.writeAll("(no calls)"); return; @@ -2040,8 +2040,8 @@ pub const mock = struct { printed_once = true; try writer.print(" {d: >4}: ", .{i + 1}); - const call_args = try self.calls.getIndex(self.globalThis, @intCast(i)); - try writer.print("{any}", .{call_args.toFmt(self.formatter)}); + const call_args = self.calls.getIndex(self.globalThis, @intCast(i)) catch |e| return bun.deprecated.jsErrorToWriteError(e); + try writer.print("{f}", .{call_args.toFmt(self.formatter)}); } } }; @@ -2060,28 +2060,28 @@ pub const mock = struct { returns: JSValue, formatter: *jsc.ConsoleObject.Formatter, - pub fn format(self: @This(), comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: @This(), writer: *std.Io.Writer) std.Io.Writer.Error!void { var printed_once = false; var num_returns: i32 = 0; var num_calls: i32 = 0; - var iter = try self.returns.arrayIterator(self.globalThis); - while (try iter.next()) |item| { + var iter = self.returns.arrayIterator(self.globalThis) catch |e| return bun.deprecated.jsErrorToWriteError(e); + while (iter.next() catch |e| return bun.deprecated.jsErrorToWriteError(e)) |item| { if (printed_once) try writer.writeAll("\n"); printed_once = true; num_calls += 1; try writer.print(" {d: >2}: ", .{num_calls}); - const value = try jestMockReturnObject_value(self.globalThis, item); - switch (try jestMockReturnObject_type(self.globalThis, item)) { + const value = jestMockReturnObject_value(self.globalThis, item) catch |e| return bun.deprecated.jsErrorToWriteError(e); + switch (jestMockReturnObject_type(self.globalThis, item) catch |e| return bun.deprecated.jsErrorToWriteError(e)) { .@"return" => { - try writer.print("{any}", .{value.toFmt(self.formatter)}); + try writer.print("{f}", .{value.toFmt(self.formatter)}); num_returns += 1; }, .throw => { - try writer.print("function call threw an error: {any}", .{value.toFmt(self.formatter)}); + try writer.print("function call threw an error: {f}", .{value.toFmt(self.formatter)}); }, .incomplete => { try writer.print("", .{}); @@ -2093,10 +2093,10 @@ pub const mock = struct { pub const SuccessfulReturnsFormatter = struct { globalThis: *JSGlobalObject, - successful_returns: *const std.ArrayList(JSValue), + successful_returns: *const std.array_list.Managed(JSValue), formatter: *jsc.ConsoleObject.Formatter, - pub fn format(self: @This(), comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: @This(), writer: *std.Io.Writer) !void { const len = self.successful_returns.items.len; if (len == 0) return; @@ -2107,7 +2107,7 @@ pub const mock = struct { printed_once = true; try writer.print(" {d: >4}: ", .{i}); - try writer.print("{any}", .{val.toFmt(self.formatter)}); + try writer.print("{f}", .{val.toFmt(self.formatter)}); } } }; diff --git a/src/bun.js/test/expect/toBe.zig b/src/bun.js/test/expect/toBe.zig index 0d751eb834..0f8cba4317 100644 --- a/src/bun.js/test/expect/toBe.zig +++ b/src/bun.js/test/expect/toBe.zig @@ -32,14 +32,14 @@ pub fn toBe( inline else => |has_custom_label| { if (not) { const signature = comptime getSignature("toBe", "expected", true); - return this.throw(globalThis, signature, "\n\nExpected: not {any}\n", .{right.toFmt(&formatter)}); + return this.throw(globalThis, signature, "\n\nExpected: not {f}\n", .{right.toFmt(&formatter)}); } const signature = comptime getSignature("toBe", "expected", false); if (try left.deepEquals(right, globalThis) or try left.strictDeepEquals(right, globalThis)) { const fmt = (if (!has_custom_label) "\n\nIf this test should pass, replace \"toBe\" with \"toEqual\" or \"toStrictEqual\"" else "") ++ - "\n\nExpected: {any}\n" ++ + "\n\nExpected: {f}\n" ++ "Received: serializes to the same string\n"; return this.throw(globalThis, signature, fmt, .{right.toFmt(&formatter)}); } @@ -51,10 +51,10 @@ pub fn toBe( .globalThis = globalThis, .not = not, }; - return this.throw(globalThis, signature, "\n\n{any}\n", .{diff_format}); + return this.throw(globalThis, signature, "\n\n{f}\n", .{diff_format}); } - return this.throw(globalThis, signature, "\n\nExpected: {any}\nReceived: {any}\n", .{ + return this.throw(globalThis, signature, "\n\nExpected: {f}\nReceived: {f}\n", .{ right.toFmt(&formatter), left.toFmt(&formatter), }); diff --git a/src/bun.js/test/expect/toBeArray.zig b/src/bun.js/test/expect/toBeArray.zig index d1e44968f2..7681a13e51 100644 --- a/src/bun.js/test/expect/toBeArray.zig +++ b/src/bun.js/test/expect/toBeArray.zig @@ -17,11 +17,11 @@ pub fn toBeArray(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFra if (not) { const signature = comptime getSignature("toBeArray", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeArray", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeArrayOfSize.zig b/src/bun.js/test/expect/toBeArrayOfSize.zig index 73a6be0af1..00e2661275 100644 --- a/src/bun.js/test/expect/toBeArrayOfSize.zig +++ b/src/bun.js/test/expect/toBeArrayOfSize.zig @@ -32,11 +32,11 @@ pub fn toBeArrayOfSize(this: *Expect, globalThis: *JSGlobalObject, callFrame: *C if (not) { const signature = comptime getSignature("toBeArrayOfSize", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeArrayOfSize", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeBoolean.zig b/src/bun.js/test/expect/toBeBoolean.zig index 9593f63b12..1541a2e00d 100644 --- a/src/bun.js/test/expect/toBeBoolean.zig +++ b/src/bun.js/test/expect/toBeBoolean.zig @@ -17,11 +17,11 @@ pub fn toBeBoolean(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallF if (not) { const signature = comptime getSignature("toBeBoolean", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeBoolean", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeCloseTo.zig b/src/bun.js/test/expect/toBeCloseTo.zig index d359589612..83708f477b 100644 --- a/src/bun.js/test/expect/toBeCloseTo.zig +++ b/src/bun.js/test/expect/toBeCloseTo.zig @@ -61,8 +61,8 @@ pub fn toBeCloseTo(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallF const expected_fmt = expected_.toFmt(&formatter); const received_fmt = received_.toFmt(&formatter); - const expected_line = "Expected: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected: {f}\n"; + const received_line = "Received: {f}\n"; const expected_precision = "Expected precision: {d}\n"; const expected_difference = "Expected difference: \\< {d}\n"; const received_difference = "Received difference: {d}\n"; diff --git a/src/bun.js/test/expect/toBeDate.zig b/src/bun.js/test/expect/toBeDate.zig index 3baaa2ccb7..a1ee2a9cc4 100644 --- a/src/bun.js/test/expect/toBeDate.zig +++ b/src/bun.js/test/expect/toBeDate.zig @@ -17,11 +17,11 @@ pub fn toBeDate(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFram if (not) { const signature = comptime getSignature("toBeDate", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeDate", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeDefined.zig b/src/bun.js/test/expect/toBeDefined.zig index 85ac9ee744..0e3d504708 100644 --- a/src/bun.js/test/expect/toBeDefined.zig +++ b/src/bun.js/test/expect/toBeDefined.zig @@ -16,12 +16,12 @@ pub fn toBeDefined(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallF defer formatter.deinit(); const value_fmt = value.toFmt(&formatter); if (not) { - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeDefined", "", true); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeDefined", "", false); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } diff --git a/src/bun.js/test/expect/toBeEmpty.zig b/src/bun.js/test/expect/toBeEmpty.zig index 0d070ae77b..b3c33d52e6 100644 --- a/src/bun.js/test/expect/toBeEmpty.zig +++ b/src/bun.js/test/expect/toBeEmpty.zig @@ -23,7 +23,7 @@ pub fn toBeEmpty(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFra _: *JSGlobalObject, any_: ?*anyopaque, _: JSValue, - ) callconv(.C) void { + ) callconv(.c) void { bun.cast(*bool, any_.?).* = true; } }.anythingInIterator); @@ -44,7 +44,7 @@ pub fn toBeEmpty(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFra } else { const signature = comptime getSignature("toBeEmpty", "", false); const fmt = signature ++ "\n\nExpected value to be a string, object, or iterable" ++ - "\n\nReceived: {any}\n"; + "\n\nReceived: {f}\n"; return globalThis.throwPretty(fmt, .{value.toFmt(&formatter)}); } } else if (std.math.isNan(actual_length)) { @@ -56,7 +56,7 @@ pub fn toBeEmpty(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFra if (not and pass) { const signature = comptime getSignature("toBeEmpty", "", true); const fmt = signature ++ "\n\nExpected value not to be a string, object, or iterable" ++ - "\n\nReceived: {any}\n"; + "\n\nReceived: {f}\n"; return globalThis.throwPretty(fmt, .{value.toFmt(&formatter)}); } @@ -66,13 +66,13 @@ pub fn toBeEmpty(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFra if (not) { const signature = comptime getSignature("toBeEmpty", "", true); const fmt = signature ++ "\n\nExpected value not to be empty" ++ - "\n\nReceived: {any}\n"; + "\n\nReceived: {f}\n"; return globalThis.throwPretty(fmt, .{value.toFmt(&formatter)}); } const signature = comptime getSignature("toBeEmpty", "", false); const fmt = signature ++ "\n\nExpected value to be empty" ++ - "\n\nReceived: {any}\n"; + "\n\nReceived: {f}\n"; return globalThis.throwPretty(fmt, .{value.toFmt(&formatter)}); } diff --git a/src/bun.js/test/expect/toBeEmptyObject.zig b/src/bun.js/test/expect/toBeEmptyObject.zig index 8bb13998a4..4e9e09d044 100644 --- a/src/bun.js/test/expect/toBeEmptyObject.zig +++ b/src/bun.js/test/expect/toBeEmptyObject.zig @@ -18,11 +18,11 @@ pub fn toBeEmptyObject(this: *Expect, globalThis: *JSGlobalObject, callFrame: *C if (not) { const signature = comptime getSignature("toBeEmptyObject", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeEmptyObject", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeEven.zig b/src/bun.js/test/expect/toBeEven.zig index c77d9199ae..55fdac875c 100644 --- a/src/bun.js/test/expect/toBeEven.zig +++ b/src/bun.js/test/expect/toBeEven.zig @@ -41,12 +41,12 @@ pub fn toBeEven(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFram defer formatter.deinit(); const value_fmt = value.toFmt(&formatter); if (not) { - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeEven", "", true); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeEven", "", false); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } diff --git a/src/bun.js/test/expect/toBeFalse.zig b/src/bun.js/test/expect/toBeFalse.zig index 0b533d42dc..3e5a83bb37 100644 --- a/src/bun.js/test/expect/toBeFalse.zig +++ b/src/bun.js/test/expect/toBeFalse.zig @@ -17,11 +17,11 @@ pub fn toBeFalse(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFra if (not) { const signature = comptime getSignature("toBeFalse", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeFalse", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeFalsy.zig b/src/bun.js/test/expect/toBeFalsy.zig index bcfd1ca7b6..7e66fe6a88 100644 --- a/src/bun.js/test/expect/toBeFalsy.zig +++ b/src/bun.js/test/expect/toBeFalsy.zig @@ -21,12 +21,12 @@ pub fn toBeFalsy(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFra defer formatter.deinit(); const value_fmt = value.toFmt(&formatter); if (not) { - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeFalsy", "", true); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeFalsy", "", false); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } diff --git a/src/bun.js/test/expect/toBeFinite.zig b/src/bun.js/test/expect/toBeFinite.zig index a89c9dae27..5e542764a9 100644 --- a/src/bun.js/test/expect/toBeFinite.zig +++ b/src/bun.js/test/expect/toBeFinite.zig @@ -23,11 +23,11 @@ pub fn toBeFinite(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFr if (not) { const signature = comptime getSignature("toBeFinite", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeFinite", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeFunction.zig b/src/bun.js/test/expect/toBeFunction.zig index 27866b90fe..5969c73854 100644 --- a/src/bun.js/test/expect/toBeFunction.zig +++ b/src/bun.js/test/expect/toBeFunction.zig @@ -17,11 +17,11 @@ pub fn toBeFunction(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Call if (not) { const signature = comptime getSignature("toBeFunction", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeFunction", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeGreaterThan.zig b/src/bun.js/test/expect/toBeGreaterThan.zig index 9f94d23037..c19a1c81bb 100644 --- a/src/bun.js/test/expect/toBeGreaterThan.zig +++ b/src/bun.js/test/expect/toBeGreaterThan.zig @@ -46,14 +46,14 @@ pub fn toBeGreaterThan(this: *Expect, globalThis: *JSGlobalObject, callFrame: *C const value_fmt = value.toFmt(&formatter); const expected_fmt = other_value.toFmt(&formatter); if (not) { - const expected_line = "Expected: not \\> {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected: not \\> {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeGreaterThan", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } - const expected_line = "Expected: \\> {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected: \\> {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeGreaterThan", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toBeGreaterThanOrEqual.zig b/src/bun.js/test/expect/toBeGreaterThanOrEqual.zig index 15718451b3..7051638a13 100644 --- a/src/bun.js/test/expect/toBeGreaterThanOrEqual.zig +++ b/src/bun.js/test/expect/toBeGreaterThanOrEqual.zig @@ -46,14 +46,14 @@ pub fn toBeGreaterThanOrEqual(this: *Expect, globalThis: *JSGlobalObject, callFr const value_fmt = value.toFmt(&formatter); const expected_fmt = other_value.toFmt(&formatter); if (not) { - const expected_line = "Expected: not \\>= {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected: not \\>= {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeGreaterThanOrEqual", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } - const expected_line = "Expected: \\>= {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected: \\>= {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeGreaterThanOrEqual", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toBeInstanceOf.zig b/src/bun.js/test/expect/toBeInstanceOf.zig index 97a1c3c7a7..c0f5fcc87b 100644 --- a/src/bun.js/test/expect/toBeInstanceOf.zig +++ b/src/bun.js/test/expect/toBeInstanceOf.zig @@ -15,7 +15,7 @@ pub fn toBeInstanceOf(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Ca const expected_value = arguments[0]; if (!expected_value.isConstructor()) { - return globalThis.throw("Expected value must be a function: {any}", .{expected_value.toFmt(&formatter)}); + return globalThis.throw("Expected value must be a function: {f}", .{expected_value.toFmt(&formatter)}); } expected_value.ensureStillAlive(); @@ -30,14 +30,14 @@ pub fn toBeInstanceOf(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Ca const expected_fmt = expected_value.toFmt(&formatter); const value_fmt = value.toFmt(&formatter); if (not) { - const expected_line = "Expected constructor: not {any}\n"; - const received_line = "Received value: {any}\n"; + const expected_line = "Expected constructor: not {f}\n"; + const received_line = "Received value: {f}\n"; const signature = comptime getSignature("toBeInstanceOf", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } - const expected_line = "Expected constructor: {any}\n"; - const received_line = "Received value: {any}\n"; + const expected_line = "Expected constructor: {f}\n"; + const received_line = "Received value: {f}\n"; const signature = comptime getSignature("toBeInstanceOf", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toBeInteger.zig b/src/bun.js/test/expect/toBeInteger.zig index 148ee1848d..320f6991a3 100644 --- a/src/bun.js/test/expect/toBeInteger.zig +++ b/src/bun.js/test/expect/toBeInteger.zig @@ -17,11 +17,11 @@ pub fn toBeInteger(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallF if (not) { const signature = comptime getSignature("toBeInteger", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeInteger", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeLessThan.zig b/src/bun.js/test/expect/toBeLessThan.zig index 30e024ce95..9ad24ba360 100644 --- a/src/bun.js/test/expect/toBeLessThan.zig +++ b/src/bun.js/test/expect/toBeLessThan.zig @@ -46,14 +46,14 @@ pub fn toBeLessThan(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Call const value_fmt = value.toFmt(&formatter); const expected_fmt = other_value.toFmt(&formatter); if (not) { - const expected_line = "Expected: not \\< {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected: not \\< {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeLessThan", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } - const expected_line = "Expected: \\< {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected: \\< {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeLessThan", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toBeLessThanOrEqual.zig b/src/bun.js/test/expect/toBeLessThanOrEqual.zig index 34ad095f0f..60cbe66f8c 100644 --- a/src/bun.js/test/expect/toBeLessThanOrEqual.zig +++ b/src/bun.js/test/expect/toBeLessThanOrEqual.zig @@ -46,14 +46,14 @@ pub fn toBeLessThanOrEqual(this: *Expect, globalThis: *JSGlobalObject, callFrame const value_fmt = value.toFmt(&formatter); const expected_fmt = other_value.toFmt(&formatter); if (not) { - const expected_line = "Expected: not \\<= {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected: not \\<= {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeLessThanOrEqual", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } - const expected_line = "Expected: \\<= {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected: \\<= {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeLessThanOrEqual", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toBeNaN.zig b/src/bun.js/test/expect/toBeNaN.zig index 8621cee689..b8f49b7a39 100644 --- a/src/bun.js/test/expect/toBeNaN.zig +++ b/src/bun.js/test/expect/toBeNaN.zig @@ -21,12 +21,12 @@ pub fn toBeNaN(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame defer formatter.deinit(); const value_fmt = value.toFmt(&formatter); if (not) { - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeNaN", "", true); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeNaN", "", false); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } diff --git a/src/bun.js/test/expect/toBeNegative.zig b/src/bun.js/test/expect/toBeNegative.zig index c0c9041240..ee6a0ca36d 100644 --- a/src/bun.js/test/expect/toBeNegative.zig +++ b/src/bun.js/test/expect/toBeNegative.zig @@ -23,11 +23,11 @@ pub fn toBeNegative(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Call if (not) { const signature = comptime getSignature("toBeNegative", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeNegative", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeNil.zig b/src/bun.js/test/expect/toBeNil.zig index b695041c2d..2b85315432 100644 --- a/src/bun.js/test/expect/toBeNil.zig +++ b/src/bun.js/test/expect/toBeNil.zig @@ -17,11 +17,11 @@ pub fn toBeNil(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame if (not) { const signature = comptime getSignature("toBeNil", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeNil", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeNull.zig b/src/bun.js/test/expect/toBeNull.zig index 45a1280d35..1a1f05d35c 100644 --- a/src/bun.js/test/expect/toBeNull.zig +++ b/src/bun.js/test/expect/toBeNull.zig @@ -16,12 +16,12 @@ pub fn toBeNull(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFram defer formatter.deinit(); const value_fmt = value.toFmt(&formatter); if (not) { - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeNull", "", true); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeNull", "", false); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } diff --git a/src/bun.js/test/expect/toBeNumber.zig b/src/bun.js/test/expect/toBeNumber.zig index 0a2810ada6..cb94f40860 100644 --- a/src/bun.js/test/expect/toBeNumber.zig +++ b/src/bun.js/test/expect/toBeNumber.zig @@ -17,11 +17,11 @@ pub fn toBeNumber(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFr if (not) { const signature = comptime getSignature("toBeNumber", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeNumber", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeObject.zig b/src/bun.js/test/expect/toBeObject.zig index cd8072402c..474b946db9 100644 --- a/src/bun.js/test/expect/toBeObject.zig +++ b/src/bun.js/test/expect/toBeObject.zig @@ -17,11 +17,11 @@ pub fn toBeObject(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFr if (not) { const signature = comptime getSignature("toBeObject", "", true); - return this.throw(globalThis, signature, "\n\nExpected value not to be an object" ++ "\n\nReceived: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\nExpected value not to be an object" ++ "\n\nReceived: {f}\n", .{received}); } const signature = comptime getSignature("toBeObject", "", false); - return this.throw(globalThis, signature, "\n\nExpected value to be an object" ++ "\n\nReceived: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\nExpected value to be an object" ++ "\n\nReceived: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeOdd.zig b/src/bun.js/test/expect/toBeOdd.zig index d4d477c1a3..a0cb5b0a75 100644 --- a/src/bun.js/test/expect/toBeOdd.zig +++ b/src/bun.js/test/expect/toBeOdd.zig @@ -39,12 +39,12 @@ pub fn toBeOdd(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame defer formatter.deinit(); const value_fmt = value.toFmt(&formatter); if (not) { - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeOdd", "", true); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeOdd", "", false); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } diff --git a/src/bun.js/test/expect/toBeOneOf.zig b/src/bun.js/test/expect/toBeOneOf.zig index 5d2af7e837..17b05f4bc8 100644 --- a/src/bun.js/test/expect/toBeOneOf.zig +++ b/src/bun.js/test/expect/toBeOneOf.zig @@ -47,7 +47,7 @@ pub fn toBeOneOf( _: *JSGlobalObject, entry_: ?*anyopaque, item: JSValue, - ) callconv(.C) void { + ) callconv(.c) void { const entry = bun.cast(*ExpectedEntry, entry_.?); // Confusingly, jest-extended uses `deepEqual`, instead of `toBe` if (item.jestDeepEquals(entry.expected, entry.globalThis) catch return) { @@ -70,13 +70,13 @@ pub fn toBeOneOf( const expected_fmt = expected.toFmt(&formatter); if (not) { const received_fmt = list_value.toFmt(&formatter); - const expected_line = "Expected to not be one of: {any}\nReceived: {any}\n"; + const expected_line = "Expected to not be one of: {f}\nReceived: {f}\n"; const signature = comptime getSignature("toBeOneOf", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line, .{ received_fmt, expected_fmt }); } - const expected_line = "Expected to be one of: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to be one of: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeOneOf", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ value_fmt, expected_fmt }); } diff --git a/src/bun.js/test/expect/toBePositive.zig b/src/bun.js/test/expect/toBePositive.zig index 9bec22e210..620090800d 100644 --- a/src/bun.js/test/expect/toBePositive.zig +++ b/src/bun.js/test/expect/toBePositive.zig @@ -23,11 +23,11 @@ pub fn toBePositive(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Call if (not) { const signature = comptime getSignature("toBePositive", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBePositive", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeString.zig b/src/bun.js/test/expect/toBeString.zig index 9c5ffc6f47..def65673ef 100644 --- a/src/bun.js/test/expect/toBeString.zig +++ b/src/bun.js/test/expect/toBeString.zig @@ -17,11 +17,11 @@ pub fn toBeString(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFr if (not) { const signature = comptime getSignature("toBeString", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeString", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeSymbol.zig b/src/bun.js/test/expect/toBeSymbol.zig index 60384fd2b2..be06ed9409 100644 --- a/src/bun.js/test/expect/toBeSymbol.zig +++ b/src/bun.js/test/expect/toBeSymbol.zig @@ -17,11 +17,11 @@ pub fn toBeSymbol(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFr if (not) { const signature = comptime getSignature("toBeSymbol", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeSymbol", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeTrue.zig b/src/bun.js/test/expect/toBeTrue.zig index cf555cdd8b..1764550df1 100644 --- a/src/bun.js/test/expect/toBeTrue.zig +++ b/src/bun.js/test/expect/toBeTrue.zig @@ -17,11 +17,11 @@ pub fn toBeTrue(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFram if (not) { const signature = comptime getSignature("toBeTrue", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeTrue", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeTruthy.zig b/src/bun.js/test/expect/toBeTruthy.zig index 71b3ba5a87..e6043e60ef 100644 --- a/src/bun.js/test/expect/toBeTruthy.zig +++ b/src/bun.js/test/expect/toBeTruthy.zig @@ -19,12 +19,12 @@ pub fn toBeTruthy(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFr defer formatter.deinit(); const value_fmt = value.toFmt(&formatter); if (not) { - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeTruthy", "", true); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeTruthy", "", false); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } diff --git a/src/bun.js/test/expect/toBeTypeOf.zig b/src/bun.js/test/expect/toBeTypeOf.zig index 716ee88a1b..ccc7773d4e 100644 --- a/src/bun.js/test/expect/toBeTypeOf.zig +++ b/src/bun.js/test/expect/toBeTypeOf.zig @@ -74,11 +74,11 @@ pub fn toBeTypeOf(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFr if (not) { const signature = comptime getSignature("toBeTypeOf", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Expected type: not {any}\n" ++ "Received type: \"{s}\"\nReceived value: {any}\n", .{ expected_str, whatIsTheType, received }); + return this.throw(globalThis, signature, "\n\n" ++ "Expected type: not {f}\n" ++ "Received type: \"{s}\"\nReceived value: {f}\n", .{ expected_str, whatIsTheType, received }); } const signature = comptime getSignature("toBeTypeOf", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Expected type: {any}\n" ++ "Received type: \"{s}\"\nReceived value: {any}\n", .{ expected_str, whatIsTheType, received }); + return this.throw(globalThis, signature, "\n\n" ++ "Expected type: {f}\n" ++ "Received type: \"{s}\"\nReceived value: {f}\n", .{ expected_str, whatIsTheType, received }); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeUndefined.zig b/src/bun.js/test/expect/toBeUndefined.zig index 8b6f7593d2..2230519f5a 100644 --- a/src/bun.js/test/expect/toBeUndefined.zig +++ b/src/bun.js/test/expect/toBeUndefined.zig @@ -17,12 +17,12 @@ pub fn toBeUndefined(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Cal defer formatter.deinit(); const value_fmt = value.toFmt(&formatter); if (not) { - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeUndefined", "", true); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeUndefined", "", false); return this.throw(globalThis, signature, "\n\n" ++ received_line, .{value_fmt}); } diff --git a/src/bun.js/test/expect/toBeValidDate.zig b/src/bun.js/test/expect/toBeValidDate.zig index 642bf83aac..b274faec22 100644 --- a/src/bun.js/test/expect/toBeValidDate.zig +++ b/src/bun.js/test/expect/toBeValidDate.zig @@ -18,11 +18,11 @@ pub fn toBeValidDate(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Cal if (not) { const signature = comptime getSignature("toBeValidDate", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const signature = comptime getSignature("toBeValidDate", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Received: {any}\n", .{received}); + return this.throw(globalThis, signature, "\n\n" ++ "Received: {f}\n", .{received}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toBeWithin.zig b/src/bun.js/test/expect/toBeWithin.zig index d4e71241e1..772aef3cd5 100644 --- a/src/bun.js/test/expect/toBeWithin.zig +++ b/src/bun.js/test/expect/toBeWithin.zig @@ -45,14 +45,14 @@ pub fn toBeWithin(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFr const received_fmt = value.toFmt(&formatter); if (not) { - const expected_line = "Expected: not between {any} (inclusive) and {any} (exclusive)\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected: not between {f} (inclusive) and {f} (exclusive)\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeWithin", "start, end", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ start_fmt, end_fmt, received_fmt }); } - const expected_line = "Expected: between {any} (inclusive) and {any} (exclusive)\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected: between {f} (inclusive) and {f} (exclusive)\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toBeWithin", "start, end", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ start_fmt, end_fmt, received_fmt }); } diff --git a/src/bun.js/test/expect/toContain.zig b/src/bun.js/test/expect/toContain.zig index c5fbaf3ea9..45b6d44c8f 100644 --- a/src/bun.js/test/expect/toContain.zig +++ b/src/bun.js/test/expect/toContain.zig @@ -60,7 +60,7 @@ pub fn toContain( _: *JSGlobalObject, entry_: ?*anyopaque, item: JSValue, - ) callconv(.C) void { + ) callconv(.c) void { const entry = bun.cast(*ExpectedEntry, entry_.?); if (item.isSameValue(entry.expected, entry.globalThis) catch return) { entry.pass.* = true; @@ -82,13 +82,13 @@ pub fn toContain( const expected_fmt = expected.toFmt(&formatter); if (not) { const received_fmt = value.toFmt(&formatter); - const expected_line = "Expected to not contain: {any}\nReceived: {any}\n"; + const expected_line = "Expected to not contain: {f}\nReceived: {f}\n"; const signature = comptime getSignature("toContain", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line, .{ expected_fmt, received_fmt }); } - const expected_line = "Expected to contain: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to contain: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toContain", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toContainAllKeys.zig b/src/bun.js/test/expect/toContainAllKeys.zig index c06575b0cd..f494e5ea43 100644 --- a/src/bun.js/test/expect/toContainAllKeys.zig +++ b/src/bun.js/test/expect/toContainAllKeys.zig @@ -52,13 +52,13 @@ pub fn toContainAllKeys( const expected_fmt = expected.toFmt(&formatter); if (not) { const received_fmt = keys.toFmt(&formatter); - const expected_line = "Expected to not contain all keys: {any}\nReceived: {any}\n"; + const expected_line = "Expected to not contain all keys: {f}\nReceived: {f}\n"; const fmt = "\n\n" ++ expected_line; return this.throw(globalObject, comptime getSignature("toContainAllKeys", "expected", true), fmt, .{ expected_fmt, received_fmt }); } - const expected_line = "Expected to contain all keys: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to contain all keys: {f}\n"; + const received_line = "Received: {f}\n"; const fmt = "\n\n" ++ expected_line ++ received_line; return this.throw(globalObject, comptime getSignature("toContainAllKeys", "expected", false), fmt, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toContainAllValues.zig b/src/bun.js/test/expect/toContainAllValues.zig index d354157f94..3f8cb53993 100644 --- a/src/bun.js/test/expect/toContainAllValues.zig +++ b/src/bun.js/test/expect/toContainAllValues.zig @@ -57,13 +57,13 @@ pub fn toContainAllValues( const expected_fmt = expected.toFmt(&formatter); if (not) { const received_fmt = value.toFmt(&formatter); - const expected_line = "Expected to not contain all values: {any}\nReceived: {any}\n"; + const expected_line = "Expected to not contain all values: {f}\nReceived: {f}\n"; const fmt = "\n\n" ++ expected_line; return this.throw(globalObject, comptime getSignature("toContainAllValues", "expected", true), fmt, .{ expected_fmt, received_fmt }); } - const expected_line = "Expected to contain all values: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to contain all values: {f}\n"; + const received_line = "Received: {f}\n"; const fmt = "\n\n" ++ expected_line ++ received_line; return this.throw(globalObject, comptime getSignature("toContainAllValues", "expected", false), fmt, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toContainAnyKeys.zig b/src/bun.js/test/expect/toContainAnyKeys.zig index 2f8fcf3370..aaebf75f9a 100644 --- a/src/bun.js/test/expect/toContainAnyKeys.zig +++ b/src/bun.js/test/expect/toContainAnyKeys.zig @@ -50,13 +50,13 @@ pub fn toContainAnyKeys( const expected_fmt = expected.toFmt(&formatter); if (not) { const received_fmt = value.toFmt(&formatter); - const expected_line = "Expected to not contain: {any}\nReceived: {any}\n"; + const expected_line = "Expected to not contain: {f}\nReceived: {f}\n"; const signature = comptime getSignature("toContainAnyKeys", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line, .{ expected_fmt, received_fmt }); } - const expected_line = "Expected to contain: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to contain: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toContainAnyKeys", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toContainAnyValues.zig b/src/bun.js/test/expect/toContainAnyValues.zig index 9a9582b907..ea3dc18c6a 100644 --- a/src/bun.js/test/expect/toContainAnyValues.zig +++ b/src/bun.js/test/expect/toContainAnyValues.zig @@ -51,13 +51,13 @@ pub fn toContainAnyValues( const expected_fmt = expected.toFmt(&formatter); if (not) { const received_fmt = value.toFmt(&formatter); - const expected_line = "Expected to not contain any of the following values: {any}\nReceived: {any}\n"; + const expected_line = "Expected to not contain any of the following values: {f}\nReceived: {f}\n"; const fmt = "\n\n" ++ expected_line; return this.throw(globalObject, comptime getSignature("toContainAnyValues", "expected", true), fmt, .{ expected_fmt, received_fmt }); } - const expected_line = "Expected to contain any of the following values: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to contain any of the following values: {f}\n"; + const received_line = "Received: {f}\n"; const fmt = "\n\n" ++ expected_line ++ received_line; return this.throw(globalObject, comptime getSignature("toContainAnyValues", "expected", false), fmt, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toContainEqual.zig b/src/bun.js/test/expect/toContainEqual.zig index 64f521ef68..b4b4e69cda 100644 --- a/src/bun.js/test/expect/toContainEqual.zig +++ b/src/bun.js/test/expect/toContainEqual.zig @@ -69,7 +69,7 @@ pub fn toContainEqual( _: *JSGlobalObject, entry_: ?*anyopaque, item: JSValue, - ) callconv(.C) void { + ) callconv(.c) void { const entry = bun.cast(*ExpectedEntry, entry_.?); if (item.jestDeepEquals(entry.expected, entry.globalThis) catch return) { entry.pass.* = true; @@ -90,13 +90,13 @@ pub fn toContainEqual( const value_fmt = value.toFmt(&formatter); const expected_fmt = expected.toFmt(&formatter); if (not) { - const expected_line = "Expected to not contain: {any}\n"; + const expected_line = "Expected to not contain: {f}\n"; const signature = comptime getSignature("toContainEqual", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line, .{expected_fmt}); } - const expected_line = "Expected to contain: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to contain: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toContainEqual", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toContainKey.zig b/src/bun.js/test/expect/toContainKey.zig index 9b16897efc..0121e85c8a 100644 --- a/src/bun.js/test/expect/toContainKey.zig +++ b/src/bun.js/test/expect/toContainKey.zig @@ -22,7 +22,7 @@ pub fn toContainKey( const not = this.flags.not; if (!value.isObject()) { - return globalThis.throwInvalidArguments("Expected value must be an object\nReceived: {}", .{value.toFmt(&formatter)}); + return globalThis.throwInvalidArguments("Expected value must be an object\nReceived: {f}", .{value.toFmt(&formatter)}); } var pass = try value.hasOwnPropertyValue(globalThis, expected); @@ -36,13 +36,13 @@ pub fn toContainKey( const expected_fmt = expected.toFmt(&formatter); if (not) { const received_fmt = value.toFmt(&formatter); - const expected_line = "Expected to not contain: {any}\nReceived: {any}\n"; + const expected_line = "Expected to not contain: {f}\nReceived: {f}\n"; const signature = comptime getSignature("toContainKey", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line, .{ expected_fmt, received_fmt }); } - const expected_line = "Expected to contain: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to contain: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toContainKey", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toContainKeys.zig b/src/bun.js/test/expect/toContainKeys.zig index 141de5a403..eef143f81c 100644 --- a/src/bun.js/test/expect/toContainKeys.zig +++ b/src/bun.js/test/expect/toContainKeys.zig @@ -53,13 +53,13 @@ pub fn toContainKeys( const expected_fmt = expected.toFmt(&formatter); if (not) { const received_fmt = value.toFmt(&formatter); - const expected_line = "Expected to not contain: {any}\nReceived: {any}\n"; + const expected_line = "Expected to not contain: {f}\nReceived: {f}\n"; const signature = comptime getSignature("toContainKeys", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line, .{ expected_fmt, received_fmt }); } - const expected_line = "Expected to contain: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to contain: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toContainKeys", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toContainValue.zig b/src/bun.js/test/expect/toContainValue.zig index 6c33a7c9ff..31f92c96be 100644 --- a/src/bun.js/test/expect/toContainValue.zig +++ b/src/bun.js/test/expect/toContainValue.zig @@ -42,13 +42,13 @@ pub fn toContainValue( const expected_fmt = expected.toFmt(&formatter); if (not) { const received_fmt = value.toFmt(&formatter); - const expected_line = "Expected to not contain: {any}\nReceived: {any}\n"; + const expected_line = "Expected to not contain: {f}\nReceived: {f}\n"; const fmt = "\n\n" ++ expected_line; return this.throw(globalObject, comptime getSignature("toContainValue", "expected", true), fmt, .{ expected_fmt, received_fmt }); } - const expected_line = "Expected to contain: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to contain: {f}\n"; + const received_line = "Received: {f}\n"; const fmt = "\n\n" ++ expected_line ++ received_line; return this.throw(globalObject, comptime getSignature("toContainValue", "expected", false), fmt, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toContainValues.zig b/src/bun.js/test/expect/toContainValues.zig index 6a5157b4e9..567bd7e1b8 100644 --- a/src/bun.js/test/expect/toContainValues.zig +++ b/src/bun.js/test/expect/toContainValues.zig @@ -51,13 +51,13 @@ pub fn toContainValues( const expected_fmt = expected.toFmt(&formatter); if (not) { const received_fmt = value.toFmt(&formatter); - const expected_line = "Expected to not contain: {any}\nReceived: {any}\n"; + const expected_line = "Expected to not contain: {f}\nReceived: {f}\n"; const fmt = "\n\n" ++ expected_line; return this.throw(globalObject, comptime getSignature("toContainValues", "expected", true), fmt, .{ expected_fmt, received_fmt }); } - const expected_line = "Expected to contain: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to contain: {f}\n"; + const received_line = "Received: {f}\n"; const fmt = "\n\n" ++ expected_line ++ received_line; return this.throw(globalObject, comptime getSignature("toContainValues", "expected", false), fmt, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toEndWith.zig b/src/bun.js/test/expect/toEndWith.zig index 06b51f7218..0bdea7e46d 100644 --- a/src/bun.js/test/expect/toEndWith.zig +++ b/src/bun.js/test/expect/toEndWith.zig @@ -40,14 +40,14 @@ pub fn toEndWith(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFra const expected_fmt = expected.toFmt(&formatter); if (not) { - const expected_line = "Expected to not end with: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to not end with: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toEndWith", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } - const expected_line = "Expected to end with: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to end with: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toEndWith", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toEqual.zig b/src/bun.js/test/expect/toEqual.zig index ff942e03db..614b9fc549 100644 --- a/src/bun.js/test/expect/toEqual.zig +++ b/src/bun.js/test/expect/toEqual.zig @@ -30,11 +30,11 @@ pub fn toEqual(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame if (not) { const signature = comptime getSignature("toEqual", "expected", true); - return this.throw(globalThis, signature, "\n\n{any}\n", .{diff_formatter}); + return this.throw(globalThis, signature, "\n\n{f}\n", .{diff_formatter}); } const signature = comptime getSignature("toEqual", "expected", false); - return this.throw(globalThis, signature, "\n\n{any}\n", .{diff_formatter}); + return this.throw(globalThis, signature, "\n\n{f}\n", .{diff_formatter}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toEqualIgnoringWhitespace.zig b/src/bun.js/test/expect/toEqualIgnoringWhitespace.zig index 38cd5331ec..18acdaeb07 100644 --- a/src/bun.js/test/expect/toEqualIgnoringWhitespace.zig +++ b/src/bun.js/test/expect/toEqualIgnoringWhitespace.zig @@ -70,11 +70,11 @@ pub fn toEqualIgnoringWhitespace(this: *Expect, globalThis: *JSGlobalObject, cal if (not) { const signature = comptime getSignature("toEqualIgnoringWhitespace", "expected", true); - return this.throw(globalThis, signature, "\n\n" ++ "Expected: not {any}\n" ++ "Received: {any}\n", .{ expected_fmt, value_fmt }); + return this.throw(globalThis, signature, "\n\n" ++ "Expected: not {f}\n" ++ "Received: {f}\n", .{ expected_fmt, value_fmt }); } const signature = comptime getSignature("toEqualIgnoringWhitespace", "expected", false); - return this.throw(globalThis, signature, "\n\n" ++ "Expected: {any}\n" ++ "Received: {any}\n", .{ expected_fmt, value_fmt }); + return this.throw(globalThis, signature, "\n\n" ++ "Expected: {f}\n" ++ "Received: {f}\n", .{ expected_fmt, value_fmt }); } const std = @import("std"); diff --git a/src/bun.js/test/expect/toHaveBeenCalled.zig b/src/bun.js/test/expect/toHaveBeenCalled.zig index 51b79f97cb..a4113d1f04 100644 --- a/src/bun.js/test/expect/toHaveBeenCalled.zig +++ b/src/bun.js/test/expect/toHaveBeenCalled.zig @@ -15,7 +15,7 @@ pub fn toHaveBeenCalled(this: *Expect, globalThis: *JSGlobalObject, callframe: * if (!calls.jsType().isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - return globalThis.throw("Expected value must be a mock function: {any}", .{value.toFmt(&formatter)}); + return globalThis.throw("Expected value must be a mock function: {f}", .{value.toFmt(&formatter)}); } const calls_length = try calls.getLength(globalThis); @@ -28,11 +28,11 @@ pub fn toHaveBeenCalled(this: *Expect, globalThis: *JSGlobalObject, callframe: * // handle failure if (not) { const signature = comptime getSignature("toHaveBeenCalled", "", true); - return this.throw(globalThis, signature, "\n\n" ++ "Expected number of calls: 0\n" ++ "Received number of calls: {any}\n", .{calls_length}); + return this.throw(globalThis, signature, "\n\n" ++ "Expected number of calls: 0\n" ++ "Received number of calls: {d}\n", .{calls_length}); } const signature = comptime getSignature("toHaveBeenCalled", "", false); - return this.throw(globalThis, signature, "\n\n" ++ "Expected number of calls: \\>= 1\n" ++ "Received number of calls: {any}\n", .{calls_length}); + return this.throw(globalThis, signature, "\n\n" ++ "Expected number of calls: \\>= 1\n" ++ "Received number of calls: {d}\n", .{calls_length}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toHaveBeenCalledOnce.zig b/src/bun.js/test/expect/toHaveBeenCalledOnce.zig index cdc054ac0c..dbb20dac0c 100644 --- a/src/bun.js/test/expect/toHaveBeenCalledOnce.zig +++ b/src/bun.js/test/expect/toHaveBeenCalledOnce.zig @@ -11,7 +11,7 @@ pub fn toHaveBeenCalledOnce(this: *Expect, globalThis: *JSGlobalObject, callfram if (!calls.jsType().isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - return globalThis.throw("Expected value must be a mock function: {any}", .{value.toFmt(&formatter)}); + return globalThis.throw("Expected value must be a mock function: {f}", .{value.toFmt(&formatter)}); } const calls_length = try calls.getLength(globalThis); diff --git a/src/bun.js/test/expect/toHaveBeenCalledTimes.zig b/src/bun.js/test/expect/toHaveBeenCalledTimes.zig index 57dccd9fd1..5b0db03aba 100644 --- a/src/bun.js/test/expect/toHaveBeenCalledTimes.zig +++ b/src/bun.js/test/expect/toHaveBeenCalledTimes.zig @@ -13,7 +13,7 @@ pub fn toHaveBeenCalledTimes(this: *Expect, globalThis: *JSGlobalObject, callfra if (!calls.jsType().isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - return globalThis.throw("Expected value must be a mock function: {any}", .{value.toFmt(&formatter)}); + return globalThis.throw("Expected value must be a mock function: {f}", .{value.toFmt(&formatter)}); } if (arguments.len < 1 or !arguments[0].isUInt32AsAnyInt()) { @@ -31,11 +31,11 @@ pub fn toHaveBeenCalledTimes(this: *Expect, globalThis: *JSGlobalObject, callfra // handle failure if (not) { const signature = comptime getSignature("toHaveBeenCalledTimes", "expected", true); - return this.throw(globalThis, signature, "\n\n" ++ "Expected number of calls: not {any}\n" ++ "Received number of calls: {any}\n", .{ times, calls.getLength(globalThis) }); + return this.throw(globalThis, signature, "\n\n" ++ "Expected number of calls: not {d}\n" ++ "Received number of calls: {d}\n", .{ times, try calls.getLength(globalThis) }); } const signature = comptime getSignature("toHaveBeenCalledTimes", "expected", false); - return this.throw(globalThis, signature, "\n\n" ++ "Expected number of calls: {any}\n" ++ "Received number of calls: {any}\n", .{ times, calls.getLength(globalThis) }); + return this.throw(globalThis, signature, "\n\n" ++ "Expected number of calls: {d}\n" ++ "Received number of calls: {d}\n", .{ times, try calls.getLength(globalThis) }); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toHaveBeenCalledWith.zig b/src/bun.js/test/expect/toHaveBeenCalledWith.zig index 2ff75bd71c..d49c572394 100644 --- a/src/bun.js/test/expect/toHaveBeenCalledWith.zig +++ b/src/bun.js/test/expect/toHaveBeenCalledWith.zig @@ -12,7 +12,7 @@ pub fn toHaveBeenCalledWith(this: *Expect, globalThis: *JSGlobalObject, callfram if (!calls.jsType().isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - return this.throw(globalThis, comptime getSignature("toHaveBeenCalledWith", "...expected", false), "\n\nMatcher error: received value must be a mock function\nReceived: {any}", .{value.toFmt(&formatter)}); + return this.throw(globalThis, comptime getSignature("toHaveBeenCalledWith", "...expected", false), "\n\nMatcher error: received value must be a mock function\nReceived: {f}", .{value.toFmt(&formatter)}); } var pass = false; @@ -62,14 +62,14 @@ pub fn toHaveBeenCalledWith(this: *Expect, globalThis: *JSGlobalObject, callfram if (this.flags.not) { const signature = comptime getSignature("toHaveBeenCalledWith", "...expected", true); - return this.throw(globalThis, signature, "\n\nExpected mock function not to have been called with: {any}\nBut it was.", .{ + return this.throw(globalThis, signature, "\n\nExpected mock function not to have been called with: {f}\nBut it was.", .{ expected_args_js_array.toFmt(&formatter), }); } const signature = comptime getSignature("toHaveBeenCalledWith", "...expected", false); if (calls_count == 0) { - return this.throw(globalThis, signature, "\n\nExpected: {any}\nBut it was not called.", .{ + return this.throw(globalThis, signature, "\n\nExpected: {f}\nBut it was not called.", .{ expected_args_js_array.toFmt(&formatter), }); } @@ -83,7 +83,7 @@ pub fn toHaveBeenCalledWith(this: *Expect, globalThis: *JSGlobalObject, callfram .globalThis = globalThis, .not = false, }; - return this.throw(globalThis, signature, "\n\n{any}\n", .{diff_format}); + return this.throw(globalThis, signature, "\n\n{f}\n", .{diff_format}); } // If there are multiple calls, list them all to help debugging. @@ -94,9 +94,9 @@ pub fn toHaveBeenCalledWith(this: *Expect, globalThis: *JSGlobalObject, callfram }; const fmt = - \\ Expected: {any} + \\ Expected: {f} \\ Received: - \\{any} + \\{f} \\ \\ Number of calls: {d} ; diff --git a/src/bun.js/test/expect/toHaveBeenLastCalledWith.zig b/src/bun.js/test/expect/toHaveBeenLastCalledWith.zig index 34a4e65f59..488a42916e 100644 --- a/src/bun.js/test/expect/toHaveBeenLastCalledWith.zig +++ b/src/bun.js/test/expect/toHaveBeenLastCalledWith.zig @@ -12,7 +12,7 @@ pub fn toHaveBeenLastCalledWith(this: *Expect, globalThis: *JSGlobalObject, call if (!calls.jsType().isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - return this.throw(globalThis, comptime getSignature("toHaveBeenLastCalledWith", "...expected", false), "\n\nMatcher error: received value must be a mock function\nReceived: {any}", .{value.toFmt(&formatter)}); + return this.throw(globalThis, comptime getSignature("toHaveBeenLastCalledWith", "...expected", false), "\n\nMatcher error: received value must be a mock function\nReceived: {f}", .{value.toFmt(&formatter)}); } const totalCalls: u32 = @truncate(try calls.getLength(globalThis)); @@ -26,7 +26,7 @@ pub fn toHaveBeenLastCalledWith(this: *Expect, globalThis: *JSGlobalObject, call if (!lastCallValue.jsType().isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - return globalThis.throw("Expected value must be a mock function with calls: {any}", .{value.toFmt(&formatter)}); + return globalThis.throw("Expected value must be a mock function with calls: {f}", .{value.toFmt(&formatter)}); } if (try lastCallValue.getLength(globalThis) != arguments.len) { @@ -58,14 +58,14 @@ pub fn toHaveBeenLastCalledWith(this: *Expect, globalThis: *JSGlobalObject, call if (this.flags.not) { const signature = comptime getSignature("toHaveBeenLastCalledWith", "...expected", true); - return this.throw(globalThis, signature, "\n\nExpected last call not to be with: {any}\nBut it was.", .{ + return this.throw(globalThis, signature, "\n\nExpected last call not to be with: {f}\nBut it was.", .{ expected_args_js_array.toFmt(&formatter), }); } const signature = comptime getSignature("toHaveBeenLastCalledWith", "...expected", false); if (totalCalls == 0) { - return this.throw(globalThis, signature, "\n\nExpected: {any}\nBut it was not called.", .{ + return this.throw(globalThis, signature, "\n\nExpected: {f}\nBut it was not called.", .{ expected_args_js_array.toFmt(&formatter), }); } @@ -76,7 +76,7 @@ pub fn toHaveBeenLastCalledWith(this: *Expect, globalThis: *JSGlobalObject, call .globalThis = globalThis, .not = false, }; - return this.throw(globalThis, signature, "\n\n{any}\n", .{diff_format}); + return this.throw(globalThis, signature, "\n\n{f}\n", .{diff_format}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toHaveBeenNthCalledWith.zig b/src/bun.js/test/expect/toHaveBeenNthCalledWith.zig index c84d729656..9ebcd9cb28 100644 --- a/src/bun.js/test/expect/toHaveBeenNthCalledWith.zig +++ b/src/bun.js/test/expect/toHaveBeenNthCalledWith.zig @@ -12,7 +12,7 @@ pub fn toHaveBeenNthCalledWith(this: *Expect, globalThis: *JSGlobalObject, callf if (!calls.jsType().isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - return this.throw(globalThis, comptime getSignature("toHaveBeenNthCalledWith", "n, ...expected", false), "\n\nMatcher error: received value must be a mock function\nReceived: {any}", .{value.toFmt(&formatter)}); + return this.throw(globalThis, comptime getSignature("toHaveBeenNthCalledWith", "n, ...expected", false), "\n\nMatcher error: received value must be a mock function\nReceived: {f}", .{value.toFmt(&formatter)}); } if (arguments.len == 0 or !arguments[0].isAnyInt()) { @@ -67,7 +67,7 @@ pub fn toHaveBeenNthCalledWith(this: *Expect, globalThis: *JSGlobalObject, callf if (this.flags.not) { const signature = comptime getSignature("toHaveBeenNthCalledWith", "n, ...expected", true); - return this.throw(globalThis, signature, "\n\nExpected call #{d} not to be with: {any}\nBut it was.", .{ + return this.throw(globalThis, signature, "\n\nExpected call #{d} not to be with: {f}\nBut it was.", .{ nthCallNum, expected_args_js_array.toFmt(&formatter), }); @@ -90,7 +90,7 @@ pub fn toHaveBeenNthCalledWith(this: *Expect, globalThis: *JSGlobalObject, callf .globalThis = globalThis, .not = false, }; - return this.throw(globalThis, signature, "\n\nCall #{d}:\n{any}\n", .{ nthCallNum, diff_format }); + return this.throw(globalThis, signature, "\n\nCall #{d}:\n{f}\n", .{ nthCallNum, diff_format }); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toHaveLastReturnedWith.zig b/src/bun.js/test/expect/toHaveLastReturnedWith.zig index ad5c242027..82b7230a61 100644 --- a/src/bun.js/test/expect/toHaveLastReturnedWith.zig +++ b/src/bun.js/test/expect/toHaveLastReturnedWith.zig @@ -13,7 +13,7 @@ pub fn toHaveLastReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callfr if (!returns.jsType().isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - return globalThis.throw("Expected value must be a mock function: {any}", .{value.toFmt(&formatter)}); + return globalThis.throw("Expected value must be a mock function: {f}", .{value.toFmt(&formatter)}); } const calls_count = @as(u32, @intCast(try returns.getLength(globalThis))); @@ -56,7 +56,7 @@ pub fn toHaveLastReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callfr const signature = comptime getSignature("toHaveBeenLastReturnedWith", "expected", false); if (this.flags.not) { - return this.throw(globalThis, comptime getSignature("toHaveBeenLastReturnedWith", "expected", true), "\n\n" ++ "Expected mock function not to have last returned: {any}\n" ++ "But it did.\n", .{expected.toFmt(&formatter)}); + return this.throw(globalThis, comptime getSignature("toHaveBeenLastReturnedWith", "expected", true), "\n\n" ++ "Expected mock function not to have last returned: {f}\n" ++ "But it did.\n", .{expected.toFmt(&formatter)}); } if (calls_count == 0) { @@ -64,16 +64,16 @@ pub fn toHaveLastReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callfr } if (last_call_threw) { - return this.throw(globalThis, signature, "\n\n" ++ "The last call threw an error: {any}\n", .{last_error_value.toFmt(&formatter)}); + return this.throw(globalThis, signature, "\n\n" ++ "The last call threw an error: {f}\n", .{last_error_value.toFmt(&formatter)}); } // Diff if possible if (expected.isString() and last_return_value.isString()) { const diff_format = DiffFormatter{ .expected = expected, .received = last_return_value, .globalThis = globalThis, .not = false }; - return this.throw(globalThis, signature, "\n\n{any}\n", .{diff_format}); + return this.throw(globalThis, signature, "\n\n{f}\n", .{diff_format}); } - return this.throw(globalThis, signature, "\n\nExpected: {any}\nReceived: {any}", .{ expected.toFmt(&formatter), last_return_value.toFmt(&formatter) }); + return this.throw(globalThis, signature, "\n\nExpected: {f}\nReceived: {f}", .{ expected.toFmt(&formatter), last_return_value.toFmt(&formatter) }); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toHaveLength.zig b/src/bun.js/test/expect/toHaveLength.zig index 275de33dc3..5aa7a349ef 100644 --- a/src/bun.js/test/expect/toHaveLength.zig +++ b/src/bun.js/test/expect/toHaveLength.zig @@ -19,18 +19,18 @@ pub fn toHaveLength( if (!value.isObject() and !value.isString()) { var fmt = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; - return globalThis.throw("Received value does not have a length property: {any}", .{value.toFmt(&fmt)}); + return globalThis.throw("Received value does not have a length property: {f}", .{value.toFmt(&fmt)}); } if (!expected.isNumber()) { var fmt = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; - return globalThis.throw("Expected value must be a non-negative integer: {any}", .{expected.toFmt(&fmt)}); + return globalThis.throw("Expected value must be a non-negative integer: {f}", .{expected.toFmt(&fmt)}); } const expected_length: f64 = expected.asNumber(); if (@round(expected_length) != expected_length or std.math.isInf(expected_length) or std.math.isNan(expected_length) or expected_length < 0) { var fmt = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; - return globalThis.throw("Expected value must be a non-negative integer: {any}", .{expected.toFmt(&fmt)}); + return globalThis.throw("Expected value must be a non-negative integer: {f}", .{expected.toFmt(&fmt)}); } const not = this.flags.not; @@ -40,7 +40,7 @@ pub fn toHaveLength( if (actual_length == std.math.inf(f64)) { var fmt = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; - return globalThis.throw("Received value does not have a length property: {any}", .{value.toFmt(&fmt)}); + return globalThis.throw("Received value does not have a length property: {f}", .{value.toFmt(&fmt)}); } else if (std.math.isNan(actual_length)) { return globalThis.throw("Received value has non-number length property: {}", .{actual_length}); } diff --git a/src/bun.js/test/expect/toHaveNthReturnedWith.zig b/src/bun.js/test/expect/toHaveNthReturnedWith.zig index 0f7244f7a6..5ba76d46a0 100644 --- a/src/bun.js/test/expect/toHaveNthReturnedWith.zig +++ b/src/bun.js/test/expect/toHaveNthReturnedWith.zig @@ -21,7 +21,7 @@ pub fn toHaveNthReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callfra if (!returns.jsType().isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - return globalThis.throw("Expected value must be a mock function: {any}", .{value.toFmt(&formatter)}); + return globalThis.throw("Expected value must be a mock function: {f}", .{value.toFmt(&formatter)}); } const calls_count = @as(u32, @intCast(try returns.getLength(globalThis))); @@ -65,7 +65,7 @@ pub fn toHaveNthReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callfra const signature = comptime getSignature("toHaveNthReturnedWith", "n, expected", false); if (this.flags.not) { - return this.throw(globalThis, comptime getSignature("toHaveNthReturnedWith", "n, expected", true), "\n\n" ++ "Expected mock function not to have returned on call {d}: {any}\n" ++ "But it did.\n", .{ n, expected.toFmt(&formatter) }); + return this.throw(globalThis, comptime getSignature("toHaveNthReturnedWith", "n, expected", true), "\n\n" ++ "Expected mock function not to have returned on call {d}: {f}\n" ++ "But it did.\n", .{ n, expected.toFmt(&formatter) }); } if (!nth_call_exists) { @@ -73,16 +73,16 @@ pub fn toHaveNthReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callfra } if (nth_call_threw) { - return this.throw(globalThis, signature, "\n\n" ++ "Call {d} threw an error: {any}\n", .{ n, nth_error_value.toFmt(&formatter) }); + return this.throw(globalThis, signature, "\n\n" ++ "Call {d} threw an error: {f}\n", .{ n, nth_error_value.toFmt(&formatter) }); } // Diff if possible if (expected.isString() and nth_return_value.isString()) { const diff_format = DiffFormatter{ .expected = expected, .received = nth_return_value, .globalThis = globalThis, .not = false }; - return this.throw(globalThis, signature, "\n\nCall {d}:\n{any}\n", .{ n, diff_format }); + return this.throw(globalThis, signature, "\n\nCall {d}:\n{f}\n", .{ n, diff_format }); } - return this.throw(globalThis, signature, "\n\nCall {d}:\nExpected: {any}\nReceived: {any}", .{ n, expected.toFmt(&formatter), nth_return_value.toFmt(&formatter) }); + return this.throw(globalThis, signature, "\n\nCall {d}:\nExpected: {f}\nReceived: {f}", .{ n, expected.toFmt(&formatter), nth_return_value.toFmt(&formatter) }); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toHaveProperty.zig b/src/bun.js/test/expect/toHaveProperty.zig index 3013ec4787..019c815511 100644 --- a/src/bun.js/test/expect/toHaveProperty.zig +++ b/src/bun.js/test/expect/toHaveProperty.zig @@ -48,7 +48,7 @@ pub fn toHaveProperty(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Ca if (expected_property != null) { const signature = comptime getSignature("toHaveProperty", "path, value", true); if (received_property != .zero) { - return this.throw(globalThis, signature, "\n\nExpected path: {any}\n\nExpected value: not {any}\n", .{ + return this.throw(globalThis, signature, "\n\nExpected path: {f}\n\nExpected value: not {f}\n", .{ expected_property_path.toFmt(&formatter), expected_property.?.toFmt(&formatter), }); @@ -56,7 +56,7 @@ pub fn toHaveProperty(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Ca } const signature = comptime getSignature("toHaveProperty", "path", true); - return this.throw(globalThis, signature, "\n\nExpected path: not {any}\n\nReceived value: {any}\n", .{ + return this.throw(globalThis, signature, "\n\nExpected path: not {f}\n\nReceived value: {f}\n", .{ expected_property_path.toFmt(&formatter), received_property.toFmt(&formatter), }); @@ -72,10 +72,10 @@ pub fn toHaveProperty(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Ca .globalThis = globalThis, }; - return this.throw(globalThis, signature, "\n\n{any}\n", .{diff_format}); + return this.throw(globalThis, signature, "\n\n{f}\n", .{diff_format}); } - const fmt = "\n\nExpected path: {any}\n\nExpected value: {any}\n\n" ++ + const fmt = "\n\nExpected path: {f}\n\nExpected value: {f}\n\n" ++ "Unable to find property\n"; return this.throw(globalThis, signature, fmt, .{ expected_property_path.toFmt(&formatter), @@ -84,7 +84,7 @@ pub fn toHaveProperty(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Ca } const signature = comptime getSignature("toHaveProperty", "path", false); - return this.throw(globalThis, signature, "\n\nExpected path: {any}\n\nUnable to find property\n", .{expected_property_path.toFmt(&formatter)}); + return this.throw(globalThis, signature, "\n\nExpected path: {f}\n\nUnable to find property\n", .{expected_property_path.toFmt(&formatter)}); } const DiffFormatter = @import("../diff_format.zig").DiffFormatter; diff --git a/src/bun.js/test/expect/toHaveReturnedWith.zig b/src/bun.js/test/expect/toHaveReturnedWith.zig index 3de3197ada..c8aac164a5 100644 --- a/src/bun.js/test/expect/toHaveReturnedWith.zig +++ b/src/bun.js/test/expect/toHaveReturnedWith.zig @@ -13,13 +13,13 @@ pub fn toHaveReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callframe: if (!returns.jsType().isArray()) { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - return globalThis.throw("Expected value must be a mock function: {any}", .{value.toFmt(&formatter)}); + return globalThis.throw("Expected value must be a mock function: {f}", .{value.toFmt(&formatter)}); } const calls_count = @as(u32, @intCast(try returns.getLength(globalThis))); var pass = false; - var successful_returns = std.ArrayList(JSValue).init(globalThis.bunVM().allocator); + var successful_returns = std.array_list.Managed(JSValue).init(globalThis.bunVM().allocator); defer successful_returns.deinit(); var has_errors = false; @@ -63,7 +63,7 @@ pub fn toHaveReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callframe: if (this.flags.not) { const not_signature = comptime getSignature("toHaveReturnedWith", "expected", true); - return this.throw(globalThis, not_signature, "\n\n" ++ "Expected mock function not to have returned: {any}\n", .{expected.toFmt(&formatter)}); + return this.throw(globalThis, not_signature, "\n\n" ++ "Expected mock function not to have returned: {f}\n", .{expected.toFmt(&formatter)}); } // No match was found. @@ -79,10 +79,10 @@ pub fn toHaveReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callframe: .globalThis = globalThis, .not = false, }; - return this.throw(globalThis, signature, "\n\n{any}\n", .{diff_format}); + return this.throw(globalThis, signature, "\n\n{f}\n", .{diff_format}); } - return this.throw(globalThis, signature, "\n\nExpected: {any}\nReceived: {any}", .{ + return this.throw(globalThis, signature, "\n\nExpected: {f}\nReceived: {f}", .{ expected.toFmt(&formatter), received.toFmt(&formatter), }); @@ -98,9 +98,9 @@ pub fn toHaveReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callframe: const fmt = \\Some calls errored: \\ - \\ Expected: {any} + \\ Expected: {f} \\ Received: - \\{any} + \\{f} \\ \\ Number of returns: {d} \\ Number of calls: {d} @@ -124,9 +124,9 @@ pub fn toHaveReturnedWith(this: *Expect, globalThis: *JSGlobalObject, callframe: .formatter = &formatter, }; const fmt = - \\ Expected: {any} + \\ Expected: {f} \\ Received: - \\{any} + \\{f} \\ \\ Number of returns: {d} ; diff --git a/src/bun.js/test/expect/toInclude.zig b/src/bun.js/test/expect/toInclude.zig index 802caf2393..fe8711f0d6 100644 --- a/src/bun.js/test/expect/toInclude.zig +++ b/src/bun.js/test/expect/toInclude.zig @@ -40,14 +40,14 @@ pub fn toInclude(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFra const expected_fmt = expected.toFmt(&formatter); if (not) { - const expected_line = "Expected to not include: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to not include: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toInclude", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } - const expected_line = "Expected to include: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to include: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toInclude", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toIncludeRepeated.zig b/src/bun.js/test/expect/toIncludeRepeated.zig index dbc5eeef8b..d038b9b609 100644 --- a/src/bun.js/test/expect/toIncludeRepeated.zig +++ b/src/bun.js/test/expect/toIncludeRepeated.zig @@ -65,34 +65,34 @@ pub fn toIncludeRepeated(this: *Expect, globalThis: *JSGlobalObject, callFrame: const substring_fmt = substring.toFmt(&formatter); const times_fmt = count.toFmt(&formatter); - const received_line = "Received: {any}\n"; + const received_line = "Received: {f}\n"; if (not) { if (countAsNum == 0) { - const expected_line = "Expected to include: {any} \n"; + const expected_line = "Expected to include: {f} \n"; const signature = comptime getSignature("toIncludeRepeated", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ substring_fmt, expect_string_fmt }); } else if (countAsNum == 1) { - const expected_line = "Expected not to include: {any} \n"; + const expected_line = "Expected not to include: {f} \n"; const signature = comptime getSignature("toIncludeRepeated", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ substring_fmt, expect_string_fmt }); } else { - const expected_line = "Expected not to include: {any} {any} times \n"; + const expected_line = "Expected not to include: {f} {f} times \n"; const signature = comptime getSignature("toIncludeRepeated", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ substring_fmt, times_fmt, expect_string_fmt }); } } if (countAsNum == 0) { - const expected_line = "Expected to not include: {any}\n"; + const expected_line = "Expected to not include: {f}\n"; const signature = comptime getSignature("toIncludeRepeated", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ substring_fmt, expect_string_fmt }); } else if (countAsNum == 1) { - const expected_line = "Expected to include: {any}\n"; + const expected_line = "Expected to include: {f}\n"; const signature = comptime getSignature("toIncludeRepeated", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ substring_fmt, expect_string_fmt }); } else { - const expected_line = "Expected to include: {any} {any} times \n"; + const expected_line = "Expected to include: {f} {f} times \n"; const signature = comptime getSignature("toIncludeRepeated", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ substring_fmt, times_fmt, expect_string_fmt }); } diff --git a/src/bun.js/test/expect/toMatch.zig b/src/bun.js/test/expect/toMatch.zig index c774969bf5..3b8d877dcc 100644 --- a/src/bun.js/test/expect/toMatch.zig +++ b/src/bun.js/test/expect/toMatch.zig @@ -18,14 +18,14 @@ pub fn toMatch(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame const expected_value = arguments[0]; if (!expected_value.isString() and !expected_value.isRegExp()) { - return globalThis.throw("Expected value must be a string or regular expression: {any}", .{expected_value.toFmt(&formatter)}); + return globalThis.throw("Expected value must be a string or regular expression: {f}", .{expected_value.toFmt(&formatter)}); } expected_value.ensureStillAlive(); const value: JSValue = try this.getValue(globalThis, thisValue, "toMatch", "expected"); if (!value.isString()) { - return globalThis.throw("Received value must be a string: {any}", .{value.toFmt(&formatter)}); + return globalThis.throw("Received value must be a string: {f}", .{value.toFmt(&formatter)}); } const not = this.flags.not; @@ -46,14 +46,14 @@ pub fn toMatch(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame const value_fmt = value.toFmt(&formatter); if (not) { - const expected_line = "Expected substring or pattern: not {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected substring or pattern: not {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toMatch", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } - const expected_line = "Expected substring or pattern: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected substring or pattern: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toMatch", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toMatchObject.zig b/src/bun.js/test/expect/toMatchObject.zig index 2804745346..e9b065e05a 100644 --- a/src/bun.js/test/expect/toMatchObject.zig +++ b/src/bun.js/test/expect/toMatchObject.zig @@ -49,11 +49,11 @@ pub fn toMatchObject(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Cal if (not) { const signature = comptime getSignature("toMatchObject", "expected", true); - return this.throw(globalThis, signature, "\n\n{any}\n", .{diff_formatter}); + return this.throw(globalThis, signature, "\n\n{f}\n", .{diff_formatter}); } const signature = comptime getSignature("toMatchObject", "expected", false); - return this.throw(globalThis, signature, "\n\n{any}\n", .{diff_formatter}); + return this.throw(globalThis, signature, "\n\n{f}\n", .{diff_formatter}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toSatisfy.zig b/src/bun.js/test/expect/toSatisfy.zig index dd7f1d3262..83b3b58e77 100644 --- a/src/bun.js/test/expect/toSatisfy.zig +++ b/src/bun.js/test/expect/toSatisfy.zig @@ -39,12 +39,12 @@ pub fn toSatisfy(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFra if (not) { const signature = comptime getSignature("toSatisfy", "expected", true); - return this.throw(globalThis, signature, "\n\nExpected: not {any}\n", .{predicate.toFmt(&formatter)}); + return this.throw(globalThis, signature, "\n\nExpected: not {f}\n", .{predicate.toFmt(&formatter)}); } const signature = comptime getSignature("toSatisfy", "expected", false); - return this.throw(globalThis, signature, "\n\nExpected: {any}\nReceived: {any}\n", .{ + return this.throw(globalThis, signature, "\n\nExpected: {f}\nReceived: {f}\n", .{ predicate.toFmt(&formatter), value.toFmt(&formatter), }); diff --git a/src/bun.js/test/expect/toStartWith.zig b/src/bun.js/test/expect/toStartWith.zig index a457aa6507..ddf7144341 100644 --- a/src/bun.js/test/expect/toStartWith.zig +++ b/src/bun.js/test/expect/toStartWith.zig @@ -40,14 +40,14 @@ pub fn toStartWith(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallF const expected_fmt = expected.toFmt(&formatter); if (not) { - const expected_line = "Expected to not start with: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to not start with: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toStartWith", "expected", true); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } - const expected_line = "Expected to start with: {any}\n"; - const received_line = "Received: {any}\n"; + const expected_line = "Expected to start with: {f}\n"; + const received_line = "Received: {f}\n"; const signature = comptime getSignature("toStartWith", "expected", false); return this.throw(globalThis, signature, "\n\n" ++ expected_line ++ received_line, .{ expected_fmt, value_fmt }); } diff --git a/src/bun.js/test/expect/toStrictEqual.zig b/src/bun.js/test/expect/toStrictEqual.zig index b74813fe90..47414be477 100644 --- a/src/bun.js/test/expect/toStrictEqual.zig +++ b/src/bun.js/test/expect/toStrictEqual.zig @@ -25,11 +25,11 @@ pub fn toStrictEqual(this: *Expect, globalThis: *JSGlobalObject, callFrame: *Cal if (not) { const signature = comptime getSignature("toStrictEqual", "expected", true); - return this.throw(globalThis, signature, "\n\n{any}\n", .{diff_formatter}); + return this.throw(globalThis, signature, "\n\n{f}\n", .{diff_formatter}); } const signature = comptime getSignature("toStrictEqual", "expected", false); - return this.throw(globalThis, signature, "\n\n{any}\n", .{diff_formatter}); + return this.throw(globalThis, signature, "\n\n{f}\n", .{diff_formatter}); } const bun = @import("bun"); diff --git a/src/bun.js/test/expect/toThrow.zig b/src/bun.js/test/expect/toThrow.zig index 0fd4e1f28c..a7938f2052 100644 --- a/src/bun.js/test/expect/toThrow.zig +++ b/src/bun.js/test/expect/toThrow.zig @@ -13,7 +13,7 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame const value = arguments[0]; if (value.isUndefinedOrNull() or !value.isObject() and !value.isString()) { var fmt = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; - return globalThis.throw("Expected value must be string or Error: {any}", .{value.toFmt(&fmt)}); + return globalThis.throw("Expected value must be string or Error: {f}", .{value.toFmt(&fmt)}); } if (value.isObject()) { if (ExpectAny.fromJSDirect(value)) |_| { @@ -50,7 +50,7 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame if (result.toError()) |err| { const name: JSValue = try err.getTruthyComptime(globalThis, "name") orelse .js_undefined; const message: JSValue = try err.getTruthyComptime(globalThis, "message") orelse .js_undefined; - const fmt = signature_no_args ++ "\n\nError name: {any}\nError message: {any}\n"; + const fmt = signature_no_args ++ "\n\nError name: {f}\nError message: {f}\n"; return globalThis.throwPretty(fmt, .{ name.toFmt(&formatter), message.toFmt(&formatter), @@ -58,7 +58,7 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame } // non error thrown - const fmt = signature_no_args ++ "\n\nThrown value: {any}\n"; + const fmt = signature_no_args ++ "\n\nThrown value: {f}\n"; return globalThis.throwPretty(fmt, .{result.toFmt(&formatter)}); } @@ -79,7 +79,7 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame if (!strings.contains(received_slice.slice(), expected_slice.slice())) return .js_undefined; } - return this.throw(globalThis, signature, "\n\nExpected substring: not {any}\nReceived message: {any}\n", .{ + return this.throw(globalThis, signature, "\n\nExpected substring: not {f}\nReceived message: {f}\n", .{ expected_value.toFmt(&formatter), received_message.toFmt(&formatter), }); @@ -98,7 +98,7 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame if (!matches.toBoolean()) return .js_undefined; } - return this.throw(globalThis, signature, "\n\nExpected pattern: not {any}\nReceived message: {any}\n", .{ + return this.throw(globalThis, signature, "\n\nExpected pattern: not {f}\nReceived message: {f}\n", .{ expected_value.toFmt(&formatter), received_message.toFmt(&formatter), }); @@ -114,7 +114,7 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame // no partial match for this case if (!try expected_message.isSameValue(received_message, globalThis)) return .js_undefined; - return this.throw(globalThis, signature, "\n\nExpected message: not {any}\n", .{expected_message.toFmt(&formatter)}); + return this.throw(globalThis, signature, "\n\nExpected message: not {f}\n", .{expected_message.toFmt(&formatter)}); } if (!result.isInstanceOf(globalThis, expected_value)) return .js_undefined; @@ -122,7 +122,7 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame var expected_class = ZigString.Empty; try expected_value.getClassName(globalThis, &expected_class); const received_message: JSValue = (try result.fastGet(globalThis, .message)) orelse .js_undefined; - return this.throw(globalThis, signature, "\n\nExpected constructor: not {s}\n\nReceived message: {any}\n", .{ expected_class, received_message.toFmt(&formatter) }); + return this.throw(globalThis, signature, "\n\nExpected constructor: not {f}\n\nReceived message: {f}\n", .{ expected_class, received_message.toFmt(&formatter) }); } if (did_throw) { @@ -158,12 +158,12 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame if (_received_message) |received_message| { const expected_value_fmt = expected_value.toFmt(&formatter); const received_message_fmt = received_message.toFmt(&formatter); - return this.throw(globalThis, signature, "\n\n" ++ "Expected substring: {any}\nReceived message: {any}\n", .{ expected_value_fmt, received_message_fmt }); + return this.throw(globalThis, signature, "\n\n" ++ "Expected substring: {f}\nReceived message: {f}\n", .{ expected_value_fmt, received_message_fmt }); } const expected_fmt = expected_value.toFmt(&formatter); const received_fmt = result.toFmt(&formatter); - return this.throw(globalThis, signature, "\n\n" ++ "Expected substring: {any}\nReceived value: {any}", .{ expected_fmt, received_fmt }); + return this.throw(globalThis, signature, "\n\n" ++ "Expected substring: {f}\nReceived value: {f}", .{ expected_fmt, received_fmt }); } if (expected_value.isRegExp()) { @@ -184,13 +184,13 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame const received_message_fmt = received_message.toFmt(&formatter); const signature = comptime getSignature("toThrow", "expected", false); - return this.throw(globalThis, signature, "\n\n" ++ "Expected pattern: {any}\nReceived message: {any}\n", .{ expected_value_fmt, received_message_fmt }); + return this.throw(globalThis, signature, "\n\n" ++ "Expected pattern: {f}\nReceived message: {f}\n", .{ expected_value_fmt, received_message_fmt }); } const expected_fmt = expected_value.toFmt(&formatter); const received_fmt = result.toFmt(&formatter); const signature = comptime getSignature("toThrow", "expected", false); - return this.throw(globalThis, signature, "\n\n" ++ "Expected pattern: {any}\nReceived value: {any}", .{ expected_fmt, received_fmt }); + return this.throw(globalThis, signature, "\n\n" ++ "Expected pattern: {f}\nReceived value: {f}", .{ expected_fmt, received_fmt }); } if (Expect.isAsymmetricMatcher(expected_value)) { @@ -209,7 +209,7 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame defer formatter.deinit(); const received_fmt = result.toFmt(&formatter); const expected_fmt = expected_value.toFmt(&formatter); - return this.throw(globalThis, signature, "\n\nExpected value: {any}\nReceived value: {any}\n", .{ expected_fmt, received_fmt }); + return this.throw(globalThis, signature, "\n\nExpected value: {f}\nReceived value: {f}\n", .{ expected_fmt, received_fmt }); } // If it's not an object, we are going to crash here. @@ -229,12 +229,12 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame if (_received_message) |received_message| { const expected_fmt = expected_message.toFmt(&formatter); const received_fmt = received_message.toFmt(&formatter); - return this.throw(globalThis, signature, "\n\nExpected message: {any}\nReceived message: {any}\n", .{ expected_fmt, received_fmt }); + return this.throw(globalThis, signature, "\n\nExpected message: {f}\nReceived message: {f}\n", .{ expected_fmt, received_fmt }); } const expected_fmt = expected_message.toFmt(&formatter); const received_fmt = result.toFmt(&formatter); - return this.throw(globalThis, signature, "\n\nExpected message: {any}\nReceived value: {any}\n", .{ expected_fmt, received_fmt }); + return this.throw(globalThis, signature, "\n\nExpected message: {f}\nReceived value: {f}\n", .{ expected_fmt, received_fmt }); } if (result.isInstanceOf(globalThis, expected_value)) return .js_undefined; @@ -247,10 +247,10 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame try expected_value.getClassName(globalThis, &expected_class); try result.getClassName(globalThis, &received_class); const signature = comptime getSignature("toThrow", "expected", false); - const fmt = signature ++ "\n\nExpected constructor: {s}\nReceived constructor: {s}\n\n"; + const fmt = signature ++ "\n\nExpected constructor: {f}\nReceived constructor: {f}\n\n"; if (_received_message) |received_message| { - const message_fmt = fmt ++ "Received message: {any}\n"; + const message_fmt = fmt ++ "Received message: {f}\n"; const received_message_fmt = received_message.toFmt(&formatter); return globalThis.throwPretty(message_fmt, .{ @@ -261,7 +261,7 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame } const received_fmt = result.toFmt(&formatter); - const value_fmt = fmt ++ "Received value: {any}\n"; + const value_fmt = fmt ++ "Received value: {f}\n"; return globalThis.throwPretty(value_fmt, .{ expected_class, @@ -274,7 +274,7 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame const result = return_value_from_function; var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - const received_line = "Received function did not throw\nReceived value: {any}\n"; + const received_line = "Received function did not throw\nReceived value: {f}\n"; if (expected_value == .zero or expected_value.isUndefined()) { const signature = comptime getSignature("toThrow", "", false); @@ -284,21 +284,21 @@ pub fn toThrow(this: *Expect, globalThis: *JSGlobalObject, callFrame: *CallFrame const signature = comptime getSignature("toThrow", "expected", false); if (expected_value.isString()) { - const expected_fmt = "\n\nExpected substring: {any}\n\n" ++ received_line; + const expected_fmt = "\n\nExpected substring: {f}\n\n" ++ received_line; return this.throw(globalThis, signature, expected_fmt, .{ expected_value.toFmt(&formatter), result.toFmt(&formatter) }); } if (expected_value.isRegExp()) { - const expected_fmt = "\n\nExpected pattern: {any}\n\n" ++ received_line; + const expected_fmt = "\n\nExpected pattern: {f}\n\n" ++ received_line; return this.throw(globalThis, signature, expected_fmt, .{ expected_value.toFmt(&formatter), result.toFmt(&formatter) }); } if (try expected_value.fastGet(globalThis, .message)) |expected_message| { - const expected_fmt = "\n\nExpected message: {any}\n\n" ++ received_line; + const expected_fmt = "\n\nExpected message: {f}\n\n" ++ received_line; return this.throw(globalThis, signature, expected_fmt, .{ expected_message.toFmt(&formatter), result.toFmt(&formatter) }); } - const expected_fmt = "\n\nExpected constructor: {s}\n\n" ++ received_line; + const expected_fmt = "\n\nExpected constructor: {f}\n\n" ++ received_line; var expected_class = ZigString.Empty; try expected_value.getClassName(globalThis, &expected_class); return this.throw(globalThis, signature, expected_fmt, .{ expected_class, result.toFmt(&formatter) }); diff --git a/src/bun.js/test/jest.zig b/src/bun.js/test/jest.zig index cc9bec138c..182bf6ed1e 100644 --- a/src/bun.js/test/jest.zig +++ b/src/bun.js/test/jest.zig @@ -174,7 +174,7 @@ pub const TestRunner = struct { pub const Jest = struct { pub var runner: ?*TestRunner = null; - pub fn Bun__Jest__createTestModuleObject(globalObject: *JSGlobalObject) callconv(.C) JSValue { + pub fn Bun__Jest__createTestModuleObject(globalObject: *JSGlobalObject) callconv(.c) JSValue { return createTestModule(globalObject) catch return .zero; } @@ -363,7 +363,7 @@ fn consumeArg( should_write: bool, str_idx: *usize, args_idx: *usize, - array_list: *std.ArrayList(u8), + array_list: *std.array_list.Managed(u8), arg: *const JSValue, fallback: []const u8, ) !void { @@ -382,7 +382,7 @@ fn consumeArg( pub fn formatLabel(globalThis: *JSGlobalObject, label: string, function_args: []const jsc.JSValue, test_idx: usize, allocator: std.mem.Allocator) !string { var idx: usize = 0; var args_idx: usize = 0; - var list = bun.handleOom(std.ArrayList(u8).initCapacity(allocator, label.len)); + var list = bun.handleOom(std.array_list.Managed(u8).initCapacity(allocator, label.len)); defer list.deinit(); while (idx < label.len) { @@ -422,7 +422,7 @@ pub fn formatLabel(globalThis: *JSGlobalObject, label: string, function_args: [] } else { var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); - bun.handleOom(list.writer().print("{}", .{value.toFmt(&formatter)})); + bun.handleOom(list.writer().print("{f}", .{value.toFmt(&formatter)})); } idx = var_end; continue; @@ -466,7 +466,7 @@ pub fn formatLabel(globalThis: *JSGlobalObject, label: string, function_args: [] var formatter = jsc.ConsoleObject.Formatter{ .globalThis = globalThis, .quote_strings = true }; defer formatter.deinit(); const value_fmt = current_arg.toFmt(&formatter); - bun.handleOom(list.writer().print("{}", .{value_fmt})); + bun.handleOom(list.writer().print("{f}", .{value_fmt})); idx += 1; args_idx += 1; }, diff --git a/src/bun.js/test/pretty_format.zig b/src/bun.js/test/pretty_format.zig index 1441c20749..5b0860cc13 100644 --- a/src/bun.js/test/pretty_format.zig +++ b/src/bun.js/test/pretty_format.zig @@ -72,9 +72,7 @@ pub const JestPrettyFormat = struct { global: *JSGlobalObject, vals: [*]const JSValue, len: usize, - comptime RawWriter: type, - comptime Writer: type, - writer: Writer, + writer: *std.Io.Writer, options: FormatOptions, ) bun.JSError!void { var fmt: JestPrettyFormat.Formatter = undefined; @@ -94,48 +92,41 @@ pub const JestPrettyFormat = struct { }; const tag = try JestPrettyFormat.Formatter.Tag.get(vals[0], global); - var unbuffered_writer = if (comptime Writer != RawWriter) - writer.context.unbuffered_writer.context.writer() - else - writer; - if (tag.tag == .String) { if (options.enable_colors) { if (level == .Error) { - unbuffered_writer.writeAll(comptime Output.prettyFmt("", true)) catch unreachable; + writer.writeAll(comptime Output.prettyFmt("", true)) catch unreachable; } try fmt.format( tag, - @TypeOf(unbuffered_writer), - unbuffered_writer, + @TypeOf(writer), + writer, vals[0], global, true, ); if (level == .Error) { - unbuffered_writer.writeAll(comptime Output.prettyFmt("", true)) catch unreachable; + writer.writeAll(comptime Output.prettyFmt("", true)) catch unreachable; } } else { try fmt.format( tag, - @TypeOf(unbuffered_writer), - unbuffered_writer, + @TypeOf(writer), + writer, vals[0], global, false, ); } - if (options.add_newline) _ = unbuffered_writer.write("\n") catch 0; + if (options.add_newline) writer.writeAll("\n") catch {}; } else { defer { - if (comptime Writer != RawWriter) { - if (options.flush) writer.context.flush() catch {}; - } + if (options.flush) writer.flush() catch {}; } if (options.enable_colors) { try fmt.format( tag, - Writer, + *std.Io.Writer, writer, vals[0], global, @@ -144,7 +135,7 @@ pub const JestPrettyFormat = struct { } else { try fmt.format( tag, - Writer, + *std.Io.Writer, writer, vals[0], global, @@ -154,13 +145,13 @@ pub const JestPrettyFormat = struct { if (options.add_newline) _ = writer.write("\n") catch 0; } + writer.flush() catch {}; + return; } defer { - if (comptime Writer != RawWriter) { - if (options.flush) writer.context.flush() catch {}; - } + if (options.flush) writer.flush() catch {}; } var this_value: JSValue = vals[0]; @@ -187,7 +178,7 @@ pub const JestPrettyFormat = struct { tag.tag = .StringPossiblyFormatted; } - try fmt.format(tag, Writer, writer, this_value, global, true); + try fmt.format(tag, *std.Io.Writer, writer, this_value, global, true); if (fmt.remaining_values.len == 0) { break; } @@ -209,7 +200,7 @@ pub const JestPrettyFormat = struct { tag.tag = .StringPossiblyFormatted; } - try fmt.format(tag, Writer, writer, this_value, global, false); + try fmt.format(tag, *std.Io.Writer, writer, this_value, global, false); if (fmt.remaining_values.len == 0) break; @@ -255,7 +246,7 @@ pub const JestPrettyFormat = struct { value: JSValue, pub const WriteError = error{UhOh}; - pub fn format(self: ZigFormatter, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: ZigFormatter, writer: *std.Io.Writer) !void { self.formatter.remaining_values = &[_]JSValue{self.value}; defer { self.formatter.remaining_values = &[_]JSValue{}; @@ -624,7 +615,7 @@ pub const JestPrettyFormat = struct { } pub inline fn writeString(self: *@This(), str: ZigString) void { - self.print("{}", .{str}); + self.print("{f}", .{str}); } pub inline fn write16Bit(self: *@This(), input: []const u16) void { @@ -659,7 +650,7 @@ pub const JestPrettyFormat = struct { return struct { formatter: *JestPrettyFormat.Formatter, writer: Writer, - pub fn forEach(_: *jsc.VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.C) void { + pub fn forEach(_: *jsc.VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.c) void { var this: *@This() = bun.cast(*@This(), ctx orelse return); if (this.formatter.failed) return; const key = jsc.JSObject.getIndex(nextValue, globalObject, 0) catch return; @@ -695,7 +686,7 @@ pub const JestPrettyFormat = struct { return struct { formatter: *JestPrettyFormat.Formatter, writer: Writer, - pub fn forEach(_: *jsc.VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.C) void { + pub fn forEach(_: *jsc.VM, globalObject: *JSGlobalObject, ctx: ?*anyopaque, nextValue: JSValue) callconv(.c) void { var this: *@This() = bun.cast(*@This(), ctx orelse return); if (this.formatter.failed) return; this.formatter.writeIndent(Writer, this.writer) catch return; @@ -732,11 +723,11 @@ pub const JestPrettyFormat = struct { try value.getNameProperty(globalThis, &name_str); if (name_str.len > 0 and !name_str.eqlComptime("Object")) { - writer.print("{} ", .{name_str}); + writer.print("{f} ", .{name_str}); } else { try value.getPrototype(globalThis).getNameProperty(globalThis, &name_str); if (name_str.len > 0 and !name_str.eqlComptime("Object")) { - writer.print("{} ", .{name_str}); + writer.print("{f} ", .{name_str}); } } } @@ -748,7 +739,7 @@ pub const JestPrettyFormat = struct { var classname = ZigString.Empty; try value.getClassName(globalThis, &classname); if (!classname.isEmpty() and !classname.eqlComptime("Object")) { - this.writer.print("{} ", .{classname}) catch {}; + this.writer.print("{f} ", .{classname}) catch {}; } this.writer.writeAll("{\n") catch {}; @@ -763,7 +754,7 @@ pub const JestPrettyFormat = struct { value: JSValue, is_symbol: bool, is_private_symbol: bool, - ) callconv(.C) void { + ) callconv(.c) void { if (is_private_symbol) return; const key = key_.?[0]; @@ -807,14 +798,14 @@ pub const JestPrettyFormat = struct { this.addForNewLine(key.len + 2); writer.print( - comptime Output.prettyFmt("\"{}\": ", enable_ansi_colors), + comptime Output.prettyFmt("\"{f}\": ", enable_ansi_colors), .{key}, ); } else if (key.is16Bit() and JSLexer.isLatin1Identifier(@TypeOf(key.utf16SliceAligned()), key.utf16SliceAligned())) { this.addForNewLine(key.len + 2); writer.print( - comptime Output.prettyFmt("\"{}\": ", enable_ansi_colors), + comptime Output.prettyFmt("\"{f}\": ", enable_ansi_colors), .{key}, ); } else if (key.is16Bit()) { @@ -836,14 +827,14 @@ pub const JestPrettyFormat = struct { this.addForNewLine(key.len + 2); writer.print( - comptime Output.prettyFmt("{s}: ", enable_ansi_colors), + comptime Output.prettyFmt("{f}: ", enable_ansi_colors), .{bun.fmt.formatJSONStringLatin1(key.slice())}, ); } } else { this.addForNewLine(1 + "[Symbol()]:".len + key.len); writer.print( - comptime Output.prettyFmt("[Symbol({any})]: ", enable_ansi_colors), + comptime Output.prettyFmt("[Symbol({f})]: ", enable_ansi_colors), .{ key, }, @@ -871,7 +862,7 @@ pub const JestPrettyFormat = struct { this: *JestPrettyFormat.Formatter, comptime Format: JestPrettyFormat.Formatter.Tag, comptime Writer: type, - writer_: Writer, + writer_: *std.Io.Writer, value: JSValue, jsType: JSValue.JSType, comptime enable_ansi_colors: bool, @@ -965,14 +956,14 @@ pub const JestPrettyFormat = struct { while (remaining.indexOfAny("\\\r")) |i| { switch (remaining.charAt(i)) { '\\' => { - writer.print("{}\\", .{remaining.substringWithLen(0, i)}); + writer.print("{f}\\", .{remaining.substringWithLen(0, i)}); remaining = remaining.substring(i + 1); }, '\r' => { if (i + 1 < remaining.len and remaining.charAt(i + 1) == '\n') { - writer.print("{}", .{remaining.substringWithLen(0, i)}); + writer.print("{f}", .{remaining.substringWithLen(0, i)}); } else { - writer.print("{}\n", .{remaining.substringWithLen(0, i)}); + writer.print("{f}\n", .{remaining.substringWithLen(0, i)}); } remaining = remaining.substring(i + 1); @@ -993,7 +984,7 @@ pub const JestPrettyFormat = struct { if (str.is16Bit()) { // streaming print - writer.print("{}", .{str}); + writer.print("{f}", .{str}); } else if (strings.isAllASCII(str.slice())) { // fast path writer.writeAll(str.slice()); @@ -1070,7 +1061,7 @@ pub const JestPrettyFormat = struct { if (description.len > 0) { this.addForNewLine(description.len + "()".len); - writer.print(comptime Output.prettyFmt("Symbol({any})", enable_ansi_colors), .{description}); + writer.print(comptime Output.prettyFmt("Symbol({f})", enable_ansi_colors), .{description}); } else { writer.print(comptime Output.prettyFmt("Symbol", enable_ansi_colors), .{}); } @@ -1086,10 +1077,10 @@ pub const JestPrettyFormat = struct { } if (message_string.isEmpty()) { - writer.print("[{s}]", .{classname}); + writer.print("[{f}]", .{classname}); return; } - writer.print("[{s}: {s}]", .{ classname, message_string }); + writer.print("[{f}: {f}]", .{ classname, message_string }); return; }, .Class => { @@ -1100,7 +1091,7 @@ pub const JestPrettyFormat = struct { if (printable.len == 0) { writer.print(comptime Output.prettyFmt("[class]", enable_ansi_colors), .{}); } else { - writer.print(comptime Output.prettyFmt("[class {}]", enable_ansi_colors), .{printable}); + writer.print(comptime Output.prettyFmt("[class {f}]", enable_ansi_colors), .{printable}); } }, .Function => { @@ -1110,7 +1101,7 @@ pub const JestPrettyFormat = struct { if (printable.len == 0) { writer.print(comptime Output.prettyFmt("[Function]", enable_ansi_colors), .{}); } else { - writer.print(comptime Output.prettyFmt("[Function: {}]", enable_ansi_colors), .{printable}); + writer.print(comptime Output.prettyFmt("[Function: {f}]", enable_ansi_colors), .{printable}); } }, .Array => { @@ -1384,7 +1375,7 @@ pub const JestPrettyFormat = struct { if (jsType == .JSDate) { // in the code for printing dates, it never exceeds this amount var iso_string_buf: [36]u8 = undefined; - var out_buf: []const u8 = std.fmt.bufPrint(&iso_string_buf, "{}", .{str}) catch ""; + var out_buf: []const u8 = std.fmt.bufPrint(&iso_string_buf, "{f}", .{str}) catch ""; if (out_buf.len > 2) { // trim the quotes out_buf = out_buf[1 .. out_buf.len - 1]; @@ -1394,7 +1385,7 @@ pub const JestPrettyFormat = struct { return; } - writer.print("{}", .{str}); + writer.print("{f}", .{str}); }, .Event => { const event_type_value: JSValue = brk: { @@ -1578,7 +1569,7 @@ pub const JestPrettyFormat = struct { needs_space = false; writer.print( - comptime Output.prettyFmt("{s}=", enable_ansi_colors), + comptime Output.prettyFmt("{f}=", enable_ansi_colors), .{prop.trunc(128)}, ); @@ -1748,7 +1739,7 @@ pub const JestPrettyFormat = struct { try value.getClassName(this.globalThis, &object_name); if (!object_name.eqlComptime("Object")) { - writer.print("{s} {{}}", .{object_name}); + writer.print("{f} {{}}", .{object_name}); } else { // don't write "Object" writer.writeAll("{}"); @@ -1959,7 +1950,7 @@ pub const JestPrettyFormat = struct { } } - pub fn format(this: *JestPrettyFormat.Formatter, result: Tag.Result, comptime Writer: type, writer: Writer, value: JSValue, globalThis: *JSGlobalObject, comptime enable_ansi_colors: bool) bun.JSError!void { + pub fn format(this: *JestPrettyFormat.Formatter, result: Tag.Result, comptime Writer: type, writer: *std.Io.Writer, value: JSValue, globalThis: *JSGlobalObject, comptime enable_ansi_colors: bool) bun.JSError!void { const prevGlobalThis = this.globalThis; defer this.globalThis = prevGlobalThis; this.globalThis = globalThis; @@ -2052,7 +2043,7 @@ pub const JestPrettyFormat = struct { var class_name = ZigString.init(&name_buf); try constructor_value.getClassName(this.globalThis, &class_name); this.addForNewLine(class_name.len); - writer.print(comptime Output.prettyFmt("{}", enable_ansi_colors), .{class_name}); + writer.print(comptime Output.prettyFmt("{f}", enable_ansi_colors), .{class_name}); this.addForNewLine(1); writer.writeAll(">"); } else if (value.as(expect.ExpectCloseTo)) |matcher| { @@ -2125,7 +2116,7 @@ pub const JestPrettyFormat = struct { writer.writeAll("not "); } this.addForNewLine(matcher_name.length() + 1); - writer.print("{s}", .{matcher_name}); + writer.print("{f}", .{matcher_name}); writer.writeAll(" "); try this.printAs(.Array, @TypeOf(writer_), writer_, args_value, .Array, enable_ansi_colors); } diff --git a/src/bun.js/test/snapshot.zig b/src/bun.js/test/snapshot.zig index b1939bd5c6..3762c72943 100644 --- a/src/bun.js/test/snapshot.zig +++ b/src/bun.js/test/snapshot.zig @@ -10,12 +10,12 @@ pub const Snapshots = struct { passed: usize = 0, failed: usize = 0, - file_buf: *std.ArrayList(u8), + file_buf: *std.array_list.Managed(u8), values: *ValuesHashMap, counts: *bun.StringHashMap(usize), _current_file: ?File = null, snapshot_dir_path: ?string = null, - inline_snapshots_to_write: *std.AutoArrayHashMap(TestRunner.File.ID, std.ArrayList(InlineSnapshotToWrite)), + inline_snapshots_to_write: *std.AutoArrayHashMap(TestRunner.File.ID, std.array_list.Managed(InlineSnapshotToWrite)), last_error_snapshot_name: ?[]const u8 = null, pub const InlineSnapshotToWrite = struct { @@ -101,7 +101,7 @@ pub const Snapshots = struct { const estimated_length = "\nexports[`".len + name_with_counter.len + "`] = `".len + target_value.len + "`;\n".len; try this.file_buf.ensureUnusedCapacity(estimated_length + 10); try this.file_buf.writer().print( - "\nexports[`{}`] = `{}`;\n", + "\nexports[`{f}`] = `{f}`;\n", .{ strings.formatEscapes(name_with_counter, .{ .quote_char = '`' }), strings.formatEscapes(target_value, .{ .quote_char = '`' }), @@ -213,7 +213,7 @@ pub const Snapshots = struct { pub fn addInlineSnapshotToWrite(self: *Snapshots, file_id: TestRunner.File.ID, value: InlineSnapshotToWrite) !void { const gpres = try self.inline_snapshots_to_write.getOrPut(file_id); if (!gpres.found_existing) { - gpres.value_ptr.* = std.ArrayList(InlineSnapshotToWrite).init(self.allocator); + gpres.value_ptr.* = std.array_list.Managed(InlineSnapshotToWrite).init(self.allocator); } try gpres.value_ptr.append(value); } @@ -261,7 +261,7 @@ pub const Snapshots = struct { const source = &bun.logger.Source.initPathString(test_filename, file_text); - var result_text = std.ArrayList(u8).init(arena); + var result_text = std.array_list.Managed(u8).init(arena); // 3. start looping, finding bytes from line/col @@ -274,7 +274,7 @@ pub const Snapshots = struct { if (ils.line == last_line and ils.col == last_col) { if (!bun.strings.eql(ils.value, last_value)) { const DiffFormatter = @import("./diff_format.zig").DiffFormatter; - try log.addErrorFmt(source, .{ .start = @intCast(uncommitted_segment_end) }, arena, "Failed to update inline snapshot: Multiple inline snapshots on the same line must all have the same value:\n{}", .{DiffFormatter{ + try log.addErrorFmt(source, .{ .start = @intCast(uncommitted_segment_end) }, arena, "Failed to update inline snapshot: Multiple inline snapshots on the same line must all have the same value:\n{f}", .{DiffFormatter{ .received_string = ils.value, .expected_string = last_value, .globalThis = vm.global, @@ -418,7 +418,7 @@ pub const Snapshots = struct { break :D source_until_final_start[line_start..][0..indent_count]; }; - var re_indented_string = std.ArrayList(u8).init(arena); + var re_indented_string = std.array_list.Managed(u8).init(arena); defer re_indented_string.deinit(); const re_indented = if (ils.value.len > 0 and ils.value[0] == '\n') blk: { // append starting newline diff --git a/src/bun.js/uuid.zig b/src/bun.js/uuid.zig index 99a5e71476..60150b1ca1 100644 --- a/src/bun.js/uuid.zig +++ b/src/bun.js/uuid.zig @@ -69,18 +69,12 @@ const hex_to_nibble = [256]u8{ pub fn format( self: UUID, - comptime layout: []const u8, - options: fmt.FormatOptions, - writer: anytype, + writer: *std.Io.Writer, ) !void { - _ = options; // currently unused - - if (comptime layout.len != 0 and layout[0] != 's') - @compileError("Unsupported format specifier for UUID type: '" ++ layout ++ "'."); var buf: [36]u8 = undefined; self.print(&buf); - try fmt.format(writer, "{s}", .{buf}); + try writer.print("{s}", .{buf}); } fn printBytes( @@ -194,13 +188,8 @@ pub const UUID7 = struct { return .{ .bytes = bytes }; } - pub fn format( - self: UUID7, - comptime layout: []const u8, - options: fmt.FormatOptions, - writer: anytype, - ) !void { - return self.toUUID().format(layout, options, writer); + pub fn format(self: UUID7, writer: *std.Io.Writer) !void { + return self.toUUID().format(writer); } }; @@ -272,17 +261,10 @@ pub const UUID5 = struct { return .{ .bytes = bytes }; } - pub fn format( - self: UUID5, - comptime layout: []const u8, - options: fmt.FormatOptions, - writer: anytype, - ) !void { - return self.toUUID().format(layout, options, writer); + pub fn format(self: UUID5, writer: *std.Io.Writer) !void { + return self.toUUID().format(writer); } }; const bun = @import("bun"); - const std = @import("std"); -const fmt = std.fmt; diff --git a/src/bun.js/virtual_machine_exports.zig b/src/bun.js/virtual_machine_exports.zig index c7f01734bc..62e0bd91f1 100644 --- a/src/bun.js/virtual_machine_exports.zig +++ b/src/bun.js/virtual_machine_exports.zig @@ -4,7 +4,7 @@ comptime { } } -pub export fn Bun__VirtualMachine__isShuttingDown(this: *const VirtualMachine) callconv(.C) bool { +pub export fn Bun__VirtualMachine__isShuttingDown(this: *const VirtualMachine) callconv(.c) bool { return this.isShuttingDown(); } @@ -78,7 +78,7 @@ pub export fn Bun__queueTask(global: *JSGlobalObject, task: *jsc.CppTask) void { global.bunVM().eventLoop().enqueueTask(jsc.Task.init(task)); } -pub export fn Bun__reportUnhandledError(globalObject: *JSGlobalObject, value: JSValue) callconv(.C) JSValue { +pub export fn Bun__reportUnhandledError(globalObject: *JSGlobalObject, value: JSValue) callconv(.c) JSValue { jsc.markBinding(@src()); if (!value.isTerminationException()) { @@ -142,7 +142,7 @@ pub export fn Bun__onDidAppendPlugin(jsc_vm: *VirtualMachine, globalObject: *JSG jsc_vm.transpiler.linker.plugin_runner = &jsc_vm.plugin_runner.?; } -pub fn Bun__ZigGlobalObject__uvLoop(jsc_vm: *VirtualMachine) callconv(.C) *bun.windows.libuv.Loop { +pub fn Bun__ZigGlobalObject__uvLoop(jsc_vm: *VirtualMachine) callconv(.c) *bun.windows.libuv.Loop { return jsc_vm.uvLoop(); } diff --git a/src/bun.js/web_worker.zig b/src/bun.js/web_worker.zig index e55395c57c..4fb209e832 100644 --- a/src/bun.js/web_worker.zig +++ b/src/bun.js/web_worker.zig @@ -216,7 +216,7 @@ pub fn create( const preload_modules = if (preload_modules_ptr) |ptr| ptr[0..preload_modules_len] else &.{}; - var preloads = bun.handleOom(std.ArrayList([]const u8).initCapacity(bun.default_allocator, preload_modules_len)); + var preloads = bun.handleOom(std.array_list.Managed([]const u8).initCapacity(bun.default_allocator, preload_modules_len)); for (preload_modules) |module| { const utf8_slice = module.toUTF8(bun.default_allocator); defer utf8_slice.deinit(); @@ -245,7 +245,7 @@ pub fn create( .store_fd = parent.transpiler.resolver.store_fd, .name = brk: { if (!name_str.isEmpty()) { - break :brk bun.handleOom(std.fmt.allocPrintZ(bun.default_allocator, "{}", .{name_str})); + break :brk bun.handleOom(std.fmt.allocPrintSentinel(bun.default_allocator, "{f}", .{name_str}, 0)); } break :brk ""; }, @@ -290,7 +290,7 @@ pub fn start( var transform_options = this.parent.transpiler.options.transform_options; if (this.execArgv) |exec_argv| parse_new_args: { - var new_args: std.ArrayList([]const u8) = try .initCapacity(bun.default_allocator, exec_argv.len); + var new_args: std.array_list.Managed([]const u8) = try .initCapacity(bun.default_allocator, exec_argv.len); defer { for (new_args.items) |arg| { bun.default_allocator.free(arg); @@ -403,15 +403,12 @@ fn onUnhandledRejection(vm: *jsc.VirtualMachine, globalObject: *jsc.JSGlobalObje var error_instance = error_instance_or_exception.toError() orelse error_instance_or_exception; - var array = bun.MutableString.init(bun.default_allocator, 0) catch unreachable; + var array = std.Io.Writer.Allocating.init(bun.default_allocator); defer array.deinit(); - var buffered_writer_ = bun.MutableString.BufferedWriter{ .context = &array }; - var buffered_writer = &buffered_writer_; var worker = vm.worker orelse @panic("Assertion failure: no worker"); - const writer = buffered_writer.writer(); - const Writer = @TypeOf(writer); + const writer = &array.writer; // we buffer this because it'll almost always be < 4096 // when it's under 4096, we want to avoid the dynamic allocation jsc.ConsoleObject.format2( @@ -419,8 +416,6 @@ fn onUnhandledRejection(vm: *jsc.VirtualMachine, globalObject: *jsc.JSGlobalObje globalObject, &[_]jsc.JSValue{error_instance}, 1, - Writer, - Writer, writer, .{ .enable_colors = false, @@ -436,11 +431,11 @@ fn onUnhandledRejection(vm: *jsc.VirtualMachine, globalObject: *jsc.JSGlobalObje } error_instance = globalObject.tryTakeException().?; }; - buffered_writer.flush() catch { + writer.flush() catch { bun.outOfMemory(); }; jsc.markBinding(@src()); - WebWorker__dispatchError(globalObject, worker.cpp_worker, bun.String.cloneUTF8(array.slice()), error_instance); + WebWorker__dispatchError(globalObject, worker.cpp_worker, bun.String.cloneUTF8(array.written()), error_instance); if (vm.worker) |worker_| { _ = worker.setRequestedTerminate(); worker.parent_poll_ref.unrefConcurrently(worker.parent); diff --git a/src/bun.js/webcore.zig b/src/bun.js/webcore.zig index bea5fab903..8dbf4a02e4 100644 --- a/src/bun.js/webcore.zig +++ b/src/bun.js/webcore.zig @@ -101,7 +101,7 @@ pub const Pipe = struct { pub const DrainResult = union(enum) { owned: struct { - list: std.ArrayList(u8), + list: std.array_list.Managed(u8), size_hint: usize, }, estimated_size: usize, diff --git a/src/bun.js/webcore/Blob.zig b/src/bun.js/webcore/Blob.zig index 173d9df9fb..c224f9a559 100644 --- a/src/bun.js/webcore/Blob.zig +++ b/src/bun.js/webcore/Blob.zig @@ -350,7 +350,7 @@ pub fn onStructuredCloneSerialize( ) void { _ = globalThis; - const Writer = std.io.Writer(StructuredCloneWriter, StructuredCloneWriter.WriteError, StructuredCloneWriter.write); + const Writer = std.Io.GenericWriter(StructuredCloneWriter, StructuredCloneWriter.WriteError, StructuredCloneWriter.write); const writer = Writer{ .context = .{ .ctx = ctx, @@ -365,7 +365,7 @@ pub fn onStructuredCloneTransfer( this: *Blob, globalThis: *jsc.JSGlobalObject, ctx: *anyopaque, - write: *const fn (*anyopaque, ptr: [*]const u8, len: usize) callconv(.C) void, + write: *const fn (*anyopaque, ptr: [*]const u8, len: usize) callconv(.c) void, ) void { _ = write; _ = ctx; @@ -388,8 +388,14 @@ fn readFloat( comptime Reader: type, reader: Reader, ) !FloatType { - const bytes = try reader.readBoundedBytes(@sizeOf(FloatType)); - return @bitCast(bytes.slice()[0..@sizeOf(FloatType)].*); + var bytes_buf: [@sizeOf(FloatType)]u8 = undefined; + if (Reader == *std.Io.Reader) { + try reader.readSliceAll(&bytes_buf); + } else { + const len = try reader.readAll(&bytes_buf); + if (len < @sizeOf(FloatType)) return error.EndOfStream; + } + return @bitCast(bytes_buf); } fn readSlice( @@ -578,8 +584,7 @@ pub fn fromDOMFormData( var hex_buf: [70]u8 = undefined; const boundary = brk: { var random = globalThis.bunVM().rareData().nextUUID().bytes; - const formatter = std.fmt.fmtSliceHexLower(&random); - break :brk std.fmt.bufPrint(&hex_buf, "-WebkitFormBoundary{any}", .{formatter}) catch unreachable; + break :brk std.fmt.bufPrint(&hex_buf, "-WebkitFormBoundary{x}", .{&random}) catch unreachable; }; var context = FormDataContext{ @@ -638,7 +643,7 @@ export fn Blob__dupe(this: *Blob) *Blob { return new(this.dupeWithContentType(true)); } -export fn Blob__getFileNameString(this: *Blob) callconv(.C) bun.String { +export fn Blob__getFileNameString(this: *Blob) callconv(.c) bun.String { if (this.getFileName()) |filename| { return bun.String.fromBytes(filename); } @@ -660,7 +665,7 @@ pub fn writeFormatForSize(is_jdom_file: bool, size: usize, writer: anytype, comp try writer.writeAll(comptime Output.prettyFmt("Blob", enable_ansi_colors)); } try writer.print( - comptime Output.prettyFmt(" ({any})", enable_ansi_colors), + comptime Output.prettyFmt(" ({f})", enable_ansi_colors), .{ bun.fmt.size(size, .{}), }, @@ -739,7 +744,7 @@ pub fn writeFormat(this: *Blob, comptime Formatter: type, formatter: *Formatter, try formatter.writeIndent(Writer, writer); try writer.print( - comptime Output.prettyFmt("name: \"{}\"", enable_ansi_colors), + comptime Output.prettyFmt("name: \"{f}\"", enable_ansi_colors), .{ this.getNameString() orelse bun.String.empty, }, @@ -3022,24 +3027,24 @@ pub fn getSizeForBindings(this: *Blob) u64 { return this.size; } -export fn Bun__Blob__getSizeForBindings(this: *Blob) callconv(.C) u64 { +export fn Bun__Blob__getSizeForBindings(this: *Blob) callconv(.c) u64 { return this.getSizeForBindings(); } -export fn Blob__getDataPtr(value: jsc.JSValue) callconv(.C) ?*anyopaque { +export fn Blob__getDataPtr(value: jsc.JSValue) callconv(.c) ?*anyopaque { const blob = Blob.fromJS(value) orelse return null; const data = blob.sharedView(); if (data.len == 0) return null; return @constCast(data.ptr); } -export fn Blob__getSize(value: jsc.JSValue) callconv(.C) usize { +export fn Blob__getSize(value: jsc.JSValue) callconv(.c) usize { const blob = Blob.fromJS(value) orelse return 0; const data = blob.sharedView(); return data.len; } -export fn Blob__fromBytes(globalThis: *jsc.JSGlobalObject, ptr: ?[*]const u8, len: usize) callconv(.C) *Blob { +export fn Blob__fromBytes(globalThis: *jsc.JSGlobalObject, ptr: ?[*]const u8, len: usize) callconv(.c) *Blob { if (ptr == null or len == 0) { const blob = new(initEmpty(globalThis)); return blob; @@ -3875,7 +3880,7 @@ fn fromJSWithoutDeferGC( var stack_allocator = std.heap.stackFallback(1024, bun.default_allocator); const stack_mem_all = stack_allocator.get(); - var stack: std.ArrayList(JSValue) = std.ArrayList(JSValue).init(stack_mem_all); + var stack: std.array_list.Managed(JSValue) = std.array_list.Managed(JSValue).init(stack_mem_all); var joiner = StringJoiner{ .allocator = stack_mem_all }; var could_have_non_ascii = false; @@ -4027,7 +4032,7 @@ pub const Any = union(enum) { return .{ .InternalBlob = .{ .bytes = .fromOwnedSlice(allocator, bytes) } }; } - pub fn fromArrayList(list: std.ArrayList(u8)) Any { + pub fn fromArrayList(list: std.array_list.Managed(u8)) Any { return .{ .InternalBlob = .{ .bytes = list } }; } @@ -4379,7 +4384,7 @@ pub const Any = union(enum) { /// A single-use Blob backed by an allocation of memory. pub const Internal = struct { - bytes: std.ArrayList(u8), + bytes: std.array_list.Managed(u8), was_string: bool = false, pub fn memoryCost(this: *const @This()) usize { @@ -4574,8 +4579,8 @@ pub fn FileOpener(comptime This: type) type { if (Environment.isWindows) { const WrappedCallback = struct { - pub fn callback(req: *libuv.fs_t) callconv(.C) void { - var self: *This = @alignCast(@ptrCast(req.data.?)); + pub fn callback(req: *libuv.fs_t) callconv(.c) void { + var self: *This = @ptrCast(@alignCast(req.data.?)); { defer req.deinit(); if (req.result.errEnum()) |errEnum| { diff --git a/src/bun.js/webcore/Body.zig b/src/bun.js/webcore/Body.zig index b029738622..e949b1fcfb 100644 --- a/src/bun.js/webcore/Body.zig +++ b/src/bun.js/webcore/Body.zig @@ -336,7 +336,7 @@ pub const Value = union(Tag) { defer str.deref(); this.* = .{ .InternalBlob = InternalBlob{ - .bytes = std.ArrayList(u8).fromOwnedSlice(bun.default_allocator, @constCast(bytes.slice())), + .bytes = std.array_list.Managed(u8).fromOwnedSlice(bun.default_allocator, @constCast(bytes.slice())), .was_string = true, }, }; @@ -413,7 +413,7 @@ pub const Value = union(Tag) { return Value{ .InternalBlob = InternalBlob{ - .bytes = std.ArrayList(u8).fromOwnedSlice(allocator, data), + .bytes = std.array_list.Managed(u8).fromOwnedSlice(allocator, data), .was_string = was_string, }, }; @@ -553,7 +553,7 @@ pub const Value = union(Tag) { return Body.Value{ .InternalBlob = .{ - .bytes = std.ArrayList(u8){ + .bytes = std.array_list.Managed(u8){ .items = bun.default_allocator.dupe(u8, bytes) catch { return globalThis.throwValue(ZigString.static("Failed to clone ArrayBufferView").toErrorInstance(globalThis)); }, @@ -834,7 +834,7 @@ pub const Value = union(Tag) { defer str.deref(); break :brk .{ .InternalBlob = InternalBlob{ - .bytes = std.ArrayList(u8).fromOwnedSlice(bun.default_allocator, @constCast(utf8.slice())), + .bytes = std.array_list.Managed(u8).fromOwnedSlice(bun.default_allocator, @constCast(utf8.slice())), .was_string = true, }, }; diff --git a/src/bun.js/webcore/ByteStream.zig b/src/bun.js/webcore/ByteStream.zig index f90873fa7b..51494019f5 100644 --- a/src/bun.js/webcore/ByteStream.zig +++ b/src/bun.js/webcore/ByteStream.zig @@ -1,6 +1,6 @@ const ByteStream = @This(); -buffer: std.ArrayList(u8) = .{ +buffer: std.array_list.Managed(u8) = .{ .allocator = bun.default_allocator, .items = &.{}, .capacity = 0, @@ -133,7 +133,7 @@ pub fn onData( if (this.buffer.capacity == 0 and stream == .owned_and_done) { log("ByteStream.onData owned_and_done and action.fulfill()", .{}); - this.buffer = std.ArrayList(u8).fromOwnedSlice(bun.default_allocator, @constCast(chunk)); + this.buffer = std.array_list.Managed(u8).fromOwnedSlice(bun.default_allocator, @constCast(chunk)); var blob = this.toAnyBlob().?; try action.fulfill(this.parent().globalThis, &blob); return; @@ -237,7 +237,7 @@ pub fn append( this.offset += offset; }, .temporary_and_done, .temporary => { - this.buffer = try std.ArrayList(u8).initCapacity(bun.default_allocator, chunk.len); + this.buffer = try std.array_list.Managed(u8).initCapacity(bun.default_allocator, chunk.len); this.buffer.appendSliceAssumeCapacity(chunk); }, .err => { diff --git a/src/bun.js/webcore/FileSink.zig b/src/bun.js/webcore/FileSink.zig index 2f3e1aa45f..d025530403 100644 --- a/src/bun.js/webcore/FileSink.zig +++ b/src/bun.js/webcore/FileSink.zig @@ -60,8 +60,8 @@ pub fn memoryCost(this: *const FileSink) usize { return this.writer.memoryCost(); } -fn Bun__ForceFileSinkToBeSynchronousForProcessObjectStdio(_: *jsc.JSGlobalObject, jsvalue: jsc.JSValue) callconv(.C) void { - var this: *FileSink = @alignCast(@ptrCast(JSSink.fromJS(jsvalue) orelse return)); +fn Bun__ForceFileSinkToBeSynchronousForProcessObjectStdio(_: *jsc.JSGlobalObject, jsvalue: jsc.JSValue) callconv(.c) void { + var this: *FileSink = @ptrCast(@alignCast(JSSink.fromJS(jsvalue) orelse return)); if (comptime !Environment.isWindows) { this.force_sync = true; @@ -201,7 +201,7 @@ pub fn onWrite(this: *FileSink, amount: usize, status: bun.io.WriteStatus) void } pub fn onError(this: *FileSink, err: bun.sys.Error) void { - log("onError({any})", .{err}); + log("onError({f})", .{err}); if (this.pending.state == .pending) { this.pending.result = .{ .err = err }; if (this.eventLoop().bunVM()) |vm| { diff --git a/src/bun.js/webcore/ObjectURLRegistry.zig b/src/bun.js/webcore/ObjectURLRegistry.zig index c7c99da422..1e4b6341e5 100644 --- a/src/bun.js/webcore/ObjectURLRegistry.zig +++ b/src/bun.js/webcore/ObjectURLRegistry.zig @@ -97,7 +97,7 @@ fn Bun__createObjectURL_(globalObject: *jsc.JSGlobalObject, callframe: *jsc.Call }; const registry = ObjectURLRegistry.singleton(); const uuid = registry.register(globalObject.bunVM(), blob); - var str = bun.handleOom(bun.String.createFormat("blob:{}", .{uuid})); + var str = bun.handleOom(bun.String.createFormat("blob:{f}", .{uuid})); return str.transferToJS(globalObject); } diff --git a/src/bun.js/webcore/Request.zig b/src/bun.js/webcore/Request.zig index d733f8a231..2210700a11 100644 --- a/src/bun.js/webcore/Request.zig +++ b/src/bun.js/webcore/Request.zig @@ -247,7 +247,7 @@ pub fn writeFormat(this: *Request, this_value: JSValue, comptime Formatter: type .zero => "Request", else => "BunRequest", }; - try writer.print("{s} ({}) {{\n", .{ class_label, bun.fmt.size(this.#body.value.size(), .{}) }); + try writer.print("{s} ({f}) {{\n", .{ class_label, bun.fmt.size(this.#body.value.size(), .{}) }); { formatter.indent += 1; defer formatter.indent -|= 1; @@ -263,7 +263,7 @@ pub fn writeFormat(this: *Request, this_value: JSValue, comptime Formatter: type try formatter.writeIndent(Writer, writer); try writer.writeAll(comptime Output.prettyFmt("url: ", enable_ansi_colors)); try this.ensureURL(); - try writer.print(comptime Output.prettyFmt("\"{}\"", enable_ansi_colors), .{this.url}); + try writer.print(comptime Output.prettyFmt("\"{f}\"", enable_ansi_colors), .{this.url}); formatter.printComma(Writer, writer, enable_ansi_colors) catch unreachable; try writer.writeAll("\n"); @@ -451,7 +451,7 @@ pub fn sizeOfURL(this: *const Request) usize { .is_https = this.https, .host = host, }; - return this.getProtocol().len + req_url.len + std.fmt.count("{any}", .{fmt}); + return this.getProtocol().len + req_url.len + std.fmt.count("{f}", .{fmt}); } } return req_url.len; @@ -478,7 +478,7 @@ pub fn ensureURL(this: *Request) bun.OOM!void { .is_https = this.https, .host = host, }; - const url_bytelength = std.fmt.count("{s}{any}{s}", .{ + const url_bytelength = std.fmt.count("{s}{f}{s}", .{ this.getProtocol(), fmt, req_url, @@ -490,7 +490,7 @@ pub fn ensureURL(this: *Request) bun.OOM!void { if (url_bytelength < 128) { var buffer: [128]u8 = undefined; - const url = std.fmt.bufPrint(&buffer, "{s}{any}{s}", .{ + const url = std.fmt.bufPrint(&buffer, "{s}{f}{s}", .{ this.getProtocol(), fmt, req_url, @@ -518,7 +518,7 @@ pub fn ensureURL(this: *Request) bun.OOM!void { if (strings.isAllASCII(host) and strings.isAllASCII(req_url)) { this.url, const bytes = bun.String.createUninitialized(.latin1, url_bytelength); - _ = std.fmt.bufPrint(bytes, "{s}{any}{s}", .{ + _ = std.fmt.bufPrint(bytes, "{s}{f}{s}", .{ this.getProtocol(), fmt, req_url, @@ -527,7 +527,7 @@ pub fn ensureURL(this: *Request) bun.OOM!void { }; } else { // slow path - const temp_url = try std.fmt.allocPrint(bun.default_allocator, "{s}{any}{s}", .{ + const temp_url = try std.fmt.allocPrint(bun.default_allocator, "{s}{f}{s}", .{ this.getProtocol(), fmt, req_url, @@ -813,7 +813,7 @@ pub fn constructInto(globalThis: *jsc.JSGlobalObject, arguments: []const jsc.JSV if (!globalThis.hasException()) { // globalThis.throw can cause GC, which could cause the above string to be freed. // so we must increment the reference count before calling it. - return globalThis.ERR(.INVALID_URL, "Failed to construct 'Request': Invalid URL \"{}\"", .{req.url}).throw(); + return globalThis.ERR(.INVALID_URL, "Failed to construct 'Request': Invalid URL \"{f}\"", .{req.url}).throw(); } return error.JSError; } diff --git a/src/bun.js/webcore/Response.zig b/src/bun.js/webcore/Response.zig index 0dde39911d..a23b258f4b 100644 --- a/src/bun.js/webcore/Response.zig +++ b/src/bun.js/webcore/Response.zig @@ -92,7 +92,7 @@ pub fn getFormDataEncoding(this: *Response) bun.JSError!?*bun.FormData.AsyncForm return bun.handleOom(bun.FormData.AsyncFormData.init(bun.default_allocator, encoding)); } -pub fn estimatedSize(this: *Response) callconv(.C) usize { +pub fn estimatedSize(this: *Response) callconv(.c) usize { return this.#reported_estimated_size; } @@ -249,7 +249,7 @@ pub const Props = struct {}; pub fn writeFormat(this: *Response, comptime Formatter: type, formatter: *Formatter, writer: anytype, comptime enable_ansi_colors: bool) !void { const Writer = @TypeOf(writer); - try writer.print("Response ({}) {{\n", .{bun.fmt.size(this.#body.len(), .{})}); + try writer.print("Response ({f}) {{\n", .{bun.fmt.size(this.#body.len(), .{})}); { formatter.indent += 1; @@ -263,7 +263,7 @@ pub fn writeFormat(this: *Response, comptime Formatter: type, formatter: *Format try formatter.writeIndent(Writer, writer); try writer.writeAll(comptime Output.prettyFmt("url: \"", enable_ansi_colors)); - try writer.print(comptime Output.prettyFmt("{}", enable_ansi_colors), .{this.#url}); + try writer.print(comptime Output.prettyFmt("{f}", enable_ansi_colors), .{this.#url}); try writer.writeAll("\""); try formatter.printComma(Writer, writer, enable_ansi_colors); try writer.writeAll("\n"); @@ -276,7 +276,7 @@ pub fn writeFormat(this: *Response, comptime Formatter: type, formatter: *Format try formatter.writeIndent(Writer, writer); try writer.writeAll(comptime Output.prettyFmt("statusText: ", enable_ansi_colors)); - try writer.print(comptime Output.prettyFmt("\"{}\"", enable_ansi_colors), .{this.#init.status_text}); + try writer.print(comptime Output.prettyFmt("\"{f}\"", enable_ansi_colors), .{this.#init.status_text}); try formatter.printComma(Writer, writer, enable_ansi_colors); try writer.writeAll("\n"); @@ -466,7 +466,7 @@ pub fn unref(this: *Response) void { pub fn finalize( this: *Response, -) callconv(.C) void { +) callconv(.c) void { this.#js_ref.finalize(); this.unref(); } @@ -540,7 +540,7 @@ pub fn constructJSON( defer str.deref(); response.#body.value = .{ .InternalBlob = InternalBlob{ - .bytes = std.ArrayList(u8).fromOwnedSlice(bun.default_allocator, @constCast(bytes.slice())), + .bytes = std.array_list.Managed(u8).fromOwnedSlice(bun.default_allocator, @constCast(bytes.slice())), .was_string = true, }, }; diff --git a/src/bun.js/webcore/Sink.zig b/src/bun.js/webcore/Sink.zig index 1093826834..8e21b5290c 100644 --- a/src/bun.js/webcore/Sink.zig +++ b/src/bun.js/webcore/Sink.zig @@ -238,17 +238,17 @@ pub fn JSSink(comptime SinkType: type, comptime abi_name: []const u8) type { pub fn start(_: *@This()) void {} }; - pub fn memoryCost(this: *ThisSink) callconv(.C) usize { + pub fn memoryCost(this: *ThisSink) callconv(.c) usize { return @sizeOf(ThisSink) + SinkType.memoryCost(&this.sink); } - const AssignToStreamFn = *const fn (*JSGlobalObject, JSValue, *anyopaque, **anyopaque) callconv(.C) JSValue; - const OnCloseFn = *const fn (JSValue, JSValue) callconv(.C) void; - const OnReadyFn = *const fn (JSValue, JSValue, JSValue) callconv(.C) void; - const OnStartFn = *const fn (JSValue, *JSGlobalObject) callconv(.C) void; - const CreateObjectFn = *const fn (*JSGlobalObject, *anyopaque, usize) callconv(.C) JSValue; - const SetDestroyCallbackFn = *const fn (JSValue, usize) callconv(.C) void; - const DetachPtrFn = *const fn (JSValue) callconv(.C) void; + const AssignToStreamFn = *const fn (*JSGlobalObject, JSValue, *anyopaque, **anyopaque) callconv(.c) JSValue; + const OnCloseFn = *const fn (JSValue, JSValue) callconv(.c) void; + const OnReadyFn = *const fn (JSValue, JSValue, JSValue) callconv(.c) void; + const OnStartFn = *const fn (JSValue, *JSGlobalObject) callconv(.c) void; + const CreateObjectFn = *const fn (*JSGlobalObject, *anyopaque, usize) callconv(.c) JSValue; + const SetDestroyCallbackFn = *const fn (JSValue, usize) callconv(.c) void; + const DetachPtrFn = *const fn (JSValue) callconv(.c) void; const assignToStreamExtern = @extern(AssignToStreamFn, .{ .name = abi_name ++ "__assignToStream" }); const onCloseExtern = @extern(OnCloseFn, .{ .name = abi_name ++ "__onClose" }).*; @@ -311,7 +311,7 @@ pub fn JSSink(comptime SinkType: type, comptime abi_name: []const u8) type { return createObject(globalThis, this, 0); } - pub fn finalize(ptr: *anyopaque) callconv(.C) void { + pub fn finalize(ptr: *anyopaque) callconv(.c) void { var this = @as(*ThisSink, @ptrCast(@alignCast(ptr))); this.sink.finalize(); @@ -340,7 +340,7 @@ pub fn JSSink(comptime SinkType: type, comptime abi_name: []const u8) type { _, }; const fromJSExtern = @extern( - *const fn (value: JSValue) callconv(.C) FromJSResult, + *const fn (value: JSValue) callconv(.c) FromJSResult, .{ .name = abi_name ++ "__fromJS" }, ); @@ -465,7 +465,7 @@ pub fn JSSink(comptime SinkType: type, comptime abi_name: []const u8) type { return this.sink.writeLatin1(.{ .temporary = view.slice() }).toJS(globalThis); } - pub fn close(globalThis: *JSGlobalObject, sink_ptr: ?*anyopaque) callconv(.C) JSValue { + pub fn close(globalThis: *JSGlobalObject, sink_ptr: ?*anyopaque) callconv(.c) JSValue { jsc.markBinding(@src()); const this: *ThisSink = @ptrCast(@alignCast(sink_ptr orelse return .js_undefined)); @@ -575,7 +575,7 @@ pub fn JSSink(comptime SinkType: type, comptime abi_name: []const u8) type { return this.sink.endFromJS(globalThis).toJS(globalThis) catch .zero; // TODO: properly propagate exception upwards } - pub fn updateRef(ptr: *anyopaque, value: bool) callconv(.C) void { + pub fn updateRef(ptr: *anyopaque, value: bool) callconv(.c) void { jsc.markBinding(@src()); var this = bun.cast(*ThisSink, ptr); if (comptime @hasDecl(SinkType, "updateRef")) @@ -588,7 +588,7 @@ pub fn JSSink(comptime SinkType: type, comptime abi_name: []const u8) type { const jsEnd = jsc.toJSHostFn(@This().end); const jsConstruct = jsc.toJSHostFn(construct); - fn jsGetInternalFd(ptr: *anyopaque) callconv(.C) JSValue { + fn jsGetInternalFd(ptr: *anyopaque) callconv(.c) JSValue { var this = bun.cast(*ThisSink, ptr); if (comptime @hasDecl(SinkType, "getFd")) { return JSValue.jsNumber(this.sink.getFd()); @@ -623,7 +623,7 @@ pub const DestructorPtr = bun.TaggedPointerUnion(.{ pub export fn Bun__onSinkDestroyed( ptr_value: ?*anyopaque, sink_ptr: ?*anyopaque, -) callconv(.C) void { +) callconv(.c) void { _ = sink_ptr; // autofix const ptr = DestructorPtr.from(ptr_value); diff --git a/src/bun.js/webcore/TextEncoder.zig b/src/bun.js/webcore/TextEncoder.zig index e9394ee676..fe2a98af84 100644 --- a/src/bun.js/webcore/TextEncoder.zig +++ b/src/bun.js/webcore/TextEncoder.zig @@ -132,7 +132,7 @@ const RopeStringEncoder = struct { tail: usize = 0, any_non_ascii: bool = false, - pub fn append8(it: *jsc.JSString.Iterator, ptr: [*]const u8, len: u32) callconv(.C) void { + pub fn append8(it: *jsc.JSString.Iterator, ptr: [*]const u8, len: u32) callconv(.c) void { var this = bun.cast(*RopeStringEncoder, it.data.?); const result = strings.copyLatin1IntoUTF8StopOnNonASCII(this.buf[this.tail..], ptr[0..len], true); if (result.read == std.math.maxInt(u32) and result.written == std.math.maxInt(u32)) { @@ -142,12 +142,12 @@ const RopeStringEncoder = struct { this.tail += result.written; } } - pub fn append16(it: *jsc.JSString.Iterator, _: [*]const u16, _: u32) callconv(.C) void { + pub fn append16(it: *jsc.JSString.Iterator, _: [*]const u16, _: u32) callconv(.c) void { var this = bun.cast(*RopeStringEncoder, it.data.?); this.any_non_ascii = true; it.stop = 1; } - pub fn write8(it: *jsc.JSString.Iterator, ptr: [*]const u8, len: u32, offset: u32) callconv(.C) void { + pub fn write8(it: *jsc.JSString.Iterator, ptr: [*]const u8, len: u32, offset: u32) callconv(.c) void { var this = bun.cast(*RopeStringEncoder, it.data.?); const result = strings.copyLatin1IntoUTF8StopOnNonASCII(this.buf[offset..], ptr[0..len], true); if (result.read == std.math.maxInt(u32) and result.written == std.math.maxInt(u32)) { @@ -155,7 +155,7 @@ const RopeStringEncoder = struct { this.any_non_ascii = true; } } - pub fn write16(it: *jsc.JSString.Iterator, _: [*]const u16, _: u32, _: u32) callconv(.C) void { + pub fn write16(it: *jsc.JSString.Iterator, _: [*]const u16, _: u32, _: u32) callconv(.c) void { var this = bun.cast(*RopeStringEncoder, it.data.?); this.any_non_ascii = true; it.stop = 1; diff --git a/src/bun.js/webcore/TextEncoderStreamEncoder.zig b/src/bun.js/webcore/TextEncoderStreamEncoder.zig index 3820bbac25..3f4378570e 100644 --- a/src/bun.js/webcore/TextEncoderStreamEncoder.zig +++ b/src/bun.js/webcore/TextEncoderStreamEncoder.zig @@ -65,7 +65,7 @@ fn encodeLatin1(this: *TextEncoderStreamEncoder, globalObject: *JSGlobalObject, // 278.00 ms 13.0% 278.00 ms simdutf::arm64::implementation::utf8_length_from_latin1(char const*, unsigned long) const // // - var buffer = std.ArrayList(u8).initCapacity(bun.default_allocator, input.len + prepend_replacement_len) catch { + var buffer = std.array_list.Managed(u8).initCapacity(bun.default_allocator, input.len + prepend_replacement_len) catch { return globalObject.throwOutOfMemoryValue(); }; if (prepend_replacement_len > 0) { @@ -101,7 +101,7 @@ fn encodeLatin1(this: *TextEncoderStreamEncoder, globalObject: *JSGlobalObject, } fn encodeUTF16(this: *TextEncoderStreamEncoder, globalObject: *JSGlobalObject, input: []const u16) JSValue { - log("encodeUTF16: \"{}\"", .{bun.fmt.utf16(input)}); + log("encodeUTF16: \"{f}\"", .{bun.fmt.utf16(input)}); if (input.len == 0) return JSUint8Array.createEmpty(globalObject); @@ -148,7 +148,7 @@ fn encodeUTF16(this: *TextEncoderStreamEncoder, globalObject: *JSGlobalObject, i const length = bun.simdutf.length.utf8.from.utf16.le(remain); - var buf = std.ArrayList(u8).initCapacity( + var buf = std.array_list.Managed(u8).initCapacity( bun.default_allocator, length + @as(usize, if (prepend) |pre| pre.len else 0), ) catch { diff --git a/src/bun.js/webcore/blob/Store.zig b/src/bun.js/webcore/blob/Store.zig index b00baf4c7b..a812e2019e 100644 --- a/src/bun.js/webcore/blob/Store.zig +++ b/src/bun.js/webcore/blob/Store.zig @@ -60,7 +60,7 @@ pub fn toAnyBlob(this: *Store) ?Blob.Any { return null; } -pub fn external(ptr: ?*anyopaque, _: ?*anyopaque, _: usize) callconv(.C) void { +pub fn external(ptr: ?*anyopaque, _: ?*anyopaque, _: usize) callconv(.c) void { if (ptr == null) return; var this = bun.cast(*Store, ptr); this.deref(); @@ -503,7 +503,7 @@ pub const Bytes = struct { pub fn toInternalBlob(this: *Bytes) Blob.Internal { const ptr = this.ptr orelse return .{ - .bytes = std.ArrayList(u8){ + .bytes = std.array_list.Managed(u8){ .items = &.{}, .capacity = 0, .allocator = this.allocator, diff --git a/src/bun.js/webcore/blob/copy_file.zig b/src/bun.js/webcore/blob/copy_file.zig index 7868e277cd..02a96ef842 100644 --- a/src/bun.js/webcore/blob/copy_file.zig +++ b/src/bun.js/webcore/blob/copy_file.zig @@ -589,7 +589,7 @@ pub const CopyFileWindows = struct { destination_fd: bun.FileDescriptor = bun.invalid_fd, must_close_destination_fd: bool = false, written: usize = 0, - read_buf: std.ArrayList(u8) = std.ArrayList(u8).init(bun.default_allocator), + read_buf: std.array_list.Managed(u8) = std.array_list.Managed(u8).init(bun.default_allocator), uv_buf: libuv.uv_buf_t = .{ .base = undefined, .len = 0 }, pub fn start(read_write_loop: *ReadWriteLoop, this: *CopyFileWindows) bun.sys.Maybe(void) { @@ -625,7 +625,7 @@ pub const CopyFileWindows = struct { return .success; } - fn onRead(req: *libuv.fs_t) callconv(.C) void { + fn onRead(req: *libuv.fs_t) callconv(.c) void { var this: *CopyFileWindows = @fieldParentPtr("io_request", req); bun.assert(req.data == @as(?*anyopaque, @ptrCast(this))); @@ -637,7 +637,7 @@ pub const CopyFileWindows = struct { const rc = req.result; - bun.sys.syslog("uv_fs_read({}, {d}) = {d}", .{ source_fd, read_buf.len, rc.int() }); + bun.sys.syslog("uv_fs_read({f}, {d}) = {d}", .{ source_fd, read_buf.len, rc.int() }); if (rc.toError(.read)) |err| { this.err = err; this.onReadWriteLoopComplete(); @@ -673,7 +673,7 @@ pub const CopyFileWindows = struct { } } - fn onWrite(req: *libuv.fs_t) callconv(.C) void { + fn onWrite(req: *libuv.fs_t) callconv(.c) void { var this: *CopyFileWindows = @fieldParentPtr("io_request", req); bun.assert(req.data == @as(?*anyopaque, @ptrCast(this))); const buf = &this.read_write_loop.read_buf.items; @@ -682,7 +682,7 @@ pub const CopyFileWindows = struct { const rc = req.result; - bun.sys.syslog("uv_fs_write({}, {d}) = {d}", .{ destination_fd, buf.len, rc.int() }); + bun.sys.syslog("uv_fs_write({f}, {d}) = {d}", .{ destination_fd, buf.len, rc.int() }); if (rc.toError(.write)) |err| { this.err = err; @@ -1006,7 +1006,7 @@ pub const CopyFileWindows = struct { promise.reject(globalThis, err_instance) catch {}; // TODO: properly propagate exception upwards } - fn onCopyFile(req: *libuv.fs_t) callconv(.C) void { + fn onCopyFile(req: *libuv.fs_t) callconv(.c) void { var this: *CopyFileWindows = @fieldParentPtr("io_request", req); bun.assert(req.data == @as(?*anyopaque, @ptrCast(this))); @@ -1014,7 +1014,7 @@ pub const CopyFileWindows = struct { event_loop.unrefConcurrently(); const rc = req.result; - bun.sys.syslog("uv_fs_copyfile() = {}", .{rc}); + bun.sys.syslog("uv_fs_copyfile() = {f}", .{rc}); if (rc.errEnum()) |errno| { if (this.mkdirp_if_not_exists and errno == .NOENT) { req.deinit(); diff --git a/src/bun.js/webcore/blob/read_file.zig b/src/bun.js/webcore/blob/read_file.zig index 314cd64120..9b500b1d43 100644 --- a/src/bun.js/webcore/blob/read_file.zig +++ b/src/bun.js/webcore/blob/read_file.zig @@ -620,9 +620,9 @@ pub const ReadFileUV = struct { this.req.data = this; } - fn onFileInitialStat(req: *libuv.fs_t) callconv(.C) void { + fn onFileInitialStat(req: *libuv.fs_t) callconv(.c) void { log("ReadFileUV.onFileInitialStat", .{}); - var this: *ReadFileUV = @alignCast(@ptrCast(req.data)); + var this: *ReadFileUV = @ptrCast(@alignCast(req.data)); if (req.result.errEnum()) |errno| { this.errno = bun.errnoToZigErr(errno); @@ -632,7 +632,6 @@ pub const ReadFileUV = struct { } const stat = req.statbuf; - log("stat: {any}", .{stat}); // keep in sync with resolveSizeAndLastModified if (this.store.data == .file) { @@ -762,8 +761,8 @@ pub const ReadFileUV = struct { } } - pub fn onRead(req: *libuv.fs_t) callconv(.C) void { - var this: *ReadFileUV = @alignCast(@ptrCast(req.data)); + pub fn onRead(req: *libuv.fs_t) callconv(.c) void { + var this: *ReadFileUV = @ptrCast(@alignCast(req.data)); const result = req.result; diff --git a/src/bun.js/webcore/blob/write_file.zig b/src/bun.js/webcore/blob/write_file.zig index 6af5b5703b..f2c942c07b 100644 --- a/src/bun.js/webcore/blob/write_file.zig +++ b/src/bun.js/webcore/blob/write_file.zig @@ -442,12 +442,12 @@ pub const WriteFileWindows = struct { } } - pub fn onOpen(req: *uv.fs_t) callconv(.C) void { + pub fn onOpen(req: *uv.fs_t) callconv(.c) void { var this: *WriteFileWindows = @fieldParentPtr("io_request", req); - bun.assert(this == @as(*WriteFileWindows, @alignCast(@ptrCast(req.data.?)))); + bun.assert(this == @as(*WriteFileWindows, @ptrCast(@alignCast(req.data.?)))); const rc = this.io_request.result; if (comptime Environment.allow_assert) - log("onOpen({s}) = {}", .{ this.file_blob.store.?.data.file.pathlike.path.slice(), rc }); + log("onOpen({s}) = {f}", .{ this.file_blob.store.?.data.file.pathlike.path.slice(), rc }); if (rc.errEnum()) |err| { if (err == .NOENT and this.mkdirp_if_not_exists) { @@ -518,9 +518,9 @@ pub const WriteFileWindows = struct { this.event_loop.enqueueTaskConcurrent(jsc.ConcurrentTask.create(jsc.ManagedTask.New(WriteFileWindows, onMkdirpComplete).init(this))); } - fn onWriteComplete(req: *uv.fs_t) callconv(.C) void { + fn onWriteComplete(req: *uv.fs_t) callconv(.c) void { var this: *WriteFileWindows = @fieldParentPtr("io_request", req); - bun.assert(this == @as(*WriteFileWindows, @alignCast(@ptrCast(req.data.?)))); + bun.assert(this == @as(*WriteFileWindows, @ptrCast(@alignCast(req.data.?)))); const rc = this.io_request.result; if (rc.errno()) |err| { switch (this.throw(.{ diff --git a/src/bun.js/webcore/encoding.zig b/src/bun.js/webcore/encoding.zig index b78cdcfc38..1f829a5a99 100644 --- a/src/bun.js/webcore/encoding.zig +++ b/src/bun.js/webcore/encoding.zig @@ -77,7 +77,7 @@ export fn Bun__encoding__toString(input: [*]const u8, len: usize, globalObject: return toString(input[0..len], globalObject, @enumFromInt(encoding)); } -// pub fn writeUTF16AsUTF8(utf16: [*]const u16, len: usize, to: [*]u8, to_len: usize) callconv(.C) i32 { +// pub fn writeUTF16AsUTF8(utf16: [*]const u16, len: usize, to: [*]u8, to_len: usize) callconv(.c) i32 { // return @intCast(i32, strings.copyUTF16IntoUTF8(to[0..to_len], []const u16, utf16[0..len]).written); // } pub fn toString(input: []const u8, globalObject: *JSGlobalObject, encoding: Encoding) JSValue { diff --git a/src/bun.js/webcore/fetch.zig b/src/bun.js/webcore/fetch.zig index 7f4e8be9ab..9a197caf9f 100644 --- a/src/bun.js/webcore/fetch.zig +++ b/src/bun.js/webcore/fetch.zig @@ -651,7 +651,7 @@ pub fn Bun__fetch_( return JSPromise.dangerouslyCreateRejectedPromiseValueWithoutNotifyingVM(globalThis, err); } defer href.deref(); - const buffer = try std.fmt.allocPrint(allocator, "{s}{}", .{ url_proxy_buffer, href }); + const buffer = try std.fmt.allocPrint(allocator, "{s}{f}", .{ url_proxy_buffer, href }); url = ZigURL.parse(buffer[0..url.href.len]); if (url.isFile()) { url_type = URLType.file; @@ -1211,7 +1211,7 @@ pub fn Bun__fetch_( .{ .value = .{ .InternalBlob = .{ - .bytes = std.ArrayList(u8).fromOwnedSlice(bun.default_allocator, bun.handleOom(bun.default_allocator.dupe(u8, err.message))), + .bytes = std.array_list.Managed(u8).fromOwnedSlice(bun.default_allocator, bun.handleOom(bun.default_allocator.dupe(u8, err.message))), .was_string = true, }, }, diff --git a/src/bun.js/webcore/fetch/FetchTasklet.zig b/src/bun.js/webcore/fetch/FetchTasklet.zig index b4f79058a4..acb147405c 100644 --- a/src/bun.js/webcore/fetch/FetchTasklet.zig +++ b/src/bun.js/webcore/fetch/FetchTasklet.zig @@ -779,7 +779,7 @@ pub const FetchTasklet = struct { error.NAME_CONSTRAINTS_WITHOUT_SANS => bun.String.static("Issuer has name constraints but leaf has no SANs"), error.UNKNOWN_CERTIFICATE_VERIFICATION_ERROR => bun.String.static("unknown certificate verification error"), - else => |e| bun.String.createFormat("{s} fetching \"{}\". For more information, pass `verbose: true` in the second argument to fetch()", .{ + else => |e| bun.String.createFormat("{s} fetching \"{f}\". For more information, pass `verbose: true` in the second argument to fetch()", .{ @errorName(e), path, }) catch |err| bun.handleOom(err), @@ -926,7 +926,7 @@ pub const FetchTasklet = struct { this.ignore_data = true; } - export fn Bun__FetchResponse_finalize(this: *FetchTasklet) callconv(.C) void { + export fn Bun__FetchResponse_finalize(this: *FetchTasklet) callconv(.c) void { log("onResponseFinalize", .{}); if (this.native_response) |response| { const body = response.getBodyValue(); diff --git a/src/bun.js/webcore/prompt.zig b/src/bun.js/webcore/prompt.zig index fd951d2fc3..747cd935fd 100644 --- a/src/bun.js/webcore/prompt.zig +++ b/src/bun.js/webcore/prompt.zig @@ -46,10 +46,12 @@ fn alert(globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSErr bun.Output.flush(); // 7. Optionally, pause while waiting for the user to acknowledge the message. - var stdin = std.io.getStdIn(); - var reader = stdin.reader(); + var stdin = std.fs.File.stdin(); + var stdin_buf: [1]u8 = undefined; + var stdin_reader = stdin.readerStreaming(&stdin_buf); + const reader = &stdin_reader.interface; while (true) { - const byte = reader.readByte() catch break; + const byte = reader.takeByte() catch break; if (byte == '\n') break; } @@ -94,12 +96,12 @@ fn confirm(globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSE bun.Output.flush(); // 6. Pause until the user responds either positively or negatively. - var stdin = std.io.getStdIn(); - const unbuffered_reader = stdin.reader(); - var buffered = std.io.bufferedReader(unbuffered_reader); - var reader = buffered.reader(); + var stdin = std.fs.File.stdin(); + var stdin_buf: [1024]u8 = undefined; + var stdin_reader = stdin.readerStreaming(&stdin_buf); + const reader = &stdin_reader.interface; - const first_byte = reader.readByte() catch { + const first_byte = reader.takeByte() catch { return .false; }; @@ -110,7 +112,7 @@ fn confirm(globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSE switch (first_byte) { '\n' => return .false, '\r' => { - const next_byte = reader.readByte() catch { + const next_byte = reader.takeByte() catch { // They may have said yes, but the stdin is invalid. return .false; }; @@ -119,7 +121,7 @@ fn confirm(globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSE } }, 'y', 'Y' => { - const next_byte = reader.readByte() catch { + const next_byte = reader.takeByte() catch { // They may have said yes, but the stdin is invalid. return .false; @@ -131,7 +133,7 @@ fn confirm(globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSE return .true; } else if (next_byte == '\r') { //Check Windows style - const second_byte = reader.readByte() catch { + const second_byte = reader.takeByte() catch { return .false; }; if (second_byte == '\n') { @@ -142,7 +144,7 @@ fn confirm(globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun.JSE else => {}, } - while (reader.readByte()) |b| { + while (reader.takeByte()) |b| { if (b == '\n' or b == '\r') break; } else |_| {} @@ -156,7 +158,7 @@ pub const prompt = struct { /// and assume capacity. pub fn readUntilDelimiterArrayListAppendAssumeCapacity( reader: anytype, - array_list: *std.ArrayList(u8), + array_list: *std.array_list.Managed(u8), delimiter: u8, max_size: usize, ) !void { @@ -179,7 +181,7 @@ pub const prompt = struct { /// and not resize. fn readUntilDelimiterArrayListInfinity( reader: anytype, - array_list: *std.ArrayList(u8), + array_list: *std.array_list.Managed(u8), delimiter: u8, ) !void { while (true) { @@ -278,7 +280,7 @@ pub const prompt = struct { if (second == '\n') return default; } - var input = std.ArrayList(u8).initCapacity(allocator, 2048) catch { + var input = std.array_list.Managed(u8).initCapacity(allocator, 2048) catch { // 8. Let result be null if the user aborts, or otherwise the string // that the user responded with. return .null; diff --git a/src/bun.js/webcore/streams.zig b/src/bun.js/webcore/streams.zig index 2b3bd89bb3..d89ecdbf9b 100644 --- a/src/bun.js/webcore/streams.zig +++ b/src/bun.js/webcore/streams.zig @@ -768,7 +768,7 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { } fn sendWithoutAutoFlusher(this: *@This(), buf: []const u8) bool { bun.assert(!this.done); - defer log("send: {d} bytes (backpressure: {any})", .{ buf.len, this.has_backpressure }); + defer log("send: {d} bytes (backpressure: {})", .{ buf.len, this.has_backpressure }); const res = this.res orelse { return false; @@ -941,7 +941,7 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { } pub fn flushFromJS(this: *@This(), globalThis: *JSGlobalObject, wait: bool) bun.sys.Maybe(JSValue) { - log("flushFromJS({any})", .{wait}); + log("flushFromJS({})", .{wait}); this.unregisterAutoFlusher(); if (!wait) { @@ -1128,7 +1128,7 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { // In this case, it's always an error pub fn end(this: *@This(), err: ?Syscall.Error) bun.sys.Maybe(void) { - log("end({any})", .{err}); + log("end({?f})", .{err}); if (this.requested_end) { return .success; diff --git a/src/bun.zig b/src/bun.zig index 013fdbcf51..05bd5746bc 100644 --- a/src/bun.zig +++ b/src/bun.zig @@ -18,7 +18,7 @@ pub const DefaultAllocator = allocators.Default; pub const z_allocator: std.mem.Allocator = allocators.z_allocator; pub const callmod_inline: std.builtin.CallModifier = if (builtin.mode == .Debug) .auto else .always_inline; -pub const callconv_inline: std.builtin.CallingConvention = if (builtin.mode == .Debug) .Unspecified else .Inline; +pub const callconv_inline: std.builtin.CallingConvention = if (builtin.mode == .Debug) .auto else .@"inline"; /// In debug builds, this will catch memory leaks. In release builds, it is mimalloc. pub const debug_allocator: std.mem.Allocator = if (Environment.isDebug or Environment.enable_asan) @@ -480,6 +480,7 @@ pub fn clone(item: anytype, allocator: std.mem.Allocator) !@TypeOf(item) { } pub const LinearFifo = @import("./linear_fifo.zig").LinearFifo; +pub const LinearFifoBufferType = @import("./linear_fifo.zig").LinearFifoBufferType; /// hash a string pub fn hash(content: []const u8) u64 { @@ -569,7 +570,7 @@ pub fn isReadable(fd: FileDescriptor) PollFlag { PollFlag.ready else PollFlag.not_ready; - global_scope_log("poll({}, .readable): {any} ({s}{s})", .{ + global_scope_log("poll({f}, .readable): {} ({s}{s})", .{ fd, result, @tagName(rc), @@ -590,7 +591,7 @@ pub fn isWritable(fd: FileDescriptor) PollFlag { }; const rc = std.os.windows.ws2_32.WSAPoll(&polls, 1, 0); const result = (if (rc != std.os.windows.ws2_32.SOCKET_ERROR) @as(usize, @intCast(rc)) else 0) != 0; - global_scope_log("poll({}) writable: {any} ({d})", .{ fd, result, polls[0].revents }); + global_scope_log("poll({f}) writable: {f} ({d})", .{ fd, result, polls[0].revents }); if (result and polls[0].revents & std.posix.POLL.WRNORM != 0) { return .hup; } else if (result) { @@ -617,7 +618,7 @@ pub fn isWritable(fd: FileDescriptor) PollFlag { PollFlag.ready else PollFlag.not_ready; - global_scope_log("poll({}, .writable): {any} ({s}{s})", .{ + global_scope_log("poll({f}, .writable): {} ({s}{s})", .{ fd, result, @tagName(rc), @@ -1915,7 +1916,7 @@ pub const StatFS = switch (Environment.os) { pub var argv: [][:0]const u8 = &[_][:0]const u8{}; -pub fn appendOptionsEnv(env: []const u8, args: *std.ArrayList([:0]const u8), allocator: std.mem.Allocator) !void { +pub fn appendOptionsEnv(env: []const u8, args: *std.array_list.Managed([:0]const u8), allocator: std.mem.Allocator) !void { var i: usize = 0; var offset_in_args: usize = 1; while (i < env.len) { @@ -1971,7 +1972,7 @@ pub fn appendOptionsEnv(env: []const u8, args: *std.ArrayList([:0]const u8), all } // Non-option arguments or standalone values - var buf = std.ArrayList(u8).init(allocator); + var buf = std.array_list.Managed(u8).init(allocator); var in_single = false; var in_double = false; @@ -2086,7 +2087,7 @@ pub fn initArgv(allocator: std.mem.Allocator) !void { } if (bun.env_var.BUN_OPTIONS.get()) |opts| { - var argv_list = std.ArrayList([:0]const u8).fromOwnedSlice(allocator, argv); + var argv_list = std.array_list.Managed([:0]const u8).fromOwnedSlice(allocator, argv); try appendOptionsEnv(opts, &argv_list, allocator); argv = argv_list.items; } @@ -2332,7 +2333,7 @@ pub const MakePath = struct { } } - pub fn makeOpenPath(self: std.fs.Dir, sub_path: anytype, opts: std.fs.Dir.OpenDirOptions) !std.fs.Dir { + pub fn makeOpenPath(self: std.fs.Dir, sub_path: anytype, opts: std.fs.Dir.OpenOptions) !std.fs.Dir { if (comptime Environment.isWindows) { return makeOpenPathAccessMaskW( self, @@ -2721,8 +2722,10 @@ pub inline fn resolveSourcePath( var fba = std.heap.FixedBufferAllocator.init(&buf); const resolved = (std.fs.path.resolve(fba.allocator(), &.{ switch (root) { - .codegen => Environment.codegen_path, - .src => Environment.base_path ++ "/src", + .codegen, + => Environment.codegen_path, + .src, + => Environment.base_path ++ "/src", }, sub_path, }) catch @@ -2770,7 +2773,7 @@ pub fn runtimeEmbedFile( abs_path, std.math.maxInt(usize), null, - @alignOf(u8), + .fromByteUnits(@alignOf(u8)), '\x00', ) catch |e| { Output.panic( @@ -3009,10 +3012,12 @@ pub fn assertWithLocation(value: bool, src: std.builtin.SourceLocation) callconv pub inline fn assert_eql(a: anytype, b: anytype) void { if (a == b) return; if (@inComptime()) { - @compileError(std.fmt.comptimePrint("Assertion failure: {any} != {any}", .{ a, b })); + @compileError(std.fmt.comptimePrint("Assertion failure: {f} != {f}", .{ a, b })); } if (!Environment.allow_assert) return; - Output.panic("Assertion failure: {any} != {any}", .{ a, b }); + // Output.panic("Assertion failure: " ++ bun.deprecated.autoFormatLabelFallback(@TypeOf(a), "{f}") ++ " != " ++ bun.deprecated.autoFormatLabelFallback(@TypeOf(b), "{f}"), .{ a, b }); + // TODO + Output.panic("Assertion failure.", .{}); } /// This has no effect on the real code but capturing 'a' and 'b' into @@ -3373,10 +3378,8 @@ pub fn GenericIndex(backing_int: type, uid: anytype) type { return a.get() < b.get(); } - pub fn format(this: @This(), comptime f: []const u8, opts: std.fmt.FormatOptions, writer: anytype) !void { - comptime if (strings.eql(f, "d") or strings.eql(f, "any")) - @compileError("Invalid format specifier: " ++ f ++ ". To use these, call .get() first"); - try std.fmt.formatInt(@intFromEnum(this), 10, .lower, opts, writer); + pub fn format(this: @This(), writer: *std.Io.Writer) !void { + return writer.print("{d}", .{@intFromEnum(this)}); } pub const Optional = enum(backing_int) { @@ -3634,6 +3637,7 @@ pub fn contains(item: anytype, list: *const std.ArrayListUnmanaged(@TypeOf(item) } pub const safety = @import("./safety.zig"); +pub const deprecated = @import("./deprecated.zig"); // Export function to check if --use-system-ca flag is set pub fn getUseSystemCA(globalObject: *jsc.JSGlobalObject, callFrame: *jsc.CallFrame) error{ JSError, OutOfMemory }!jsc.JSValue { diff --git a/src/bundler/BundleThread.zig b/src/bundler/BundleThread.zig index f64665e94f..7fd8edffd8 100644 --- a/src/bundler/BundleThread.zig +++ b/src/bundler/BundleThread.zig @@ -1,5 +1,5 @@ /// Used to keep the bundle thread from spinning on Windows -pub fn timerCallback(_: *bun.windows.libuv.Timer) callconv(.C) void {} +pub fn timerCallback(_: *bun.windows.libuv.Timer) callconv(.c) void {} /// Originally, bake.DevServer required a separate bundling thread, but that was /// later removed. The bundling thread's scheduling logic is generalized over diff --git a/src/bundler/Chunk.zig b/src/bundler/Chunk.zig index a7f880bd32..54cf20e824 100644 --- a/src/bundler/Chunk.zig +++ b/src/bundler/Chunk.zig @@ -216,7 +216,7 @@ pub const Chunk = struct { .chunk => chunks[index].final_rel_path, .scb => chunks[entry_point_chunks_for_scb[index]].final_rel_path, .html_import => { - count += std.fmt.count("{}", .{HTMLImportManifest.formatEscapedJSON(.{ + count += std.fmt.count("{f}", .{HTMLImportManifest.formatEscapedJSON(.{ .index = index, .graph = graph, .chunks = chunks, @@ -245,7 +245,7 @@ pub const Chunk = struct { } const debug_id_len = if (enable_source_map_shifts and FeatureFlags.source_map_debug_id) - std.fmt.count("\n//# debugId={}\n", .{bun.SourceMap.DebugIDFormatter{ .id = chunk.isolated_hash }}) + std.fmt.count("\n//# debugId={f}\n", .{bun.SourceMap.DebugIDFormatter{ .id = chunk.isolated_hash }}) else 0; @@ -352,7 +352,7 @@ pub const Chunk = struct { // This comment must go before the //# sourceMappingURL comment remain = remain[(std.fmt.bufPrint( remain, - "\n//# debugId={}\n", + "\n//# debugId={f}\n", .{bun.SourceMap.DebugIDFormatter{ .id = chunk.isolated_hash }}, ) catch |err| switch (err) { error.NoSpaceLeft => std.debug.panic( @@ -385,7 +385,7 @@ pub const Chunk = struct { // This comment must go before the //# sourceMappingURL comment const debug_id_fmt = std.fmt.allocPrint( graph.heap.allocator(), - "\n//# debugId={}\n", + "\n//# debugId={f}\n", .{bun.SourceMap.DebugIDFormatter{ .id = chunk.isolated_hash }}, ) catch |err| bun.handleOom(err); @@ -572,7 +572,7 @@ pub const Chunk = struct { inner: *const CssImportOrder, ctx: *LinkerContext, - pub fn format(this: *const CssImportOrderDebug, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: *const CssImportOrderDebug, writer: *std.Io.Writer) !void { try writer.print("{s} = ", .{@tagName(this.inner.kind)}); switch (this.inner.kind) { .layers => |layers| { @@ -580,7 +580,7 @@ pub const Chunk = struct { const l = layers.inner(); for (l.sliceConst(), 0..) |*layer, i| { if (i > 0) try writer.print(", ", .{}); - try writer.print("\"{}\"", .{layer}); + try writer.print("\"{f}\"", .{layer}); } try writer.print("]", .{}); diff --git a/src/bundler/HTMLImportManifest.zig b/src/bundler/HTMLImportManifest.zig index 24e3387066..7827370e94 100644 --- a/src/bundler/HTMLImportManifest.zig +++ b/src/bundler/HTMLImportManifest.zig @@ -40,7 +40,7 @@ graph: *const Graph, chunks: []Chunk, linker_graph: *const LinkerGraph, -pub fn format(this: HTMLImportManifest, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) bun.OOM!void { +pub fn format(this: HTMLImportManifest, writer: *std.Io.Writer) bun.OOM!void { return write(this.index, this.graph, this.linker_graph, this.chunks, writer) catch |err| switch (err) { // We use std.fmt.count for this error.NoSpaceLeft => unreachable, @@ -98,23 +98,23 @@ fn writeEntryItem( pub fn writeEscapedJSON(index: u32, graph: *const Graph, linker_graph: *const LinkerGraph, chunks: []const Chunk, writer: anytype) !void { var stack = std.heap.stackFallback(4096, bun.default_allocator); const allocator = stack.get(); - var bytes = std.ArrayList(u8).init(allocator); + var bytes = std.array_list.Managed(u8).init(allocator); defer bytes.deinit(); try write(index, graph, linker_graph, chunks, bytes.writer()); try bun.js_printer.writePreQuotedString(bytes.items, @TypeOf(writer), writer, '"', false, true, .utf8); } -fn escapedJSONFormatter(this: HTMLImportManifest, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) bun.OOM!void { +fn escapedJSONFormatter(this: HTMLImportManifest, writer: *std.Io.Writer) std.Io.Writer.Error!void { return writeEscapedJSON(this.index, this.graph, this.linker_graph, this.chunks, writer) catch |err| switch (err) { // We use std.fmt.count for this - error.NoSpaceLeft => unreachable, - error.OutOfMemory => return error.OutOfMemory, + error.WriteFailed => unreachable, + error.OutOfMemory => return error.WriteFailed, else => unreachable, }; } -pub fn formatEscapedJSON(this: HTMLImportManifest) std.fmt.Formatter(escapedJSONFormatter) { - return std.fmt.Formatter(escapedJSONFormatter){ .data = this }; +pub fn formatEscapedJSON(this: HTMLImportManifest) std.fmt.Alt(HTMLImportManifest, escapedJSONFormatter) { + return .{ .data = this }; } pub fn write(index: u32, graph: *const Graph, linker_graph: *const LinkerGraph, chunks: []const Chunk, writer: anytype) !void { @@ -132,7 +132,7 @@ pub fn write(index: u32, graph: *const Graph, linker_graph: *const LinkerGraph, const inject_compiler_filesystem_prefix = bv2.transpiler.options.compile; // Use the server-side public path here. const public_path = bv2.transpiler.options.public_path; - var temp_buffer = std.ArrayList(u8).init(bun.default_allocator); + var temp_buffer = std.array_list.Managed(u8).init(bun.default_allocator); defer temp_buffer.deinit(); for (chunks) |*ch| { diff --git a/src/bundler/LinkerContext.zig b/src/bundler/LinkerContext.zig index 200d3c3d40..8d072e6bb2 100644 --- a/src/bundler/LinkerContext.zig +++ b/src/bundler/LinkerContext.zig @@ -10,7 +10,7 @@ pub const LinkerContext = struct { log: *Logger.Log = undefined, resolver: *Resolver = undefined, - cycle_detector: std.ArrayList(ImportTracker) = undefined, + cycle_detector: std.array_list.Managed(ImportTracker) = undefined, /// We may need to refer to the "__esm" and/or "__commonJS" runtime symbols cjs_runtime_ref: Ref = Ref.None, @@ -207,7 +207,7 @@ pub const LinkerContext = struct { this.log = bundle.transpiler.log; this.resolver = &bundle.transpiler.resolver; - this.cycle_detector = std.ArrayList(ImportTracker).init(this.allocator()); + this.cycle_detector = std.array_list.Managed(ImportTracker).init(this.allocator()); this.graph.reachable_files = reachable; @@ -810,7 +810,7 @@ pub const LinkerContext = struct { if (comptime FeatureFlags.source_map_debug_id) { j.pushStatic("\",\n \"debugId\": \""); j.push( - try std.fmt.allocPrint(worker.allocator, "{}", .{bun.SourceMap.DebugIDFormatter{ .id = isolated_hash }}), + try std.fmt.allocPrint(worker.allocator, "{f}", .{bun.SourceMap.DebugIDFormatter{ .id = isolated_hash }}), worker.allocator, ); j.pushStatic("\",\n \"names\": []\n}"); @@ -979,7 +979,7 @@ pub const LinkerContext = struct { // Require of a top-level await chain is forbidden if (record.kind == .require) { - var notes = std.ArrayList(Logger.Data).init(c.allocator()); + var notes = std.array_list.Managed(Logger.Data).init(c.allocator()); var tla_pretty_path: string = ""; var other_source_index = record.source_index.get(); @@ -1526,7 +1526,7 @@ pub const LinkerContext = struct { pub fn sortedCrossChunkExportItems( c: *LinkerContext, export_refs: ChunkMeta.Map, - list: *std.ArrayList(StableRef), + list: *std.array_list.Managed(StableRef), ) void { var result = list.*; defer list.* = result; @@ -1824,13 +1824,13 @@ pub const LinkerContext = struct { pub fn matchImportWithExport( c: *LinkerContext, init_tracker: ImportTracker, - re_exports: *std.ArrayList(js_ast.Dependency), + re_exports: *std.array_list.Managed(js_ast.Dependency), ) MatchImport { const cycle_detector_top = c.cycle_detector.items.len; defer c.cycle_detector.shrinkRetainingCapacity(cycle_detector_top); var tracker = init_tracker; - var ambiguous_results = std.ArrayList(MatchImport).init(c.allocator()); + var ambiguous_results = std.array_list.Managed(MatchImport).init(c.allocator()); defer ambiguous_results.clearAndFree(); var result: MatchImport = MatchImport{}; @@ -2448,7 +2448,7 @@ pub const LinkerContext = struct { const import_ref = ref; - var re_exports = std.ArrayList(js_ast.Dependency).init(c.allocator()); + var re_exports = std.array_list.Managed(js_ast.Dependency).init(c.allocator()); const result = c.matchImportWithExport(.{ .source_index = Index.source(source_index), .import_ref = import_ref, @@ -2569,7 +2569,7 @@ pub const LinkerContext = struct { var pieces = brk: { errdefer j.deinit(); - break :brk try std.ArrayList(OutputPiece).initCapacity(alloc, count); + break :brk try std.array_list.Managed(OutputPiece).initCapacity(alloc, count); }; errdefer pieces.deinit(); const complete_output = try j.done(alloc); diff --git a/src/bundler/LinkerGraph.zig b/src/bundler/LinkerGraph.zig index 8fd01500ae..049bcda948 100644 --- a/src/bundler/LinkerGraph.zig +++ b/src/bundler/LinkerGraph.zig @@ -123,7 +123,7 @@ pub fn addPartToFile( var entry = overlay.getOrPut(self.graph.allocator, ref) catch unreachable; if (!entry.found_existing) { if (self.graph.ast.items(.top_level_symbols_to_parts)[self.id].get(ref)) |original_parts| { - var list = std.ArrayList(u32).init(self.graph.allocator); + var list = std.array_list.Managed(u32).init(self.graph.allocator); list.ensureTotalCapacityPrecise(original_parts.len + 1) catch unreachable; list.appendSliceAssumeCapacity(original_parts.slice()); list.appendAssumeCapacity(self.part_id); diff --git a/src/bundler/ParseTask.zig b/src/bundler/ParseTask.zig index a20b43cb53..95bbc25e15 100644 --- a/src/bundler/ParseTask.zig +++ b/src/bundler/ParseTask.zig @@ -382,7 +382,7 @@ fn getAST( const path_to_use = brk: { // Implements embedded sqlite if (loader == .sqlite_embedded) { - const embedded_path = std.fmt.allocPrint(allocator, "{any}A{d:0>8}", .{ bun.fmt.hexIntLower(unique_key_prefix), source.index.get() }) catch unreachable; + const embedded_path = std.fmt.allocPrint(allocator, "{f}A{d:0>8}", .{ bun.fmt.hexIntLower(unique_key_prefix), source.index.get() }) catch unreachable; unique_key_for_additional_file.* = .{ .key = embedded_path, .content_hash = ContentHasher.run(source.contents), @@ -446,7 +446,7 @@ fn getAST( return error.ParserError; } - const unique_key = std.fmt.allocPrint(allocator, "{any}A{d:0>8}", .{ bun.fmt.hexIntLower(unique_key_prefix), source.index.get() }) catch unreachable; + const unique_key = std.fmt.allocPrint(allocator, "{f}A{d:0>8}", .{ bun.fmt.hexIntLower(unique_key_prefix), source.index.get() }) catch unreachable; // This injects the following code: // // require(unique_key) @@ -607,7 +607,7 @@ fn getAST( else try std.fmt.allocPrint( allocator, - "{any}A{d:0>8}", + "{f}A{d:0>8}", .{ bun.fmt.hexIntLower(unique_key_prefix), source.index.get() }, ); const root = Expr.init(E.String, .{ .data = unique_key }, .{ .start = 0 }); @@ -675,7 +675,7 @@ fn getCodeForParseTaskWithoutPlugins( source, Logger.Loc.Empty, allocator, - "File not found {}", + "File not found {f}", .{bun.fmt.quote(file_path.text)}, ) catch {}; return error.FileNotFound; @@ -685,7 +685,7 @@ fn getCodeForParseTaskWithoutPlugins( source, Logger.Loc.Empty, allocator, - "{s} reading file: {}", + "{s} reading file: {f}", .{ @errorName(err), bun.fmt.quote(file_path.text) }, ) catch {}; }, @@ -853,7 +853,7 @@ const OnBeforeParsePlugin = struct { pub fn logFn( args_: ?*OnBeforeParseArguments, log_options_: ?*BunLogOptions, - ) callconv(.C) void { + ) callconv(.c) void { const args = args_ orelse return; const log_options = log_options_ orelse return; log_options.append(args.context.log, args.context.file_path.namespace); @@ -875,15 +875,15 @@ const OnBeforeParsePlugin = struct { source_len: usize = 0, loader: Loader, - fetch_source_code_fn: *const fn (*OnBeforeParseArguments, *OnBeforeParseResult) callconv(.C) i32 = &fetchSourceCode, + fetch_source_code_fn: *const fn (*OnBeforeParseArguments, *OnBeforeParseResult) callconv(.c) i32 = &fetchSourceCode, user_context: ?*anyopaque = null, - free_user_context: ?*const fn (?*anyopaque) callconv(.C) void = null, + free_user_context: ?*const fn (?*anyopaque) callconv(.c) void = null, log: *const fn ( args_: ?*OnBeforeParseArguments, log_options_: ?*BunLogOptions, - ) callconv(.C) void = &BunLogOptions.logFn, + ) callconv(.c) void = &BunLogOptions.logFn, pub fn getWrapper(result: *OnBeforeParseResult) *OnBeforeParseResultWrapper { const wrapper: *OnBeforeParseResultWrapper = @fieldParentPtr("result", result); @@ -892,7 +892,7 @@ const OnBeforeParsePlugin = struct { } }; - pub fn fetchSourceCode(args: *OnBeforeParseArguments, result: *OnBeforeParseResult) callconv(.C) i32 { + pub fn fetchSourceCode(args: *OnBeforeParseArguments, result: *OnBeforeParseResult) callconv(.c) i32 { debug("fetchSourceCode", .{}); const this = args.context; if (this.log.errors > 0 or this.deferred_error != null or this.should_continue_running.* != 1) { diff --git a/src/bundler/ServerComponentParseTask.zig b/src/bundler/ServerComponentParseTask.zig index 6fd3855972..7ef3a003cb 100644 --- a/src/bundler/ServerComponentParseTask.zig +++ b/src/bundler/ServerComponentParseTask.zig @@ -130,7 +130,7 @@ fn generateClientReferenceProxy(task: *ServerComponentParseTask, data: Data.Refe .data = if (task.ctx.transpiler.options.dev_server != null) data.other_source.path.pretty else - try std.fmt.allocPrint(b.allocator, "{}S{d:0>8}", .{ + try std.fmt.allocPrint(b.allocator, "{f}S{d:0>8}", .{ bun.fmt.hexIntLower(task.ctx.unique_key), data.other_source.index.get(), }), diff --git a/src/bundler/bundle_v2.zig b/src/bundler/bundle_v2.zig index 712a8a99b5..b83e7121fb 100644 --- a/src/bundler/bundle_v2.zig +++ b/src/bundler/bundle_v2.zig @@ -84,18 +84,17 @@ pub fn genericPathWithPrettyInitialized(path: Fs.Path, target: options.Target, t } else { // in non-file namespaces, standard filesystem rules do not apply. var path_clone = path; - path_clone.pretty = std.fmt.bufPrint(buf, "{s}{}:{s}", .{ + path_clone.pretty = std.fmt.bufPrint(buf, "{s}{f}:{s}", .{ if (target == .bake_server_components_ssr) "ssr:" else "", // make sure that a namespace including a colon wont collide with anything - std.fmt.Formatter(fmtEscapedNamespace){ .data = path.namespace }, + std.fmt.Alt([]const u8, fmtEscapedNamespace){ .data = path.namespace }, path.text, }) catch buf[0..]; return path_clone.dupeAllocFixPretty(allocator); } } -fn fmtEscapedNamespace(slice: []const u8, comptime fmt: []const u8, _: std.fmt.FormatOptions, w: anytype) !void { - comptime bun.assert(fmt.len == 0); +fn fmtEscapedNamespace(slice: []const u8, w: *std.Io.Writer) !void { var rest = slice; while (bun.strings.indexOfChar(rest, ':')) |i| { try w.writeAll(rest[0..i]); @@ -125,7 +124,7 @@ pub const BundleV2 = struct { resolve_tasks_waiting_for_import_source_index: std.AutoArrayHashMapUnmanaged(Index.Int, BabyList(struct { to_source_index: Index, import_record_index: u32 })) = .{}, /// Allocations not tracked by a threadlocal heap - free_list: std.ArrayList([]const u8) = std.ArrayList([]const u8).init(bun.default_allocator), + free_list: std.array_list.Managed([]const u8) = std.array_list.Managed([]const u8).init(bun.default_allocator), /// See the comment in `Chunk.OutputPiece` unique_key: u64 = 0, @@ -265,7 +264,7 @@ pub const BundleV2 = struct { } const ReachableFileVisitor = struct { - reachable: std.ArrayList(Index), + reachable: std.array_list.Managed(Index), visited: bun.bit_set.DynamicBitSet, all_import_records: []ImportRecord.List, all_loaders: []const Loader, @@ -395,7 +394,7 @@ pub const BundleV2 = struct { const all_urls_for_css = this.graph.ast.items(.url_for_css); var visitor = ReachableFileVisitor{ - .reachable = try std.ArrayList(Index).initCapacity(this.allocator(), this.graph.entry_points.items.len + 1), + .reachable = try std.array_list.Managed(Index).initCapacity(this.allocator(), this.graph.entry_points.items.len + 1), .visited = try bun.bit_set.DynamicBitSet.initEmpty(this.allocator(), this.graph.input_files.len), .redirects = this.graph.ast.items(.redirect_import_record_index), .all_import_records = this.graph.ast.items(.import_records), @@ -432,7 +431,7 @@ pub const BundleV2 = struct { const targets: []options.Target = this.graph.ast.items(.target); for (visitor.reachable.items) |idx| { const source = sources[idx.get()]; - DebugLog.log("reachable file: #{d} {} ({s}) target=.{s}", .{ + DebugLog.log("reachable file: #{d} {f} ({s}) target=.{s}", .{ source.index.get(), bun.fmt.quote(source.path.pretty), source.path.text, @@ -1215,20 +1214,20 @@ pub const BundleV2 = struct { if (!sc.separate_ssr_graph) bun.todoPanic(@src(), "separate_ssr_graph=false", .{}); const client_path = server.newExpr(E.String{ - .data = try std.fmt.allocPrint(alloc, "{}S{d:0>8}", .{ + .data = try std.fmt.allocPrint(alloc, "{f}S{d:0>8}", .{ bun.fmt.hexIntLower(this.unique_key), source_id, }), }); const ssr_path = server.newExpr(E.String{ - .data = try std.fmt.allocPrint(alloc, "{}S{d:0>8}", .{ + .data = try std.fmt.allocPrint(alloc, "{f}S{d:0>8}", .{ bun.fmt.hexIntLower(this.unique_key), ssr_index, }), }); for (keys, client_manifest_items) |export_name_string, *client_item| { - const server_key_string = try std.fmt.allocPrint(alloc, "{}S{d:0>8}#{s}", .{ + const server_key_string = try std.fmt.allocPrint(alloc, "{f}S{d:0>8}#{s}", .{ bun.fmt.hexIntLower(this.unique_key), source_id, export_name_string, @@ -1482,7 +1481,7 @@ pub const BundleV2 = struct { minify_duration: *u64, source_code_size: *u64, fetcher: ?*DependenciesScanner, - ) !std.ArrayList(options.OutputFile) { + ) !std.array_list.Managed(options.OutputFile) { var this = try BundleV2.init( transpiler, null, @@ -1536,7 +1535,7 @@ pub const BundleV2 = struct { // Do this at the very end, after processing all the imports/exports so that we can follow exports as needed. if (fetcher) |fetch| { try this.getAllDependencies(reachable_files, fetch); - return std.ArrayList(options.OutputFile).init(alloc); + return std.array_list.Managed(options.OutputFile).init(alloc); } return try this.linker.generateChunksInParallel(chunks, false); @@ -1548,7 +1547,7 @@ pub const BundleV2 = struct { bake_options: BakeOptions, alloc: std.mem.Allocator, event_loop: EventLoop, - ) !std.ArrayList(options.OutputFile) { + ) !std.array_list.Managed(options.OutputFile) { var this = try BundleV2.init( server_transpiler, bake_options, @@ -1596,7 +1595,7 @@ pub const BundleV2 = struct { ); if (chunks.len == 0) { - return std.ArrayList(options.OutputFile).init(bun.default_allocator); + return std.array_list.Managed(options.OutputFile).init(bun.default_allocator); } return try this.linker.generateChunksInParallel(chunks, false); @@ -1627,7 +1626,7 @@ pub const BundleV2 = struct { const content_hashes_for_additional_files = this.graph.input_files.items(.content_hash_for_additional_file); const sources: []const Logger.Source = this.graph.input_files.items(.source); const targets: []const options.Target = this.graph.ast.items(.target); - var additional_output_files = std.ArrayList(options.OutputFile).init(this.transpiler.allocator); + var additional_output_files = std.array_list.Managed(options.OutputFile).init(this.transpiler.allocator); const additional_files: []BabyList(AdditionalFile) = this.graph.input_files.items(.additional_files); const loaders = this.graph.input_files.items(.loader); @@ -1668,7 +1667,7 @@ pub const BundleV2 = struct { if (template.needs(.target)) { template.placeholder.target = @tagName(target); } - break :brk bun.handleOom(std.fmt.allocPrint(bun.default_allocator, "{}", .{template})); + break :brk bun.handleOom(std.fmt.allocPrint(bun.default_allocator, "{f}", .{template})); }; const loader = loaders[index]; @@ -1750,7 +1749,7 @@ pub const BundleV2 = struct { } pub const BuildResult = struct { - output_files: std.ArrayList(options.OutputFile), + output_files: std.array_list.Managed(options.OutputFile), pub fn deinit(this: *BuildResult) void { for (this.output_files.items) |*output_file| { @@ -1937,7 +1936,7 @@ pub const BundleV2 = struct { bun.destroy(this); } - fn doCompilation(this: *JSBundleCompletionTask, output_files: *std.ArrayList(options.OutputFile)) bun.StandaloneModuleGraph.CompileResult { + fn doCompilation(this: *JSBundleCompletionTask, output_files: *std.array_list.Managed(options.OutputFile)) bun.StandaloneModuleGraph.CompileResult { const compile_options = &(this.config.compile orelse @panic("Unexpected: No compile options provided")); const entry_point_index: usize = brk: { @@ -2286,7 +2285,7 @@ pub const BundleV2 = struct { // When it's not a file, this is a build error and we should report it. // we have no way of loading non-files. - log.addErrorFmt(source, Logger.Loc.Empty, bun.default_allocator, "Module not found {} in namespace {}", .{ + log.addErrorFmt(source, Logger.Loc.Empty, bun.default_allocator, "Module not found {f} in namespace {f}", .{ bun.fmt.quote(source.path.pretty), bun.fmt.quote(source.path.namespace), }) catch {}; @@ -2353,7 +2352,7 @@ pub const BundleV2 = struct { .clone_line_text = false, .errors = @intFromBool(msg.kind == .err), .warnings = @intFromBool(msg.kind == .warn), - .msgs = std.ArrayList(Logger.Msg).fromOwnedSlice(this.allocator(), (&msg_mut)[0..1]), + .msgs = std.array_list.Managed(Logger.Msg).fromOwnedSlice(this.allocator(), (&msg_mut)[0..1]), }; dev.handleParseTaskFailure( error.Plugin, @@ -2422,7 +2421,7 @@ pub const BundleV2 = struct { // // We have no way of loading non-files. if (resolve.import_record.kind == .entry_point_build) { - log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "Module not found {} in namespace {}", .{ + log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "Module not found {f} in namespace {f}", .{ bun.fmt.quote(resolve.import_record.specifier), bun.fmt.quote(resolve.import_record.namespace), }) catch {}; @@ -2432,7 +2431,7 @@ pub const BundleV2 = struct { source, resolve.import_record.range, bun.default_allocator, - "Module not found {} in namespace {}", + "Module not found {f} in namespace {f}", .{ bun.fmt.quote(resolve.import_record.specifier), bun.fmt.quote(resolve.import_record.namespace), @@ -2599,7 +2598,7 @@ pub const BundleV2 = struct { pub fn runFromJSInNewThread( this: *BundleV2, entry_points: []const []const u8, - ) !std.ArrayList(options.OutputFile) { + ) !std.array_list.Managed(options.OutputFile) { this.unique_key = generateUniqueKey(); if (this.transpiler.log.errors > 0) { @@ -3515,7 +3514,7 @@ pub const BundleV2 = struct { var js_parser_options = bun.js_parser.Parser.Options.init(this.transpilerForTarget(target).options.jsx, .html); js_parser_options.bundle = true; - const unique_key = try std.fmt.allocPrint(this.allocator(), "{any}H{d:0>8}", .{ + const unique_key = try std.fmt.allocPrint(this.allocator(), "{f}H{d:0>8}", .{ bun.fmt.hexIntLower(this.unique_key), graph.html_imports.server_source_indices.len, }); @@ -4210,7 +4209,7 @@ pub const CrossChunkImport = struct { return std.math.order(a.chunk_index, b.chunk_index) == .lt; } - pub const List = std.ArrayList(CrossChunkImport); + pub const List = std.array_list.Managed(CrossChunkImport); pub fn sortedCrossChunkImports( list: *List, @@ -4444,7 +4443,7 @@ pub fn generateUniqueKey() u64 { // with a number forces that optimization off. if (Environment.isDebug) { var buf: [16]u8 = undefined; - const hex = std.fmt.bufPrint(&buf, "{}", .{bun.fmt.hexIntLower(key)}) catch + const hex = std.fmt.bufPrint(&buf, "{f}", .{bun.fmt.hexIntLower(key)}) catch unreachable; switch (hex[0]) { '0'...'9' => {}, @@ -4455,7 +4454,7 @@ pub fn generateUniqueKey() u64 { } const ExternalFreeFunctionAllocator = struct { - free_callback: *const fn (ctx: *anyopaque) callconv(.C) void, + free_callback: *const fn (ctx: *anyopaque) callconv(.c) void, context: *anyopaque, const vtable: std.mem.Allocator.VTable = .{ @@ -4465,7 +4464,7 @@ const ExternalFreeFunctionAllocator = struct { .remap = &std.mem.Allocator.noRemap, }; - pub fn create(free_callback: *const fn (ctx: *anyopaque) callconv(.C) void, context: *anyopaque) std.mem.Allocator { + pub fn create(free_callback: *const fn (ctx: *anyopaque) callconv(.c) void, context: *anyopaque) std.mem.Allocator { return .{ .ptr = bun.create(bun.default_allocator, ExternalFreeFunctionAllocator, .{ .free_callback = free_callback, @@ -4480,7 +4479,7 @@ const ExternalFreeFunctionAllocator = struct { } fn free(ext_free_function: *anyopaque, _: []u8, _: std.mem.Alignment, _: usize) void { - const info: *ExternalFreeFunctionAllocator = @alignCast(@ptrCast(ext_free_function)); + const info: *ExternalFreeFunctionAllocator = @ptrCast(@alignCast(ext_free_function)); info.free_callback(info.context); bun.default_allocator.destroy(info); } diff --git a/src/bundler/entry_points.zig b/src/bundler/entry_points.zig index 42eca7b748..ca3196bf15 100644 --- a/src/bundler/entry_points.zig +++ b/src/bundler/entry_points.zig @@ -163,7 +163,7 @@ pub const ServerEntryPoint = struct { break :brk try std.fmt.allocPrint( allocator, \\// @bun - \\import * as start from '{}'; + \\import * as start from '{f}'; \\var hmrSymbol = Symbol("BunServerHMR"); \\var entryNamespace = start; \\if (typeof entryNamespace?.then === 'function') {{ @@ -200,7 +200,7 @@ pub const ServerEntryPoint = struct { break :brk try std.fmt.allocPrint( allocator, \\// @bun - \\import * as start from "{}"; + \\import * as start from "{f}"; \\var entryNamespace = start; \\if (typeof entryNamespace?.then === 'function') {{ \\ entryNamespace = entryNamespace.then((entryNamespace) => {{ @@ -245,7 +245,7 @@ pub const MacroEntryPoint = struct { const hash = hasher.final(); const fmt = bun.fmt.hexIntLower(hash); - const specifier = std.fmt.bufPrint(buf, js_ast.Macro.namespaceWithColon ++ "//{any}.js", .{fmt}) catch unreachable; + const specifier = std.fmt.bufPrint(buf, js_ast.Macro.namespaceWithColon ++ "//{f}.js", .{fmt}) catch unreachable; len.* = @as(u32, @truncate(specifier.len)); return generateIDFromSpecifier(specifier); @@ -299,13 +299,13 @@ pub const MacroEntryPoint = struct { \\//Auto-generated file \\var Macros; \\try {{ - \\ Macros = await import('{s}{s}'); + \\ Macros = await import('{f}{f}'); \\}} catch (err) {{ \\ console.error("Error importing macro"); \\ throw err; \\}} \\if (!('{s}' in Macros)) {{ - \\ throw new Error("Macro '{s}' not found in '{s}{s}'"); + \\ throw new Error("Macro '{s}' not found in '{f}{f}'"); \\}} \\ \\Bun.registerMacro({d}, Macros['{s}']); diff --git a/src/bundler/linker_context/OutputFileListBuilder.zig b/src/bundler/linker_context/OutputFileListBuilder.zig index 57add5ba66..47d1b6f1b9 100644 --- a/src/bundler/linker_context/OutputFileListBuilder.zig +++ b/src/bundler/linker_context/OutputFileListBuilder.zig @@ -28,7 +28,7 @@ //! file for a chunk. pub const OutputFileList = @This(); -output_files: std.ArrayList(options.OutputFile), +output_files: std.array_list.Managed(options.OutputFile), index_for_chunk: u32, index_for_sourcemaps_and_bytecode: ?u32, additional_output_files_start: u32, @@ -42,7 +42,7 @@ pub fn init( _: usize, ) !@This() { const length, const source_map_and_bytecode_count = OutputFileList.calculateOutputFileListCapacity(c, chunks); - var output_files = try std.ArrayList(options.OutputFile).initCapacity( + var output_files = try std.array_list.Managed(options.OutputFile).initCapacity( allocator, length, ); @@ -57,13 +57,13 @@ pub fn init( }; } -pub fn take(this: *@This()) std.ArrayList(options.OutputFile) { +pub fn take(this: *@This()) std.array_list.Managed(options.OutputFile) { // TODO: should this return an error bun.assertf(this.total_insertions == this.output_files.items.len, "total_insertions ({d}) != output_files.items.len ({d})", .{ this.total_insertions, this.output_files.items.len }); // Set the length just in case so the list doesn't have undefined memory this.output_files.items.len = this.total_insertions; const list = this.output_files; - this.output_files = std.ArrayList(options.OutputFile).init(bun.default_allocator); + this.output_files = std.array_list.Managed(options.OutputFile).init(bun.default_allocator); return list; } diff --git a/src/bundler/linker_context/computeChunks.zig b/src/bundler/linker_context/computeChunks.zig index 18e8910a6b..5eda855883 100644 --- a/src/bundler/linker_context/computeChunks.zig +++ b/src/bundler/linker_context/computeChunks.zig @@ -44,7 +44,7 @@ pub noinline fn computeChunks( break :brk try temp_allocator.dupe(u8, entry_bits.bytes(this.graph.entry_points.len)); } else { // Force HTML chunks to always be generated, even if there's an identical JS file. - break :brk try std.fmt.allocPrint(temp_allocator, "{}", .{JSChunkKeyFormatter{ + break :brk try std.fmt.allocPrint(temp_allocator, "{f}", .{JSChunkKeyFormatter{ .has_html = has_html_chunk, .entry_bits = entry_bits.bytes(this.graph.entry_points.len), }}); @@ -316,7 +316,7 @@ pub noinline fn computeChunks( return chunks; } - const unique_key_item_len = std.fmt.count("{any}C{d:0>8}", .{ bun.fmt.hexIntLower(unique_key), chunks.len }); + const unique_key_item_len = std.fmt.count("{f}C{d:0>8}", .{ bun.fmt.hexIntLower(unique_key), chunks.len }); var unique_key_builder = try bun.StringBuilder.initCapacity(this.allocator(), unique_key_item_len * chunks.len); this.unique_key_buf = unique_key_builder.allocatedSlice(); @@ -332,9 +332,9 @@ pub noinline fn computeChunks( // Assign a unique key to each chunk. This key encodes the index directly so // we can easily recover it later without needing to look it up in a map. The // last 8 numbers of the key are the chunk index. - chunk.unique_key = unique_key_builder.fmt("{}C{d:0>8}", .{ bun.fmt.hexIntLower(unique_key), chunk_id }); + chunk.unique_key = unique_key_builder.fmt("{f}C{d:0>8}", .{ bun.fmt.hexIntLower(unique_key), chunk_id }); if (this.unique_key_prefix.len == 0) - this.unique_key_prefix = chunk.unique_key[0..std.fmt.count("{}", .{bun.fmt.hexIntLower(unique_key)})]; + this.unique_key_prefix = chunk.unique_key[0..std.fmt.count("{f}", .{bun.fmt.hexIntLower(unique_key)})]; if (chunk.entry_point.is_entry_point and (chunk.content == .html or (kinds[chunk.entry_point.source_index] == .user_specified and !chunk.has_html_chunk))) @@ -406,7 +406,7 @@ const JSChunkKeyFormatter = struct { has_html: bool, entry_bits: []const u8, - pub fn format(this: @This(), comptime _: []const u8, _: anytype, writer: anytype) !void { + pub fn format(this: @This(), writer: *std.Io.Writer) std.Io.Writer.Error!void { try writer.writeAll(&[_]u8{@intFromBool(!this.has_html)}); try writer.writeAll(this.entry_bits); } diff --git a/src/bundler/linker_context/computeCrossChunkDependencies.zig b/src/bundler/linker_context/computeCrossChunkDependencies.zig index 68f3756350..13ef6ad6b2 100644 --- a/src/bundler/linker_context/computeCrossChunkDependencies.zig +++ b/src/bundler/linker_context/computeCrossChunkDependencies.zig @@ -155,7 +155,7 @@ const CrossChunkDependencies = struct { }; if (comptime Environment.allow_assert) - debug("Cross-chunk import: {s} {}", .{ deps.symbols.get(ref_to_use).?.original_name, ref_to_use }); + debug("Cross-chunk import: {s} {f}", .{ deps.symbols.get(ref_to_use).?.original_name, ref_to_use }); // We must record this relationship even for symbols that are not // imports. Due to code splitting, the definition of a symbol may @@ -293,7 +293,7 @@ fn computeCrossChunkDependenciesWithChunkMetas(c: *LinkerContext, chunks: []Chun defer r.deinit(); debug("Generating cross-chunk exports", .{}); - var stable_ref_list = std.ArrayList(StableRef).init(c.allocator()); + var stable_ref_list = std.array_list.Managed(StableRef).init(c.allocator()); defer stable_ref_list.deinit(); for (chunks, chunk_metas) |*chunk, *chunk_meta| { @@ -373,7 +373,7 @@ fn computeCrossChunkDependenciesWithChunkMetas(c: *LinkerContext, chunks: []Chun .esm => { const import_record_index = @as(u32, @intCast(cross_chunk_imports.len)); - var clauses = std.ArrayList(js_ast.ClauseItem).initCapacity(c.allocator(), cross_chunk_import.sorted_import_items.len) catch unreachable; + var clauses = std.array_list.Managed(js_ast.ClauseItem).initCapacity(c.allocator(), cross_chunk_import.sorted_import_items.len) catch unreachable; for (cross_chunk_import.sorted_import_items.slice()) |item| { clauses.appendAssumeCapacity(.{ .name = .{ diff --git a/src/bundler/linker_context/convertStmtsForChunk.zig b/src/bundler/linker_context/convertStmtsForChunk.zig index e5a7cd6b0c..a3cad8750c 100644 --- a/src/bundler/linker_context/convertStmtsForChunk.zig +++ b/src/bundler/linker_context/convertStmtsForChunk.zig @@ -480,9 +480,8 @@ pub fn convertStmtsForChunk( }, else => bun.unreachablePanic( - "Unexpected type {any} in source file {s}", + "Unexpected type in source file {s}", .{ - stmt2.data, c.parse_graph.input_files.get(c.graph.files.get(source_index).input_file.get()).source.path.text, }, ), diff --git a/src/bundler/linker_context/doStep5.zig b/src/bundler/linker_context/doStep5.zig index 440c224e1a..a1df034bac 100644 --- a/src/bundler/linker_context/doStep5.zig +++ b/src/bundler/linker_context/doStep5.zig @@ -19,7 +19,7 @@ pub fn doStep5(c: *LinkerContext, source_index_: Index, _: usize) void { // Now that all exports have been resolved, sort and filter them to create // something we can iterate over later. - var aliases = std.ArrayList(string).initCapacity(allocator, resolved_exports.count()) catch unreachable; + var aliases = std.array_list.Managed(string).initCapacity(allocator, resolved_exports.count()) catch unreachable; var alias_iter = resolved_exports.iterator(); const imports_to_bind = c.graph.meta.items(.imports_to_bind); const probably_typescript_type = c.graph.meta.items(.probably_typescript_type); @@ -230,7 +230,7 @@ pub fn createExportsForFile( defer Expr.Disabler.enable(); // 1 property per export - var properties = bun.handleOom(std.ArrayList(js_ast.G.Property) + var properties = bun.handleOom(std.array_list.Managed(js_ast.G.Property) .initCapacity(allocator, export_aliases.len)); var ns_export_symbol_uses = Part.SymbolUseMap{}; @@ -254,7 +254,7 @@ pub fn createExportsForFile( defer stmts.done(); const loc = Logger.Loc.Empty; // todo: investigate if preallocating this array is faster - var ns_export_dependencies = bun.handleOom(std.ArrayList(js_ast.Dependency).initCapacity(allocator, re_exports_count)); + var ns_export_dependencies = bun.handleOom(std.array_list.Managed(js_ast.Dependency).initCapacity(allocator, re_exports_count)); for (export_aliases) |alias| { var exp = resolved_exports.getPtr(alias).?.*; diff --git a/src/bundler/linker_context/findAllImportedPartsInJSOrder.zig b/src/bundler/linker_context/findAllImportedPartsInJSOrder.zig index 1d9a702ec4..9727512ca6 100644 --- a/src/bundler/linker_context/findAllImportedPartsInJSOrder.zig +++ b/src/bundler/linker_context/findAllImportedPartsInJSOrder.zig @@ -2,8 +2,8 @@ pub fn findAllImportedPartsInJSOrder(this: *LinkerContext, temp_allocator: std.m const trace = bun.perf.trace("Bundler.findAllImportedPartsInJSOrder"); defer trace.end(); - var part_ranges_shared = std.ArrayList(PartRange).init(temp_allocator); - var parts_prefix_shared = std.ArrayList(PartRange).init(temp_allocator); + var part_ranges_shared = std.array_list.Managed(PartRange).init(temp_allocator); + var parts_prefix_shared = std.array_list.Managed(PartRange).init(temp_allocator); defer part_ranges_shared.deinit(); defer parts_prefix_shared.deinit(); for (chunks, 0..) |*chunk, index| { @@ -25,11 +25,11 @@ pub fn findAllImportedPartsInJSOrder(this: *LinkerContext, temp_allocator: std.m pub fn findImportedPartsInJSOrder( this: *LinkerContext, chunk: *Chunk, - part_ranges_shared: *std.ArrayList(PartRange), - parts_prefix_shared: *std.ArrayList(PartRange), + part_ranges_shared: *std.array_list.Managed(PartRange), + parts_prefix_shared: *std.array_list.Managed(PartRange), chunk_index: u32, ) !void { - var chunk_order_array = try std.ArrayList(Chunk.Order).initCapacity(this.allocator(), chunk.files_with_parts_in_chunk.count()); + var chunk_order_array = try std.array_list.Managed(Chunk.Order).initCapacity(this.allocator(), chunk.files_with_parts_in_chunk.count()); defer chunk_order_array.deinit(); const distances = this.graph.files.items(.distance_from_entry_point); for (chunk.files_with_parts_in_chunk.keys()) |source_index| { @@ -49,16 +49,16 @@ pub fn findImportedPartsInJSOrder( flags: []const JSMeta.Flags, parts: []BabyList(Part), import_records: []BabyList(ImportRecord), - files: std.ArrayList(Index.Int), - part_ranges: std.ArrayList(PartRange), + files: std.array_list.Managed(Index.Int), + part_ranges: std.array_list.Managed(PartRange), visited: std.AutoHashMap(Index.Int, void), - parts_prefix: std.ArrayList(PartRange), + parts_prefix: std.array_list.Managed(PartRange), c: *LinkerContext, entry_point: Chunk.EntryPoint, chunk_index: u32, fn appendOrExtendRange( - ranges: *std.ArrayList(PartRange), + ranges: *std.array_list.Managed(PartRange), source_index: Index.Int, part_index: Index.Int, ) void { @@ -164,7 +164,7 @@ pub fn findImportedPartsInJSOrder( parts_prefix_shared.clearRetainingCapacity(); var visitor = FindImportedPartsVisitor{ - .files = std.ArrayList(Index.Int).init(this.allocator()), + .files = std.array_list.Managed(Index.Int).init(this.allocator()), .part_ranges = part_ranges_shared.*, .parts_prefix = parts_prefix_shared.*, .visited = std.AutoHashMap(Index.Int, void).init(this.allocator()), diff --git a/src/bundler/linker_context/findImportedFilesInCSSOrder.zig b/src/bundler/linker_context/findImportedFilesInCSSOrder.zig index 74e5c7fb5c..7eb05ac3b6 100644 --- a/src/bundler/linker_context/findImportedFilesInCSSOrder.zig +++ b/src/bundler/linker_context/findImportedFilesInCSSOrder.zig @@ -618,14 +618,14 @@ fn debugCssOrderImpl(this: *LinkerContext, order: *const BabyList(Chunk.CssImpor defer arena.deinit(); for (order.slice(), 0..) |entry, i| { const conditions_str = if (entry.conditions.len > 0) conditions_str: { - var arrlist = std.ArrayListUnmanaged(u8){}; - const writer = arrlist.writer(arena.allocator()); + var arrlist = std.Io.Writer.Allocating.init(arena.allocator()); + const writer = &arrlist.writer; const W = @TypeOf(writer); - arrlist.appendSlice(arena.allocator(), "[") catch unreachable; + writer.writeAll("[") catch unreachable; var symbols = Symbol.Map{}; for (entry.conditions.sliceConst(), 0..) |*condition_, j| { const condition: *const bun.css.ImportConditions = condition_; - const scratchbuf = std.ArrayList(u8).init(arena.allocator()); + const scratchbuf = std.array_list.Managed(u8).init(arena.allocator()); var printer = bun.css.Printer(W).new( arena.allocator(), scratchbuf, @@ -642,14 +642,14 @@ fn debugCssOrderImpl(this: *LinkerContext, order: *const BabyList(Chunk.CssImpor condition.toCss(W, &printer) catch unreachable; if (j != entry.conditions.len - 1) { - arrlist.appendSlice(arena.allocator(), ", ") catch unreachable; + writer.writeAll(", ") catch unreachable; } } - arrlist.appendSlice(arena.allocator(), " ]") catch unreachable; - break :conditions_str arrlist.items; + writer.writeAll(" ]") catch unreachable; + break :conditions_str arrlist.written(); } else "[]"; - debug(" {d}: {} {s}\n", .{ i, entry.fmt(this), conditions_str }); + debug(" {d}: {f} {s}\n", .{ i, entry.fmt(this), conditions_str }); } } } diff --git a/src/bundler/linker_context/generateChunksInParallel.zig b/src/bundler/linker_context/generateChunksInParallel.zig index dcb091fb0c..9bbf2257c9 100644 --- a/src/bundler/linker_context/generateChunksInParallel.zig +++ b/src/bundler/linker_context/generateChunksInParallel.zig @@ -2,7 +2,7 @@ pub fn generateChunksInParallel( c: *LinkerContext, chunks: []Chunk, comptime is_dev_server: bool, -) !if (is_dev_server) void else std.ArrayList(options.OutputFile) { +) !if (is_dev_server) void else std.array_list.Managed(options.OutputFile) { const trace = bun.perf.trace("Bundler.generateChunksInParallel"); defer trace.end(); @@ -227,7 +227,7 @@ pub fn generateChunksInParallel( chunk_visit_map.setAll(false); chunk.template.placeholder.hash = hash.digest(); - const rel_path = bun.handleOom(std.fmt.allocPrint(c.allocator(), "{any}", .{chunk.template})); + const rel_path = bun.handleOom(std.fmt.allocPrint(c.allocator(), "{f}", .{chunk.template})); bun.path.platformToPosixInPlace(u8, rel_path); if ((try path_names_map.getOrPut(rel_path)).found_existing) { @@ -251,7 +251,7 @@ pub fn generateChunksInParallel( } if (duplicates_map.count() > 0) { - var msg = std.ArrayList(u8).init(bun.default_allocator); + var msg = std.array_list.Managed(u8).init(bun.default_allocator); errdefer msg.deinit(); var entry_naming: ?[]const u8 = null; @@ -369,7 +369,7 @@ pub fn generateChunksInParallel( const source_map_start = "//# sourceMappingURL="; const total_len = code_result.buffer.len + source_map_start.len + a.len + b.len + "\n".len; - var buf = std.ArrayList(u8).initCapacity(Chunk.IntermediateOutput.allocatorForSize(total_len), total_len) catch @panic("Failed to allocate memory for output file with inline source map"); + var buf = std.array_list.Managed(u8).initCapacity(Chunk.IntermediateOutput.allocatorForSize(total_len), total_len) catch @panic("Failed to allocate memory for output file with inline source map"); buf.appendSliceAssumeCapacity(code_result.buffer); buf.appendSliceAssumeCapacity(source_map_start); buf.appendSliceAssumeCapacity(a); @@ -404,7 +404,7 @@ pub fn generateChunksInParallel( const source_map_start = "//# sourceMappingURL=data:application/json;base64,"; const total_len = code_result.buffer.len + source_map_start.len + encode_len + 1; - var buf = std.ArrayList(u8).initCapacity(Chunk.IntermediateOutput.allocatorForSize(total_len), total_len) catch @panic("Failed to allocate memory for output file with inline source map"); + var buf = std.array_list.Managed(u8).initCapacity(Chunk.IntermediateOutput.allocatorForSize(total_len), total_len) catch @panic("Failed to allocate memory for output file with inline source map"); buf.appendSliceAssumeCapacity(code_result.buffer); buf.appendSliceAssumeCapacity(source_map_start); @@ -441,7 +441,7 @@ pub fn generateChunksInParallel( const bytecode, const cached_bytecode = result; const source_provider_url_str = source_provider_url.toSlice(bun.default_allocator); defer source_provider_url_str.deinit(); - debug("Bytecode cache generated {s}: {}", .{ source_provider_url_str.slice(), bun.fmt.size(bytecode.len, .{ .space_between_number_and_unit = true }) }); + debug("Bytecode cache generated {s}: {f}", .{ source_provider_url_str.slice(), bun.fmt.size(bytecode.len, .{ .space_between_number_and_unit = true }) }); @memcpy(fdpath[0..chunk.final_rel_path.len], chunk.final_rel_path); fdpath[chunk.final_rel_path.len..][0..bun.bytecode_extension.len].* = bun.bytecode_extension.*; diff --git a/src/bundler/linker_context/generateCodeForFileInChunkJS.zig b/src/bundler/linker_context/generateCodeForFileInChunkJS.zig index eb2f7589fc..7e780fee74 100644 --- a/src/bundler/linker_context/generateCodeForFileInChunkJS.zig +++ b/src/bundler/linker_context/generateCodeForFileInChunkJS.zig @@ -308,7 +308,7 @@ pub fn generateCodeForFileInChunkJS( switch (flags.wrap) { .cjs => { // Only include the arguments that are actually used - var args = std.ArrayList(G.Arg).initCapacity( + var args = std.array_list.Managed(G.Arg).initCapacity( temp_allocator, if (ast.flags.uses_module_ref or ast.flags.uses_exports_ref) 2 else 0, ) catch unreachable; diff --git a/src/bundler/linker_context/generateCodeForLazyExport.zig b/src/bundler/linker_context/generateCodeForLazyExport.zig index c9b484ad73..06f255e7a1 100644 --- a/src/bundler/linker_context/generateCodeForLazyExport.zig +++ b/src/bundler/linker_context/generateCodeForLazyExport.zig @@ -52,7 +52,7 @@ pub fn generateCodeForLazyExport(this: *LinkerContext, source_index: Index.Int) const Visitor = struct { inner_visited: *BitSet, composes_visited: *std.AutoArrayHashMap(bun.bundle_v2.Ref, void), - parts: *std.ArrayList(E.TemplatePart), + parts: *std.array_list.Managed(E.TemplatePart), all_import_records: []const BabyList(bun.css.ImportRecord), all_css_asts: []?*bun.css.BundlerStyleSheet, all_sources: []const Logger.Source, @@ -109,11 +109,11 @@ pub fn generateCodeForLazyExport(this: *LinkerContext, source_index: Index.Int) &visitor.all_sources[idx], .{ .loc = compose_loc }, visitor.allocator, - "The composes property cannot be used with {}, because it is not a single class name.", + "The composes property cannot be used with {f}, because it is not a single class name.", .{ bun.fmt.quote(name), }, - "The definition of {} is here.", + "The definition of {f} is here.", .{ bun.fmt.quote(name), }, @@ -144,7 +144,7 @@ pub fn generateCodeForLazyExport(this: *LinkerContext, source_index: Index.Int) &visitor.all_sources[idx], compose.loc, visitor.allocator, - "Cannot use the \"composes\" property with the {} file (it is not a CSS file)", + "Cannot use the \"composes\" property with the {f} file (it is not a CSS file)", .{bun.fmt.quote(visitor.all_sources[import_record.source_index.get()].path.pretty)}, ) catch |err| bun.handleOom(err); continue; @@ -188,7 +188,7 @@ pub fn generateCodeForLazyExport(this: *LinkerContext, source_index: Index.Int) &visitor.all_sources[idx], compose.loc, visitor.allocator, - "The name {} never appears in {} as a CSS modules locally scoped class name. Note that \"composes\" only works with single class selectors.", + "The name {f} never appears in {f} as a CSS modules locally scoped class name. Note that \"composes\" only works with single class selectors.", .{ bun.fmt.quote(name.v), bun.fmt.quote(visitor.all_sources[idx].path.pretty), @@ -227,7 +227,7 @@ pub fn generateCodeForLazyExport(this: *LinkerContext, source_index: Index.Int) const ref = entry.ref; bun.assert(ref.inner_index < symbols.len); - var template_parts = std.ArrayList(E.TemplatePart).init(this.allocator()); + var template_parts = std.array_list.Managed(E.TemplatePart).init(this.allocator()); var value = Expr.init(E.NameOfSymbol, E.NameOfSymbol{ .ref = ref.toRealRef(source_index) }, stmt.loc); visitor.parts = &template_parts; @@ -365,7 +365,7 @@ pub fn generateCodeForLazyExport(this: *LinkerContext, source_index: Index.Int) module_ref, try std.fmt.allocPrint( this.allocator(), - "{}_default", + "{f}_default", .{this.parse_graph.input_files.items(.source)[source_index].fmtIdentifier()}, ), "default", diff --git a/src/bundler/linker_context/generateCompileResultForHtmlChunk.zig b/src/bundler/linker_context/generateCompileResultForHtmlChunk.zig index a88707b0cc..c58afaac48 100644 --- a/src/bundler/linker_context/generateCompileResultForHtmlChunk.zig +++ b/src/bundler/linker_context/generateCompileResultForHtmlChunk.zig @@ -42,7 +42,7 @@ fn generateCompileResultForHTMLChunkImpl(worker: *ThreadPool.Worker, c: *LinkerC chunk: *Chunk, chunks: []Chunk, minify_whitespace: bool, - output: std.ArrayList(u8), + output: std.array_list.Managed(u8), end_tag_indices: struct { head: ?u32 = 0, body: ?u32 = 0, @@ -146,19 +146,19 @@ fn generateCompileResultForHTMLChunkImpl(worker: *ThreadPool.Worker, c: *LinkerC var array: bun.BoundedArray([]const u8, 2) = .{}; // Put CSS before JS to reduce changes of flash of unstyled content if (this.chunk.getCSSChunkForHTML(this.chunks)) |css_chunk| { - const link_tag = bun.handleOom(std.fmt.allocPrintZ(allocator, "", .{css_chunk.unique_key})); + const link_tag = bun.handleOom(std.fmt.allocPrintSentinel(allocator, "", .{css_chunk.unique_key}, 0)); array.appendAssumeCapacity(link_tag); } if (this.chunk.getJSChunkForHTML(this.chunks)) |js_chunk| { // type="module" scripts do not block rendering, so it is okay to put them in head - const script = bun.handleOom(std.fmt.allocPrintZ(allocator, "", .{js_chunk.unique_key})); + const script = bun.handleOom(std.fmt.allocPrintSentinel(allocator, "", .{js_chunk.unique_key}, 0)); array.appendAssumeCapacity(script); } return array; } - fn endHeadTagHandler(end: *lol.EndTag, opaque_this: ?*anyopaque) callconv(.C) lol.Directive { - const this: *@This() = @alignCast(@ptrCast(opaque_this.?)); + fn endHeadTagHandler(end: *lol.EndTag, opaque_this: ?*anyopaque) callconv(.c) lol.Directive { + const this: *@This() = @ptrCast(@alignCast(opaque_this.?)); if (this.linker.dev_server == null) { this.addHeadTags(end) catch return .stop; } else { @@ -167,8 +167,8 @@ fn generateCompileResultForHTMLChunkImpl(worker: *ThreadPool.Worker, c: *LinkerC return .@"continue"; } - fn endBodyTagHandler(end: *lol.EndTag, opaque_this: ?*anyopaque) callconv(.C) lol.Directive { - const this: *@This() = @alignCast(@ptrCast(opaque_this.?)); + fn endBodyTagHandler(end: *lol.EndTag, opaque_this: ?*anyopaque) callconv(.c) lol.Directive { + const this: *@This() = @ptrCast(@alignCast(opaque_this.?)); if (this.linker.dev_server == null) { this.addHeadTags(end) catch return .stop; } else { @@ -177,8 +177,8 @@ fn generateCompileResultForHTMLChunkImpl(worker: *ThreadPool.Worker, c: *LinkerC return .@"continue"; } - fn endHtmlTagHandler(end: *lol.EndTag, opaque_this: ?*anyopaque) callconv(.C) lol.Directive { - const this: *@This() = @alignCast(@ptrCast(opaque_this.?)); + fn endHtmlTagHandler(end: *lol.EndTag, opaque_this: ?*anyopaque) callconv(.c) lol.Directive { + const this: *@This() = @ptrCast(@alignCast(opaque_this.?)); if (this.linker.dev_server == null) { this.addHeadTags(end) catch return .stop; } else { @@ -201,7 +201,7 @@ fn generateCompileResultForHTMLChunkImpl(worker: *ThreadPool.Worker, c: *LinkerC .minify_whitespace = c.options.minify_whitespace, .chunk = chunk, .chunks = chunks, - .output = std.ArrayList(u8).init(output_allocator), + .output = std.array_list.Managed(u8).init(output_allocator), .current_import_record_index = 0, .end_tag_indices = .{ .html = null, diff --git a/src/bundler/linker_context/postProcessJSChunk.zig b/src/bundler/linker_context/postProcessJSChunk.zig index d174286d16..b4c5822d80 100644 --- a/src/bundler/linker_context/postProcessJSChunk.zig +++ b/src/bundler/linker_context/postProcessJSChunk.zig @@ -445,7 +445,7 @@ pub fn generateEntryPointTailJS( r: renamer.Renamer, ) CompileResult { const flags: JSMeta.Flags = c.graph.meta.items(.flags)[source_index]; - var stmts = std.ArrayList(Stmt).init(temp_allocator); + var stmts = std.array_list.Managed(Stmt).init(temp_allocator); defer stmts.deinit(); const ast: JSAst = c.graph.ast.get(source_index); @@ -541,7 +541,7 @@ pub fn generateEntryPointTailJS( // entry point is a CommonJS-style module, since that would generate an ES6 // export statement that's not top-level. Instead, we will export the CommonJS // exports as a default export later on. - var items = std.ArrayList(js_ast.ClauseItem).init(temp_allocator); + var items = std.array_list.Managed(js_ast.ClauseItem).init(temp_allocator); const cjs_export_copies = c.graph.meta.items(.cjs_export_copies)[source_index]; var had_default_export = false; diff --git a/src/bundler/linker_context/prepareCssAstsForChunk.zig b/src/bundler/linker_context/prepareCssAstsForChunk.zig index c92b3cdc8f..70c8b6a373 100644 --- a/src/bundler/linker_context/prepareCssAstsForChunk.zig +++ b/src/bundler/linker_context/prepareCssAstsForChunk.zig @@ -107,7 +107,7 @@ fn prepareCssAstsForChunkImpl(c: *LinkerContext, chunk: *Chunk, allocator: std.m )) { .result => |v| v, .err => |e| { - bun.handleOom(c.log.addErrorFmt(null, Loc.Empty, c.allocator(), "Error generating CSS for import: {}", .{e})); + bun.handleOom(c.log.addErrorFmt(null, Loc.Empty, c.allocator(), "Error generating CSS for import: {f}", .{e})); continue; }, }; diff --git a/src/bundler/linker_context/renameSymbolsInChunk.zig b/src/bundler/linker_context/renameSymbolsInChunk.zig index c50b111348..0e88ef97ae 100644 --- a/src/bundler/linker_context/renameSymbolsInChunk.zig +++ b/src/bundler/linker_context/renameSymbolsInChunk.zig @@ -19,8 +19,8 @@ pub fn renameSymbolsInChunk( renamer.computeReservedNamesForScope(&all_module_scopes[source_index], &c.graph.symbols, &reserved_names, allocator); } - var sorted_imports_from_other_chunks: std.ArrayList(StableRef) = brk: { - var list = std.ArrayList(StableRef).init(allocator); + var sorted_imports_from_other_chunks: std.array_list.Managed(StableRef) = brk: { + var list = std.array_list.Managed(StableRef).init(allocator); var count: u32 = 0; const imports_from_other_chunks = chunk.content.javascript.imports_from_other_chunks.values(); for (imports_from_other_chunks) |item| { @@ -141,7 +141,7 @@ pub fn renameSymbolsInChunk( r.addTopLevelSymbol(stable_ref.ref); } - var sorted_ = std.ArrayList(u32).init(r.temp_allocator); + var sorted_ = std.array_list.Managed(u32).init(r.temp_allocator); var sorted = &sorted_; defer sorted.deinit(); diff --git a/src/bundler/linker_context/scanImportsAndExports.zig b/src/bundler/linker_context/scanImportsAndExports.zig index 724ece8ebc..66c7e6cecf 100644 --- a/src/bundler/linker_context/scanImportsAndExports.zig +++ b/src/bundler/linker_context/scanImportsAndExports.zig @@ -280,7 +280,7 @@ pub fn scanImportsAndExports(this: *LinkerContext) ScanImportsAndExportsError!vo .imports_to_bind = this.graph.meta.items(.imports_to_bind), - .source_index_stack = try std.ArrayList(u32).initCapacity(this.allocator(), 32), + .source_index_stack = try std.array_list.Managed(u32).initCapacity(this.allocator(), 32), .exports_kind = exports_kind, .named_exports = this.graph.ast.items(.named_exports), }; @@ -424,14 +424,14 @@ pub fn scanImportsAndExports(this: *LinkerContext) ScanImportsAndExportsError!vo var count: usize = 0; if (is_entry_point and output_format == .esm) { for (aliases) |alias| { - count += std.fmt.count("export_{}", .{bun.fmt.fmtIdentifier(alias)}); + count += std.fmt.count("export_{f}", .{bun.fmt.fmtIdentifier(alias)}); } } const ident_fmt_len: usize = if (source.identifier_name.len > 0) source.identifier_name.len else - std.fmt.count("{}", .{source.fmtIdentifier()}); + std.fmt.count("{f}", .{source.fmtIdentifier()}); if (wrap == .esm and wrapper_refs[id].isValid()) { count += "init_".len + ident_fmt_len; @@ -461,7 +461,7 @@ pub fn scanImportsAndExports(this: *LinkerContext) ScanImportsAndExportsError!vo const copies = try this.allocator().alloc(Ref, aliases.len); for (aliases, copies) |alias, *copy| { - const original_name = builder.fmt("export_{}", .{bun.fmt.fmtIdentifier(alias)}); + const original_name = builder.fmt("export_{f}", .{bun.fmt.fmtIdentifier(alias)}); copy.* = this.graph.generateNewSymbol(source_index, .other, original_name); } this.graph.meta.items(.cjs_export_copies)[id] = copies; @@ -472,7 +472,7 @@ pub fn scanImportsAndExports(this: *LinkerContext) ScanImportsAndExportsError!vo const ref = wrapper_refs[id]; if (ref.isValid()) { const original_name = builder.fmt( - "init_{}", + "init_{f}", .{source.fmtIdentifier()}, ); @@ -486,8 +486,8 @@ pub fn scanImportsAndExports(this: *LinkerContext) ScanImportsAndExportsError!vo // aesthetics and is not about correctness. This is done here because by // this point, we know the CommonJS status will not change further. if (wrap != .cjs and export_kind != .cjs and output_format != .internal_bake_dev) { - const exports_name = builder.fmt("exports_{}", .{source.fmtIdentifier()}); - const module_name = builder.fmt("module_{}", .{source.fmtIdentifier()}); + const exports_name = builder.fmt("exports_{f}", .{source.fmtIdentifier()}); + const module_name = builder.fmt("module_{f}", .{source.fmtIdentifier()}); // Note: it's possible for the symbols table to be resized // so we cannot call .get() above this scope. @@ -571,7 +571,7 @@ pub fn scanImportsAndExports(this: *LinkerContext) ScanImportsAndExportsError!vo const extra_count = @as(usize, @intFromBool(force_include_exports)) + @as(usize, @intFromBool(add_wrapper)); - var dependencies = bun.handleOom(std.ArrayList(js_ast.Dependency).initCapacity(this.allocator(), extra_count)); + var dependencies = bun.handleOom(std.array_list.Managed(js_ast.Dependency).initCapacity(this.allocator(), extra_count)); var resolved_exports_list: *ResolvedExports = &this.graph.meta.items(.resolved_exports)[id]; for (aliases) |alias| { @@ -944,7 +944,7 @@ const DependencyWrapper = struct { const ExportStarContext = struct { import_records_list: []const ImportRecord.List, - source_index_stack: std.ArrayList(Index.Int), + source_index_stack: std.array_list.Managed(Index.Int), exports_kind: []js_ast.ExportsKind, named_exports: []js_ast.Ast.NamedExports, resolved_exports: []ResolvedExports, @@ -1131,8 +1131,8 @@ fn validateComposesFromProperties( .{ .text = std.fmt.allocPrint( v.allocator, "The specification of \"composes\" does not define an order when class declarations from separate files are composed together. " ++ - "The value of the {} property for {} may change unpredictably as the code is edited. " ++ - "Make sure that all definitions of {} for {} are in a single file.", + "The value of the {f} property for {f} may change unpredictably as the code is edited. " ++ + "Make sure that all definitions of {f} for {f} are in a single file.", .{ bun.fmt.quote(property_name), bun.fmt.quote(local_original_name), bun.fmt.quote(property_name), bun.fmt.quote(local_original_name) }, ) catch |err| bun.handleOom(err) }, }, diff --git a/src/bundler/linker_context/writeOutputFilesToDisk.zig b/src/bundler/linker_context/writeOutputFilesToDisk.zig index 5d4081a7e0..e32e0274dd 100644 --- a/src/bundler/linker_context/writeOutputFilesToDisk.zig +++ b/src/bundler/linker_context/writeOutputFilesToDisk.zig @@ -8,12 +8,12 @@ pub fn writeOutputFilesToDisk( defer trace.end(); var root_dir = std.fs.cwd().makeOpenPath(root_path, .{}) catch |err| { if (err == error.NotDir) { - c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "Failed to create output directory {} is a file. Please choose a different outdir or delete {}", .{ + c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "Failed to create output directory {f} is a file. Please choose a different outdir or delete {f}", .{ bun.fmt.quote(root_path), bun.fmt.quote(root_path), }) catch unreachable; } else { - c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "Failed to create output directory {s} {}", .{ + c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "Failed to create output directory {s} {f}", .{ @errorName(err), bun.fmt.quote(root_path), }) catch unreachable; @@ -50,7 +50,7 @@ pub fn writeOutputFilesToDisk( if (std.fs.path.dirnamePosix(rel_path)) |rel_parent| { if (rel_parent.len > 0) { root_dir.makePath(rel_parent) catch |err| { - c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "{s} creating outdir {} while saving chunk {}", .{ + c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "{s} creating outdir {f} while saving chunk {f}", .{ @errorName(err), bun.fmt.quote(rel_parent), bun.fmt.quote(chunk.final_rel_path), @@ -103,7 +103,7 @@ pub fn writeOutputFilesToDisk( const source_map_start = "//# sourceMappingURL="; const total_len = code_result.buffer.len + source_map_start.len + a.len + b.len + "\n".len; - var buf = std.ArrayList(u8).initCapacity(Chunk.IntermediateOutput.allocatorForSize(total_len), total_len) catch @panic("Failed to allocate memory for output file with inline source map"); + var buf = std.array_list.Managed(u8).initCapacity(Chunk.IntermediateOutput.allocatorForSize(total_len), total_len) catch @panic("Failed to allocate memory for output file with inline source map"); buf.appendSliceAssumeCapacity(code_result.buffer); buf.appendSliceAssumeCapacity(source_map_start); buf.appendSliceAssumeCapacity(a); @@ -135,7 +135,7 @@ pub fn writeOutputFilesToDisk( }, )) { .err => |err| { - try c.log.addSysError(bun.default_allocator, err, "writing sourcemap for chunk {}", .{ + try c.log.addSysError(bun.default_allocator, err, "writing sourcemap for chunk {f}", .{ bun.fmt.quote(chunk.final_rel_path), }); return error.WriteFailed; @@ -164,7 +164,7 @@ pub fn writeOutputFilesToDisk( const source_map_start = "//# sourceMappingURL=data:application/json;base64,"; const total_len = code_result.buffer.len + source_map_start.len + encode_len + 1; - var buf = std.ArrayList(u8).initCapacity(code_with_inline_source_map_allocator, total_len) catch @panic("Failed to allocate memory for output file with inline source map"); + var buf = std.array_list.Managed(u8).initCapacity(code_with_inline_source_map_allocator, total_len) catch @panic("Failed to allocate memory for output file with inline source map"); buf.appendSliceAssumeCapacity(code_result.buffer); buf.appendSliceAssumeCapacity(source_map_start); @@ -199,7 +199,7 @@ pub fn writeOutputFilesToDisk( const source_provider_url_str = source_provider_url.toSlice(bun.default_allocator); defer source_provider_url_str.deinit(); const bytecode, const cached_bytecode = result; - debug("Bytecode cache generated {s}: {}", .{ source_provider_url_str.slice(), bun.fmt.size(bytecode.len, .{ .space_between_number_and_unit = true }) }); + debug("Bytecode cache generated {s}: {f}", .{ source_provider_url_str.slice(), bun.fmt.size(bytecode.len, .{ .space_between_number_and_unit = true }) }); @memcpy(fdpath[0..chunk.final_rel_path.len], chunk.final_rel_path); fdpath[chunk.final_rel_path.len..][0..bun.bytecode_extension.len].* = bun.bytecode_extension.*; defer cached_bytecode.deref(); @@ -228,7 +228,7 @@ pub fn writeOutputFilesToDisk( )) { .result => {}, .err => |err| { - c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "{} writing bytecode for chunk {}", .{ + c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "{f} writing bytecode for chunk {f}", .{ err, bun.fmt.quote(chunk.final_rel_path), }) catch unreachable; @@ -284,7 +284,7 @@ pub fn writeOutputFilesToDisk( }, )) { .err => |err| { - try c.log.addSysError(bun.default_allocator, err, "writing chunk {}", .{ + try c.log.addSysError(bun.default_allocator, err, "writing chunk {f}", .{ bun.fmt.quote(chunk.final_rel_path), }); return error.WriteFailed; @@ -362,7 +362,7 @@ pub fn writeOutputFilesToDisk( if (std.fs.path.dirname(src.dest_path)) |rel_parent| { if (rel_parent.len > 0) { root_dir.makePath(rel_parent) catch |err| { - c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "{s} creating outdir {} while saving file {}", .{ + c.log.addErrorFmt(null, Logger.Loc.Empty, bun.default_allocator, "{s} creating outdir {f} while saving file {f}", .{ @errorName(err), bun.fmt.quote(rel_parent), bun.fmt.quote(src.dest_path), @@ -394,7 +394,7 @@ pub fn writeOutputFilesToDisk( }, )) { .err => |err| { - c.log.addSysError(bun.default_allocator, err, "writing file {}", .{ + c.log.addSysError(bun.default_allocator, err, "writing file {f}", .{ bun.fmt.quote(src.src_path.text), }) catch unreachable; return error.WriteFailed; diff --git a/src/bunfig.zig b/src/bunfig.zig index 12c123522c..6251f2f10f 100644 --- a/src/bunfig.zig +++ b/src/bunfig.zig @@ -49,12 +49,12 @@ pub const Bunfig = struct { // Token if (url.username.len == 0 and url.password.len > 0) { registry.token = url.password; - registry.url = try std.fmt.allocPrint(this.allocator, "{s}://{}/{s}/", .{ url.displayProtocol(), url.displayHost(), std.mem.trim(u8, url.pathname, "/") }); + registry.url = try std.fmt.allocPrint(this.allocator, "{s}://{f}/{s}/", .{ url.displayProtocol(), url.displayHost(), std.mem.trim(u8, url.pathname, "/") }); } else if (url.username.len > 0 and url.password.len > 0) { registry.username = url.username; registry.password = url.password; - registry.url = try std.fmt.allocPrint(this.allocator, "{s}://{}/{s}/", .{ url.displayProtocol(), url.displayHost(), std.mem.trim(u8, url.pathname, "/") }); + registry.url = try std.fmt.allocPrint(this.allocator, "{s}://{f}/{s}/", .{ url.displayProtocol(), url.displayHost(), std.mem.trim(u8, url.pathname, "/") }); } else { // Do not include a trailing slash. There might be parameters at the end. registry.url = url.href; @@ -129,7 +129,7 @@ pub const Bunfig = struct { ) !void { if (expr.asArray()) |array_| { var array = array_; - var preloads = try std.ArrayList(string).initCapacity(allocator, array.array.items.len); + var preloads = try std.array_list.Managed(string).initCapacity(allocator, array.array.items.len); errdefer preloads.deinit(); while (array.next()) |item| { try this.expectString(item); @@ -1125,7 +1125,7 @@ pub const Bunfig = struct { else => { this.log.addErrorFmtOpts( this.allocator, - "expected string but received {}", + "expected string but received {f}", .{ @as(js_ast.Expr.Tag, expr.data), }, @@ -1144,7 +1144,7 @@ pub const Bunfig = struct { if (@as(js_ast.Expr.Tag, expr.data) != token) { this.log.addErrorFmtOpts( this.allocator, - "expected {} but received {}", + "expected {f} but received {f}", .{ token, @as(js_ast.Expr.Tag, expr.data), diff --git a/src/cache.zig b/src/cache.zig index d4bff5e618..e3be2bbc90 100644 --- a/src/cache.zig +++ b/src/cache.zig @@ -25,7 +25,7 @@ pub const Fs = struct { pub const ExternalFreeFunction = struct { ctx: ?*anyopaque, - function: ?*const fn (?*anyopaque) callconv(.C) void, + function: ?*const fn (?*anyopaque) callconv(.c) void, pub const none: ExternalFreeFunction = .{ .ctx = null, .function = null }; @@ -163,7 +163,7 @@ pub const Fs = struct { error.ENOENT => { const handle = try bun.openFile(path, .{ .mode = .read_only }); Output.prettyErrorln( - "Internal error: directory mismatch for directory \"{s}\", fd {}. You don't need to do anything, but this indicates a bug.", + "Internal error: directory mismatch for directory \"{s}\", fd {f}. You don't need to do anything, but this indicates a bug.", .{ path, dirname_fd }, ); break :brk bun.FD.fromStdFile(handle); @@ -179,12 +179,12 @@ pub const Fs = struct { } if (comptime !Environment.isWindows) // skip on Windows because NTCreateFile will do it. - debug("openat({}, {s}) = {}", .{ dirname_fd, path, bun.FD.fromStdFile(file_handle) }); + debug("openat({f}, {s}) = {f}", .{ dirname_fd, path, bun.FD.fromStdFile(file_handle) }); const will_close = rfs.needToCloseFiles() and _file_handle == null; defer { if (will_close) { - debug("readFileWithAllocator close({d})", .{file_handle.handle}); + debug("readFileWithAllocator close({f})", .{bun.fs.printHandle(file_handle.handle)}); file_handle.close(); } } diff --git a/src/cli.zig b/src/cli.zig index 71617062a2..245925dc34 100644 --- a/src/cli.zig +++ b/src/cli.zig @@ -677,7 +677,7 @@ pub const Command = struct { const ctx: *ContextData = brk: { if (graph.compile_exec_argv.len > 0) { const original_argv_len = bun.argv.len; - var argv_list = std.ArrayList([:0]const u8).fromOwnedSlice(bun.default_allocator, bun.argv); + var argv_list = std.array_list.Managed([:0]const u8).fromOwnedSlice(bun.default_allocator, bun.argv); try bun.appendOptionsEnv(graph.compile_exec_argv, &argv_list, bun.default_allocator); bun.argv = argv_list.items; @@ -717,7 +717,7 @@ pub const Command = struct { } } - debug("argv: [{s}]", .{bun.fmt.fmtSlice(bun.argv, ", ")}); + debug("argv: [{f}]", .{bun.fmt.fmtSlice(bun.argv, ", ")}); const tag = which(); diff --git a/src/cli/Arguments.zig b/src/cli/Arguments.zig index 3de212fc83..0ba62e79c3 100644 --- a/src/cli/Arguments.zig +++ b/src/cli/Arguments.zig @@ -249,7 +249,7 @@ fn loadBunfig(allocator: std.mem.Allocator, auto_loaded: bool, config_path: [:0] .result => |s| s, .err => |err| { if (auto_loaded) return; - Output.prettyErrorln("{}\nwhile reading config \"{s}\"", .{ + Output.prettyErrorln("{f}\nwhile reading config \"{s}\"", .{ err, config_path, }); @@ -536,7 +536,7 @@ pub fn parse(allocator: std.mem.Allocator, ctx: Command.Context, comptime cmd: C ctx.test_options.test_filter_pattern = namePattern; const regex = RegularExpression.init(bun.String.fromBytes(namePattern), RegularExpression.Flags.none) catch { Output.prettyErrorln( - "error: --test-name-pattern expects a valid regular expression but received {}", + "error: --test-name-pattern expects a valid regular expression but received {f}", .{ bun.fmt.QuotedFormatter{ .text = namePattern, @@ -633,7 +633,7 @@ pub fn parse(allocator: std.mem.Allocator, ctx: Command.Context, comptime cmd: C const total_preloads = ctx.preloads.len + preloads.len + preloads2.len + preloads3.len + (if (preload4 != null) @as(usize, 1) else @as(usize, 0)); if (total_preloads > 0) { - var all = std.ArrayList(string).initCapacity(ctx.allocator, total_preloads) catch unreachable; + var all = std.array_list.Managed(string).initCapacity(ctx.allocator, total_preloads) catch unreachable; if (ctx.preloads.len > 0) all.appendSliceAssumeCapacity(ctx.preloads); if (preloads.len > 0) all.appendSliceAssumeCapacity(preloads); if (preloads2.len > 0) all.appendSliceAssumeCapacity(preloads2); @@ -965,7 +965,7 @@ pub fn parse(allocator: std.mem.Allocator, ctx: Command.Context, comptime cmd: C if (_target.len > 4 and strings.hasPrefixComptime(_target, "bun-")) { ctx.bundler_options.compile_target = CLI.Cli.CompileTarget.from(_target[3..]); if (!ctx.bundler_options.compile_target.isSupported()) { - Output.errGeneric("Unsupported compile target: {}\n", .{ctx.bundler_options.compile_target}); + Output.errGeneric("Unsupported compile target: {f}\n", .{ctx.bundler_options.compile_target}); Global.exit(1); } opts.target = .bun; diff --git a/src/cli/audit_command.zig b/src/cli/audit_command.zig index cd7f80d27a..8a7eb1bd97 100644 --- a/src/cli/audit_command.zig +++ b/src/cli/audit_command.zig @@ -11,24 +11,24 @@ const PackageInfo = struct { package_id: u32, name: []const u8, version: []const u8, - vulnerabilities: std.ArrayList(VulnerabilityInfo), - dependents: std.ArrayList(DependencyPath), + vulnerabilities: std.array_list.Managed(VulnerabilityInfo), + dependents: std.array_list.Managed(DependencyPath), const DependencyPath = struct { - path: std.ArrayList([]const u8), + path: std.array_list.Managed([]const u8), is_direct: bool, }; }; const AuditResult = struct { vulnerable_packages: bun.StringHashMap(PackageInfo), - all_vulnerabilities: std.ArrayList(VulnerabilityInfo), + all_vulnerabilities: std.array_list.Managed(VulnerabilityInfo), allocator: std.mem.Allocator, pub fn init(allocator: std.mem.Allocator) AuditResult { return AuditResult{ .vulnerable_packages = bun.StringHashMap(PackageInfo).init(allocator), - .all_vulnerabilities = std.ArrayList(VulnerabilityInfo).init(allocator), + .all_vulnerabilities = std.array_list.Managed(VulnerabilityInfo).init(allocator), .allocator = allocator, }; } @@ -134,7 +134,7 @@ pub const AuditCommand = struct { } }; -fn printSkippedPackages(skipped_packages: std.ArrayList([]const u8)) void { +fn printSkippedPackages(skipped_packages: std.array_list.Managed([]const u8)) void { if (skipped_packages.items.len > 0) { Output.pretty("Skipped ", .{}); for (skipped_packages.items, 0..) |package_name, i| { @@ -152,8 +152,8 @@ fn printSkippedPackages(skipped_packages: std.ArrayList([]const u8)) void { } } -fn buildDependencyTree(allocator: std.mem.Allocator, pm: *PackageManager) bun.OOM!bun.StringHashMap(std.ArrayList([]const u8)) { - var dependency_tree = bun.StringHashMap(std.ArrayList([]const u8)).init(allocator); +fn buildDependencyTree(allocator: std.mem.Allocator, pm: *PackageManager) bun.OOM!bun.StringHashMap(std.array_list.Managed([]const u8)) { + var dependency_tree = bun.StringHashMap(std.array_list.Managed([]const u8)).init(allocator); const packages = pm.lockfile.packages.slice(); const pkg_names = packages.items(.name); @@ -179,7 +179,7 @@ fn buildDependencyTree(allocator: std.mem.Allocator, pm: *PackageManager) bun.OO const result = try dependency_tree.getOrPut(resolved_name); if (!result.found_existing) { result.key_ptr.* = try allocator.dupe(u8, resolved_name); - result.value_ptr.* = std.ArrayList([]const u8).init(allocator); + result.value_ptr.* = std.array_list.Managed([]const u8).init(allocator); } try result.value_ptr.append(try allocator.dupe(u8, package_name)); } @@ -198,7 +198,7 @@ fn buildProductionPackageSet(allocator: std.mem.Allocator, pm: *PackageManager, const resolutions = pm.lockfile.buffers.resolutions.items; const root_id = pm.root_package_id.get(pm.lockfile, pm.workspace_name_hash); - var queue = std.fifo.LinearFifo(u32, .Dynamic).init(allocator); + var queue = bun.LinearFifo(u32, .Dynamic).init(allocator); defer queue.deinit(); const root_deps = pkg_dependencies[root_id]; @@ -232,16 +232,16 @@ fn buildProductionPackageSet(allocator: std.mem.Allocator, pm: *PackageManager, } } -fn collectPackagesForAudit(allocator: std.mem.Allocator, pm: *PackageManager, prod_only: bool) bun.OOM!struct { audit_body: []u8, skipped_packages: std.ArrayList([]const u8) } { +fn collectPackagesForAudit(allocator: std.mem.Allocator, pm: *PackageManager, prod_only: bool) bun.OOM!struct { audit_body: []u8, skipped_packages: std.array_list.Managed([]const u8) } { const packages = pm.lockfile.packages.slice(); const pkg_names = packages.items(.name); const pkg_resolutions = packages.items(.resolution); const buf = pm.lockfile.buffers.string_bytes.items; const root_id = pm.root_package_id.get(pm.lockfile, pm.workspace_name_hash); - var packages_list = std.ArrayList(struct { + var packages_list = std.array_list.Managed(struct { name: []const u8, - versions: std.ArrayList([]const u8), + versions: std.array_list.Managed([]const u8), }).init(allocator); defer { for (packages_list.items) |item| { @@ -254,7 +254,7 @@ fn collectPackagesForAudit(allocator: std.mem.Allocator, pm: *PackageManager, pr packages_list.deinit(); } - var skipped_packages = std.ArrayList([]const u8).init(allocator); + var skipped_packages = std.array_list.Managed([]const u8).init(allocator); var prod_packages: ?bun.StringHashMap(void) = null; defer if (prod_packages) |*map| map.deinit(); @@ -282,7 +282,7 @@ fn collectPackagesForAudit(allocator: std.mem.Allocator, pm: *PackageManager, pr continue; } - const ver_str = try std.fmt.allocPrint(allocator, "{}", .{res.value.npm.version.fmt(buf)}); + const ver_str = try std.fmt.allocPrint(allocator, "{f}", .{res.value.npm.version.fmt(buf)}); var found_package: ?*@TypeOf(packages_list.items[0]) = null; for (packages_list.items) |*item| { @@ -295,7 +295,7 @@ fn collectPackagesForAudit(allocator: std.mem.Allocator, pm: *PackageManager, pr if (found_package == null) { try packages_list.append(.{ .name = try allocator.dupe(u8, name_slice), - .versions = std.ArrayList([]const u8).init(allocator), + .versions = std.array_list.Managed([]const u8).init(allocator), }); found_package = &packages_list.items[packages_list.items.len - 1]; } @@ -453,10 +453,10 @@ fn parseVulnerability(allocator: std.mem.Allocator, package_name: []const u8, vu fn findDependencyPaths( allocator: std.mem.Allocator, target_package: []const u8, - dependency_tree: *const bun.StringHashMap(std.ArrayList([]const u8)), + dependency_tree: *const bun.StringHashMap(std.array_list.Managed([]const u8)), pm: *PackageManager, -) bun.OOM!std.ArrayList(PackageInfo.DependencyPath) { - var paths = std.ArrayList(PackageInfo.DependencyPath).init(allocator); +) bun.OOM!std.array_list.Managed(PackageInfo.DependencyPath) { + var paths = std.array_list.Managed(PackageInfo.DependencyPath).init(allocator); const packages = pm.lockfile.packages.slice(); const root_id = pm.root_package_id.get(pm.lockfile, pm.workspace_name_hash); @@ -472,7 +472,7 @@ fn findDependencyPaths( const dep_name = dependency.name.slice(buf); if (std.mem.eql(u8, dep_name, target_package)) { var direct_path = PackageInfo.DependencyPath{ - .path = std.ArrayList([]const u8).init(allocator), + .path = std.array_list.Managed([]const u8).init(allocator), .is_direct = true, }; try direct_path.path.append(try allocator.dupe(u8, target_package)); @@ -491,7 +491,7 @@ fn findDependencyPaths( const dep_name = dependency.name.slice(buf); if (std.mem.eql(u8, dep_name, target_package)) { var workspace_path = PackageInfo.DependencyPath{ - .path = std.ArrayList([]const u8).init(allocator), + .path = std.array_list.Managed([]const u8).init(allocator), .is_direct = false, }; @@ -504,7 +504,7 @@ fn findDependencyPaths( } } - var queue: std.fifo.LinearFifo([]const u8, .Dynamic) = std.fifo.LinearFifo([]const u8, .Dynamic).init(allocator); + var queue: bun.LinearFifo([]const u8, .Dynamic) = bun.LinearFifo([]const u8, .Dynamic).init(allocator); defer queue.deinit(); var visited = bun.StringHashMap(void).init(allocator); defer visited.deinit(); @@ -548,7 +548,7 @@ fn findDependencyPaths( if (is_root_dep or workspace_name_for_dep != null) { var path = PackageInfo.DependencyPath{ - .path = std.ArrayList([]const u8).init(allocator), + .path = std.array_list.Managed([]const u8).init(allocator), .is_direct = false, }; @@ -600,7 +600,7 @@ fn printEnhancedAuditReport( allocator: std.mem.Allocator, response_text: []const u8, pm: *PackageManager, - dependency_tree: *const bun.StringHashMap(std.ArrayList([]const u8)), + dependency_tree: *const bun.StringHashMap(std.array_list.Managed([]const u8)), audit_level: ?AuditLevel, ignore_list: []const []const u8, ) bun.OOM!u32 { @@ -695,7 +695,7 @@ fn printEnhancedAuditReport( .package_id = 0, .name = vulnerability.package_name, .version = vulnerability.vulnerable_versions, - .vulnerabilities = std.ArrayList(VulnerabilityInfo).init(allocator), + .vulnerabilities = std.array_list.Managed(VulnerabilityInfo).init(allocator), .dependents = paths, }; } @@ -735,7 +735,7 @@ fn printEnhancedAuditReport( } else { const vulnerable_pkg = path.path.items[0]; - var reversed_items = std.ArrayList([]const u8).init(allocator); + var reversed_items = std.array_list.Managed([]const u8).init(allocator); for (path.path.items[1..]) |item| try reversed_items.append(item); std.mem.reverse([]const u8, reversed_items.items); defer reversed_items.deinit(); diff --git a/src/cli/build_command.zig b/src/cli/build_command.zig index 1774275992..8aa3e780f0 100644 --- a/src/cli/build_command.zig +++ b/src/cli/build_command.zig @@ -24,10 +24,10 @@ pub const BuildCommand = struct { const compile_define_values = compile_target.defineValues(); if (ctx.args.define) |*define| { - var keys = try std.ArrayList(string).initCapacity(bun.default_allocator, compile_define_keys.len + define.keys.len); + var keys = try std.array_list.Managed(string).initCapacity(bun.default_allocator, compile_define_keys.len + define.keys.len); keys.appendSliceAssumeCapacity(compile_define_keys); keys.appendSliceAssumeCapacity(define.keys); - var values = try std.ArrayList(string).initCapacity(bun.default_allocator, compile_define_values.len + define.values.len); + var values = try std.array_list.Managed(string).initCapacity(bun.default_allocator, compile_define_values.len + define.values.len); values.appendSliceAssumeCapacity(compile_define_values); values.appendSliceAssumeCapacity(define.values); @@ -176,13 +176,13 @@ pub const BuildCommand = struct { }; var dir = bun.FD.fromStdDir(bun.openDirForPath(&(try std.posix.toPosixPath(path))) catch |err| { - Output.prettyErrorln("{s} opening root directory {}", .{ @errorName(err), bun.fmt.quote(path) }); + Output.prettyErrorln("{s} opening root directory {f}", .{ @errorName(err), bun.fmt.quote(path) }); Global.exit(1); }); defer dir.close(); break :brk1 dir.getFdPath(&src_root_dir_buf) catch |err| { - Output.prettyErrorln("{s} resolving root directory {}", .{ @errorName(err), bun.fmt.quote(path) }); + Output.prettyErrorln("{s} resolving root directory {f}", .{ @errorName(err), bun.fmt.quote(path) }); Global.exit(1); }; }; @@ -378,7 +378,7 @@ pub const BuildCommand = struct { std.fs.cwd() else std.fs.cwd().makeOpenPath(root_path, .{}) catch |err| { - Output.err(err, "could not open output directory {}", .{bun.fmt.quote(root_path)}); + Output.err(err, "could not open output directory {f}", .{bun.fmt.quote(root_path)}); exitOrWatch(1, ctx.debug.hot_reload == .watch); unreachable; }; @@ -398,7 +398,7 @@ pub const BuildCommand = struct { @max(from_path.len, f.dest_path.len) + 2 - from_path.len, max_path_len, ); - size_padding = @max(size_padding, std.fmt.count("{}", .{bun.fmt.size(f.size, .{})})); + size_padding = @max(size_padding, std.fmt.count("{f}", .{bun.fmt.size(f.size, .{})})); } if (ctx.bundler_options.compile) { @@ -470,7 +470,7 @@ pub const BuildCommand = struct { }); if (is_cross_compile) { - Output.pretty(" {s}\n", .{compile_target}); + Output.pretty(" {f}\n", .{compile_target}); } else { Output.pretty("\n", .{}); } @@ -495,12 +495,12 @@ pub const BuildCommand = struct { } for (output_files) |f| { - size_padding = @max(size_padding, std.fmt.count("{}", .{bun.fmt.size(f.size, .{})})); + size_padding = @max(size_padding, std.fmt.count("{f}", .{bun.fmt.size(f.size, .{})})); } for (output_files) |f| { f.writeToDisk(root_dir, from_path) catch |err| { - Output.err(err, "failed to write file '{}'", .{bun.fmt.quote(f.dest_path)}); + Output.err(err, "failed to write file '{f}'", .{bun.fmt.quote(f.dest_path)}); had_err = true; continue; }; @@ -511,7 +511,7 @@ pub const BuildCommand = struct { // Print summary const padding_count = @max(2, @max(rel_path.len, max_path_len) - rel_path.len); - try writer.writeByteNTimes(' ', 2); + try writer.splatByteAll(' ', 2); if (Output.enable_ansi_colors_stdout) try writer.writeAll(switch (f.output_kind) { .@"entry-point" => Output.prettyFmt("", true), @@ -536,9 +536,9 @@ pub const BuildCommand = struct { } } - try writer.writeByteNTimes(' ', padding_count); - try writer.print("{s} ", .{bun.fmt.size(f.size, .{})}); - try writer.writeByteNTimes(' ', size_padding - std.fmt.count("{}", .{bun.fmt.size(f.size, .{})})); + try writer.splatByteAll(' ', padding_count); + try writer.print("{f} ", .{bun.fmt.size(f.size, .{})}); + try writer.splatByteAll(' ', size_padding - std.fmt.count("{f}", .{bun.fmt.size(f.size, .{})})); if (Output.enable_ansi_colors_stdout) { try writer.writeAll("\x1b[2m"); @@ -566,7 +566,7 @@ pub const BuildCommand = struct { fn exitOrWatch(code: u8, watch: bool) noreturn { if (watch) { // the watcher thread will exit the process - std.time.sleep(std.math.maxInt(u64) - 1); + std.Thread.sleep(std.math.maxInt(u64) - 1); } Global.exit(code); } @@ -606,14 +606,14 @@ fn printSummary(bundled_end: i128, minify_duration: u64, minified: bool, input_c const delta: i64 = @as(i64, @truncate(@as(i65, @intCast(input_code_length)) - @as(i65, @intCast(output_size)))); if (delta > 1024) { Output.prettyln( - " minify -{} (estimate)", + " minify -{f} (estimate)", .{ bun.fmt.size(@as(usize, @intCast(delta)), .{}), }, ); } else if (-delta > 1024) { Output.prettyln( - " minify +{} (estimate)", + " minify +{f} (estimate)", .{ bun.fmt.size(@as(usize, @intCast(-delta)), .{}), }, diff --git a/src/cli/bunx_command.zig b/src/cli/bunx_command.zig index 09f7c29108..30066e6007 100644 --- a/src/cli/bunx_command.zig +++ b/src/cli/bunx_command.zig @@ -477,7 +477,7 @@ pub const BunxCommand = struct { if (ignore_cwd.len == 0) break :brk PATH; // Remove the cwd passed through BUN_WHICH_IGNORE_CWD from path. This prevents temp node-gyp script from finding and running itself - var new_path = try std.ArrayList(u8).initCapacity(ctx.allocator, PATH.len); + var new_path = try std.array_list.Managed(u8).initCapacity(ctx.allocator, PATH.len); var path_iter = std.mem.tokenizeScalar(u8, PATH, std.fs.path.delimiter); if (path_iter.next()) |segment| { if (!strings.eqlLong(strings.withoutTrailingSlash(segment), strings.withoutTrailingSlash(ignore_cwd), true)) { @@ -742,7 +742,7 @@ pub const BunxCommand = struct { const argv_to_use = args.slice(); - debug("installing package: {s}", .{bun.fmt.fmtSlice(argv_to_use, " ")}); + debug("installing package: {f}", .{bun.fmt.fmtSlice(argv_to_use, " ")}); bun.handleOom(this_transpiler.env.map.put("BUN_INTERNAL_BUNX_INSTALL", "true")); const spawn_result = switch ((bun.spawnSync(&.{ @@ -791,7 +791,7 @@ pub const BunxCommand = struct { Global.raiseIgnoringPanicHandler(signal); }, .err => |err| { - Output.prettyErrorln("error: bunx failed to install {s} due to error:\n{}", .{ install_param, err }); + Output.prettyErrorln("error: bunx failed to install {s} due to error:\n{f}", .{ install_param, err }); Global.exit(1); }, else => {}, diff --git a/src/cli/colon_list_type.zig b/src/cli/colon_list_type.zig index 0699d94213..f7157bb701 100644 --- a/src/cli/colon_list_type.zig +++ b/src/cli/colon_list_type.zig @@ -21,7 +21,7 @@ pub fn ColonListType(comptime t: type, comptime value_resolver: anytype) type { if (comptime t == bun.schema.api.Loader) { if (str[0..midpoint].len > 0 and str[0] != '.') { - Output.prettyErrorln("error: file extension must start with a '.' (while mapping loader {s})", .{bun.fmt.quote(str)}); + Output.prettyErrorln("error: file extension must start with a '.' (while mapping loader {f})", .{bun.fmt.quote(str)}); Global.exit(1); } } @@ -29,7 +29,7 @@ pub fn ColonListType(comptime t: type, comptime value_resolver: anytype) type { self.keys[i] = str[0..midpoint]; self.values[i] = value_resolver(str[midpoint + 1 .. str.len]) catch |err| { if (err == error.InvalidLoader) { - Output.prettyErrorln("error: invalid loader {}, expected one of:{}", .{ bun.fmt.quote(str[midpoint + 1 .. str.len]), bun.fmt.enumTagList(bun.options.Loader, .dash) }); + Output.prettyErrorln("error: invalid loader {f}, expected one of:{f}", .{ bun.fmt.quote(str[midpoint + 1 .. str.len]), bun.fmt.enumTagList(bun.options.Loader, .dash) }); Global.exit(1); } return err; diff --git a/src/cli/create_command.zig b/src/cli/create_command.zig index 412c4eab6d..cc3b5f8b6c 100644 --- a/src/cli/create_command.zig +++ b/src/cli/create_command.zig @@ -493,11 +493,11 @@ pub const CreateCommand = struct { } if (bun.windows.Win32Error.get().toSystemErrno()) |err| { - Output.err(err, "failed to copy file {}", .{ + Output.err(err, "failed to copy file {f}", .{ bun.fmt.fmtOSPath(entry.path, .{}), }); } else { - Output.errGeneric("failed to copy file {}", .{ + Output.errGeneric("failed to copy file {f}", .{ bun.fmt.fmtOSPath(entry.path, .{}), }); } @@ -520,7 +520,7 @@ pub const CreateCommand = struct { break :brk destination_dir_.createFile(entry.path, .{}) catch |err| { node_.end(); progress_.refresh(); - Output.err(err, "failed to copy file {}", .{bun.fmt.fmtOSPath(entry.path, .{})}); + Output.err(err, "failed to copy file {f}", .{bun.fmt.fmtOSPath(entry.path, .{})}); Global.crash(); }; }); @@ -541,7 +541,7 @@ pub const CreateCommand = struct { CopyFile.copyFile(infile, outfile).unwrap() catch |err| { node_.end(); progress_.refresh(); - Output.err(err, "failed to copy file {}", .{bun.fmt.fmtOSPath(entry.path, .{})}); + Output.err(err, "failed to copy file {f}", .{bun.fmt.fmtOSPath(entry.path, .{})}); Global.crash(); }; } @@ -666,7 +666,7 @@ pub const CreateCommand = struct { break :process_package_json; } - var properties_list = std.ArrayList(js_ast.G.Property).fromOwnedSlice(default_allocator, package_json_expr.data.e_object.properties.slice()); + var properties_list = std.array_list.Managed(js_ast.G.Property).fromOwnedSlice(default_allocator, package_json_expr.data.e_object.properties.slice()); if (ctx.log.errors > 0) { try ctx.log.print(Output.errorWriter()); @@ -1109,7 +1109,7 @@ pub const CreateCommand = struct { // "bun.macros" // if (needs_bun_macros_prop and !needs_bun_prop) { // var obj = bun_prop.?.data.e_object; - // var properties = try std.ArrayList(js_ast.G.Property).initCapacity( + // var properties = try std.array_list.Managed(js_ast.G.Property).initCapacity( // ctx.allocator, // obj.properties.len + InjectionPrefill.bun_macros_relay_object.properties.len, // ); @@ -1137,7 +1137,7 @@ pub const CreateCommand = struct { // if (needs_to_inject_dependency) { // defer needs_to_inject_dependency = false; // var obj = dependencies.?.data.e_object; - // var properties = try std.ArrayList(js_ast.G.Property).initCapacity( + // var properties = try std.array_list.Managed(js_ast.G.Property).initCapacity( // ctx.allocator, // obj.properties.len + dependencies_to_inject_count, // ); @@ -1152,7 +1152,7 @@ pub const CreateCommand = struct { // if (needs_to_inject_dev_dependency) { // defer needs_to_inject_dev_dependency = false; // var obj = dev_dependencies.?.data.e_object; - // var properties = try std.ArrayList(js_ast.G.Property).initCapacity( + // var properties = try std.array_list.Managed(js_ast.G.Property).initCapacity( // ctx.allocator, // obj.properties.len + dev_dependencies_to_inject_count, // ); @@ -1185,7 +1185,7 @@ pub const CreateCommand = struct { // var public_index_html_parts = [_]string{ destination, "public/index.html" }; // var public_index_html_path = filesystem.absBuf(&public_index_html_parts, &bun_path_buf); - // const public_index_html_file = std.fs.openFileAbsolute(public_index_html_path, .{ .mode = .read_write }) catch break :bail; + // const public_index_html_file = std.fs.cwd().openFile(public_index_html_path, .{ .mode = .read_write }) catch break :bail; // defer public_index_html_file.close(); // const file_extensions_to_try = [_]string{ ".tsx", ".ts", ".jsx", ".js", ".mts", ".mcjs" }; @@ -1212,7 +1212,7 @@ pub const CreateCommand = struct { // var body_closing_tag: usize = std.mem.lastIndexOf(u8, public_index_file_contents, "") orelse break :bail; - // var public_index_file_out = std.ArrayList(u8).initCapacity(ctx.allocator, public_index_file_contents.len) catch break :bail; + // var public_index_file_out = std.array_list.Managed(u8).initCapacity(ctx.allocator, public_index_file_contents.len) catch break :bail; // var html_writer = public_index_file_out.writer(); // _ = html_writer.writeAll(public_index_file_contents[0..body_closing_tag]) catch break :bail; @@ -1251,7 +1251,7 @@ pub const CreateCommand = struct { // // bun.copy(u8, bun_path_buf[destination.len + "/src/index".len ..], ".css"); // // var index_css_file_path = bun_path_buf[0 .. destination.len + "/src/index.css".len]; // // std.fs.accessAbsolute(index_css_file_path, .{}) catch break :inject_css; - // // var list = std.ArrayList(u8).fromOwnedSlice(ctx.allocator, outfile); + // // var list = std.array_list.Managed(u8).fromOwnedSlice(ctx.allocator, outfile); // // list.insertSlice(head_i + "".len, "\n") catch break :inject_css; // // outfile =try list.toOwnedSlice(); // // } @@ -1862,11 +1862,11 @@ pub const Example = struct { } } - pub fn fetchAllLocalAndRemote(ctx: Command.Context, node: ?*Progress.Node, env_loader: *DotEnv.Loader, filesystem: *fs.FileSystem) !std.ArrayList(Example) { + pub fn fetchAllLocalAndRemote(ctx: Command.Context, node: ?*Progress.Node, env_loader: *DotEnv.Loader, filesystem: *fs.FileSystem) !std.array_list.Managed(Example) { const remote_examples = try Example.fetchAll(ctx, env_loader, node); if (node) |node_| node_.end(); - var examples = std.ArrayList(Example).fromOwnedSlice(ctx.allocator, remote_examples); + var examples = std.array_list.Managed(Example).fromOwnedSlice(ctx.allocator, remote_examples); { var folders = [3]std.fs.Dir{ bun.invalid_fd.stdDir(), diff --git a/src/cli/filter_arg.zig b/src/cli/filter_arg.zig index 3d0e00c6e6..ad9b071345 100644 --- a/src/cli/filter_arg.zig +++ b/src/cli/filter_arg.zig @@ -24,7 +24,7 @@ fn globIgnoreFn(val: []const u8) bool { const GlobWalker = glob.GlobWalker(globIgnoreFn, glob.walk.DirEntryAccessor, false); -pub fn getCandidatePackagePatterns(allocator: std.mem.Allocator, log: *bun.logger.Log, out_patterns: *std.ArrayList([]u8), workdir_: []const u8, root_buf: *bun.PathBuffer) ![]const u8 { +pub fn getCandidatePackagePatterns(allocator: std.mem.Allocator, log: *bun.logger.Log, out_patterns: *std.array_list.Managed([]u8), workdir_: []const u8, root_buf: *bun.PathBuffer) ![]const u8 { bun.ast.Expr.Data.Store.create(); bun.ast.Stmt.Data.Store.create(); defer { @@ -135,7 +135,7 @@ pub const FilterSet = struct { var buf: bun.PathBuffer = undefined; // TODO fixed buffer allocator with fallback? - var list = try std.ArrayList(Pattern).initCapacity(allocator, filters.len); + var list = try std.array_list.Managed(Pattern).initCapacity(allocator, filters.len); var self = FilterSet{ .allocator = allocator, .filters = &.{} }; for (filters) |filter_utf8_| { if (strings.eqlComptime(filter_utf8_, "*") or strings.eqlComptime(filter_utf8_, "**")) { @@ -227,7 +227,7 @@ pub const PackageFilterIterator = struct { while (true) { switch (try self.iter.next()) { .err => |err| { - Output.prettyErrorln("Error: {}", .{err}); + Output.prettyErrorln("Error: {f}", .{err}); continue; }, .result => |path| { diff --git a/src/cli/filter_run.zig b/src/cli/filter_run.zig index 9ba9fbec17..334432a281 100644 --- a/src/cli/filter_run.zig +++ b/src/cli/filter_run.zig @@ -27,7 +27,7 @@ pub const ProcessHandle = struct { stdout: bun.io.BufferedReader = bun.io.BufferedReader.init(This), stderr: bun.io.BufferedReader = bun.io.BufferedReader.init(This), - buffer: std.ArrayList(u8) = std.ArrayList(u8).init(bun.default_allocator), + buffer: std.array_list.Managed(u8) = std.array_list.Managed(u8).init(bun.default_allocator), process: ?struct { ptr: *bun.spawn.Process, @@ -39,7 +39,7 @@ pub const ProcessHandle = struct { end_time: ?std.time.Instant = null, remaining_dependencies: usize = 0, - dependents: std.ArrayList(*This) = std.ArrayList(*This).init(bun.default_allocator), + dependents: std.array_list.Managed(*This) = std.array_list.Managed(*This).init(bun.default_allocator), visited: bool = false, visiting: bool = false, @@ -147,7 +147,7 @@ const State = struct { event_loop: *bun.jsc.MiniEventLoop, remaining_scripts: usize = 0, // buffer for batched output - draw_buf: std.ArrayList(u8) = std.ArrayList(u8).init(bun.default_allocator), + draw_buf: std.array_list.Managed(u8) = std.array_list.Managed(u8).init(bun.default_allocator), last_lines_written: usize = 0, pretty_output: bool, shell_bin: [:0]const u8, @@ -339,7 +339,7 @@ const State = struct { } fn flushDrawBuf(this: *This) void { - std.io.getStdOut().writeAll(this.draw_buf.items) catch {}; + std.fs.File.stdout().writeAll(this.draw_buf.items) catch {}; } pub fn abort(this: *This) void { @@ -375,13 +375,13 @@ const AbortHandler = struct { var should_abort = false; - fn posixSignalHandler(sig: i32, info: *const std.posix.siginfo_t, _: ?*const anyopaque) callconv(.C) void { + fn posixSignalHandler(sig: i32, info: *const std.posix.siginfo_t, _: ?*const anyopaque) callconv(.c) void { _ = sig; _ = info; should_abort = true; } - fn windowsCtrlHandler(dwCtrlType: std.os.windows.DWORD) callconv(std.os.windows.WINAPI) std.os.windows.BOOL { + fn windowsCtrlHandler(dwCtrlType: std.os.windows.DWORD) callconv(.winapi) std.os.windows.BOOL { if (dwCtrlType == std.os.windows.CTRL_C_EVENT) { should_abort = true; return std.os.windows.TRUE; @@ -393,7 +393,7 @@ const AbortHandler = struct { if (Environment.isPosix) { const action = std.posix.Sigaction{ .handler = .{ .sigaction = AbortHandler.posixSignalHandler }, - .mask = std.posix.empty_sigset, + .mask = std.posix.sigemptyset(), .flags = std.posix.SA.SIGINFO | std.posix.SA.RESTART | std.posix.SA.RESETHAND, }; std.posix.sigaction(std.posix.SIG.INT, &action, null); @@ -446,7 +446,7 @@ pub fn runScriptsWithFilter(ctx: Command.Context) !noreturn { } var filter_instance = try FilterArg.FilterSet.init(ctx.allocator, filters_to_use, fsinstance.top_level_dir); - var patterns = std.ArrayList([]u8).init(ctx.allocator); + var patterns = std.array_list.Managed([]u8).init(ctx.allocator); // Find package.json at workspace root var root_buf: bun.PathBuffer = undefined; @@ -459,7 +459,7 @@ pub fn runScriptsWithFilter(ctx: Command.Context) !noreturn { defer package_json_iter.deinit(); // Get list of packages that match the configuration - var scripts = std.ArrayList(ScriptConfig).init(ctx.allocator); + var scripts = std.array_list.Managed(ScriptConfig).init(ctx.allocator); // var scripts = std.ArrayHashMap([]const u8, ScriptConfig).init(ctx.allocator); while (try package_json_iter.next()) |package_json_path| { const dirpath = std.fs.path.dirname(package_json_path) orelse Global.crash(); @@ -495,7 +495,7 @@ pub fn runScriptsWithFilter(ctx: Command.Context) !noreturn { var copy_script_capacity: usize = original_content.len; for (ctx.passthrough) |part| copy_script_capacity += 1 + part.len; // we leak this - var copy_script = try std.ArrayList(u8).initCapacity(ctx.allocator, copy_script_capacity); + var copy_script = try std.array_list.Managed(u8).initCapacity(ctx.allocator, copy_script_capacity); try RunCommand.replacePackageManagerRun(©_script, original_content); const len_command_only = copy_script.items.len; @@ -557,7 +557,7 @@ pub fn runScriptsWithFilter(ctx: Command.Context) !noreturn { } // initialize the handles - var map = bun.StringHashMap(std.ArrayList(*ProcessHandle)).init(ctx.allocator); + var map = bun.StringHashMap(std.array_list.Managed(*ProcessHandle)).init(ctx.allocator); for (scripts.items, 0..) |*script, i| { state.handles[i] = ProcessHandle{ .state = &state, @@ -577,7 +577,7 @@ pub fn runScriptsWithFilter(ctx: Command.Context) !noreturn { // Output.prettyErrorln("error: Duplicate package name: {s}", .{script.package_name}); // Global.exit(1); } else { - res.value_ptr.* = std.ArrayList(*ProcessHandle).init(ctx.allocator); + res.value_ptr.* = std.array_list.Managed(*ProcessHandle).init(ctx.allocator); try res.value_ptr.append(&state.handles[i]); // &state.handles[i]; } diff --git a/src/cli/init_command.zig b/src/cli/init_command.zig index 4f88e56bbf..d46d261f0b 100644 --- a/src/cli/init_command.zig +++ b/src/cli/init_command.zig @@ -22,7 +22,7 @@ pub const InitCommand = struct { } }; - var input: std.ArrayList(u8) = .init(alloc); + var input: std.array_list.Managed(u8) = .init(alloc); try bun.Output.buffered_stdin.reader().readUntilDelimiterArrayList(&input, '\n', 1024); if (strings.endsWithChar(input.items, '\r')) { @@ -117,7 +117,10 @@ pub const InitCommand = struct { Output.flush(); // Read a single character - const byte = std.io.getStdIn().reader().readByte() catch return selected; + var stdin_b: [1]u8 = undefined; + var stdin_r = std.fs.File.stdin().readerStreaming(&stdin_b); + var stdin_i = &stdin_r.interface; + const byte = stdin_i.takeByte() catch return selected; switch (byte) { '\n', '\r' => { @@ -146,11 +149,11 @@ pub const InitCommand = struct { }, 27 => { // ESC sequence // Return immediately on plain ESC - const next = std.io.getStdIn().reader().readByte() catch return error.EndOfStream; + const next = stdin_i.takeByte() catch return error.EndOfStream; if (next != '[') return error.EndOfStream; // Read arrow key - const arrow = std.io.getStdIn().reader().readByte() catch return error.EndOfStream; + const arrow = stdin_i.takeByte() catch return error.EndOfStream; switch (arrow) { 'A' => { // Up arrow if (@intFromEnum(selected) == 0) { @@ -262,14 +265,16 @@ pub const InitCommand = struct { ) !void { var file = try std.fs.cwd().createFile(filename, .{ .truncate = true }); defer file.close(); + var file_w = file.writerStreaming(&.{}); + const file_i = &file_w.interface; // Write contents of known assets to the new file. Template assets get formatted. if (comptime @hasDecl(Assets, asset_name)) { const asset = @field(Assets, asset_name); if (comptime is_template) { - try file.writer().print(asset, args); + try file_i.print(asset, args); } else { - try file.writeAll(asset); + try file_i.writeAll(asset); } Output.prettyln(" + {s}{s}", .{ filename, message_suffix }); Output.flush(); @@ -291,11 +296,13 @@ pub const InitCommand = struct { ) !void { var file = try std.fs.cwd().createFile(filename, .{ .truncate = true }); defer file.close(); + var file_w = file.writerStreaming(&.{}); + var file_i = &file_w.interface; if (comptime is_template) { - try file.writer().print(contents, args); + try file_i.print(contents, args); } else { - try file.writeAll(contents); + try file_i.writeAll(contents); } Output.prettyln(" + {s}{s}", .{ filename, message_suffix }); @@ -830,7 +837,7 @@ pub const InitCommand = struct { Output.pretty("\nTo get started, run:\n\n ", .{}); if (strings.containsAny(" \"'", fields.entry_point)) { - Output.pretty("bun run {any}\n\n", .{bun.fmt.formatJSONStringLatin1(fields.entry_point)}); + Output.pretty("bun run {f}\n\n", .{bun.fmt.formatJSONStringLatin1(fields.entry_point)}); } else { Output.pretty("bun run {s}\n\n", .{fields.entry_point}); } diff --git a/src/cli/install_completions_command.zig b/src/cli/install_completions_command.zig index b7cdb62024..dde44ec360 100644 --- a/src/cli/install_completions_command.zig +++ b/src/cli/install_completions_command.zig @@ -127,7 +127,7 @@ pub const InstallCompletionsCommand = struct { var cwd_buf: bun.PathBuffer = undefined; - var stdout = std.io.getStdOut(); + var stdout = std.fs.File.stdout(); var shell = ShellCompletions.Shell.unknown; if (bun.env_var.SHELL.platformGet()) |shell_name| { diff --git a/src/cli/link_command.zig b/src/cli/link_command.zig index 28c6047c53..97fe5213d0 100644 --- a/src/cli/link_command.zig +++ b/src/cli/link_command.zig @@ -46,7 +46,7 @@ fn link(ctx: Command.Context) !void { Global.crash(); } else if (!strings.isNPMPackageName(name)) { if (manager.options.log_level != .silent) { - Output.prettyErrorln("error: invalid package.json name \"{s}\" in \"{any}\"", .{ + Output.prettyErrorln("error: invalid package.json name \"{s}\" in \"{s}\"", .{ name, package_json_source.path.text, }); @@ -108,7 +108,7 @@ fn link(ctx: Command.Context) !void { bun.windows.libuv.UV_FS_SYMLINK_JUNCTION, )) { .err => |err| { - Output.prettyErrorln("error: failed to create junction to node_modules in global dir due to error {}", .{err}); + Output.prettyErrorln("error: failed to create junction to node_modules in global dir due to error {f}", .{err}); Global.crash(); }, .result => {}, diff --git a/src/cli/outdated_command.zig b/src/cli/outdated_command.zig index df8162d0a3..11f5997aeb 100644 --- a/src/cli/outdated_command.zig +++ b/src/cli/outdated_command.zig @@ -245,7 +245,7 @@ pub const OutdatedCommand = struct { catalog_name_hash: u64, behavior: Behavior, }; - var catalog_map = std.AutoHashMap(CatalogKey, std.ArrayList(PackageID)).init(allocator); + var catalog_map = std.AutoHashMap(CatalogKey, std.array_list.Managed(PackageID)).init(allocator); defer catalog_map.deinit(); defer { var iter = catalog_map.iterator(); @@ -263,7 +263,7 @@ pub const OutdatedCommand = struct { const entry = try catalog_map.getOrPut(key); if (!entry.found_existing) { - entry.value_ptr.* = std.ArrayList(PackageID).init(allocator); + entry.value_ptr.* = std.array_list.Managed(PackageID).init(allocator); } try entry.value_ptr.append(item.workspace_pkg_id); } else { @@ -290,7 +290,7 @@ pub const OutdatedCommand = struct { const workspace_list = catalog_map.get(key) orelse continue; if (workspace_list.items[0] != item.workspace_pkg_id) continue; - var workspace_names = std.ArrayList(u8).init(allocator); + var workspace_names = std.array_list.Managed(u8).init(allocator); defer workspace_names.deinit(); const cat_name = dep.version.value.catalog.slice(string_buf); @@ -378,7 +378,7 @@ pub const OutdatedCommand = struct { const pkg_resolutions = packages.items(.resolution); const pkg_dependencies = packages.items(.dependencies); - var version_buf = std.ArrayList(u8).init(bun.default_allocator); + var version_buf = std.array_list.Managed(u8).init(bun.default_allocator); defer version_buf.deinit(); const version_writer = version_buf.writer(); @@ -457,23 +457,23 @@ pub const OutdatedCommand = struct { if (package_name_len > max_name) max_name = package_name_len; - bun.handleOom(version_writer.print("{}", .{resolution.value.npm.version.fmt(string_buf)})); + bun.handleOom(version_writer.print("{f}", .{resolution.value.npm.version.fmt(string_buf)})); if (version_buf.items.len > max_current) max_current = version_buf.items.len; version_buf.clearRetainingCapacity(); if (update_version.unwrap()) |update_version_| { - bun.handleOom(version_writer.print("{}", .{update_version_.version.fmt(manifest.string_buf)})); + bun.handleOom(version_writer.print("{f}", .{update_version_.version.fmt(manifest.string_buf)})); } else { - bun.handleOom(version_writer.print("{}", .{resolution.value.npm.version.fmt(manifest.string_buf)})); + bun.handleOom(version_writer.print("{f}", .{resolution.value.npm.version.fmt(manifest.string_buf)})); } const update_version_len = version_buf.items.len + (if (has_filtered_update) " *".len else 0); if (update_version_len > max_update) max_update = update_version_len; version_buf.clearRetainingCapacity(); if (latest.unwrap()) |latest_version| { - bun.handleOom(version_writer.print("{}", .{latest_version.version.fmt(manifest.string_buf)})); + bun.handleOom(version_writer.print("{f}", .{latest_version.version.fmt(manifest.string_buf)})); } else { - bun.handleOom(version_writer.print("{}", .{resolution.value.npm.version.fmt(manifest.string_buf)})); + bun.handleOom(version_writer.print("{f}", .{resolution.value.npm.version.fmt(manifest.string_buf)})); } const latest_version_len = version_buf.items.len + (if (has_filtered_latest) " *".len else 0); if (latest_version_len > max_latest) max_latest = latest_version_len; @@ -617,7 +617,7 @@ pub const OutdatedCommand = struct { Output.pretty("{s}", .{table.symbols.verticalEdge()}); for (0..column_left_pad) |_| Output.pretty(" ", .{}); - bun.handleOom(version_writer.print("{}", .{resolution.value.npm.version.fmt(string_buf)})); + bun.handleOom(version_writer.print("{f}", .{resolution.value.npm.version.fmt(string_buf)})); Output.pretty("{s}", .{version_buf.items}); for (version_buf.items.len..current_column_inside_length + column_right_pad) |_| Output.pretty(" ", .{}); version_buf.clearRetainingCapacity(); @@ -628,10 +628,10 @@ pub const OutdatedCommand = struct { Output.pretty("{s}", .{table.symbols.verticalEdge()}); for (0..column_left_pad) |_| Output.pretty(" ", .{}); if (update.unwrap()) |update_version| { - bun.handleOom(version_writer.print("{}", .{update_version.version.fmt(manifest.string_buf)})); - Output.pretty("{s}", .{update_version.version.diffFmt(resolution.value.npm.version, manifest.string_buf, string_buf)}); + bun.handleOom(version_writer.print("{f}", .{update_version.version.fmt(manifest.string_buf)})); + Output.pretty("{f}", .{update_version.version.diffFmt(resolution.value.npm.version, manifest.string_buf, string_buf)}); } else { - bun.handleOom(version_writer.print("{}", .{resolution.value.npm.version.fmt(string_buf)})); + bun.handleOom(version_writer.print("{f}", .{resolution.value.npm.version.fmt(string_buf)})); Output.pretty("{s}", .{version_buf.items}); } var update_version_len: usize = version_buf.items.len; @@ -648,10 +648,10 @@ pub const OutdatedCommand = struct { Output.pretty("{s}", .{table.symbols.verticalEdge()}); for (0..column_left_pad) |_| Output.pretty(" ", .{}); if (latest.unwrap()) |latest_version| { - bun.handleOom(version_writer.print("{}", .{latest_version.version.fmt(manifest.string_buf)})); - Output.pretty("{s}", .{latest_version.version.diffFmt(resolution.value.npm.version, manifest.string_buf, string_buf)}); + bun.handleOom(version_writer.print("{f}", .{latest_version.version.fmt(manifest.string_buf)})); + Output.pretty("{f}", .{latest_version.version.diffFmt(resolution.value.npm.version, manifest.string_buf, string_buf)}); } else { - bun.handleOom(version_writer.print("{}", .{resolution.value.npm.version.fmt(string_buf)})); + bun.handleOom(version_writer.print("{f}", .{resolution.value.npm.version.fmt(string_buf)})); Output.pretty("{s}", .{version_buf.items}); } var latest_version_len: usize = version_buf.items.len; diff --git a/src/cli/pack_command.zig b/src/cli/pack_command.zig index a8564ea9fb..5774b0795d 100644 --- a/src/cli/pack_command.zig +++ b/src/cli/pack_command.zig @@ -35,13 +35,13 @@ pub const PackCommand = struct { Output.prettyln("Shasum: {s}", .{std.fmt.bytesToHex(shasum, .lower)}); } if (maybe_integrity) |integrity| { - Output.prettyln("Integrity: {}", .{bun.fmt.integrity(integrity, .short)}); + Output.prettyln("Integrity: {f}", .{bun.fmt.integrity(integrity, .short)}); } - Output.prettyln("Unpacked size: {}", .{ + Output.prettyln("Unpacked size: {f}", .{ bun.fmt.size(stats.unpacked_size, .{ .space_between_number_and_unit = false }), }); if (stats.packed_size > 0) { - Output.pretty("Packed size: {}\n", .{ + Output.pretty("Packed size: {f}\n", .{ bun.fmt.size(stats.packed_size, .{ .space_between_number_and_unit = false }), }); } @@ -243,7 +243,7 @@ pub const PackCommand = struct { ) OOM!void { if (comptime Environment.isDebug) { for (excludes) |exclude| { - bun.assertf(exclude.flags.negated, "Illegal exclusion pattern '{s}'. Exclusion patterns are always negated.", .{exclude.glob}); + bun.assertf(exclude.flags.negated, "Illegal exclusion pattern '{f}'. Exclusion patterns are always negated.", .{exclude.glob}); } } @@ -516,11 +516,11 @@ pub const PackCommand = struct { dir_subpath: string, entry_name: string, ) OOM!stringZ { - return std.fmt.allocPrintZ(allocator, "{s}{s}{s}", .{ + return std.fmt.allocPrintSentinel(allocator, "{s}{s}{s}", .{ dir_subpath, if (dir_subpath.len == 0) "" else "/", entry_name, - }); + }, 0); } fn entryNameZ( @@ -721,10 +721,10 @@ pub const PackCommand = struct { const dep_name = dep.key.?.asString(ctx.allocator) orelse continue; - const dep_subpath = try std.fmt.allocPrintZ(ctx.allocator, "{s}/node_modules/{s}", .{ + const dep_subpath = try std.fmt.allocPrintSentinel(ctx.allocator, "{s}/node_modules/{s}", .{ dir_subpath, dep_name, - }); + }, 0); // starting at `node_modules/is-even/node_modules/is-odd` var dep_dir_depth: usize = bundled_dir_info[2] + 2; @@ -1163,7 +1163,7 @@ pub const PackCommand = struct { }; } - const BufferedFileReader = std.io.BufferedReader(1024 * 512, File.Reader); + const BufferedFileReader = bun.deprecated.BufferedReader(1024 * 512, File.Reader); pub fn pack( ctx: *Context, @@ -1469,7 +1469,7 @@ pub const PackCommand = struct { if (comptime !for_publish) { if (manager.options.pack_destination.len == 0 and manager.options.pack_filename.len == 0) { - Output.pretty("\n{}\n", .{fmtTarballFilename(package_name, package_version, .normalize)}); + Output.pretty("\n{f}\n", .{fmtTarballFilename(package_name, package_version, .normalize)}); } else { var dest_buf: PathBuffer = undefined; const abs_tarball_dest, _ = tarballDestination( @@ -1539,7 +1539,7 @@ pub const PackCommand = struct { return; } - var print_buf = std.ArrayList(u8).init(ctx.allocator); + var print_buf = std.array_list.Managed(u8).init(ctx.allocator); defer print_buf.deinit(); const print_buf_writer = print_buf.writer(); @@ -1626,6 +1626,7 @@ pub const PackCommand = struct { defer ctx.allocator.destroy(file_reader); file_reader.* = .{ .unbuffered_reader = undefined, + .buf = undefined, }; var entry = Archive.Entry.new2(archive); @@ -1697,7 +1698,7 @@ pub const PackCommand = struct { }; defer file.close(); const stat = file.stat().unwrap() catch |err| { - Output.err(err, "failed to stat file: \"{}\"", .{file.handle}); + Output.err(err, "failed to stat file: \"{f}\"", .{file.handle}); Global.crash(); }; @@ -1769,6 +1770,7 @@ pub const PackCommand = struct { file_reader.* = .{ .unbuffered_reader = tarball_file.reader(), + .buf = undefined, }; var size: usize = 0; @@ -1814,7 +1816,7 @@ pub const PackCommand = struct { if (comptime !for_publish) { if (manager.options.pack_destination.len == 0 and manager.options.pack_filename.len == 0) { - Output.pretty("\n{}\n", .{fmtTarballFilename(package_name, package_version, .normalize)}); + Output.pretty("\n{f}\n", .{fmtTarballFilename(package_name, package_version, .normalize)}); } else { Output.pretty("\n{s}\n", .{abs_tarball_dest}); } @@ -1906,10 +1908,10 @@ pub const PackCommand = struct { .auto, ); - const tarball_name = std.fmt.bufPrint(dest_buf[strings.withoutTrailingSlash(tarball_destination_dir).len..], "/{}\x00", .{ + const tarball_name = std.fmt.bufPrint(dest_buf[strings.withoutTrailingSlash(tarball_destination_dir).len..], "/{f}\x00", .{ fmtTarballFilename(package_name, package_version, .normalize), }) catch { - Output.errGeneric("archive destination name too long: \"{s}/{}\"", .{ + Output.errGeneric("archive destination name too long: \"{s}/{f}\"", .{ strings.withoutTrailingSlash(tarball_destination_dir), fmtTarballFilename(package_name, package_version, .normalize), }); @@ -1941,7 +1943,7 @@ pub const PackCommand = struct { raw, }; - pub fn format(this: TarballNameFormatter, comptime _: string, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: TarballNameFormatter, writer: *std.Io.Writer) std.Io.Writer.Error!void { if (this.style == .raw) { return writer.print("{s}-{s}.tgz", .{ this.package_name, this.package_version }); } @@ -2013,7 +2015,7 @@ pub const PackCommand = struct { file_reader: *BufferedFileReader, archive: *Archive, entry: *Archive.Entry, - print_buf: *std.ArrayList(u8), + print_buf: *std.array_list.Managed(u8), bins: []const BinInfo, ) OOM!*Archive.Entry { const print_buf_writer = print_buf.writer(); @@ -2050,6 +2052,7 @@ pub const PackCommand = struct { file_reader.* = .{ .unbuffered_reader = File.from(file).reader(), + .buf = undefined, }; var read = file_reader.read(read_buf) catch |err| { @@ -2125,7 +2128,7 @@ pub const PackCommand = struct { allocator, E.String, .{ - .data = try std.fmt.allocPrint(allocator, "{s}{}", .{ + .data = try std.fmt.allocPrint(allocator, "{s}{f}", .{ switch (c) { '^' => "^", '~' => "~", @@ -2465,7 +2468,7 @@ pub const PackCommand = struct { ) void { const root_dir = bun.FD.fromStdDir(root_dir_std); if (ctx.manager.options.log_level == .silent or ctx.manager.options.log_level == .quiet) return; - const packed_fmt = "packed {} {s}"; + const packed_fmt = "packed {f} {s}"; if (comptime is_dry_run) { const package_json_stat = root_dir.statat("package.json").unwrap() catch |err| { @@ -2577,7 +2580,7 @@ pub const bindings = struct { const tarball_path = tarball_path_str.toUTF8(bun.default_allocator); defer tarball_path.deinit(); - const tarball_file = File.from(std.fs.openFileAbsolute(tarball_path.slice(), .{}) catch |err| { + const tarball_file = File.from(std.fs.cwd().openFile(tarball_path.slice(), .{}) catch |err| { return global.throw("failed to open tarball file \"{s}\": {s}", .{ tarball_path.slice(), @errorName(err) }); }); defer tarball_file.close(); @@ -2610,7 +2613,7 @@ pub const bindings = struct { size: ?usize = null, contents: ?String = null, }; - var entries_info = std.ArrayList(EntryInfo).init(bun.default_allocator); + var entries_info = std.array_list.Managed(EntryInfo).init(bun.default_allocator); defer entries_info.deinit(); const archive = Archive.readNew(); @@ -2651,7 +2654,7 @@ pub const bindings = struct { var archive_entry: *Archive.Entry = undefined; var header_status = archive.readNextHeader(&archive_entry); - var read_buf = std.ArrayList(u8).init(bun.default_allocator); + var read_buf = std.array_list.Managed(u8).init(bun.default_allocator); defer read_buf.deinit(); while (header_status != .eof) : (header_status = archive.readNextHeader(&archive_entry)) { @@ -2664,7 +2667,7 @@ pub const bindings = struct { else => { const pathname_string = if (bun.Environment.isWindows) blk: { const pathname_w = archive_entry.pathnameW(); - const list = std.ArrayList(u8).init(bun.default_allocator); + const list = std.array_list.Managed(u8).init(bun.default_allocator); var result = bun.handleOom(bun.strings.toUTF8ListWithType(list, pathname_w)); defer result.deinit(); break :blk String.cloneUTF8(result.items); diff --git a/src/cli/package_manager_command.zig b/src/cli/package_manager_command.zig index ba91e85f22..0bb3afa547 100644 --- a/src/cli/package_manager_command.zig +++ b/src/cli/package_manager_command.zig @@ -50,7 +50,7 @@ pub const PackageManagerCommand = struct { Output.flush(); Output.disableBuffering(); - try Output.writer().print("{}", .{load_lockfile.ok.lockfile.fmtMetaHash()}); + try Output.writer().print("{f}", .{load_lockfile.ok.lockfile.fmtMetaHash()}); Output.enableBuffering(); Global.exit(0); } @@ -183,7 +183,7 @@ pub const PackageManagerCommand = struct { Output.errGeneric("missing authentication (run `bunx npm login`)", .{}); }, error.ProbablyInvalidAuth => { - Output.errGeneric("failed to authenticate with registry '{}'", .{ + Output.errGeneric("failed to authenticate with registry '{f}'", .{ bun.fmt.redactedNpmUrl(pm.options.scope.url.href), }); }, @@ -230,7 +230,7 @@ pub const PackageManagerCommand = struct { Output.flush(); Output.disableBuffering(); - try Output.writer().print("{}", .{load_lockfile.ok.lockfile.fmtMetaHash()}); + try Output.writer().print("{f}", .{load_lockfile.ok.lockfile.fmtMetaHash()}); Output.enableBuffering(); Global.exit(0); } else if (strings.eqlComptime(subcommand, "hash-print")) { @@ -239,7 +239,7 @@ pub const PackageManagerCommand = struct { Output.flush(); Output.disableBuffering(); - try Output.writer().print("{}", .{load_lockfile.ok.lockfile.fmtMetaHash()}); + try Output.writer().print("{f}", .{load_lockfile.ok.lockfile.fmtMetaHash()}); Output.enableBuffering(); Global.exit(0); } else if (strings.eqlComptime(subcommand, "hash-string")) { @@ -326,7 +326,7 @@ pub const PackageManagerCommand = struct { var max_depth: usize = 0; - var directories = std.ArrayList(NodeModulesFolder).init(ctx.allocator); + var directories = std.array_list.Managed(NodeModulesFolder).init(ctx.allocator); defer directories.deinit(); while (iterator.next(null)) |node_modules| { const path_len = node_modules.relative_path.len; @@ -389,9 +389,9 @@ pub const PackageManagerCommand = struct { const resolution = resolutions[package_id].fmt(string_bytes, .auto); if (index < sorted_dependencies.len - 1) { - Output.prettyln("├── {s}@{any}\n", .{ name, resolution }); + Output.prettyln("├── {s}@{f}\n", .{ name, resolution }); } else { - Output.prettyln("└── {s}@{any}\n", .{ name, resolution }); + Output.prettyln("└── {s}@{f}\n", .{ name, resolution }); } } } @@ -461,7 +461,7 @@ fn printNodeModulesFolderStructure( directory: *const NodeModulesFolder, directory_package_id: ?PackageID, depth: usize, - directories: *std.ArrayList(NodeModulesFolder), + directories: *std.array_list.Managed(NodeModulesFolder), lockfile: *Lockfile, more_packages: []bool, ) !void { @@ -500,7 +500,7 @@ fn printNodeModulesFolderStructure( } } } - const directory_version = try std.fmt.bufPrint(&resolution_buf, "{}", .{resolutions[id].fmt(string_bytes, .auto)}); + const directory_version = try std.fmt.bufPrint(&resolution_buf, "{f}", .{resolutions[id].fmt(string_bytes, .auto)}); if (std.mem.indexOf(u8, path, "node_modules")) |j| { Output.prettyln("{s}@{s}", .{ path[0 .. j - 1], directory_version }); } else { @@ -581,7 +581,7 @@ fn printNodeModulesFolderStructure( } var resolution_buf: [512]u8 = undefined; - const package_version = try std.fmt.bufPrint(&resolution_buf, "{}", .{resolutions[package_id].fmt(string_bytes, .auto)}); + const package_version = try std.fmt.bufPrint(&resolution_buf, "{f}", .{resolutions[package_id].fmt(string_bytes, .auto)}); Output.prettyln("{s}@{s}", .{ package_name, package_version }); } } diff --git a/src/cli/pm_pkg_command.zig b/src/cli/pm_pkg_command.zig index cde17580f6..cd0e3a650c 100644 --- a/src/cli/pm_pkg_command.zig +++ b/src/cli/pm_pkg_command.zig @@ -447,8 +447,8 @@ pub const PmPkgCommand = struct { return current; } - fn parseKeyPath(allocator: std.mem.Allocator, key: []const u8) !std.ArrayList([]const u8) { - var path_parts = std.ArrayList([]const u8).init(allocator); + fn parseKeyPath(allocator: std.mem.Allocator, key: []const u8) !std.array_list.Managed([]const u8) { + var path_parts = std.array_list.Managed([]const u8).init(allocator); errdefer { for (path_parts.items) |item| allocator.free(item); path_parts.deinit(); @@ -500,7 +500,7 @@ pub const PmPkgCommand = struct { if (strings.indexOf(key, "[") == null) { var parts = std.mem.tokenizeScalar(u8, key, '.'); - var path_parts = std.ArrayList([]const u8).init(allocator); + var path_parts = std.array_list.Managed([]const u8).init(allocator); defer path_parts.deinit(); while (parts.next()) |part| { @@ -644,7 +644,7 @@ pub const PmPkgCommand = struct { if (root.data != .e_object) return false; var parts = std.mem.tokenizeScalar(u8, key, '.'); - var path_parts = std.ArrayList([]const u8).init(allocator); + var path_parts = std.array_list.Managed([]const u8).init(allocator); defer path_parts.deinit(); while (parts.next()) |part| { diff --git a/src/cli/pm_view_command.zig b/src/cli/pm_view_command.zig index 661fe498da..b624dfb257 100644 --- a/src/cli/pm_view_command.zig +++ b/src/cli/pm_view_command.zig @@ -34,7 +34,7 @@ pub fn view(allocator: std.mem.Allocator, manager: *PackageManager, spec_: strin const scope = manager.scopeForPackageName(name); var url_buf: bun.PathBuffer = undefined; - const encoded_name = try std.fmt.bufPrint(&url_buf, "{s}", .{bun.fmt.dependencyUrl(name)}); + const encoded_name = try std.fmt.bufPrint(&url_buf, "{f}", .{bun.fmt.dependencyUrl(name)}); var path_buf: bun.PathBuffer = undefined; // Always fetch the full registry manifest, not a specific version const url = URL.parse(try std.fmt.bufPrint(&path_buf, "{s}/{s}", .{ @@ -154,14 +154,14 @@ pub fn view(allocator: std.mem.Allocator, manager: *PackageManager, spec_: strin } if (json_output) { - Output.print("{{ \"error\": \"No matching version found\", \"version\": {} }}\n", .{ + Output.print("{{ \"error\": \"No matching version found\", \"version\": {f} }}\n", .{ bun.fmt.formatJSONStringUTF8(spec_, .{ .quote = true, }), }); Output.flush(); } else { - Output.errGeneric("No version of {} satisfying {} found", .{ + Output.errGeneric("No version of {f} satisfying {f} found", .{ bun.fmt.quote(name), bun.fmt.quote(version), }); @@ -174,7 +174,7 @@ pub fn view(allocator: std.mem.Allocator, manager: *PackageManager, spec_: strin if (versions_to_display.len > 0) { Output.prettyErrorln("\nRecent versions:", .{}); for (versions_to_display) |*v| { - Output.prettyErrorln("- {}", .{v.fmt(parsed_manifest.string_buf)}); + Output.prettyErrorln("- {f}", .{v.fmt(parsed_manifest.string_buf)}); } if (start_index > 0) { @@ -211,7 +211,7 @@ pub fn view(allocator: std.mem.Allocator, manager: *PackageManager, spec_: strin if (value.data == .e_string) { const slice = value.data.e_string.slice(allocator); if (json_output) { - Output.println("{s}", .{bun.fmt.formatJSONStringUTF8(slice, .{})}); + Output.println("{f}", .{bun.fmt.formatJSONStringUTF8(slice, .{})}); } else { Output.println("{s}", .{slice}); } @@ -237,7 +237,7 @@ pub fn view(allocator: std.mem.Allocator, manager: *PackageManager, spec_: strin Global.exit(0); } else { if (json_output) { - Output.print("{{ \"error\": \"Property not found\", \"version\": {}, \"property\": {} }}\n", .{ + Output.print("{{ \"error\": \"Property not found\", \"version\": {f}, \"property\": {f} }}\n", .{ bun.fmt.formatJSONStringUTF8(spec_, .{ .quote = true, }), @@ -343,7 +343,7 @@ pub fn view(allocator: std.mem.Allocator, manager: *PackageManager, spec_: strin Output.prettyln(" .integrity: {s}", .{i}); } if (dist.getNumber("unpackedSize")) |u| { - Output.prettyln(" .unpackedSize: {}", .{bun.fmt.size(@as(u64, @intFromFloat(u[0])), .{})}); + Output.prettyln(" .unpackedSize: {f}", .{bun.fmt.size(@as(u64, @intFromFloat(u[0])), .{})}); } } diff --git a/src/cli/publish_command.zig b/src/cli/publish_command.zig index 08cd1aada0..222444ef80 100644 --- a/src/cli/publish_command.zig +++ b/src/cli/publish_command.zig @@ -90,7 +90,7 @@ pub const PublishCommand = struct { const stripped = pathname[slash + 1 ..]; if (stripped.len == 0) continue; - Output.pretty("packed {} {}\n", .{ + Output.pretty("packed {f} {f}\n", .{ bun.fmt.size(size, .{ .space_between_number_and_unit = false }), bun.fmt.fmtOSPath(stripped, .{}), }); @@ -113,7 +113,7 @@ pub const PublishCommand = struct { } } } else { - Output.pretty("packed {} {}\n", .{ + Output.pretty("packed {f} {f}\n", .{ bun.fmt.size(size, .{ .space_between_number_and_unit = false }), bun.fmt.fmtOSPath(pathname, .{}), }); @@ -457,13 +457,13 @@ pub const PublishCommand = struct { version: string, registry: *const Npm.Registry.Scope, ) bool { - var url_buf = std.ArrayList(u8).init(allocator); + var url_buf = std.array_list.Managed(u8).init(allocator); defer url_buf.deinit(); const registry_url = strings.withoutTrailingSlash(registry.url.href); const encoded_name = bun.fmt.dependencyUrl(package_name); // Try to get package metadata to check if version exists - url_buf.writer().print("{s}/{s}", .{ registry_url, encoded_name }) catch return false; + url_buf.writer().print("{s}/{f}", .{ registry_url, encoded_name }) catch return false; const package_url = URL.parse(url_buf.items); @@ -473,7 +473,7 @@ pub const PublishCommand = struct { var headers = http.HeaderBuilder{}; headers.count("accept", "application/json"); - var auth_buf = std.ArrayList(u8).init(allocator); + var auth_buf = std.array_list.Managed(u8).init(allocator); defer auth_buf.deinit(); if (registry.token.len > 0) { @@ -587,7 +587,7 @@ pub const PublishCommand = struct { var response_buf = try MutableString.init(ctx.allocator, 1024); - try print_writer.print("{s}/{s}", .{ + try print_writer.print("{s}/{f}", .{ strings.withoutTrailingSlash(registry.url.href), bun.fmt.dependencyUrl(ctx.package_name), }); @@ -861,7 +861,7 @@ pub const PublishCommand = struct { break :nanoseconds 500 * std.time.ns_per_ms; }; - std.time.sleep(nanoseconds); + std.Thread.sleep(nanoseconds); continue; }, 200 => { @@ -935,7 +935,7 @@ pub const PublishCommand = struct { const version_without_build_tag = Dependency.withoutBuildTag(package_version); - const integrity_fmt = try std.fmt.allocPrint(allocator, "{}", .{bun.fmt.integrity(integrity, .full)}); + const integrity_fmt = try std.fmt.allocPrint(allocator, "{f}", .{bun.fmt.integrity(integrity, .full)}); try json.setString(allocator, "_id", try std.fmt.allocPrint(allocator, "{s}@{s}", .{ package_name, version_without_build_tag })); try json.setString(allocator, "_integrity", integrity_fmt); @@ -954,7 +954,7 @@ pub const PublishCommand = struct { ), .value = Expr.init( E.String, - .{ .data = try std.fmt.allocPrint(allocator, "{}", .{bun.fmt.integrity(integrity, .full)}) }, + .{ .data = try std.fmt.allocPrint(allocator, "{f}", .{bun.fmt.integrity(integrity, .full)}) }, logger.Loc.Empty, ), }; @@ -979,7 +979,7 @@ pub const PublishCommand = struct { .value = Expr.init( E.String, .{ - .data = try std.fmt.allocPrint(allocator, "http://{s}/{s}/-/{}", .{ + .data = try std.fmt.allocPrint(allocator, "http://{s}/{s}/-/{f}", .{ // always use replace https with http // https://github.com/npm/cli/blob/9281ebf8e428d40450ad75ba61bc6f040b3bf896/workspaces/libnpmpublish/lib/publish.js#L120 strings.withoutTrailingSlash(strings.withoutPrefixComptime(registry.url.href, "https://")), @@ -1052,7 +1052,7 @@ pub const PublishCommand = struct { if (json.asProperty("bin")) |bin_query| { switch (bin_query.expr.data) { .e_string => |bin_str| { - var bin_props = std.ArrayList(G.Property).init(allocator); + var bin_props = std.array_list.Managed(G.Property).init(allocator); const normalized = strings.withoutPrefixComptimeZ( path.normalizeBufZ( try bin_str.string(allocator), @@ -1087,7 +1087,7 @@ pub const PublishCommand = struct { ); }, .e_object => |bin_obj| { - var bin_props = std.ArrayList(G.Property).init(allocator); + var bin_props = std.array_list.Managed(G.Property).init(allocator); for (bin_obj.properties.slice()) |bin_prop| { const key = key: { if (bin_prop.key) |key| { @@ -1168,7 +1168,7 @@ pub const PublishCommand = struct { const bin_dir_str = bin_query.expr.asString(allocator) orelse { return; }; - var bin_props = std.ArrayList(G.Property).init(allocator); + var bin_props = std.array_list.Managed(G.Property).init(allocator); const normalized_bin_dir = try allocator.dupeZ( u8, strings.withoutTrailingSlash( @@ -1210,12 +1210,12 @@ pub const PublishCommand = struct { while (iter.next().unwrap() catch null) |entry| { const name, const subpath = name_and_subpath: { const name = entry.name.slice(); - const join = try std.fmt.allocPrintZ(allocator, "{s}{s}{s}", .{ + const join = try std.fmt.allocPrintSentinel(allocator, "{s}{s}{s}", .{ dir_subpath, // only using posix separators if (dir_subpath.len == 0) "" else std.fs.path.sep_str_posix, strings.withoutTrailingSlash(name), - }); + }, 0); break :name_and_subpath .{ join[join.len - name.len ..][0..name.len :0], join }; }; @@ -1420,7 +1420,7 @@ pub const PublishCommand = struct { // "_attachments" { - try writer.print(",\"_attachments\":{{\"{}\":{{\"content_type\":\"{s}\",\"data\":\"", .{ + try writer.print(",\"_attachments\":{{\"{f}\":{{\"content_type\":\"{s}\",\"data\":\"", .{ Pack.fmtTarballFilename(ctx.package_name, ctx.package_version, .raw), "application/octet-stream", }); diff --git a/src/cli/run_command.zig b/src/cli/run_command.zig index 870c6a342e..2d099b25dd 100644 --- a/src/cli/run_command.zig +++ b/src/cli/run_command.zig @@ -84,7 +84,7 @@ pub const RunCommand = struct { // Replace them with "bun run" pub inline fn replacePackageManagerRun( - copy_script: *std.ArrayList(u8), + copy_script: *std.array_list.Managed(u8), script: string, ) OOM!void { var entry_i: usize = 0; @@ -222,7 +222,7 @@ pub const RunCommand = struct { var copy_script_capacity: usize = original_script.len; for (passthrough) |part| copy_script_capacity += 1 + part.len; - var copy_script = try std.ArrayList(u8).initCapacity(allocator, copy_script_capacity); + var copy_script = try std.array_list.Managed(u8).initCapacity(allocator, copy_script_capacity); // We're going to do this slowly. // Find exact matches of yarn, pnpm, npm @@ -306,7 +306,7 @@ pub const RunCommand = struct { })) { .err => |err| { if (!silent) { - Output.prettyErrorln("error: Failed to run script {s} due to error:\n{}", .{ name, err }); + Output.prettyErrorln("error: Failed to run script {s} due to error:\n{f}", .{ name, err }); } Output.flush(); @@ -318,7 +318,7 @@ pub const RunCommand = struct { switch (spawn_result.status) { .exited => |exit_code| { if (exit_code.signal.valid() and exit_code.signal != .SIGINT and !silent) { - Output.prettyErrorln("error: script \"{s}\" was terminated by signal {}", .{ name, exit_code.signal.fmt(Output.enable_ansi_colors_stderr) }); + Output.prettyErrorln("error: script \"{s}\" was terminated by signal {f}", .{ name, exit_code.signal.fmt(Output.enable_ansi_colors_stderr) }); Output.flush(); if (bun.feature_flag.BUN_INTERNAL_SUPPRESS_CRASH_IN_BUN_RUN.get()) { @@ -340,7 +340,7 @@ pub const RunCommand = struct { .signaled => |signal| { if (signal.valid() and signal != .SIGINT and !silent) { - Output.prettyErrorln("error: script \"{s}\" was terminated by signal {}", .{ name, signal.fmt(Output.enable_ansi_colors_stderr) }); + Output.prettyErrorln("error: script \"{s}\" was terminated by signal {f}", .{ name, signal.fmt(Output.enable_ansi_colors_stderr) }); Output.flush(); } @@ -353,7 +353,7 @@ pub const RunCommand = struct { .err => |err| { if (!silent) { - Output.prettyErrorln("error: Failed to run script {s} due to error:\n{}", .{ name, err }); + Output.prettyErrorln("error: Failed to run script {s} due to error:\n{f}", .{ name, err }); } Output.flush(); @@ -426,7 +426,7 @@ pub const RunCommand = struct { fn runBinaryGenericError(executable: []const u8, silent: bool, err: bun.sys.Error) noreturn { if (!silent) { - Output.prettyErrorln("error: Failed to run \"{s}\" due to:\n{}", .{ basenameOrBun(executable), err.withPath(executable) }); + Output.prettyErrorln("error: Failed to run \"{s}\" due to:\n{f}", .{ basenameOrBun(executable), err.withPath(executable) }); } Global.exit(1); @@ -445,7 +445,7 @@ pub const RunCommand = struct { var argv: []const string = &argv_; if (passthrough.len > 0) { - var array_list = std.ArrayList(string).init(ctx.allocator); + var array_list = std.array_list.Managed(string).init(ctx.allocator); try array_list.append(executable); try array_list.appendSlice(passthrough); argv = try array_list.toOwnedSlice(); @@ -486,7 +486,7 @@ pub const RunCommand = struct { .err => |err2| { switch (err2.getErrno()) { .NOENT, .PERM, .NOTDIR => { - Output.prettyErrorln("error: Failed to run \"{s}\" due to error:\n{}", .{ basenameOrBun(executable), err2 }); + Output.prettyErrorln("error: Failed to run \"{s}\" due to error:\n{f}", .{ basenameOrBun(executable), err2 }); break :print_error; }, else => {}, @@ -640,7 +640,7 @@ pub const RunCommand = struct { } pub fn createFakeTemporaryNodeExecutable( - PATH: *std.ArrayList(u8), + PATH: *std.array_list.Managed(u8), optional_bun_path: *string, ) (OOM || std.fs.SelfExePathError)!void { // If we are already running as "node", the path should exist @@ -793,7 +793,7 @@ pub const RunCommand = struct { const root_dir_info = this_transpiler.resolver.readDirInfo(this_transpiler.fs.top_level_dir) catch |err| { if (!log_errors) return error.CouldntReadCurrentDirectory; ctx.log.print(Output.errorWriter()) catch {}; - Output.prettyErrorln("error: {s} loading directory {}", .{ @errorName(err), bun.fmt.QuotedFormatter{ .text = this_transpiler.fs.top_level_dir } }); + Output.prettyErrorln("error: {s} loading directory {f}", .{ @errorName(err), bun.fmt.QuotedFormatter{ .text = this_transpiler.fs.top_level_dir } }); Output.flush(); return err; } orelse { @@ -907,7 +907,7 @@ pub const RunCommand = struct { new_path_len += bun_node_dir_win.len + 1; } - var new_path = try std.ArrayList(u8).initCapacity(ctx.allocator, new_path_len); + var new_path = try std.array_list.Managed(u8).initCapacity(ctx.allocator, new_path_len); if (needs_to_force_bun) { createFakeTemporaryNodeExecutable( @@ -1019,7 +1019,7 @@ pub const RunCommand = struct { } var results = ResultList.init(ctx.allocator); - var descriptions = std.ArrayList(string).init(ctx.allocator); + var descriptions = std.array_list.Managed(string).init(ctx.allocator); if (filter != .script_exclude) { if (default_completions) |defaults| { @@ -1400,11 +1400,12 @@ pub const RunCommand = struct { // read from stdin var stack_fallback = std.heap.stackFallback(2048, bun.default_allocator); - var list = std.ArrayList(u8).init(stack_fallback.get()); + var list = std.Io.Writer.Allocating.init(stack_fallback.get()); errdefer list.deinit(); - std.io.getStdIn().reader().readAllArrayList(&list, 1024 * 1024 * 1024) catch return false; - ctx.runtime_options.eval.script = list.items; + var file_reader = std.fs.File.stdin().readerStreaming(&.{}); + _ = file_reader.interface.streamRemaining(&list.writer) catch return false; + ctx.runtime_options.eval.script = list.written(); const trigger = bun.pathLiteral("/[stdin]"); var entry_point_buf: [bun.MAX_PATH_BYTES + trigger.len]u8 = undefined; @@ -1412,7 +1413,7 @@ pub const RunCommand = struct { @memcpy(entry_point_buf[cwd.len..][0..trigger.len], trigger); const entry_path = entry_point_buf[0 .. cwd.len + trigger.len]; - var passthrough_list = try std.ArrayList(string).initCapacity(ctx.allocator, ctx.passthrough.len + 1); + var passthrough_list = try std.array_list.Managed(string).initCapacity(ctx.allocator, ctx.passthrough.len + 1); passthrough_list.appendAssumeCapacity("-"); passthrough_list.appendSliceAssumeCapacity(ctx.passthrough); ctx.passthrough = passthrough_list.items; @@ -1692,7 +1693,7 @@ pub const BunXFastPath = struct { bun.assert(bun.isSliceInBufferT(u16, path_to_use, &BunXFastPath.direct_launch_buffer)); var command_line = BunXFastPath.direct_launch_buffer[path_to_use.len..]; - debug("Attempting to find and load bunx file: '{}'", .{bun.fmt.utf16(path_to_use)}); + debug("Attempting to find and load bunx file: '{f}'", .{bun.fmt.utf16(path_to_use)}); if (Environment.allow_assert) { bun.assert(std.fs.path.isAbsoluteWindowsWTF16(path_to_use)); } @@ -1728,9 +1729,9 @@ pub const BunXFastPath = struct { }; if (Environment.isDebug) { - debug("run_ctx.handle: '{}'", .{bun.FD.fromSystem(handle)}); - debug("run_ctx.base_path: '{}'", .{bun.fmt.utf16(run_ctx.base_path)}); - debug("run_ctx.arguments: '{}'", .{bun.fmt.utf16(run_ctx.arguments)}); + debug("run_ctx.handle: '{f}'", .{bun.FD.fromSystem(handle)}); + debug("run_ctx.base_path: '{f}'", .{bun.fmt.utf16(run_ctx.base_path)}); + debug("run_ctx.arguments: '{f}'", .{bun.fmt.utf16(run_ctx.arguments)}); debug("run_ctx.force_use_bun: '{}'", .{run_ctx.force_use_bun}); } diff --git a/src/cli/test/Scanner.zig b/src/cli/test/Scanner.zig index d2c1561426..880572acb9 100644 --- a/src/cli/test/Scanner.zig +++ b/src/cli/test/Scanner.zig @@ -16,7 +16,7 @@ has_iterated: bool = false, search_count: usize = 0, const log = bun.Output.scoped(.jest, .hidden); -const Fifo = std.fifo.LinearFifo(ScanEntry, .Dynamic); +const Fifo = bun.LinearFifo(ScanEntry, .Dynamic); const ScanEntry = struct { relative_dir: bun.StoredFileDescriptorType, dir_path: []const u8, diff --git a/src/cli/test_command.zig b/src/cli/test_command.zig index 6466f14b88..015efd3bcf 100644 --- a/src/cli/test_command.zig +++ b/src/cli/test_command.zig @@ -96,7 +96,7 @@ pub const JunitReporter = struct { return null; }; - var arraylist_writer = std.ArrayList(u8).init(bun.default_allocator); + var arraylist_writer = std.array_list.Managed(u8).init(bun.default_allocator); escapeXml(hostname, arraylist_writer.writer()) catch { this.hostname_value = ""; return null; @@ -228,7 +228,7 @@ pub const JunitReporter = struct { return; } - var buffer = std.ArrayList(u8).init(bun.default_allocator); + var buffer = std.array_list.Managed(u8).init(bun.default_allocator); var writer = buffer.writer(); try writer.writeAll( @@ -399,7 +399,7 @@ pub const JunitReporter = struct { try this.contents.appendSlice(bun.default_allocator, "\""); const elapsed_seconds = elapsed_ms / std.time.ms_per_s; - try this.contents.writer(bun.default_allocator).print(" time=\"{}\"", .{bun.fmt.trimmedPrecision(elapsed_seconds, 6)}); + try this.contents.writer(bun.default_allocator).print(" time=\"{f}\"", .{bun.fmt.trimmedPrecision(elapsed_seconds, 6)}); try this.contents.appendSlice(bun.default_allocator, " file=\""); try escapeXml(file, this.contents.writer(bun.default_allocator)); @@ -551,14 +551,14 @@ pub const JunitReporter = struct { switch (bun.sys.File.openat(.cwd(), junit_path_buf[0..path.len :0], bun.O.WRONLY | bun.O.CREAT | bun.O.TRUNC, 0o664)) { .err => |err| { - Output.err(error.JUnitReportFailed, "Failed to write JUnit report to {s}\n{}", .{ path, err }); + Output.err(error.JUnitReportFailed, "Failed to write JUnit report to {s}\n{f}", .{ path, err }); }, .result => |fd| { defer _ = fd.close(); switch (bun.sys.File.writeAll(fd, this.contents.items)) { .result => {}, .err => |err| { - Output.err(error.JUnitReportFailed, "Failed to write JUnit report to {s}\n{}", .{ path, err }); + Output.err(error.JUnitReportFailed, "Failed to write JUnit report to {s}\n{f}", .{ path, err }); }, } }, @@ -678,7 +678,7 @@ pub const CommandLineReporter = struct { writer.print(comptime Output.prettyFmt(" {s}", false), .{display_label}) catch unreachable; if (elapsed_ns > (std.time.ns_per_us * 10)) { - writer.print(" {any}", .{ + writer.print(" {f}", .{ Output.ElapsedFormatter{ .colors = Output.enable_ansi_colors_stderr, .duration_ns = elapsed_ns, @@ -751,7 +751,7 @@ pub const CommandLineReporter = struct { // To make the juint reporter generate nested suites, we need to find the needed suites and create/print them. // This assumes that the scopes are in the correct order. - var needed_suites = std.ArrayList(*bun_test.DescribeScope).init(bun.default_allocator); + var needed_suites = std.array_list.Managed(*bun_test.DescribeScope).init(bun.default_allocator); defer needed_suites.deinit(); for (scopes, 0..) |_, i| { @@ -825,7 +825,7 @@ pub const CommandLineReporter = struct { defer arena.deinit(); var stack_fallback = std.heap.stackFallback(4096, arena.allocator()); const allocator = stack_fallback.get(); - var concatenated_describe_scopes = std.ArrayList(u8).init(allocator); + var concatenated_describe_scopes = std.array_list.Managed(u8).init(allocator); { const initial_length = concatenated_describe_scopes.items.len; @@ -960,7 +960,7 @@ pub const CommandLineReporter = struct { var map = coverage.ByteRangeMapping.map orelse return; var iter = map.valueIterator(); - var byte_ranges = try std.ArrayList(bun.SourceMap.coverage.ByteRangeMapping).initCapacity(bun.default_allocator, map.count()); + var byte_ranges = try std.array_list.Managed(bun.SourceMap.coverage.ByteRangeMapping).initCapacity(bun.default_allocator, map.count()); while (iter.next()) |entry| { byte_ranges.appendAssumeCapacity(entry.*); @@ -1039,20 +1039,19 @@ pub const CommandLineReporter = struct { if (comptime reporters.text) { console.writeAll(Output.prettyFmt("", enable_ansi_colors)) catch return; - console.writeByteNTimes('-', max_filepath_length + 2) catch return; + console.splatByteAll('-', max_filepath_length + 2) catch return; console.writeAll(Output.prettyFmt("|---------|---------|-------------------\n", enable_ansi_colors)) catch return; console.writeAll("File") catch return; - console.writeByteNTimes(' ', max_filepath_length - "File".len + 1) catch return; + console.splatByteAll(' ', max_filepath_length - "File".len + 1) catch return; // writer.writeAll(Output.prettyFmt(" | % Funcs | % Blocks | % Lines | Uncovered Line #s\n", enable_ansi_colors)) catch return; console.writeAll(Output.prettyFmt(" | % Funcs | % Lines | Uncovered Line #s\n", enable_ansi_colors)) catch return; console.writeAll(Output.prettyFmt("", enable_ansi_colors)) catch return; - console.writeByteNTimes('-', max_filepath_length + 2) catch return; + console.splatByteAll('-', max_filepath_length + 2) catch return; console.writeAll(Output.prettyFmt("|---------|---------|-------------------\n", enable_ansi_colors)) catch return; } - var console_buffer = bun.MutableString.initEmpty(bun.default_allocator); - var console_buffer_buffer = console_buffer.bufferedWriter(); - var console_writer = console_buffer_buffer.writer(); + var console_buffer = std.Io.Writer.Allocating.init(bun.default_allocator); + const console_writer = &console_buffer.writer; var avg = bun.SourceMap.coverage.Fraction{ .functions = 0.0, @@ -1064,8 +1063,8 @@ pub const CommandLineReporter = struct { // --- LCOV --- var lcov_name_buf: bun.PathBuffer = undefined; - const lcov_file, const lcov_name, const lcov_buffered_writer, const lcov_writer = brk: { - if (comptime !reporters.lcov) break :brk .{ {}, {}, {}, {} }; + const lcov_file, const lcov_name, var lcov_buffered_writer = brk: { + if (comptime !reporters.lcov) break :brk .{ {}, {}, {} }; // Ensure the directory exists var fs = bun.jsc.Node.fs.NodeFS{}; @@ -1082,7 +1081,7 @@ pub const CommandLineReporter = struct { var base64_bytes: [8]u8 = undefined; var shortname_buf: [512]u8 = undefined; bun.csprng(&base64_bytes); - const tmpname = std.fmt.bufPrintZ(&shortname_buf, ".lcov.info.{s}.tmp", .{std.fmt.fmtSliceHexLower(&base64_bytes)}) catch unreachable; + const tmpname = std.fmt.bufPrintZ(&shortname_buf, ".lcov.info.{x}.tmp", .{&base64_bytes}) catch unreachable; const path = bun.path.joinAbsStringBufZ(relative_dir, &lcov_name_buf, &.{ opts.reports_directory, tmpname }, .auto); const file = bun.sys.File.openat( .cwd(), @@ -1094,30 +1093,26 @@ pub const CommandLineReporter = struct { switch (file) { .err => |err| { Output.err(.lcovCoverageError, "Failed to create lcov file", .{}); - Output.printError("\n{s}", .{err}); + Output.printError("\n{f}", .{err}); Global.exit(1); }, .result => |f| { const buffered = buffered_writer: { const writer = f.writer(); // Heap-allocate the buffered writer because we want a stable memory address + 64 KB is kind of a lot. - const ptr = try bun.default_allocator.create(std.io.BufferedWriter(64 * 1024, bun.sys.File.Writer)); - ptr.* = .{ - .end = 0, - .unbuffered_writer = writer, - }; - break :buffered_writer ptr; + const buffer = try bun.default_allocator.alloc(u8, 64 * 1024); + break :buffered_writer writer.adaptToNewApi(buffer); }; break :brk .{ f, path, buffered, - buffered.writer(), }; }, } }; + const lcov_writer = if (comptime reporters.lcov) &lcov_buffered_writer.new_interface; errdefer { if (comptime reporters.lcov) { lcov_file.close(); @@ -1205,10 +1200,10 @@ pub const CommandLineReporter = struct { try console.writeAll(Output.prettyFmt(" |\n", enable_ansi_colors)); } - console_buffer_buffer.flush() catch return; - try console.writeAll(console_buffer.list.items); + console_writer.flush() catch return; + try console.writeAll(console_buffer.written()); try console.writeAll(Output.prettyFmt("", enable_ansi_colors)); - console.writeByteNTimes('-', max_filepath_length + 2) catch return; + console.splatByteAll('-', max_filepath_length + 2) catch return; console.writeAll(Output.prettyFmt("|---------|---------|-------------------\n", enable_ansi_colors)) catch return; opts.fractions.failing = failing; @@ -1216,7 +1211,7 @@ pub const CommandLineReporter = struct { } if (comptime reporters.lcov) { - try lcov_buffered_writer.flush(); + try lcov_writer.flush(); lcov_file.close(); const cwd = bun.FD.cwd(); bun.sys.moveFileZ( @@ -1236,7 +1231,7 @@ pub const CommandLineReporter = struct { } }; -export fn BunTest__shouldGenerateCodeCoverage(test_name_str: bun.String) callconv(.C) bool { +export fn BunTest__shouldGenerateCodeCoverage(test_name_str: bun.String) callconv(.c) bool { var zig_slice: bun.jsc.ZigString.Slice = .{}; defer zig_slice.deinit(); @@ -1318,10 +1313,10 @@ pub const TestCommand = struct { var random_instance: ?std.Random.DefaultPrng = if (enable_random) std.Random.DefaultPrng.init(seed) else null; const random = if (random_instance) |*instance| instance.random() else null; - var snapshot_file_buf = std.ArrayList(u8).init(ctx.allocator); + var snapshot_file_buf = std.array_list.Managed(u8).init(ctx.allocator); var snapshot_values = Snapshots.ValuesHashMap.init(ctx.allocator); var snapshot_counts = bun.StringHashMap(usize).init(ctx.allocator); - var inline_snapshots_to_write = std.AutoArrayHashMap(TestRunner.File.ID, std.ArrayList(Snapshots.InlineSnapshotToWrite)).init(ctx.allocator); + var inline_snapshots_to_write = std.AutoArrayHashMap(TestRunner.File.ID, std.array_list.Managed(Snapshots.InlineSnapshotToWrite)).init(ctx.allocator); jsc.VirtualMachine.isBunTest = true; var reporter = try ctx.allocator.create(CommandLineReporter); @@ -1456,9 +1451,9 @@ pub const TestCommand = struct { // but the others may not error.DoesNotExist => if (file_or_dirnames.len == 1) { if (Output.isAIAgent()) { - Output.prettyErrorln("Test filter {} had no matches in --cwd={}", .{ bun.fmt.quote(arg), bun.fmt.quote(bun.fs.FileSystem.instance.top_level_dir) }); + Output.prettyErrorln("Test filter {f} had no matches in --cwd={f}", .{ bun.fmt.quote(arg), bun.fmt.quote(bun.fs.FileSystem.instance.top_level_dir) }); } else { - Output.prettyErrorln("Test filter {} had no matches", .{bun.fmt.quote(arg)}); + Output.prettyErrorln("Test filter {f} had no matches", .{bun.fmt.quote(arg)}); } vm.exit_handler.exit_code = 1; vm.is_shutting_down = true; @@ -1500,9 +1495,9 @@ pub const TestCommand = struct { error.OutOfMemory => bun.outOfMemory(), error.DoesNotExist => { if (Output.isAIAgent()) { - Output.prettyErrorln("Failed to scan non-existent root directory for tests: {} in --cwd={}", .{ bun.fmt.quote(dir_to_scan), bun.fmt.quote(bun.fs.FileSystem.instance.top_level_dir) }); + Output.prettyErrorln("Failed to scan non-existent root directory for tests: {f} in --cwd={f}", .{ bun.fmt.quote(dir_to_scan), bun.fmt.quote(bun.fs.FileSystem.instance.top_level_dir) }); } else { - Output.prettyErrorln("Failed to scan non-existent root directory for tests: {}", .{bun.fmt.quote(dir_to_scan)}); + Output.prettyErrorln("Failed to scan non-existent root directory for tests: {f}", .{bun.fmt.quote(dir_to_scan)}); } vm.exit_handler.exit_code = 1; vm.is_shutting_down = true; @@ -1581,7 +1576,7 @@ pub const TestCommand = struct { if (ctx.positionals.len < 2) { if (Output.isAIAgent()) { // Be very clear to ai. - Output.errGeneric("0 test files matching **{{.test,.spec,_test_,_spec_}}.{{js,ts,jsx,tsx}} in --cwd={}", .{bun.fmt.quote(bun.fs.FileSystem.instance.top_level_dir)}); + Output.errGeneric("0 test files matching **{{.test,.spec,_test_,_spec_}}.{{js,ts,jsx,tsx}} in --cwd={f}", .{bun.fmt.quote(bun.fs.FileSystem.instance.top_level_dir)}); } else { // Be friendlier to humans. Output.prettyErrorln( @@ -1593,7 +1588,7 @@ pub const TestCommand = struct { } } else { if (Output.isAIAgent()) { - Output.prettyErrorln("The following filters did not match any test files in --cwd={}:", .{bun.fmt.quote(bun.fs.FileSystem.instance.top_level_dir)}); + Output.prettyErrorln("The following filters did not match any test files in --cwd={f}:", .{bun.fmt.quote(bun.fs.FileSystem.instance.top_level_dir)}); } else { Output.prettyErrorln("The following filters did not match any test files:", .{}); } @@ -1656,7 +1651,7 @@ pub const TestCommand = struct { const DotIndenter = struct { indent: bool = false, - pub fn format(this: @This(), comptime _: []const u8, _: anytype, writer: anytype) !void { + pub fn format(this: @This(), writer: *std.Io.Writer) std.Io.Writer.Error!void { if (this.indent) { try writer.writeAll(" "); } @@ -1670,23 +1665,23 @@ pub const TestCommand = struct { // Display the random seed if tests were randomized if (random != null) { - Output.prettyError("{}--seed={d}\n", .{ indenter, seed }); + Output.prettyError("{f}--seed={d}\n", .{ indenter, seed }); } if (summary.pass > 0) { Output.prettyError("", .{}); } - Output.prettyError("{}{d:5>} pass\n", .{ indenter, summary.pass }); + Output.prettyError("{f}{d:5>} pass\n", .{ indenter, summary.pass }); if (summary.skip > 0) { - Output.prettyError("{}{d:5>} skip\n", .{ indenter, summary.skip }); + Output.prettyError("{f}{d:5>} skip\n", .{ indenter, summary.skip }); } else if (summary.skipped_because_label > 0) { - Output.prettyError("{}{d:5>} filtered out\n", .{ indenter, summary.skipped_because_label }); + Output.prettyError("{f}{d:5>} filtered out\n", .{ indenter, summary.skipped_because_label }); } if (summary.todo > 0) { - Output.prettyError("{}{d:5>} todo\n", .{ indenter, summary.todo }); + Output.prettyError("{f}{d:5>} todo\n", .{ indenter, summary.todo }); } if (summary.fail > 0) { @@ -1695,9 +1690,9 @@ pub const TestCommand = struct { Output.prettyError("", .{}); } - Output.prettyError("{}{d:5>} fail\n", .{ indenter, summary.fail }); + Output.prettyError("{f}{d:5>} fail\n", .{ indenter, summary.fail }); if (reporter.jest.unhandled_errors_between_tests > 0) { - Output.prettyError("{}{d:5>} error{s}\n", .{ indenter, reporter.jest.unhandled_errors_between_tests, if (reporter.jest.unhandled_errors_between_tests > 1) "s" else "" }); + Output.prettyError("{f}{d:5>} error{s}\n", .{ indenter, reporter.jest.unhandled_errors_between_tests, if (reporter.jest.unhandled_errors_between_tests > 1) "s" else "" }); } var print_expect_calls = reporter.summary().expectations > 0; @@ -1709,7 +1704,7 @@ pub const TestCommand = struct { var first = true; if (print_expect_calls and added == 0 and failed == 0) { print_expect_calls = false; - Output.prettyError("{}{d:5>} snapshots, {d:5>} expect() calls", .{ indenter, reporter.jest.snapshots.total, reporter.summary().expectations }); + Output.prettyError("{f}{d:5>} snapshots, {d:5>} expect() calls", .{ indenter, reporter.jest.snapshots.total, reporter.summary().expectations }); } else { Output.prettyError("snapshots: ", .{}); @@ -1741,12 +1736,12 @@ pub const TestCommand = struct { } if (print_expect_calls) { - Output.prettyError("{}{d:5>} expect() calls\n", .{ indenter, reporter.summary().expectations }); + Output.prettyError("{f}{d:5>} expect() calls\n", .{ indenter, reporter.summary().expectations }); } reporter.printSummary(); } else { - Output.prettyError("error: regex {} matched 0 tests. Searched {d} file{s} (skipping {d} test{s}) ", .{ + Output.prettyError("error: regex {f} matched 0 tests. Searched {d} file{s} (skipping {d} test{s}) ", .{ bun.fmt.quote(ctx.test_options.test_filter_pattern.?), summary.files, if (summary.files == 1) "" else "s", @@ -1832,7 +1827,7 @@ pub const TestCommand = struct { vm_.runWithAPILock(Context, &ctx, Context.begin); } - fn timerNoop(_: *uws.Timer) callconv(.C) void {} + fn timerNoop(_: *uws.Timer) callconv(.c) void {} pub fn run( reporter: *CommandLineReporter, @@ -1890,7 +1885,7 @@ pub const TestCommand = struct { reporter.jest.current_file.set(file_title, file_prefix, repeat_count, repeat_index, reporter); - bun.jsc.Jest.bun_test.debug.group.log("loadEntryPointForTestRunner(\"{}\")", .{std.zig.fmtEscapes(file_path)}); + bun.jsc.Jest.bun_test.debug.group.log("loadEntryPointForTestRunner(\"{f}\")", .{std.zig.fmtString(file_path)}); // need to wake up so autoTick() doesn't wait for 16-100ms after loading the entrypoint vm.wakeup(); @@ -2001,7 +1996,6 @@ const which = @import("../which.zig").which; const bun = @import("bun"); const Environment = bun.Environment; const Global = bun.Global; -const MutableString = bun.MutableString; const Output = bun.Output; const PathString = bun.PathString; const default_allocator = bun.default_allocator; diff --git a/src/cli/update_interactive_command.zig b/src/cli/update_interactive_command.zig index a06308e400..5435184c4e 100644 --- a/src/cli/update_interactive_command.zig +++ b/src/cli/update_interactive_command.zig @@ -11,7 +11,7 @@ pub const TerminalHyperlink = struct { }; } - pub fn format(this: @This(), comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: @This(), writer: *std.Io.Writer) !void { if (this.enabled) { const ESC = "\x1b"; const OSC8 = ESC ++ "]8;;"; @@ -151,7 +151,7 @@ pub const UpdateInteractiveCommand = struct { updates: []const PackageUpdate, ) !void { // Group updates by workspace - var workspace_groups = bun.StringHashMap(std.ArrayList(PackageUpdate)).init(bun.default_allocator); + var workspace_groups = bun.StringHashMap(std.array_list.Managed(PackageUpdate)).init(bun.default_allocator); defer { var it = workspace_groups.iterator(); while (it.next()) |entry| { @@ -164,7 +164,7 @@ pub const UpdateInteractiveCommand = struct { for (updates) |update| { const result = try workspace_groups.getOrPut(update.workspace_path); if (!result.found_existing) { - result.value_ptr.* = std.ArrayList(PackageUpdate).init(bun.default_allocator); + result.value_ptr.* = std.array_list.Managed(PackageUpdate).init(bun.default_allocator); } try result.value_ptr.append(update); } @@ -243,7 +243,7 @@ pub const UpdateInteractiveCommand = struct { ) !void { // Group catalog updates by workspace path - var workspace_catalog_updates = bun.StringHashMap(std.ArrayList(CatalogUpdateRequest)).init(bun.default_allocator); + var workspace_catalog_updates = bun.StringHashMap(std.array_list.Managed(CatalogUpdateRequest)).init(bun.default_allocator); defer { var it = workspace_catalog_updates.iterator(); while (it.next()) |entry| { @@ -260,7 +260,7 @@ pub const UpdateInteractiveCommand = struct { const result = try workspace_catalog_updates.getOrPut(update.workspace_path); if (!result.found_existing) { - result.value_ptr.* = std.ArrayList(CatalogUpdateRequest).init(bun.default_allocator); + result.value_ptr.* = std.array_list.Managed(CatalogUpdateRequest).init(bun.default_allocator); } // Parse catalog_key (format: "package_name" or "package_name:catalog_name") @@ -404,7 +404,7 @@ pub const UpdateInteractiveCommand = struct { // Create package specifier array from selected packages // Group selected packages by workspace - var workspace_updates = bun.StringHashMap(std.ArrayList([]const u8)).init(bun.default_allocator); + var workspace_updates = bun.StringHashMap(std.array_list.Managed([]const u8)).init(bun.default_allocator); defer { var it = workspace_updates.iterator(); while (it.next()) |entry| { @@ -426,7 +426,7 @@ pub const UpdateInteractiveCommand = struct { } // Collect all package updates with full information - var package_updates = std.ArrayList(PackageUpdate).init(bun.default_allocator); + var package_updates = std.array_list.Managed(PackageUpdate).init(bun.default_allocator); defer package_updates.deinit(); // Process selected packages @@ -640,7 +640,7 @@ pub const UpdateInteractiveCommand = struct { packages: []OutdatedPackage, ) ![]OutdatedPackage { // Create a map to track catalog dependencies by name - var catalog_map = bun.StringHashMap(std.ArrayList(OutdatedPackage)).init(allocator); + var catalog_map = bun.StringHashMap(std.array_list.Managed(OutdatedPackage)).init(allocator); defer catalog_map.deinit(); defer { var iter = catalog_map.iterator(); @@ -649,7 +649,7 @@ pub const UpdateInteractiveCommand = struct { } } - var result = std.ArrayList(OutdatedPackage).init(allocator); + var result = std.array_list.Managed(OutdatedPackage).init(allocator); defer result.deinit(); // Group catalog dependencies @@ -657,7 +657,7 @@ pub const UpdateInteractiveCommand = struct { if (pkg.is_catalog) { const entry = try catalog_map.getOrPut(pkg.name); if (!entry.found_existing) { - entry.value_ptr.* = std.ArrayList(OutdatedPackage).init(allocator); + entry.value_ptr.* = std.array_list.Managed(OutdatedPackage).init(allocator); } try entry.value_ptr.append(pkg); } else { @@ -674,7 +674,7 @@ pub const UpdateInteractiveCommand = struct { var first = catalog_packages[0]; // Build combined workspace name - var workspace_names = std.ArrayList(u8).init(allocator); + var workspace_names = std.array_list.Managed(u8).init(allocator); defer workspace_names.deinit(); if (catalog_packages.len > 0) { @@ -726,10 +726,10 @@ pub const UpdateInteractiveCommand = struct { const pkg_resolutions = packages.items(.resolution); const pkg_dependencies = packages.items(.dependencies); - var outdated_packages = std.ArrayList(OutdatedPackage).init(allocator); + var outdated_packages = std.array_list.Managed(OutdatedPackage).init(allocator); defer outdated_packages.deinit(); - var version_buf = std.ArrayList(u8).init(allocator); + var version_buf = std.array_list.Managed(u8).init(allocator); defer version_buf.deinit(); const version_writer = version_buf.writer(); @@ -787,15 +787,15 @@ pub const UpdateInteractiveCommand = struct { } version_buf.clearRetainingCapacity(); - try version_writer.print("{}", .{resolution.value.npm.version.fmt(string_buf)}); + try version_writer.print("{f}", .{resolution.value.npm.version.fmt(string_buf)}); const current_version_buf = try allocator.dupe(u8, version_buf.items); version_buf.clearRetainingCapacity(); - try version_writer.print("{}", .{update_version.version.fmt(manifest.string_buf)}); + try version_writer.print("{f}", .{update_version.version.fmt(manifest.string_buf)}); const update_version_buf = try allocator.dupe(u8, version_buf.items); version_buf.clearRetainingCapacity(); - try version_writer.print("{}", .{latest.version.fmt(manifest.string_buf)}); + try version_writer.print("{f}", .{latest.version.fmt(manifest.string_buf)}); const latest_version_buf = try allocator.dupe(u8, version_buf.items); // Already filtered by version.order check above @@ -1452,14 +1452,14 @@ pub const UpdateInteractiveCommand = struct { if (selected) { if (strings.eqlComptime(checkbox_color, "red")) { - Output.pretty("{}", .{hyperlink}); + Output.pretty("{f}", .{hyperlink}); } else if (strings.eqlComptime(checkbox_color, "yellow")) { - Output.pretty("{}", .{hyperlink}); + Output.pretty("{f}", .{hyperlink}); } else { - Output.pretty("{}", .{hyperlink}); + Output.pretty("{f}", .{hyperlink}); } } else { - Output.pretty("{}", .{hyperlink}); + Output.pretty("{f}", .{hyperlink}); } // Print dev/peer/optional tag if applicable @@ -1522,7 +1522,7 @@ pub const UpdateInteractiveCommand = struct { Output.pretty("{s}", .{truncated_target}); } else { // Use diffFmt for full versions - Output.pretty("{}", .{target_full.diffFmt( + Output.pretty("{f}", .{target_full.diffFmt( current_full, pkg.update_version, pkg.current_version, @@ -1582,7 +1582,7 @@ pub const UpdateInteractiveCommand = struct { Output.pretty("{s}", .{truncated_latest}); } else { // Use diffFmt for full versions - Output.pretty("{}", .{latest_full.diffFmt( + Output.pretty("{f}", .{latest_full.diffFmt( current_full, pkg.latest_version, pkg.current_version, @@ -1643,7 +1643,10 @@ pub const UpdateInteractiveCommand = struct { Output.flush(); // Read input - const byte = std.io.getStdIn().reader().readByte() catch return state.selected; + var reader_buffer: [1]u8 = undefined; + var reader_file = std.fs.File.stdin().readerStreaming(&reader_buffer); + const reader = &reader_file.interface; + const byte = reader.takeByte() catch return state.selected; switch (byte) { '\n', '\r' => return state.selected, @@ -1707,9 +1710,9 @@ pub const UpdateInteractiveCommand = struct { state.toggle_all = false; }, 27 => { // escape sequence - const seq = std.io.getStdIn().reader().readByte() catch continue; + const seq = reader.takeByte() catch continue; if (seq == '[') { - const arrow = std.io.getStdIn().reader().readByte() catch continue; + const arrow = reader.takeByte() catch continue; switch (arrow) { 'A' => { // up arrow if (state.cursor > 0) { @@ -1736,7 +1739,7 @@ pub const UpdateInteractiveCommand = struct { state.selected[state.cursor] = true; }, '5' => { // Page Up - const tilde = std.io.getStdIn().reader().readByte() catch continue; + const tilde = reader.takeByte() catch continue; if (tilde == '~') { // Move up by viewport height if (state.cursor >= state.viewport_height) { @@ -1748,7 +1751,7 @@ pub const UpdateInteractiveCommand = struct { } }, '6' => { // Page Down - const tilde = std.io.getStdIn().reader().readByte() catch continue; + const tilde = reader.takeByte() catch continue; if (tilde == '~') { // Move down by viewport height if (state.cursor + state.viewport_height < state.packages.len) { @@ -1764,7 +1767,7 @@ pub const UpdateInteractiveCommand = struct { var buffer: [32]u8 = undefined; var buf_idx: usize = 0; while (buf_idx < buffer.len) : (buf_idx += 1) { - const c = std.io.getStdIn().reader().readByte() catch break; + const c = reader.takeByte() catch break; if (c == 'M' or c == 'm') { // Parse SGR mouse event: ESC[error: Failed to rename current executable {s}", .{@errorName(err)}); diff --git a/src/cli/why_command.zig b/src/cli/why_command.zig index a88234b44a..17100991d1 100644 --- a/src/cli/why_command.zig +++ b/src/cli/why_command.zig @@ -261,7 +261,7 @@ pub const WhyCommand = struct { defer arena.deinit(); const arena_allocator = arena.allocator(); - var target_versions = std.ArrayList(VersionInfo).init(ctx.allocator); + var target_versions = std.array_list.Managed(VersionInfo).init(ctx.allocator); defer { for (target_versions.items) |item| { ctx.allocator.free(item.version); @@ -269,7 +269,7 @@ pub const WhyCommand = struct { target_versions.deinit(); } - var all_dependents = std.AutoHashMap(PackageID, std.ArrayList(DependentInfo)).init(arena_allocator); + var all_dependents = std.AutoHashMap(PackageID, std.array_list.Managed(DependentInfo)).init(arena_allocator); const glob = GlobPattern.init(package_pattern); @@ -288,12 +288,12 @@ pub const WhyCommand = struct { var dependents_entry = try all_dependents.getOrPut(target_id); if (!dependents_entry.found_existing) { - dependents_entry.value_ptr.* = std.ArrayList(DependentInfo).init(arena_allocator); + dependents_entry.value_ptr.* = std.array_list.Managed(DependentInfo).init(arena_allocator); } - var dep_version_buf = std.ArrayList(u8).init(arena_allocator); + var dep_version_buf = std.array_list.Managed(u8).init(arena_allocator); defer dep_version_buf.deinit(); - try std.fmt.format(dep_version_buf.writer(), "{}", .{packages.items(.resolution)[pkg_idx].fmt(string_bytes, .auto)}); + try dep_version_buf.writer().print("{f}", .{packages.items(.resolution)[pkg_idx].fmt(string_bytes, .auto)}); const dep_pkg_version = try arena_allocator.dupe(u8, dep_version_buf.items); const spec = try arena_allocator.dupe(u8, dependency.version.literal.slice(string_bytes)); @@ -321,9 +321,9 @@ pub const WhyCommand = struct { if (!glob.matchesName(pkg_name, package_pattern)) continue; - var version_buf = std.ArrayList(u8).init(ctx.allocator); + var version_buf = std.array_list.Managed(u8).init(ctx.allocator); defer version_buf.deinit(); - try std.fmt.format(version_buf.writer(), "{}", .{packages.items(.resolution)[pkg_idx].fmt(string_bytes, .auto)}); + try version_buf.writer().print("{f}", .{packages.items(.resolution)[pkg_idx].fmt(string_bytes, .auto)}); const version = try ctx.allocator.dupe(u8, version_buf.items); if (!glob.matchesVersion(version)) continue; @@ -408,10 +408,10 @@ pub const WhyCommand = struct { allocator: std.mem.Allocator, string_bytes: []const u8, top_only: bool, - all_dependents: *const std.AutoHashMap(PackageID, std.ArrayList(DependentInfo)), + all_dependents: *const std.AutoHashMap(PackageID, std.array_list.Managed(DependentInfo)), path_tracker: std.AutoHashMap(PackageID, usize), - fn init(allocator: std.mem.Allocator, string_bytes: []const u8, top_only: bool, all_dependents: *const std.AutoHashMap(PackageID, std.ArrayList(DependentInfo))) TreeContext { + fn init(allocator: std.mem.Allocator, string_bytes: []const u8, top_only: bool, all_dependents: *const std.AutoHashMap(PackageID, std.array_list.Managed(DependentInfo))) TreeContext { return .{ .allocator = allocator, .string_bytes = string_bytes, diff --git a/src/codegen/cppbind.ts b/src/codegen/cppbind.ts index c269256cbe..fdbf44bb82 100644 --- a/src/codegen/cppbind.ts +++ b/src/codegen/cppbind.ts @@ -422,7 +422,7 @@ function generateZigType(type: CppType, parent: CppType | null) { return `${optionalChar}${ptrChar}${constChar}${generateZigType(type.child, type)}`; } if (type.type === "fn") { - return `fn(${type.parameters.map(p => formatZigName(p.name) + ": " + generateZigType(p.type, null)).join(", ")}) callconv(.C) ${generateZigType(type.returnType, null)}`; + return `fn(${type.parameters.map(p => formatZigName(p.name) + ": " + generateZigType(p.type, null)).join(", ")}) callconv(.c) ${generateZigType(type.returnType, null)}`; } if (type.type === "named" && type.name === "void") { if (parent?.type === "pointer") return "anyopaque"; diff --git a/src/codegen/process_windows_translate_c.zig b/src/codegen/process_windows_translate_c.zig index 3dbd401b2d..38e48c7880 100644 --- a/src/codegen/process_windows_translate_c.zig +++ b/src/codegen/process_windows_translate_c.zig @@ -22,13 +22,13 @@ pub fn main() !void { const in = brk: { const in_path = args.next() orelse @panic("missing argument"); - const in = try std.fs.openFileAbsolute(in_path, .{}); + const in = try std.fs.cwd().openFile(in_path, .{}); defer in.close(); - break :brk try in.readToEndAllocOptions(gpa, std.math.maxInt(u32), null, 1, 0); + break :brk try in.readToEndAllocOptions(gpa, std.math.maxInt(u32), null, .fromByteUnits(1), 0); }; defer gpa.free(in); - var out = try std.ArrayList(u8).initCapacity(gpa, in.len); + var out = try std.array_list.Managed(u8).initCapacity(gpa, in.len); defer out.deinit(); const w = out.writer(); diff --git a/src/collections/array_list.zig b/src/collections/array_list.zig index 40769bdc0c..5b35945fc4 100644 --- a/src/collections/array_list.zig +++ b/src/collections/array_list.zig @@ -46,7 +46,7 @@ pub fn ArrayListAlignedDefault(comptime T: type, comptime alignment: ?u29) type pub fn ArrayListAlignedIn( comptime T: type, comptime Allocator: type, - comptime alignment: ?u29, + comptime alignment: ?std.mem.Alignment, ) type { return struct { const Self = @This(); diff --git a/src/collections/baby_list.zig b/src/collections/baby_list.zig index 0a1c0badcc..6a4af45a1c 100644 --- a/src/collections/baby_list.zig +++ b/src/collections/baby_list.zig @@ -190,7 +190,7 @@ pub fn BabyList(comptime Type: type) type { return this.list(); } - pub fn moveToListManaged(this: *Self, allocator: std.mem.Allocator) std.ArrayList(Type) { + pub fn moveToListManaged(this: *Self, allocator: std.mem.Allocator) std.array_list.Managed(Type) { this.assertOwned(); defer this.* = .empty; return this.listManaged(allocator); @@ -533,14 +533,10 @@ pub fn BabyList(comptime Type: type) type { pub fn format( this: Self, - comptime fmt: []const u8, - options: std.fmt.FormatOptions, - writer: anytype, + writer: *std.Io.Writer, ) !void { - _ = .{ fmt, options }; - return std.fmt.format( - writer, - "BabyList({s}){{{any}}}", + return writer.print( + "BabyList({s}){{{f}}}", .{ @typeName(Type), this.list() }, ); } @@ -567,7 +563,7 @@ pub fn BabyList(comptime Type: type) type { }; } - fn listManaged(this: *Self, allocator: std.mem.Allocator) std.ArrayList(Type) { + fn listManaged(this: *Self, allocator: std.mem.Allocator) std.array_list.Managed(Type) { this.#allocator.set(allocator); var list_ = this.list(); return list_.toManaged(allocator); @@ -581,6 +577,8 @@ pub fn BabyList(comptime Type: type) type { bun.assert(this.len <= this.cap); } } + + pub const looksLikeContainerTypeBabyList = Type; }; } diff --git a/src/collections/multi_array_list.zig b/src/collections/multi_array_list.zig index 9fff6495ae..9621dfc7ec 100644 --- a/src/collections/multi_array_list.zig +++ b/src/collections/multi_array_list.zig @@ -371,7 +371,7 @@ pub fn MultiArrayList(comptime T: type) type { const other_bytes = gpa.alignedAlloc( u8, - @alignOf(Elem), + .fromByteUnits(@alignOf(Elem)), capacityInBytes(new_len), ) catch { const self_slice = self.slice(); @@ -464,7 +464,7 @@ pub fn MultiArrayList(comptime T: type) type { assert(new_capacity >= self.len); const new_bytes = try gpa.alignedAlloc( u8, - @alignOf(Elem), + .fromByteUnits(@alignOf(Elem)), capacityInBytes(new_capacity), ); if (self.len == 0) { diff --git a/src/compile_target.zig b/src/compile_target.zig index b0f88742ec..8980cd94ae 100644 --- a/src/compile_target.zig +++ b/src/compile_target.zig @@ -31,7 +31,7 @@ const Libc = enum { }; } - pub fn format(self: @This(), comptime _: []const u8, _: anytype, writer: anytype) !void { + pub fn format(self: @This(), writer: *std.Io.Writer) std.Io.Writer.Error!void { if (self == .musl) { try writer.writeAll("-musl"); } @@ -40,7 +40,7 @@ const Libc = enum { const BaselineFormatter = struct { baseline: bool = false, - pub fn format(self: @This(), comptime _: []const u8, _: anytype, writer: anytype) !void { + pub fn format(self: @This(), writer: *std.Io.Writer) std.Io.Writer.Error!void { if (self.baseline) { try writer.writeAll("-baseline"); } @@ -112,12 +112,11 @@ pub fn toNPMRegistryURLWithURL(this: *const CompileTarget, buf: []u8, registry_u }; } -pub fn format(this: @This(), comptime _: []const u8, _: anytype, writer: anytype) !void { - try std.fmt.format( - writer, +pub fn format(this: @This(), writer: *std.Io.Writer) std.Io.Writer.Error!void { + try writer.print( // bun-darwin-x64-baseline-v1.0.0 // This doesn't match up 100% with npm, but that's okay. - "bun-{s}-{s}{}{}-v{d}.{d}.{d}", + "bun-{s}-{s}{f}{f}-v{d}.{d}.{d}", .{ this.os.npmName(), this.arch.npmName(), @@ -421,7 +420,7 @@ pub fn from(input_: []const u8) CompileTarget { if (unsupported_token) |token| { Output.errGeneric( - \\Unsupported target {} in "bun{s}" + \\Unsupported target {f} in "bun{s}" \\To see the supported targets: \\ https://bun.com/docs/bundler/executables , .{ diff --git a/src/copy_file.zig b/src/copy_file.zig index 0920457995..b6b14ebea5 100644 --- a/src/copy_file.zig +++ b/src/copy_file.zig @@ -72,7 +72,7 @@ pub fn copyFileWithState(in: InputType, out: InputType, copy_file_state: *CopyFi // EXT4 does not support FICLONE. const rc = bun.linux.ioctl_ficlone(out, in); // the ordering is flipped but it is consistent with other system calls. - bun.sys.syslog("ioctl_ficlone({}, {}) = {d}", .{ in, out, rc }); + bun.sys.syslog("ioctl_ficlone({f}, {f}) = {d}", .{ in, out, rc }); switch (bun.sys.getErrno(rc)) { .SUCCESS => return CopyFileReturnType.success, .XDEV => { diff --git a/src/crash_handler.zig b/src/crash_handler.zig index 885b462379..c8f46d1a30 100644 --- a/src/crash_handler.zig +++ b/src/crash_handler.zig @@ -87,7 +87,7 @@ pub const CrashReason = union(enum) { out_of_memory, - pub fn format(reason: CrashReason, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(reason: CrashReason, writer: *std.Io.Writer) !void { switch (reason) { .panic => |message| try writer.print("{s}", .{message}), .@"unreachable" => try writer.writeAll("reached unreachable code"), @@ -127,7 +127,7 @@ pub const Action = union(enum) { dlopen: []const u8, - pub fn format(act: Action, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(act: Action, writer: *std.Io.Writer) !void { switch (act) { .parse => |path| try writer.print("parsing {s}", .{path}), .visit => |path| try writer.print("visiting {s}", .{path}), @@ -232,7 +232,8 @@ pub fn crashHandler( // // Output.errorWriter() is not used here because it may not be configured // if the program crashes immediately at startup. - const writer = std.io.getStdErr().writer(); + var writer_w = std.fs.File.stderr().writerStreaming(&.{}); + const writer = &writer_w.interface; // The format of the panic trace is slightly different in debug // builds. Mainly, we demangle the backtrace immediately instead @@ -315,7 +316,7 @@ pub fn crashHandler( var name: std.os.windows.PWSTR = undefined; const result = bun.windows.GetThreadDescription(bun.windows.GetCurrentThread(), &name); if (std.os.windows.HRESULT_CODE(result) == .SUCCESS and name[0] != 0) { - writer.print("({})", .{bun.fmt.utf16(bun.span(name))}) catch std.posix.abort(); + writer.print("({f})", .{bun.fmt.utf16(bun.span(name))}) catch std.posix.abort(); } else { writer.print("(thread {d})", .{bun.c.GetCurrentThreadId()}) catch std.posix.abort(); } @@ -328,11 +329,11 @@ pub fn crashHandler( if (Output.enable_ansi_colors_stderr) { writer.writeAll(Output.prettyFmt("", true)) catch std.posix.abort(); } - writer.print("{}\n", .{reason}) catch std.posix.abort(); + writer.print("{f}\n", .{reason}) catch std.posix.abort(); } if (current_action) |action| { - writer.print("Crashed while {}\n", .{action}) catch std.posix.abort(); + writer.print("Crashed while {f}\n", .{action}) catch std.posix.abort(); } var addr_buf: [20]usize = undefined; @@ -371,7 +372,7 @@ pub fn crashHandler( dumpStackTrace(trace.*, .{}); - trace_str_buf.writer().print("{}", .{TraceString{ + trace_str_buf.writer().print("{f}", .{TraceString{ .trace = trace, .reason = reason, .action = .view_trace, @@ -436,7 +437,7 @@ pub fn crashHandler( writer.writeAll(" ") catch std.posix.abort(); - trace_str_buf.writer().print("{}", .{TraceString{ + trace_str_buf.writer().print("{f}", .{TraceString{ .trace = trace, .reason = reason, .action = .open_issue, @@ -497,8 +498,9 @@ pub fn crashHandler( // A panic happened while trying to print a previous panic message, // we're still holding the mutex but that's fine as we're going to // call abort() - const stderr = std.io.getStdErr().writer(); - stderr.print("\npanic: {s}\n", .{reason}) catch std.posix.abort(); + var stderr_w = std.fs.File.stderr().writerStreaming(&.{}); + const stderr = &stderr_w.interface; + stderr.print("\npanic: {f}\n", .{reason}) catch std.posix.abort(); stderr.print("panicked during a panic. Aborting.\n", .{}) catch std.posix.abort(); }, 3 => { @@ -545,7 +547,7 @@ pub fn handleRootError(err: anyerror, error_return_trace: ?*std.builtin.StackTra Output.prettyError( \\error: Your computer ran out of file descriptors (SystemFdQuotaExceeded) \\ - \\Current limit: {d} + \\Current limit: {f} \\ \\To fix this, try running: \\ @@ -564,7 +566,7 @@ pub fn handleRootError(err: anyerror, error_return_trace: ?*std.builtin.StackTra \\ \\error: Your computer ran out of file descriptors (SystemFdQuotaExceeded) \\ - \\Current limit: {d} + \\Current limit: {f} \\ \\To fix this, try running: \\ @@ -610,7 +612,7 @@ pub fn handleRootError(err: anyerror, error_return_trace: ?*std.builtin.StackTra \\ \\error: bun ran out of file descriptors (ProcessFdQuotaExceeded) \\ - \\Current limit: {d} + \\Current limit: {f} \\ \\To fix this, try running: \\ @@ -630,7 +632,7 @@ pub fn handleRootError(err: anyerror, error_return_trace: ?*std.builtin.StackTra \\ \\error: bun ran out of file descriptors (ProcessFdQuotaExceeded) \\ - \\Current limit: {d} + \\Current limit: {f} \\ \\To fix this, try running: \\ @@ -825,7 +827,7 @@ const metadata_version_line = std.fmt.comptimePrint( }, ); -fn handleSegfaultPosix(sig: i32, info: *const std.posix.siginfo_t, _: ?*const anyopaque) callconv(.C) noreturn { +fn handleSegfaultPosix(sig: i32, info: *const std.posix.siginfo_t, _: ?*const anyopaque) callconv(.c) noreturn { const addr = switch (bun.Environment.os) { .linux => @intFromPtr(info.fields.sigfault.addr), .mac => @intFromPtr(info.addr), @@ -878,7 +880,7 @@ pub fn resetOnPosix() void { if (bun.Environment.enable_asan) return; var act = std.posix.Sigaction{ .handler = .{ .sigaction = handleSegfaultPosix }, - .mask = std.posix.empty_sigset, + .mask = std.posix.sigemptyset(), .flags = (std.posix.SA.SIGINFO | std.posix.SA.RESTART | std.posix.SA.RESETHAND), }; updatePosixSegfaultHandler(&act) catch {}; @@ -912,14 +914,14 @@ pub fn resetSegfaultHandler() void { var act = std.posix.Sigaction{ .handler = .{ .handler = std.posix.SIG.DFL }, - .mask = std.posix.empty_sigset, + .mask = std.posix.sigemptyset(), .flags = 0, }; // To avoid a double-panic, do nothing if an error happens here. updatePosixSegfaultHandler(&act) catch {}; } -pub fn handleSegfaultWindows(info: *windows.EXCEPTION_POINTERS) callconv(windows.WINAPI) c_long { +pub fn handleSegfaultWindows(info: *windows.EXCEPTION_POINTERS) callconv(.winapi) c_long { crashHandler( switch (info.ExceptionRecord.ExceptionCode) { windows.EXCEPTION_DATATYPE_MISALIGNMENT => .{ .datatype_misalignment = {} }, @@ -976,7 +978,7 @@ pub fn printMetadata(writer: anytype) !void { } else if (bun.Environment.isMac) { try writer.print("macOS v{s}\n", .{platform.version}); } else if (bun.Environment.isWindows) { - try writer.print("Windows v{s}\n", .{std.zig.system.windows.detectRuntimeVersion()}); + try writer.print("Windows v{f}\n", .{std.zig.system.windows.detectRuntimeVersion()}); } if (bun.Environment.isX64) { @@ -984,7 +986,7 @@ pub fn printMetadata(writer: anytype) !void { } if (!cpu_features.isEmpty()) { - try writer.print("CPU: {}\n", .{cpu_features}); + try writer.print("CPU: {f}\n", .{cpu_features}); } try writer.print("Args: ", .{}); @@ -999,7 +1001,7 @@ pub fn printMetadata(writer: anytype) !void { } } } - try writer.print("\n{}", .{bun.analytics.Features.formatter()}); + try writer.print("\n{f}", .{bun.analytics.Features.formatter()}); if (bun.use_mimalloc) { var elapsed_msecs: usize = 0; @@ -1026,15 +1028,15 @@ pub fn printMetadata(writer: anytype) !void { system_msecs, }); - try writer.print("RSS: {:<3.2} | Peak: {:<3.2} | Commit: {:<3.2} | Faults: {d}", .{ - std.fmt.fmtIntSizeDec(current_rss), - std.fmt.fmtIntSizeDec(peak_rss), - std.fmt.fmtIntSizeDec(current_commit), + try writer.print("RSS: {B:<3.2} | Peak: {B:<3.2} | Commit: {B:<3.2} | Faults: {d}", .{ + current_rss, + peak_rss, + current_commit, page_faults, }); if (Bun__reported_memory_size > 0) { - try writer.print(" | Machine: {:<3.2}", .{std.fmt.fmtIntSizeDec(Bun__reported_memory_size)}); + try writer.print(" | Machine: {B:<3.2}", .{Bun__reported_memory_size}); } try writer.writeAll("\n"); @@ -1273,7 +1275,7 @@ const StackLine = struct { try VLQ.encode(known.address).writeTo(writer); } - pub fn format(line: StackLine, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(line: StackLine, writer: *std.Io.Writer) !void { try writer.print("0x{x}{s}{s}", .{ if (bun.Environment.isMac) @as(u64, line.address) + 0x100000000 else line.address, if (line.object != null) " @ " else "", @@ -1302,7 +1304,7 @@ const TraceString = struct { view_trace, }; - pub fn format(self: TraceString, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: TraceString, writer: *std.Io.Writer) std.Io.Writer.Error!void { encodeTraceString(self, writer) catch return; } }; @@ -1487,7 +1489,7 @@ fn report(url: []const u8) void { null, null, 1, // true - 0, + .{}, null, null, &startup_info, @@ -1545,7 +1547,7 @@ fn crash() noreturn { }, else => { // Install default handler so that the tkill below will terminate. - const sigact = std.posix.Sigaction{ .handler = .{ .handler = std.posix.SIG.DFL }, .mask = std.posix.empty_sigset, .flags = 0 }; + const sigact = std.posix.Sigaction{ .handler = .{ .handler = std.posix.SIG.DFL }, .mask = std.posix.sigemptyset(), .flags = 0 }; inline for (.{ std.posix.SIG.SEGV, std.posix.SIG.ILL, @@ -1609,14 +1611,14 @@ noinline fn coldHandleErrorReturnTrace(err_int_workaround_for_zig_ccall_bug: std \\To send a redacted crash report to Bun's team, \\please file a GitHub issue using the link below: \\ - \\ {} + \\ {f} \\ , .{ts}, ); } else { Output.prettyErrorln( - "trace: error.{s}: {}", + "trace: error.{s}: {f}", .{ @errorName(err), ts }, ); } @@ -1648,10 +1650,11 @@ extern "c" fn WTF__DumpStackTrace(ptr: [*]usize, count: usize) void; /// cases where such logic fails to run. pub fn dumpStackTrace(trace: std.builtin.StackTrace, limits: WriteStackTraceLimits) void { Output.flush(); - const stderr = std.io.getStdErr().writer(); + var stderr_w = std.fs.File.stderr().writerStreaming(&.{}); + const stderr = &stderr_w.interface; if (!bun.Environment.show_crash_trace) { // debug symbols aren't available, lets print a tracestring - stderr.print("View Debug Trace: {}\n", .{TraceString{ + stderr.print("View Debug Trace: {f}\n", .{TraceString{ .action = .view_trace, .reason = .{ .zig_error = error.DumpStackTrace }, .trace = &trace, @@ -1666,7 +1669,7 @@ pub fn dumpStackTrace(trace: std.builtin.StackTrace, limits: WriteStackTraceLimi stderr.print("Unable to dump stack trace: Unable to open debug info: {s}\nFallback trace:\n", .{@errorName(err)}) catch return; break :attempt_dump; }; - writeStackTrace(trace, stderr, debug_info, std.io.tty.detectConfig(std.io.getStdErr()), limits) catch |err| { + writeStackTrace(trace, stderr, debug_info, std.io.tty.detectConfig(std.fs.File.stderr()), limits) catch |err| { stderr.print("Unable to dump stack trace: {s}\nFallback trace:\n", .{@errorName(err)}) catch return; break :attempt_dump; }; @@ -1686,7 +1689,7 @@ pub fn dumpStackTrace(trace: std.builtin.StackTrace, limits: WriteStackTraceLimi stderr.print("Unable to dump stack trace: Unable to open debug info: {s}\n", .{@errorName(err)}) catch return; return; }; - writeStackTrace(trace, stderr, debug_info, std.io.tty.detectConfig(std.io.getStdErr()), limits) catch |err| { + writeStackTrace(trace, stderr, debug_info, std.io.tty.detectConfig(std.fs.File.stderr()), limits) catch |err| { stderr.print("Unable to dump stack trace: {s}", .{@errorName(err)}) catch return; return; }; @@ -1713,7 +1716,7 @@ pub fn dumpStackTrace(trace: std.builtin.StackTrace, limits: WriteStackTraceLimi } fn spawnSymbolizer(program: [:0]const u8, alloc: std.mem.Allocator, trace: *const std.builtin.StackTrace) !void { - var argv = std.ArrayList([]const u8).init(alloc); + var argv = std.array_list.Managed([]const u8).init(alloc); try argv.append(program); try argv.append("--exe"); try argv.append( @@ -1744,9 +1747,10 @@ fn spawnSymbolizer(program: [:0]const u8, alloc: std.mem.Allocator, trace: *cons child.expand_arg0 = .expand; child.progress_node = std.Progress.Node.none; - const stderr = std.io.getStdErr().writer(); + var stderr_writer = std.fs.File.stderr().writerStreaming(&.{}); + const stderr = &stderr_writer.interface; const result = child.spawnAndWait() catch |err| { - stderr.print("Failed to invoke command: {s}\n", .{bun.fmt.fmtSlice(argv.items, " ")}) catch {}; + stderr.print("Failed to invoke command: {f}\n", .{bun.fmt.fmtSlice(argv.items, " ")}) catch {}; if (bun.Environment.isWindows) { stderr.print("(You can compile pdb-addr2line from https://github.com/oven-sh/bun.report, cd pdb-addr2line && cargo build)\n", .{}) catch {}; } @@ -1754,7 +1758,7 @@ fn spawnSymbolizer(program: [:0]const u8, alloc: std.mem.Allocator, trace: *cons }; if (result != .Exited or result.Exited != 0) { - stderr.print("Failed to invoke command: {s}\n", .{bun.fmt.fmtSlice(argv.items, " ")}) catch {}; + stderr.print("Failed to invoke command: {f}\n", .{bun.fmt.fmtSlice(argv.items, " ")}) catch {}; } } @@ -2083,7 +2087,7 @@ pub fn getSourceAtAddress(debug_info: *debug.SelfInfo, address: usize) !?SourceA /// Clone of `debug.printLineInfo` as it is private. fn printLineInfo( - out_stream: anytype, + out_stream: *std.Io.Writer, source_location: ?SourceLocation, address: usize, symbol_name: []const u8, @@ -2128,7 +2132,7 @@ fn printLineInfo( if (sl.column > 0 and tty_config == .no_color) { // The caret already takes one char const space_needed = @as(usize, @intCast(sl.column - 1)); - try out_stream.writeByteNTimes(' ', space_needed); + try out_stream.splatByteAll(' ', space_needed); try out_stream.writeAll("^\n"); } } else |err| switch (err) { @@ -2248,11 +2252,11 @@ fn printLineFromFileAnyOs(out_stream: anytype, tty_config: std.io.tty.Config, so try out_stream.writeByte('\n'); } -export fn CrashHandler__setInsideNativePlugin(name: ?[*:0]const u8) callconv(.C) void { +export fn CrashHandler__setInsideNativePlugin(name: ?[*:0]const u8) callconv(.c) void { inside_native_plugin = name; } -export fn CrashHandler__unsupportedUVFunction(name: ?[*:0]const u8) callconv(.C) void { +export fn CrashHandler__unsupportedUVFunction(name: ?[*:0]const u8) callconv(.c) void { bun.analytics.Features.unsupported_uv_function += 1; unsupported_uv_function = name; if (bun.feature_flag.BUN_INTERNAL_SUPPRESS_CRASH_ON_UV_STUB.get()) { diff --git a/src/create/SourceFileProjectGenerator.zig b/src/create/SourceFileProjectGenerator.zig index 68c5af8636..0507612794 100644 --- a/src/create/SourceFileProjectGenerator.zig +++ b/src/create/SourceFileProjectGenerator.zig @@ -3,7 +3,7 @@ const SourceFileProjectGenerator = @This(); // Generate project files based on the entry point and dependencies pub fn generate(_: Command.Context, _: Example.Tag, entry_point: string, result: *BundleV2.DependenciesScanner.Result) !void { const react_component_export = findReactComponentExport(result.bundle_v2) orelse { - Output.errGeneric("No component export found in {s}", .{bun.fmt.quote(entry_point)}); + Output.errGeneric("No component export found in {f}", .{bun.fmt.quote(entry_point)}); Output.flush(); const writer = Output.errorWriterBuffered(); try writer.writeAll( @@ -125,7 +125,7 @@ fn countReplaceAllOccurrences(input: []const u8, needle: []const u8, replacement // Replace all occurrences of needle with replacement fn replaceAllOccurrencesOfString(allocator: std.mem.Allocator, input: []const u8, needle: []const u8, replacement: []const u8) ![]u8 { - var result = try std.ArrayList(u8).initCapacity(allocator, countReplaceAllOccurrences(input, needle, replacement)); + var result = try std.array_list.Managed(u8).initCapacity(allocator, countReplaceAllOccurrences(input, needle, replacement)); var remaining = input; while (remaining.len > 0) { if (std.mem.indexOf(u8, remaining, needle)) |index| { @@ -222,7 +222,7 @@ pub fn generateFiles(allocator: std.mem.Allocator, entry_point: string, dependen if (dependencies.len > 0) { // Install dependencies - var argv = std.ArrayList([]const u8).init(default_allocator); + var argv = std.array_list.Managed([]const u8).init(default_allocator); try argv.append("bun"); try argv.append("--only-missing"); try argv.append("install"); @@ -284,7 +284,7 @@ pub fn generateFiles(allocator: std.mem.Allocator, entry_point: string, dependen .ReactShadcnSpa => |*shadcn| { if (shadcn.components.keys().len > 0) { // Add shadcn components - var shadcn_argv = try std.ArrayList([]const u8).initCapacity(default_allocator, 10); + var shadcn_argv = try std.array_list.Managed([]const u8).initCapacity(default_allocator, 10); try shadcn_argv.append("bun"); try shadcn_argv.append("x"); try shadcn_argv.append("shadcn@canary"); diff --git a/src/css/css_internals.zig b/src/css/css_internals.zig index 700756177b..ea10fe9a64 100644 --- a/src/css/css_internals.zig +++ b/src/css/css_internals.zig @@ -147,7 +147,7 @@ pub fn testingImpl(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame, c if (log.hasErrors()) { return log.toJS(globalThis, bun.default_allocator, "parsing failed:"); } - return globalThis.throw("parsing failed: {}", .{err.kind}); + return globalThis.throw("parsing failed: {f}", .{err.kind}); }, } } @@ -327,7 +327,7 @@ pub fn attrTest(globalThis: *jsc.JSGlobalObject, callframe: *jsc.CallFrame) bun. if (log.hasAny()) { return log.toJS(globalThis, bun.default_allocator, "parsing failed:"); } - return globalThis.throw("parsing failed: {}", .{err.kind}); + return globalThis.throw("parsing failed: {f}", .{err.kind}); }, } } diff --git a/src/css/css_parser.zig b/src/css/css_parser.zig index 3ec785d33b..66a55bc166 100644 --- a/src/css/css_parser.zig +++ b/src/css/css_parser.zig @@ -3138,7 +3138,7 @@ pub fn StyleSheet(comptime AtRule: type) type { ) PrintResult(ToCssResultInternal) { const W = @TypeOf(writer); - var printer = Printer(@TypeOf(writer)).new(allocator, std.ArrayList(u8).init(allocator), writer, options, import_info, local_names, symbols); + var printer = Printer(@TypeOf(writer)).new(allocator, std.array_list.Managed(u8).init(allocator), writer, options, import_info, local_names, symbols); const result = this.toCssWithWriterImpl(allocator, W, &printer, options) catch { bun.assert(printer.error_kind != null); return .{ @@ -3208,8 +3208,8 @@ pub fn StyleSheet(comptime AtRule: type) type { ) PrintResult(ToCssResult) { // TODO: this is not necessary // Make sure we always have capacity > 0: https://github.com/napi-rs/napi-rs/issues/1124. - var dest = ArrayList(u8).initCapacity(allocator, 1) catch unreachable; - const writer = dest.writer(allocator); + var dest = std.Io.Writer.Allocating.initCapacity(allocator, 1) catch unreachable; + const writer = &dest.writer; const result = switch (toCssWithWriter( this, allocator, @@ -3224,7 +3224,7 @@ pub fn StyleSheet(comptime AtRule: type) type { }; return .{ .result = ToCssResult{ - .code = dest.items, + .code = dest.written(), .dependencies = result.dependencies, .exports = result.exports, .references = result.references, @@ -3490,11 +3490,11 @@ pub const StyleAttribute = struct { // ); var symbols = bun.ast.Symbol.Map{}; - var dest = ArrayList(u8){}; - const writer = dest.writer(allocator); + var dest = std.Io.Writer.Allocating.init(allocator); + const writer = &dest.writer; var printer = Printer(@TypeOf(writer)).new( allocator, - std.ArrayList(u8).init(allocator), + std.array_list.Managed(u8).init(allocator), writer, options, import_info, @@ -3507,7 +3507,7 @@ pub const StyleAttribute = struct { return ToCssResult{ .dependencies = printer.dependencies, - .code = dest.items, + .code = dest.written(), .exports = null, .references = null, }; @@ -3705,7 +3705,7 @@ pub const ParserOptions = struct { warning.location.line, warning.location.column, this.allocator, - "{}", + "{f}", .{warning.kind}, ) catch unreachable; } @@ -4367,7 +4367,7 @@ pub const Parser = struct { .result => |t| .{ .err = start.sourceLocation().newUnexpectedTokenError(t.*) }, .err => |e| brk: { if (e.kind == .basic and e.kind.basic == .end_of_input) break :brk .success; - bun.unreachablePanic("Unexpected error encountered: {}", .{e.kind}); + bun.unreachablePanic("Unexpected error encountered: {f}", .{e.kind}); }, }; this.reset(&start); @@ -5022,7 +5022,7 @@ const Tokenizer = struct { break :brk .{ .delim = '~' }; }, else => brk: { - if (!std.ascii.isASCII(b)) { + if (!std.ascii.isAscii(b)) { break :brk this.consumeIdentLike(); } this.advance(1); @@ -5803,10 +5803,10 @@ const Tokenizer = struct { '-' => this.hasAtLeast(1) and switch (this.byteAt(1)) { 'a'...'z', 'A'...'Z', '-', '_', 0 => true, '\\' => !this.hasNewlineAt(1), - else => |b| !std.ascii.isASCII(b), + else => |b| !std.ascii.isAscii(b), }, '\\' => !this.hasNewlineAt(1), - else => |b| !std.ascii.isASCII(b), + else => |b| !std.ascii.isAscii(b), }; } @@ -5837,7 +5837,7 @@ const Tokenizer = struct { // rejected. for (0..n) |i| { const b = this.byteAt(i); - std.debug.assert(std.ascii.isASCII(b) or (b & 0xF0 != 0xF0 and b & 0xC0 != 0x80)); + std.debug.assert(std.ascii.isAscii(b) or (b & 0xF0 != 0xF0 and b & 0xC0 != 0x80)); std.debug.assert(b != '\r' and b != '\n' and b != '\x0C'); } } @@ -6129,9 +6129,7 @@ pub const Token = union(TokenKind) { pub fn format( this: *const Token, - comptime _: []const u8, - _: std.fmt.FormatOptions, - writer: anytype, + writer: *std.Io.Writer, ) !void { return switch (this.*) { .ident => |value| try serializer.serializeIdentifier(value, writer), @@ -6446,12 +6444,12 @@ const Dimension = struct { const CopyOnWriteStr = union(enum) { borrowed: []const u8, - owned: std.ArrayList(u8), + owned: std.array_list.Managed(u8), pub fn append(this: *@This(), allocator: Allocator, slice: []const u8) void { switch (this.*) { .borrowed => { - var list = bun.handleOom(std.ArrayList(u8).initCapacity(allocator, this.borrowed.len + slice.len)); + var list = bun.handleOom(std.array_list.Managed(u8).initCapacity(allocator, this.borrowed.len + slice.len)); list.appendSliceAssumeCapacity(this.borrowed); list.appendSliceAssumeCapacity(slice); this.* = .{ .owned = list }; @@ -6749,7 +6747,7 @@ pub const serializer = struct { '0'...'9', 'A'...'Z', 'a'...'z', '_', '-' => continue, // the unicode replacement character 0 => bun.strings.encodeUTF8Comptime(0xFFD), - else => if (!std.ascii.isASCII(b)) continue else null, + else => if (!std.ascii.isAscii(b)) continue else null, }; try writer.writeAll(value[chunk_start..i]); @@ -7000,18 +6998,18 @@ pub const to_css = struct { local_names: ?*const LocalsResultsMap, symbols: *const bun.ast.Symbol.Map, ) PrintErr![]const u8 { - var s = ArrayList(u8){}; - errdefer s.deinit(allocator); - const writer = s.writer(allocator); + var s = std.Io.Writer.Allocating.init(allocator); + errdefer s.deinit(); + const writer = &s.writer; const W = @TypeOf(writer); // PERF: think about how cheap this is to create - var printer = Printer(W).new(allocator, std.ArrayList(u8).init(allocator), writer, options, import_info, local_names, symbols); + var printer = Printer(W).new(allocator, std.array_list.Managed(u8).init(allocator), writer, options, import_info, local_names, symbols); defer printer.deinit(); switch (T) { CSSString => try CSSStringFns.toCss(this, W, &printer), else => try this.toCss(W, &printer), } - return s.items; + return s.written(); } pub fn fromList(comptime T: type, this: []const T, comptime W: type, dest: *Printer(W)) PrintErr!void { diff --git a/src/css/declaration.zig b/src/css/declaration.zig index 86a7d86b25..9f92cd3f24 100644 --- a/src/css/declaration.zig +++ b/src/css/declaration.zig @@ -42,17 +42,15 @@ pub const DeclarationBlock = struct { const DebugFmt = struct { self: *const DeclarationBlock, - pub fn format(this: @This(), comptime fmt: []const u8, options: std.fmt.FormatOptions, writer: anytype) !void { - _ = fmt; // autofix - _ = options; // autofix - var arraylist = ArrayList(u8){}; - const w = arraylist.writer(bun.default_allocator); - defer arraylist.deinit(bun.default_allocator); + pub fn format(this: @This(), writer: *std.Io.Writer) !void { + var arraylist = std.Io.Writer.Allocating.init(bun.default_allocator); + const w = &arraylist.writer; + defer arraylist.deinit(); var symbols = bun.ast.Symbol.Map{}; - var printer = css.Printer(@TypeOf(w)).new(bun.default_allocator, std.ArrayList(u8).init(bun.default_allocator), w, css.PrinterOptions.default(), null, null, &symbols); + var printer = css.Printer(@TypeOf(w)).new(bun.default_allocator, std.array_list.Managed(u8).init(bun.default_allocator), w, css.PrinterOptions.default(), null, null, &symbols); defer printer.deinit(); this.self.toCss(@TypeOf(w), &printer) catch |e| return try writer.print("\n", .{@errorName(e)}); - try writer.writeAll(arraylist.items); + try writer.writeAll(arraylist.written()); } }; diff --git a/src/css/error.zig b/src/css/error.zig index cdc54adda4..ab3c2dce7a 100644 --- a/src/css/error.zig +++ b/src/css/error.zig @@ -21,21 +21,18 @@ pub fn Err(comptime T: type) type { /// The location where the error occurred. loc: ?ErrorLocation, - pub fn fmt( + pub fn format( this: @This(), - comptime _: []const u8, - _: std.fmt.FormatOptions, - writer: anytype, + writer: *std.Io.Writer, ) !void { - if (@hasDecl(T, "fmt")) { - try writer.print("{}", .{this.kind}); - return; + if (@hasDecl(T, "format")) { + return this.kind.format(writer); } - @compileError("fmt not implemented for " ++ @typeName(T)); + @compileError("format not implemented for " ++ @typeName(T)); } pub fn toErrorInstance(this: *const @This(), globalThis: *bun.jsc.JSGlobalObject) !bun.jsc.JSValue { - var str = try bun.String.createFormat("{}", .{this.kind}); + var str = try bun.String.createFormat("{f}", .{this.kind}); defer str.deref(); return str.toErrorInstance(globalThis); } @@ -71,7 +68,7 @@ pub fn Err(comptime T: type) type { .kind = .err, .data = .{ .location = if (this.loc) |*loc| try loc.toLocation(source, allocator) else null, - .text = try std.fmt.allocPrint(allocator, "{}", .{this.kind}), + .text = try std.fmt.allocPrint(allocator, "{f}", .{this.kind}), }, }); @@ -107,9 +104,9 @@ pub fn ParserErrorKind(comptime T: type) type { /// A parse error reported by downstream consumer code. custom: T, - pub fn format(this: @This(), comptime formatter: []const u8, options: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: @This(), writer: *std.Io.Writer) !void { return switch (this) { - inline else => |kind| try kind.format(formatter, options, writer), + inline else => |kind| try kind.format(writer), }; } }; @@ -128,12 +125,10 @@ pub const BasicParseErrorKind = union(enum) { /// A qualified rule was encountered that was invalid. qualified_rule_invalid, - pub fn format(this: BasicParseErrorKind, comptime fmt: []const u8, opts: std.fmt.FormatOptions, writer: anytype) !void { - _ = fmt; // autofix - _ = opts; // autofix + pub fn format(this: BasicParseErrorKind, writer: *std.Io.Writer) !void { return switch (this) { .unexpected_token => |token| { - try writer.print("unexpected token: {}", .{token}); + try writer.print("unexpected token: {f}", .{token}); }, .end_of_input => { try writer.print("unexpected end of input", .{}); @@ -169,7 +164,7 @@ pub const ErrorLocation = struct { }; } - pub fn format(this: *const @This(), comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: *const @This(), writer: *std.Io.Writer) !void { try writer.print("{s}:{d}:{d}", .{ this.filename, this.line, this.column }); } @@ -201,7 +196,7 @@ pub const PrinterErrorKind = union(enum) { invalid_css_modules_pattern_in_grid, no_import_records, - pub fn format(this: @This(), comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: @This(), writer: *std.Io.Writer) !void { return switch (this) { .ambiguous_url_in_custom_property => |data| writer.print("Ambiguous relative URL '{s}' in custom property declaration", .{data.url}), .fmt_error => writer.writeAll("Formatting error occurred"), @@ -252,7 +247,7 @@ pub const ParserError = union(enum) { received: []const u8, }, - pub fn format(this: @This(), comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: @This(), writer: *std.Io.Writer) !void { return switch (this) { .at_rule_body_invalid => writer.writeAll("Invalid at-rule body"), .at_rule_prelude_invalid => writer.writeAll("Invalid at-rule prelude"), @@ -265,10 +260,10 @@ pub const ParserError = union(enum) { .invalid_page_selector => writer.writeAll("Invalid @page selector"), .invalid_value => writer.writeAll("Invalid value"), .qualified_rule_invalid => writer.writeAll("Invalid qualified rule"), - .selector_error => |err| writer.print("Invalid selector. {s}", .{err}), + .selector_error => |err| writer.print("Invalid selector. {f}", .{err}), .unexpected_import_rule => writer.writeAll("@import rules must come before any other rules except @charset and @layer"), .unexpected_namespace_rule => writer.writeAll("@namespace rules must come before any other rules except @charset, @import, and @layer"), - .unexpected_token => |token| writer.print("Unexpected token: {}", .{token}), + .unexpected_token => |token| writer.print("Unexpected token: {f}", .{token}), .maximum_nesting_depth => writer.writeAll("Maximum CSS nesting depth exceeded"), .unexpected_value => |v| writer.print("Expected {s}, received {s}", .{ v.expected, v.received }), }; @@ -345,7 +340,7 @@ pub const SelectorError = union(enum) { unexpected_selector_after_pseudo_element: css.Token, ambiguous_css_module_class: []const u8, - pub fn format(this: @This(), comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: @This(), writer: *std.Io.Writer) !void { return switch (this) { .dangling_combinator => try writer.writeAll("Found a dangling combinator with no selector"), .empty_selector => try writer.writeAll("Empty selector is not allowed"), @@ -360,15 +355,15 @@ pub const SelectorError = union(enum) { .unexpected_ident => |str| try writer.print("Unexpected identifier '{s}'", .{str}), .unsupported_pseudo_class_or_element => |str| try writer.print("Unsupported pseudo-class or pseudo-element '{s}'", .{str}), - .bad_value_in_attr => |tok| try writer.print("Invalid value in attribute selector: {}", .{tok}), - .class_needs_ident => |tok| try writer.print("Expected identifier after '.' in class selector, found: {}", .{tok}), - .expected_bar_in_attr => |tok| try writer.print("Expected '|' in attribute selector, found: {}", .{tok}), - .explicit_namespace_unexpected_token => |tok| try writer.print("Unexpected token in namespace: {}", .{tok}), - .invalid_qual_name_in_attr => |tok| try writer.print("Invalid qualified name in attribute selector: {}", .{tok}), - .no_qualified_name_in_attribute_selector => |tok| try writer.print("Missing qualified name in attribute selector: {}", .{tok}), - .pseudo_element_expected_ident => |tok| try writer.print("Expected identifier in pseudo-element, found: {}", .{tok}), - .unexpected_token_in_attribute_selector => |tok| try writer.print("Unexpected token in attribute selector: {}", .{tok}), - .unexpected_selector_after_pseudo_element => |tok| try writer.print("Unexpected selector after pseudo-element: {}", .{tok}), + .bad_value_in_attr => |tok| try writer.print("Invalid value in attribute selector: {f}", .{tok}), + .class_needs_ident => |tok| try writer.print("Expected identifier after '.' in class selector, found: {f}", .{tok}), + .expected_bar_in_attr => |tok| try writer.print("Expected '|' in attribute selector, found: {f}", .{tok}), + .explicit_namespace_unexpected_token => |tok| try writer.print("Unexpected token in namespace: {f}", .{tok}), + .invalid_qual_name_in_attr => |tok| try writer.print("Invalid qualified name in attribute selector: {f}", .{tok}), + .no_qualified_name_in_attribute_selector => |tok| try writer.print("Missing qualified name in attribute selector: {f}", .{tok}), + .pseudo_element_expected_ident => |tok| try writer.print("Expected identifier in pseudo-element, found: {f}", .{tok}), + .unexpected_token_in_attribute_selector => |tok| try writer.print("Unexpected token in attribute selector: {f}", .{tok}), + .unexpected_selector_after_pseudo_element => |tok| try writer.print("Unexpected selector after pseudo-element: {f}", .{tok}), .ambiguous_css_module_class => |name| try writer.print("CSS module class: '{s}' is currently not supported.", .{name}), }; } @@ -403,7 +398,7 @@ pub const MinifyErrorKind = union(enum) { custom_media_loc: Location, }, - pub fn format(this: *const @This(), comptime _: []const u8, _: anytype, writer: anytype) !void { + pub fn format(this: *const @This(), writer: *std.Io.Writer) std.Io.Writer.Error!void { return switch (this.*) { .circular_custom_media => |name| try writer.print("Circular @custom-media rule: \"{s}\"", .{name.name}), .custom_media_not_defined => |name| try writer.print("Custom media rule \"{s}\" not defined", .{name.name}), diff --git a/src/css/printer.zig b/src/css/printer.zig index f79346eca3..e7d79440aa 100644 --- a/src/css/printer.zig +++ b/src/css/printer.zig @@ -95,6 +95,7 @@ pub const ImportInfo = struct { /// `Printer` also includes helper functions that assist with writing output /// that respects options such as `minify`, and `css_modules`. pub fn Printer(comptime Writer: type) type { + comptime if (Writer != *std.Io.Writer and Writer != *bun.js_printer.BufferWriter) @compileError("Writer must be a *std.Io.Writer or *bun.js_printer.BufferWriter; got " ++ @typeName(Writer)); return struct { // #[cfg(feature = "sourcemap")] sources: ?*const ArrayList([]const u8), @@ -117,9 +118,9 @@ pub fn Printer(comptime Writer: type) type { /// A mapping of pseudo classes to replace with class names that can be applied /// from JavaScript. Useful for polyfills, for example. pseudo_classes: ?PseudoClasses = null, - indentation_buf: std.ArrayList(u8), + indentation_buf: std.array_list.Managed(u8), ctx: ?*const css.StyleContext = null, - scratchbuf: std.ArrayList(u8), + scratchbuf: std.array_list.Managed(u8), error_kind: ?css.PrinterError = null, import_info: ?ImportInfo = null, public_path: []const u8, @@ -159,9 +160,15 @@ pub fn Printer(comptime Writer: type) type { inline fn getWrittenAmt(writer: Writer) usize { return switch (Writer) { - ArrayList(u8).Writer => writer.context.self.items.len, *bun.js_printer.BufferWriter => writer.written.len, - else => @compileError("Dunno what to do with this type yo: " ++ @typeName(Writer)), + *std.Io.Writer => { + if (writer.vtable == std.Io.Writer.Allocating.init(undefined).writer.vtable) { + return @as(*std.Io.Writer.Allocating, @fieldParentPtr("writer", writer)).written().len; + } else { + @panic("css: got bad writer type"); + } + }, + else => @compileError("css: got bad writer type: " ++ @typeName(Writer)), }; } @@ -236,7 +243,7 @@ pub fn Printer(comptime Writer: type) type { /// If `import_records` is null, then the printer will error when it encounters code that relies on import records (urls()) pub fn new( allocator: Allocator, - scratchbuf: std.ArrayList(u8), + scratchbuf: std.array_list.Managed(u8), dest: Writer, options: PrinterOptions, import_info: ?ImportInfo, @@ -569,7 +576,7 @@ pub fn Printer(comptime Writer: type) type { bun.debugAssert(!this.minify); if (this.indent_amt > 0) { // try this.writeStr(this.getIndent(this.ident)); - this.dest.writeByteNTimes(' ', this.indent_amt) catch return this.addFmtError(); + this.dest.splatByteAll(' ', this.indent_amt) catch return this.addFmtError(); } } }; diff --git a/src/css/properties/transform.zig b/src/css/properties/transform.zig index 94776e6d8d..146a69e6bb 100644 --- a/src/css/properties/transform.zig +++ b/src/css/properties/transform.zig @@ -45,11 +45,11 @@ pub const TransformList = struct { // TODO: Re-enable with a better solution // See: https://github.com/parcel-bundler/lightningcss/issues/288 if (dest.minify) { - var base = ArrayList(u8){}; - const base_writer = base.writer(dest.allocator); + var base = std.Io.Writer.Allocating.init(dest.allocator); + const base_writer = &base.writer; const WW = @TypeOf(base_writer); - var scratchbuf = std.ArrayList(u8).init(dest.allocator); + var scratchbuf = std.array_list.Managed(u8).init(dest.allocator); defer scratchbuf.deinit(); var p = Printer(WW).new( dest.allocator, @@ -64,7 +64,7 @@ pub const TransformList = struct { try this.toCssBase(WW, &p); - return dest.writeStr(base.items); + return dest.writeStr(base.written()); } return this.toCssBase(W, dest); diff --git a/src/css/rules/layer.zig b/src/css/rules/layer.zig index b8b9024d41..be089ed5af 100644 --- a/src/css/rules/layer.zig +++ b/src/css/rules/layer.zig @@ -126,7 +126,7 @@ pub const LayerName = struct { } } - pub fn format(this: *const LayerName, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: *const LayerName, writer: *std.Io.Writer) !void { var first = true; for (this.v.slice()) |name| { if (first) { diff --git a/src/css/rules/rules.zig b/src/css/rules/rules.zig index 8860619a59..64f26e8d0e 100644 --- a/src/css/rules/rules.zig +++ b/src/css/rules/rules.zig @@ -231,7 +231,7 @@ pub fn CssRuleList(comptime AtRule: type) type { const Selector = css.selector.Selector; const SelectorList = css.selector.SelectorList; const Component = css.selector.Component; - debug("Input style:\n Selectors: {}\n Decls: {}\n", .{ sty.selectors.debug(), sty.declarations.debug() }); + debug("Input style:\n Selectors: {f}\n Decls: {f}\n", .{ sty.selectors.debug(), sty.declarations.debug() }); if (parent_is_unused or try sty.minify(context, parent_is_unused)) { continue; } @@ -400,7 +400,7 @@ pub fn CssRuleList(comptime AtRule: type) type { if (logical.items.len > 0) { if (bun.Environment.isDebug and logical.items[0] == .style) { - debug("Adding logical: {}\n", .{logical.items[0].style.selectors.debug()}); + debug("Adding logical: {f}\n", .{logical.items[0].style.selectors.debug()}); } var log = CssRuleList(AtRule){ .v = logical }; try log.minify(context, parent_is_unused); diff --git a/src/css/selectors/parser.zig b/src/css/selectors/parser.zig index 9a73bc0858..fc6c6db011 100644 --- a/src/css/selectors/parser.zig +++ b/src/css/selectors/parser.zig @@ -906,14 +906,14 @@ pub const PseudoClass = union(enum) { } pub fn toCss(this: *const PseudoClass, comptime W: type, dest: *Printer(W)) PrintErr!void { - var s = ArrayList(u8){}; + var s = std.Io.Writer.Allocating.init(dest.allocator); // PERF(alloc): I don't like making these little allocations - const writer = s.writer(dest.allocator); + const writer = &s.writer; const W2 = @TypeOf(writer); - const scratchbuf = std.ArrayList(u8).init(dest.allocator); + const scratchbuf = std.array_list.Managed(u8).init(dest.allocator); var printer = Printer(W2).new(dest.allocator, scratchbuf, writer, css.PrinterOptions.default(), dest.import_info, dest.local_names, dest.symbols); try serialize.serializePseudoClass(this, W2, &printer, null); - return dest.writeStr(s.items); + return dest.writeStr(s.written()); } pub fn eql(lhs: *const PseudoClass, rhs: *const PseudoClass) bool { @@ -1384,17 +1384,15 @@ pub fn GenericSelectorList(comptime Impl: type) type { const DebugFmt = struct { this: *const This, - pub fn format(this: @This(), comptime fmt: []const u8, options: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: @This(), writer: *std.Io.Writer) std.Io.Writer.Error!void { if (comptime !bun.Environment.isDebug) return; - _ = fmt; // autofix - _ = options; // autofix try writer.print("SelectorList[\n", .{}); const last = this.this.v.len() -| 1; for (this.this.v.slice(), 0..) |*sel, i| { if (i != last) { - try writer.print(" {}\n", .{sel.debug()}); + try writer.print(" {f}\n", .{sel.debug()}); } else { - try writer.print(" {},\n", .{sel.debug()}); + try writer.print(" {f},\n", .{sel.debug()}); } } try writer.print("]\n", .{}); @@ -1623,23 +1621,21 @@ pub fn GenericSelector(comptime Impl: type) type { const DebugFmt = struct { this: *const This, - pub fn format(this: @This(), comptime fmt: []const u8, options: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: @This(), writer: *std.Io.Writer) !void { if (comptime !bun.Environment.isDebug) return; - _ = fmt; // autofix - _ = options; // autofix try writer.print("Selector(", .{}); - var arraylist = ArrayList(u8){}; - const w = arraylist.writer(bun.default_allocator); - defer arraylist.deinit(bun.default_allocator); + var arraylist = std.Io.Writer.Allocating.init(bun.default_allocator); + const w = &arraylist.writer; + defer arraylist.deinit(); const symbols = bun.ast.Symbol.Map{}; const P = css.Printer(@TypeOf(w)); - var printer = P.new(bun.default_allocator, std.ArrayList(u8).init(bun.default_allocator), w, css.PrinterOptions.default(), null, null, &symbols); + var printer = P.new(bun.default_allocator, std.array_list.Managed(u8).init(bun.default_allocator), w, css.PrinterOptions.default(), null, null, &symbols); defer printer.deinit(); P.in_debug_fmt = true; defer P.in_debug_fmt = false; css.selector.tocss_servo.toCss_Selector(this.this, @TypeOf(w), &printer) catch |e| return try writer.print("\n", .{@errorName(e)}); - try writer.writeAll(arraylist.items); + try writer.writeAll(arraylist.written()); } }; @@ -1910,12 +1906,12 @@ pub fn GenericComponent(comptime Impl: type) type { return css.implementEql(This, lhs, rhs); } - pub fn format(this: *const This, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: *const This, writer: *std.Io.Writer) !void { switch (this.*) { .local_name => return try writer.print("local_name={s}", .{this.local_name.name.v}), - .combinator => return try writer.print("combinator='{}'", .{this.combinator}), - .pseudo_element => return try writer.print("pseudo_element={}", .{this.pseudo_element}), - .class => return try writer.print("class={}", .{this.class}), + .combinator => return try writer.print("combinator='{f}'", .{this.combinator}), + .pseudo_element => return try writer.print("pseudo_element={f}", .{this.pseudo_element}), + .class => return try writer.print("class={f}", .{this.class}), else => {}, } return writer.print("{s}", .{@tagName(this.*)}); @@ -2253,7 +2249,7 @@ pub const Combinator = enum { }; } - pub fn format(this: *const Combinator, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: *const Combinator, writer: *std.Io.Writer) !void { return switch (this.*) { .child => writer.print(">", .{}), .descendant => writer.print("`descendant` (space)", .{}), @@ -2477,7 +2473,7 @@ pub const PseudoElement = union(enum) { }; } - pub fn format(this: *const PseudoElement, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: *const PseudoElement, writer: *std.Io.Writer) !void { try writer.print("{s}", .{@tagName(this.*)}); } @@ -2513,14 +2509,14 @@ pub const PseudoElement = union(enum) { } pub fn toCss(this: *const PseudoElement, comptime W: type, dest: *Printer(W)) PrintErr!void { - var s = ArrayList(u8){}; + var s = std.Io.Writer.Allocating.init(dest.allocator); // PERF(alloc): I don't like making small allocations here for the string. - const writer = s.writer(dest.allocator); + const writer = &s.writer; const W2 = @TypeOf(writer); - const scratchbuf = std.ArrayList(u8).init(dest.allocator); + const scratchbuf = std.array_list.Managed(u8).init(dest.allocator); var printer = Printer(W2).new(dest.allocator, scratchbuf, writer, css.PrinterOptions.default(), dest.import_info, dest.local_names, dest.symbols); try serialize.serializePseudoElement(this, W2, &printer, null); - return dest.writeStr(s.items); + return dest.writeStr(s.written()); } }; diff --git a/src/css/selectors/selector.zig b/src/css/selectors/selector.zig index 8ecc3a2a4d..8d015909d0 100644 --- a/src/css/selectors/selector.zig +++ b/src/css/selectors/selector.zig @@ -513,14 +513,14 @@ pub const serialize = struct { if (comptime bun.Environment.isDebug) { debug("Selector components:\n", .{}); for (selector.components.items) |*comp| { - debug(" {}\n", .{comp}); + debug(" {f}\n", .{comp}); } debug("Compound selector iter\n", .{}); var compound_selectors = CompoundSelectorIter{ .sel = selector }; while (compound_selectors.next()) |comp| { for (comp) |c| { - debug(" {}, ", .{c}); + debug(" {f}, ", .{c}); } } debug("\n", .{}); @@ -705,14 +705,15 @@ pub const serialize = struct { if (dest.minify) { // PERF: should we put a scratch buffer in the printer // Serialize as both an identifier and a string and choose the shorter one. - var id = std.ArrayList(u8).init(dest.allocator); - const writer = id.writer(); + var id = std.Io.Writer.Allocating.init(dest.allocator); + const writer = &id.writer; css.serializer.serializeIdentifier(v.value, writer) catch return dest.addFmtError(); const s = try css.to_css.string(dest.allocator, CSSString, &v.value, css.PrinterOptions.default(), dest.import_info, dest.local_names, dest.symbols); - if (id.items.len > 0 and id.items.len < s.len) { - try dest.writeStr(id.items); + const id_items = id.written(); + if (id_items.len > 0 and id_items.len < s.len) { + try dest.writeStr(id_items); } else { try dest.writeStr(s); } diff --git a/src/css/small_list.zig b/src/css/small_list.zig index 1696a1fa33..7729da0445 100644 --- a/src/css/small_list.zig +++ b/src/css/small_list.zig @@ -646,6 +646,8 @@ pub fn SmallList(comptime T: type, comptime N: comptime_int) type { return new; } } + + pub const looksLikeContainerTypeSmallList = T; }; } diff --git a/src/css/values/color_js.zig b/src/css/values/color_js.zig index 84cccde9ec..b6d31020e4 100644 --- a/src/css/values/color_js.zig +++ b/src/css/values/color_js.zig @@ -315,10 +315,10 @@ pub fn jsFunctionColor(globalThis: *jsc.JSGlobalObject, callFrame: *jsc.CallFram return jsc.JSValue.jsNumber(int); }, .hex => { - break :color bun.String.createFormat("#{}{}{}", .{ bun.fmt.hexIntLower(rgba.red), bun.fmt.hexIntLower(rgba.green), bun.fmt.hexIntLower(rgba.blue) }); + break :color bun.String.createFormat("#{f}{f}{f}", .{ bun.fmt.hexIntLower(rgba.red), bun.fmt.hexIntLower(rgba.green), bun.fmt.hexIntLower(rgba.blue) }); }, .HEX => { - break :color bun.String.createFormat("#{}{}{}", .{ bun.fmt.hexIntUpper(rgba.red), bun.fmt.hexIntUpper(rgba.green), bun.fmt.hexIntUpper(rgba.blue) }); + break :color bun.String.createFormat("#{f}{f}{f}", .{ bun.fmt.hexIntUpper(rgba.red), bun.fmt.hexIntUpper(rgba.green), bun.fmt.hexIntUpper(rgba.blue) }); }, .rgb => { break :color bun.String.createFormat("rgb({d}, {d}, {d})", .{ rgba.red, rgba.green, rgba.blue }); @@ -405,14 +405,13 @@ pub fn jsFunctionColor(globalThis: *jsc.JSGlobalObject, callFrame: *jsc.CallFram } // Fallback to CSS string output - var dest = std.ArrayListUnmanaged(u8){}; - defer dest.deinit(allocator); - const writer = dest.writer(allocator); + var dest = std.Io.Writer.Allocating.init(allocator); + const writer = &dest.writer; const symbols = bun.ast.Symbol.Map{}; - var printer = css.Printer(@TypeOf(writer)).new( + var printer = css.Printer(*std.Io.Writer).new( allocator, - std.ArrayList(u8).init(allocator), + std.array_list.Managed(u8).init(allocator), writer, css.PrinterOptions.default(), null, @@ -424,7 +423,7 @@ pub fn jsFunctionColor(globalThis: *jsc.JSGlobalObject, callFrame: *jsc.CallFram return globalThis.throw("color() internal error: {s}", .{@errorName(err)}); }; - return bun.String.createUTF8ForJS(globalThis, dest.items); + return bun.String.createUTF8ForJS(globalThis, dest.written()); }, } } diff --git a/src/css/values/ident.zig b/src/css/values/ident.zig index ed11425429..4d65dd0648 100644 --- a/src/css/values/ident.zig +++ b/src/css/values/ident.zig @@ -170,10 +170,10 @@ pub const IdentOrRef = packed struct(u128) { return this.asIdent().?.v; } - pub fn format(this: @This(), comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + pub fn format(this: @This(), writer: *std.Io.Writer) !void { if (this.__ref_bit) { const ref = this.asRef().?; - return writer.print("Ref({})", .{ref}); + return writer.print("Ref({f})", .{ref}); } return writer.print("Ident({s})", .{this.asIdent().?.v}); } diff --git a/src/defines.zig b/src/defines.zig index 9de1820517..4886eb95a7 100644 --- a/src/defines.zig +++ b/src/defines.zig @@ -301,7 +301,7 @@ pub const Define = struct { initial_values = gpe_entry.value_ptr.*; } - var list = try std.ArrayList(DotDefine).initCapacity(allocator, initial_values.len + 1); + var list = try std.array_list.Managed(DotDefine).initCapacity(allocator, initial_values.len + 1); if (initial_values.len > 0) { list.appendSliceAssumeCapacity(initial_values); } @@ -322,7 +322,7 @@ pub const Define = struct { const key = global[global.len - 1]; const gpe = try define.dots.getOrPut(key); if (gpe.found_existing) { - var list = try std.ArrayList(DotDefine).initCapacity(allocator, gpe.value_ptr.*.len + 1); + var list = try std.array_list.Managed(DotDefine).initCapacity(allocator, gpe.value_ptr.*.len + 1); list.appendSliceAssumeCapacity(gpe.value_ptr.*); list.appendAssumeCapacity(DotDefine{ .parts = global[0..global.len], @@ -332,7 +332,7 @@ pub const Define = struct { define.allocator.free(gpe.value_ptr.*); gpe.value_ptr.* = try list.toOwnedSlice(); } else { - var list = try std.ArrayList(DotDefine).initCapacity(allocator, 1); + var list = try std.array_list.Managed(DotDefine).initCapacity(allocator, 1); list.appendAssumeCapacity(DotDefine{ .parts = global[0..global.len], .data = value_define.*, diff --git a/src/deprecated.zig b/src/deprecated.zig new file mode 100644 index 0000000000..e41eec21c2 --- /dev/null +++ b/src/deprecated.zig @@ -0,0 +1,649 @@ +pub fn BufferedReader(comptime buffer_size: usize, comptime ReaderType: type) type { + return struct { + unbuffered_reader: ReaderType, + buf: [buffer_size]u8, + start: usize = 0, + end: usize = 0, + + pub const Error = ReaderType.Error; + pub const Reader = std.Io.GenericReader(*Self, Error, read); + + const Self = @This(); + + pub fn read(self: *Self, dest: []u8) Error!usize { + // First try reading from the already buffered data onto the destination. + const current = self.buf[self.start..self.end]; + if (current.len != 0) { + const to_transfer = @min(current.len, dest.len); + @memcpy(dest[0..to_transfer], current[0..to_transfer]); + self.start += to_transfer; + return to_transfer; + } + + // If dest is large, read from the unbuffered reader directly into the destination. + if (dest.len >= buffer_size) { + return self.unbuffered_reader.read(dest); + } + + // If dest is small, read from the unbuffered reader into our own internal buffer, + // and then transfer to destination. + self.end = try self.unbuffered_reader.read(&self.buf); + const to_transfer = @min(self.end, dest.len); + @memcpy(dest[0..to_transfer], self.buf[0..to_transfer]); + self.start = to_transfer; + return to_transfer; + } + + pub fn reader(self: *Self) Reader { + return .{ .context = self }; + } + }; +} + +pub fn bufferedReader(reader: anytype) BufferedReader(4096, @TypeOf(reader)) { + return .{ .unbuffered_reader = reader, .buf = undefined }; +} + +pub fn bufferedReaderSize(comptime size: usize, reader: anytype) BufferedReader(size, @TypeOf(reader)) { + return .{ .unbuffered_reader = reader, .buf = undefined }; +} + +/// A singly-linked list is headed by a single forward pointer. The elements +/// are singly-linked for minimum space and pointer manipulation overhead at +/// the expense of O(n) removal for arbitrary elements. New elements can be +/// added to the list after an existing element or at the head of the list. +/// A singly-linked list may only be traversed in the forward direction. +/// Singly-linked lists are ideal for applications with large datasets and +/// few or no removals or for implementing a LIFO queue. +pub fn SinglyLinkedList(comptime T: type) type { + return struct { + const Self = @This(); + + /// Node inside the linked list wrapping the actual data. + pub const Node = struct { + next: ?*Node = null, + data: T, + + pub const Data = T; + + /// Insert a new node after the current one. + /// + /// Arguments: + /// new_node: Pointer to the new node to insert. + pub fn insertAfter(node: *Node, new_node: *Node) void { + new_node.next = node.next; + node.next = new_node; + } + + /// Remove a node from the list. + /// + /// Arguments: + /// node: Pointer to the node to be removed. + /// Returns: + /// node removed + pub fn removeNext(node: *Node) ?*Node { + const next_node = node.next orelse return null; + node.next = next_node.next; + return next_node; + } + + /// Iterate over the singly-linked list from this node, until the final node is found. + /// This operation is O(N). + pub fn findLast(node: *Node) *Node { + var it = node; + while (true) { + it = it.next orelse return it; + } + } + + /// Iterate over each next node, returning the count of all nodes except the starting one. + /// This operation is O(N). + pub fn countChildren(node: *const Node) usize { + var count: usize = 0; + var it: ?*const Node = node.next; + while (it) |n| : (it = n.next) { + count += 1; + } + return count; + } + + /// Reverse the list starting from this node in-place. + /// This operation is O(N). + pub fn reverse(indirect: *?*Node) void { + if (indirect.* == null) { + return; + } + var current: *Node = indirect.*.?; + while (current.next) |next| { + current.next = next.next; + next.next = indirect.*; + indirect.* = next; + } + } + }; + + first: ?*Node = null, + + /// Insert a new node at the head. + /// + /// Arguments: + /// new_node: Pointer to the new node to insert. + pub fn prepend(list: *Self, new_node: *Node) void { + new_node.next = list.first; + list.first = new_node; + } + + /// Remove a node from the list. + /// + /// Arguments: + /// node: Pointer to the node to be removed. + pub fn remove(list: *Self, node: *Node) void { + if (list.first == node) { + list.first = node.next; + } else { + var current_elm = list.first.?; + while (current_elm.next != node) { + current_elm = current_elm.next.?; + } + current_elm.next = node.next; + } + } + + /// Remove and return the first node in the list. + /// + /// Returns: + /// A pointer to the first node in the list. + pub fn popFirst(list: *Self) ?*Node { + const first = list.first orelse return null; + list.first = first.next; + return first; + } + + /// Iterate over all nodes, returning the count. + /// This operation is O(N). + pub fn len(list: Self) usize { + if (list.first) |n| { + return 1 + n.countChildren(); + } else { + return 0; + } + } + }; +} + +test "basic SinglyLinkedList test" { + const L = SinglyLinkedList(u32); + var list = L{}; + + try testing.expect(list.len() == 0); + + var one = L.Node{ .data = 1 }; + var two = L.Node{ .data = 2 }; + var three = L.Node{ .data = 3 }; + var four = L.Node{ .data = 4 }; + var five = L.Node{ .data = 5 }; + + list.prepend(&two); // {2} + two.insertAfter(&five); // {2, 5} + list.prepend(&one); // {1, 2, 5} + two.insertAfter(&three); // {1, 2, 3, 5} + three.insertAfter(&four); // {1, 2, 3, 4, 5} + + try testing.expect(list.len() == 5); + + // Traverse forwards. + { + var it = list.first; + var index: u32 = 1; + while (it) |node| : (it = node.next) { + try testing.expect(node.data == index); + index += 1; + } + } + + _ = list.popFirst(); // {2, 3, 4, 5} + _ = list.remove(&five); // {2, 3, 4} + _ = two.removeNext(); // {2, 4} + + try testing.expect(list.first.?.data == 2); + try testing.expect(list.first.?.next.?.data == 4); + try testing.expect(list.first.?.next.?.next == null); + + L.Node.reverse(&list.first); + + try testing.expect(list.first.?.data == 4); + try testing.expect(list.first.?.next.?.data == 2); + try testing.expect(list.first.?.next.?.next == null); +} + +/// A doubly-linked list has a pair of pointers to both the head and +/// tail of the list. List elements have pointers to both the previous +/// and next elements in the sequence. The list can be traversed both +/// forward and backward. Some operations that take linear O(n) time +/// with a singly-linked list can be done without traversal in constant +/// O(1) time with a doubly-linked list: +/// +/// - Removing an element. +/// - Inserting a new element before an existing element. +/// - Pushing or popping an element from the end of the list. +pub fn DoublyLinkedList(comptime T: type) type { + return struct { + const Self = @This(); + + /// Node inside the linked list wrapping the actual data. + pub const Node = struct { + prev: ?*Node = null, + next: ?*Node = null, + data: T, + }; + + first: ?*Node = null, + last: ?*Node = null, + len: usize = 0, + + /// Insert a new node after an existing one. + /// + /// Arguments: + /// node: Pointer to a node in the list. + /// new_node: Pointer to the new node to insert. + pub fn insertAfter(list: *Self, node: *Node, new_node: *Node) void { + new_node.prev = node; + if (node.next) |next_node| { + // Intermediate node. + new_node.next = next_node; + next_node.prev = new_node; + } else { + // Last element of the list. + new_node.next = null; + list.last = new_node; + } + node.next = new_node; + + list.len += 1; + } + + /// Insert a new node before an existing one. + /// + /// Arguments: + /// node: Pointer to a node in the list. + /// new_node: Pointer to the new node to insert. + pub fn insertBefore(list: *Self, node: *Node, new_node: *Node) void { + new_node.next = node; + if (node.prev) |prev_node| { + // Intermediate node. + new_node.prev = prev_node; + prev_node.next = new_node; + } else { + // First element of the list. + new_node.prev = null; + list.first = new_node; + } + node.prev = new_node; + + list.len += 1; + } + + /// Concatenate list2 onto the end of list1, removing all entries from the former. + /// + /// Arguments: + /// list1: the list to concatenate onto + /// list2: the list to be concatenated + pub fn concatByMoving(list1: *Self, list2: *Self) void { + const l2_first = list2.first orelse return; + if (list1.last) |l1_last| { + l1_last.next = list2.first; + l2_first.prev = list1.last; + list1.len += list2.len; + } else { + // list1 was empty + list1.first = list2.first; + list1.len = list2.len; + } + list1.last = list2.last; + list2.first = null; + list2.last = null; + list2.len = 0; + } + + /// Insert a new node at the end of the list. + /// + /// Arguments: + /// new_node: Pointer to the new node to insert. + pub fn append(list: *Self, new_node: *Node) void { + if (list.last) |last| { + // Insert after last. + list.insertAfter(last, new_node); + } else { + // Empty list. + list.prepend(new_node); + } + } + + /// Insert a new node at the beginning of the list. + /// + /// Arguments: + /// new_node: Pointer to the new node to insert. + pub fn prepend(list: *Self, new_node: *Node) void { + if (list.first) |first| { + // Insert before first. + list.insertBefore(first, new_node); + } else { + // Empty list. + list.first = new_node; + list.last = new_node; + new_node.prev = null; + new_node.next = null; + + list.len = 1; + } + } + + /// Remove a node from the list. + /// + /// Arguments: + /// node: Pointer to the node to be removed. + pub fn remove(list: *Self, node: *Node) void { + if (node.prev) |prev_node| { + // Intermediate node. + prev_node.next = node.next; + } else { + // First element of the list. + list.first = node.next; + } + + if (node.next) |next_node| { + // Intermediate node. + next_node.prev = node.prev; + } else { + // Last element of the list. + list.last = node.prev; + } + + list.len -= 1; + assert(list.len == 0 or (list.first != null and list.last != null)); + } + + /// Remove and return the last node in the list. + /// + /// Returns: + /// A pointer to the last node in the list. + pub fn pop(list: *Self) ?*Node { + const last = list.last orelse return null; + list.remove(last); + return last; + } + + /// Remove and return the first node in the list. + /// + /// Returns: + /// A pointer to the first node in the list. + pub fn popFirst(list: *Self) ?*Node { + const first = list.first orelse return null; + list.remove(first); + return first; + } + }; +} + +test "basic DoublyLinkedList test" { + const L = DoublyLinkedList(u32); + var list = L{}; + + var one = L.Node{ .data = 1 }; + var two = L.Node{ .data = 2 }; + var three = L.Node{ .data = 3 }; + var four = L.Node{ .data = 4 }; + var five = L.Node{ .data = 5 }; + + list.append(&two); // {2} + list.append(&five); // {2, 5} + list.prepend(&one); // {1, 2, 5} + list.insertBefore(&five, &four); // {1, 2, 4, 5} + list.insertAfter(&two, &three); // {1, 2, 3, 4, 5} + + // Traverse forwards. + { + var it = list.first; + var index: u32 = 1; + while (it) |node| : (it = node.next) { + try testing.expect(node.data == index); + index += 1; + } + } + + // Traverse backwards. + { + var it = list.last; + var index: u32 = 1; + while (it) |node| : (it = node.prev) { + try testing.expect(node.data == (6 - index)); + index += 1; + } + } + + _ = list.popFirst(); // {2, 3, 4, 5} + _ = list.pop(); // {2, 3, 4} + list.remove(&three); // {2, 4} + + try testing.expect(list.first.?.data == 2); + try testing.expect(list.last.?.data == 4); + try testing.expect(list.len == 2); +} + +test "DoublyLinkedList concatenation" { + const L = DoublyLinkedList(u32); + var list1 = L{}; + var list2 = L{}; + + var one = L.Node{ .data = 1 }; + var two = L.Node{ .data = 2 }; + var three = L.Node{ .data = 3 }; + var four = L.Node{ .data = 4 }; + var five = L.Node{ .data = 5 }; + + list1.append(&one); + list1.append(&two); + list2.append(&three); + list2.append(&four); + list2.append(&five); + + list1.concatByMoving(&list2); + + try testing.expect(list1.last == &five); + try testing.expect(list1.len == 5); + try testing.expect(list2.first == null); + try testing.expect(list2.last == null); + try testing.expect(list2.len == 0); + + // Traverse forwards. + { + var it = list1.first; + var index: u32 = 1; + while (it) |node| : (it = node.next) { + try testing.expect(node.data == index); + index += 1; + } + } + + // Traverse backwards. + { + var it = list1.last; + var index: u32 = 1; + while (it) |node| : (it = node.prev) { + try testing.expect(node.data == (6 - index)); + index += 1; + } + } + + // Swap them back, this verifies that concatenating to an empty list works. + list2.concatByMoving(&list1); + + // Traverse forwards. + { + var it = list2.first; + var index: u32 = 1; + while (it) |node| : (it = node.next) { + try testing.expect(node.data == index); + index += 1; + } + } + + // Traverse backwards. + { + var it = list2.last; + var index: u32 = 1; + while (it) |node| : (it = node.prev) { + try testing.expect(node.data == (6 - index)); + index += 1; + } + } +} + +pub const RapidHash = struct { + const readInt = std.mem.readInt; + const assert = bun.assert; + const expect = std.testing.expect; + const expectEqual = std.testing.expectEqual; + + const RAPID_SEED: u64 = 0xbdd89aa982704029; + const RAPID_SECRET: [3]u64 = .{ 0x2d358dccaa6c78a5, 0x8bb84b93962eacc9, 0x4b33a62ed433d4a3 }; + + pub fn hash(seed: u64, input: []const u8) u64 { + const sc = RAPID_SECRET; + const len = input.len; + var a: u64 = 0; + var b: u64 = 0; + var k = input; + var is: [3]u64 = .{ seed, 0, 0 }; + + is[0] ^= mix(seed ^ sc[0], sc[1]) ^ len; + + if (len <= 16) { + if (len >= 4) { + const d: u64 = ((len & 24) >> @intCast(len >> 3)); + const e = len - 4; + a = (r32(k) << 32) | r32(k[e..]); + b = ((r32(k[d..]) << 32) | r32(k[(e - d)..])); + } else if (len > 0) + a = (@as(u64, k[0]) << 56) | (@as(u64, k[len >> 1]) << 32) | @as(u64, k[len - 1]); + } else { + var remain = len; + if (len > 48) { + is[1] = is[0]; + is[2] = is[0]; + while (remain >= 96) { + inline for (0..6) |i| { + const m1 = r64(k[8 * i * 2 ..]); + const m2 = r64(k[8 * (i * 2 + 1) ..]); + is[i % 3] = mix(m1 ^ sc[i % 3], m2 ^ is[i % 3]); + } + k = k[96..]; + remain -= 96; + } + if (remain >= 48) { + inline for (0..3) |i| { + const m1 = r64(k[8 * i * 2 ..]); + const m2 = r64(k[8 * (i * 2 + 1) ..]); + is[i] = mix(m1 ^ sc[i], m2 ^ is[i]); + } + k = k[48..]; + remain -= 48; + } + + is[0] ^= is[1] ^ is[2]; + } + + if (remain > 16) { + is[0] = mix(r64(k) ^ sc[2], r64(k[8..]) ^ is[0] ^ sc[1]); + if (remain > 32) { + is[0] = mix(r64(k[16..]) ^ sc[2], r64(k[24..]) ^ is[0]); + } + } + + a = r64(input[len - 16 ..]); + b = r64(input[len - 8 ..]); + } + + a ^= sc[1]; + b ^= is[0]; + mum(&a, &b); + return mix(a ^ sc[0] ^ len, b ^ sc[1]); + } + + test "RapidHash.hash" { + const bytes: []const u8 = "abcdefgh" ** 128; + + const sizes: [13]u64 = .{ 0, 1, 2, 3, 4, 8, 16, 32, 64, 128, 256, 512, 1024 }; + + const outcomes: [13]u64 = .{ + 0x5a6ef77074ebc84b, + 0xc11328477bc0f5d1, + 0x5644ac035e40d569, + 0x347080fbf5fcd81, + 0x56b66b8dc802bcc, + 0xb6bf9055973aac7c, + 0xed56d62eead1e402, + 0xc19072d767da8ffb, + 0x89bb40a9928a4f0d, + 0xe0af7c5e7b6e29fd, + 0x9a3ed35fbedfa11a, + 0x4c684b2119ca19fb, + 0x4b575f5bf25600d6, + }; + + for (sizes, outcomes) |s, e| { + const r = hash(RAPID_SEED, bytes[0..s]); + + try expectEqual(e, r); + } + } + + inline fn mum(a: *u64, b: *u64) void { + const r = @as(u128, a.*) * b.*; + a.* = @truncate(r); + b.* = @truncate(r >> 64); + } + + inline fn mix(a: u64, b: u64) u64 { + var copy_a = a; + var copy_b = b; + mum(©_a, ©_b); + return copy_a ^ copy_b; + } + + inline fn r64(p: []const u8) u64 { + return readInt(u64, p[0..8], .little); + } + + inline fn r32(p: []const u8) u64 { + return readInt(u32, p[0..4], .little); + } +}; + +pub fn jsErrorToWriteError(e: bun.JSError) std.Io.Writer.Error { + return switch (e) { + error.JSTerminated => error.WriteFailed, // TODO: this might lose a JSTerminated, causing m_terminationException problems + error.JSError => error.WriteFailed, // TODO: this might lose a JSError, causing exception check problems + error.OutOfMemory => bun.handleOom(error.OutOfMemory), + }; +} + +pub fn autoFormatLabelFallback(comptime ty: type, comptime fallback: []const u8) []const u8 { + comptime if (std.meta.hasFn(ty, "format")) { + return "{f}"; + } else { + return fallback; + }; +} + +pub fn autoFormatLabel(comptime ty: type) []const u8 { + return autoFormatLabelFallback(ty, "{s}"); +} + +const bun = @import("bun"); + +const std = @import("std"); +const testing = std.testing; + +const debug = std.debug; +const assert = debug.assert; diff --git a/src/deps/boringssl.translated.zig b/src/deps/boringssl.translated.zig index 6e7db8eda9..156f2c203a 100644 --- a/src/deps/boringssl.translated.zig +++ b/src/deps/boringssl.translated.zig @@ -146,13 +146,13 @@ pub const struct_openssl_method_common_st = extern struct { pub const struct_rsa_meth_st = extern struct { common: struct_openssl_method_common_st, app_data: ?*anyopaque, - init: ?*const fn (?*RSA) callconv(.C) c_int, - finish: ?*const fn (?*RSA) callconv(.C) c_int, - size: ?*const fn (?*const RSA) callconv(.C) usize, - sign: ?*const fn (c_int, [*c]const u8, c_uint, [*c]u8, [*c]c_uint, ?*const RSA) callconv(.C) c_int, - sign_raw: ?*const fn (?*RSA, [*c]usize, [*c]u8, usize, [*c]const u8, usize, c_int) callconv(.C) c_int, - decrypt: ?*const fn (?*RSA, [*c]usize, [*c]u8, usize, [*c]const u8, usize, c_int) callconv(.C) c_int, - private_transform: ?*const fn (?*RSA, [*c]u8, [*c]const u8, usize) callconv(.C) c_int, + init: ?*const fn (?*RSA) callconv(.c) c_int, + finish: ?*const fn (?*RSA) callconv(.c) c_int, + size: ?*const fn (?*const RSA) callconv(.c) usize, + sign: ?*const fn (c_int, [*c]const u8, c_uint, [*c]u8, [*c]c_uint, ?*const RSA) callconv(.c) c_int, + sign_raw: ?*const fn (?*RSA, [*c]usize, [*c]u8, usize, [*c]const u8, usize, c_int) callconv(.c) c_int, + decrypt: ?*const fn (?*RSA, [*c]usize, [*c]u8, usize, [*c]const u8, usize, c_int) callconv(.c) c_int, + private_transform: ?*const fn (?*RSA, [*c]u8, [*c]const u8, usize) callconv(.c) c_int, flags: c_int, }; pub const RSA_METHOD = struct_rsa_meth_st; @@ -259,24 +259,24 @@ pub const BIO_METHOD = struct_bio_method_st; // num_write: usize, // }; pub const BIO = struct_bio_st; -pub const bio_info_cb = ?*const fn ([*c]BIO, c_int, [*c]const u8, c_int, c_long, c_long) callconv(.C) c_long; +pub const bio_info_cb = ?*const fn ([*c]BIO, c_int, [*c]const u8, c_int, c_long, c_long) callconv(.c) c_long; pub const struct_bio_method_st = extern struct { type: c_int, name: [*c]const u8, - bwrite: ?*const fn ([*c]BIO, [*c]const u8, c_int) callconv(.C) c_int, - bread: ?*const fn ([*c]BIO, [*c]u8, c_int) callconv(.C) c_int, - bputs: ?*const fn ([*c]BIO, [*c]const u8) callconv(.C) c_int, - bgets: ?*const fn ([*c]BIO, [*c]u8, c_int) callconv(.C) c_int, - ctrl: ?*const fn ([*c]BIO, c_int, c_long, ?*anyopaque) callconv(.C) c_long, - create: ?*const fn ([*c]BIO) callconv(.C) c_int, - destroy: ?*const fn ([*c]BIO) callconv(.C) c_int, - callback_ctrl: ?*const fn ([*c]BIO, c_int, bio_info_cb) callconv(.C) c_long, + bwrite: ?*const fn ([*c]BIO, [*c]const u8, c_int) callconv(.c) c_int, + bread: ?*const fn ([*c]BIO, [*c]u8, c_int) callconv(.c) c_int, + bputs: ?*const fn ([*c]BIO, [*c]const u8) callconv(.c) c_int, + bgets: ?*const fn ([*c]BIO, [*c]u8, c_int) callconv(.c) c_int, + ctrl: ?*const fn ([*c]BIO, c_int, c_long, ?*anyopaque) callconv(.c) c_long, + create: ?*const fn ([*c]BIO) callconv(.c) c_int, + destroy: ?*const fn ([*c]BIO) callconv(.c) c_int, + callback_ctrl: ?*const fn ([*c]BIO, c_int, bio_info_cb) callconv(.c) c_long, }; pub const struct_blake2b_state_st = opaque {}; pub const BLAKE2B_CTX = struct_blake2b_state_st; pub const struct_bn_gencb_st = extern struct { arg: ?*anyopaque, - callback: ?*const fn (c_int, c_int, [*c]struct_bn_gencb_st) callconv(.C) c_int, + callback: ?*const fn (c_int, c_int, [*c]struct_bn_gencb_st) callconv(.c) c_int, }; pub const BN_GENCB = struct_bn_gencb_st; pub const struct_buf_mem_st = extern struct { @@ -321,10 +321,10 @@ pub const EC_POINT = struct_ec_point_st; pub const struct_ecdsa_method_st = extern struct { common: struct_openssl_method_common_st, app_data: ?*anyopaque, - init: ?*const fn (?*EC_KEY) callconv(.C) c_int, - finish: ?*const fn (?*EC_KEY) callconv(.C) c_int, - group_order_size: ?*const fn (?*const EC_KEY) callconv(.C) usize, - sign: ?*const fn ([*c]const u8, usize, [*c]u8, [*c]c_uint, ?*EC_KEY) callconv(.C) c_int, + init: ?*const fn (?*EC_KEY) callconv(.c) c_int, + finish: ?*const fn (?*EC_KEY) callconv(.c) c_int, + group_order_size: ?*const fn (?*const EC_KEY) callconv(.c) usize, + sign: ?*const fn ([*c]const u8, usize, [*c]u8, [*c]c_uint, ?*EC_KEY) callconv(.c) c_int, flags: c_int, }; pub const ECDSA_METHOD = struct_ecdsa_method_st; @@ -507,9 +507,9 @@ pub const ssl_private_key_retry: c_int = 1; pub const ssl_private_key_failure: c_int = 2; pub const enum_ssl_private_key_result_t = c_uint; pub const struct_ssl_private_key_method_st = extern struct { - sign: ?*const fn (?*SSL, [*c]u8, [*c]usize, usize, u16, [*c]const u8, usize) callconv(.C) enum_ssl_private_key_result_t, - decrypt: ?*const fn (?*SSL, [*c]u8, [*c]usize, usize, [*c]const u8, usize) callconv(.C) enum_ssl_private_key_result_t, - complete: ?*const fn (?*SSL, [*c]u8, [*c]usize, usize) callconv(.C) enum_ssl_private_key_result_t, + sign: ?*const fn (?*SSL, [*c]u8, [*c]usize, usize, u16, [*c]const u8, usize) callconv(.c) enum_ssl_private_key_result_t, + decrypt: ?*const fn (?*SSL, [*c]u8, [*c]usize, usize, [*c]const u8, usize) callconv(.c) enum_ssl_private_key_result_t, + complete: ?*const fn (?*SSL, [*c]u8, [*c]usize, usize) callconv(.c) enum_ssl_private_key_result_t, }; pub const SSL_PRIVATE_KEY_METHOD = struct_ssl_private_key_method_st; pub const ssl_encryption_initial: c_int = 0; @@ -518,11 +518,11 @@ pub const ssl_encryption_handshake: c_int = 2; pub const ssl_encryption_application: c_int = 3; pub const enum_ssl_encryption_level_t = c_uint; pub const struct_ssl_quic_method_st = extern struct { - set_read_secret: ?*const fn (?*SSL, enum_ssl_encryption_level_t, ?*const SSL_CIPHER, [*c]const u8, usize) callconv(.C) c_int, - set_write_secret: ?*const fn (?*SSL, enum_ssl_encryption_level_t, ?*const SSL_CIPHER, [*c]const u8, usize) callconv(.C) c_int, - add_handshake_data: ?*const fn (?*SSL, enum_ssl_encryption_level_t, [*c]const u8, usize) callconv(.C) c_int, - flush_flight: ?*const fn (?*SSL) callconv(.C) c_int, - send_alert: ?*const fn (?*SSL, enum_ssl_encryption_level_t, u8) callconv(.C) c_int, + set_read_secret: ?*const fn (?*SSL, enum_ssl_encryption_level_t, ?*const SSL_CIPHER, [*c]const u8, usize) callconv(.c) c_int, + set_write_secret: ?*const fn (?*SSL, enum_ssl_encryption_level_t, ?*const SSL_CIPHER, [*c]const u8, usize) callconv(.c) c_int, + add_handshake_data: ?*const fn (?*SSL, enum_ssl_encryption_level_t, [*c]const u8, usize) callconv(.c) c_int, + flush_flight: ?*const fn (?*SSL) callconv(.c) c_int, + send_alert: ?*const fn (?*SSL, enum_ssl_encryption_level_t, u8) callconv(.c) c_int, }; pub const SSL_QUIC_METHOD = struct_ssl_quic_method_st; pub const struct_ssl_session_st = opaque {}; @@ -533,9 +533,9 @@ pub const ssl_ticket_aead_ignore_ticket: c_int = 2; pub const ssl_ticket_aead_error: c_int = 3; pub const enum_ssl_ticket_aead_result_t = c_uint; pub const struct_ssl_ticket_aead_method_st = extern struct { - max_overhead: ?*const fn (?*SSL) callconv(.C) usize, - seal: ?*const fn (?*SSL, [*c]u8, [*c]usize, usize, [*c]const u8, usize) callconv(.C) c_int, - open: ?*const fn (?*SSL, [*c]u8, [*c]usize, usize, [*c]const u8, usize) callconv(.C) enum_ssl_ticket_aead_result_t, + max_overhead: ?*const fn (?*SSL) callconv(.c) usize, + seal: ?*const fn (?*SSL, [*c]u8, [*c]usize, usize, [*c]const u8, usize) callconv(.c) c_int, + open: ?*const fn (?*SSL, [*c]u8, [*c]usize, usize, [*c]const u8, usize) callconv(.c) enum_ssl_ticket_aead_result_t, }; pub const SSL_TICKET_AEAD_METHOD = struct_ssl_ticket_aead_method_st; pub const struct_st_ERR_FNS = opaque {}; @@ -567,7 +567,7 @@ pub const X509_STORE = struct_x509_store_st; pub const struct_x509_trust_st = extern struct { trust: c_int, flags: c_int, - check_trust: ?*const fn ([*c]struct_x509_trust_st, ?*X509, c_int) callconv(.C) c_int, + check_trust: ?*const fn ([*c]struct_x509_trust_st, ?*X509, c_int) callconv(.c) c_int, name: [*c]u8, arg1: c_int, arg2: ?*anyopaque, @@ -607,7 +607,7 @@ pub extern fn ERR_peek_last_error() u32; pub extern fn ERR_error_string_n(packed_error: u32, buf: [*c]u8, len: usize) [*c]u8; pub extern fn ERR_lib_error_string(packed_error: u32) [*c]const u8; pub extern fn ERR_reason_error_string(packed_error: u32) [*c]const u8; -pub const ERR_print_errors_callback_t = ?*const fn ([*c]const u8, usize, ?*anyopaque) callconv(.C) c_int; +pub const ERR_print_errors_callback_t = ?*const fn ([*c]const u8, usize, ?*anyopaque) callconv(.c) c_int; pub const ERR_LIB_NONE: c_int = 1; pub const ERR_LIB_SYS: c_int = 2; pub const ERR_LIB_BN: c_int = 3; @@ -651,12 +651,12 @@ pub extern fn ERR_put_error(library: c_int, unused: c_int, reason: c_int, file: pub extern fn ERR_add_error_data(count: c_uint, ...) void; pub extern fn ERR_add_error_dataf(format: [*c]const u8, ...) void; pub extern fn ERR_set_error_data(data: [*c]u8, flags: c_int) void; -pub const OPENSSL_sk_free_func = ?*const fn (?*anyopaque) callconv(.C) void; -pub const OPENSSL_sk_copy_func = ?*const fn (?*anyopaque) callconv(.C) ?*anyopaque; -pub const OPENSSL_sk_cmp_func = ?*const fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int; -pub const OPENSSL_sk_call_free_func = ?*const fn (OPENSSL_sk_free_func, ?*anyopaque) callconv(.C) void; -pub const OPENSSL_sk_call_copy_func = ?*const fn (OPENSSL_sk_copy_func, ?*anyopaque) callconv(.C) ?*anyopaque; -pub const OPENSSL_sk_call_cmp_func = ?*const fn (OPENSSL_sk_cmp_func, [*c]const ?*const anyopaque, [*c]const ?*const anyopaque) callconv(.C) c_int; +pub const OPENSSL_sk_free_func = ?*const fn (?*anyopaque) callconv(.c) void; +pub const OPENSSL_sk_copy_func = ?*const fn (?*anyopaque) callconv(.c) ?*anyopaque; +pub const OPENSSL_sk_cmp_func = ?*const fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.c) c_int; +pub const OPENSSL_sk_call_free_func = ?*const fn (OPENSSL_sk_free_func, ?*anyopaque) callconv(.c) void; +pub const OPENSSL_sk_call_copy_func = ?*const fn (OPENSSL_sk_copy_func, ?*anyopaque) callconv(.c) ?*anyopaque; +pub const OPENSSL_sk_call_cmp_func = ?*const fn (OPENSSL_sk_cmp_func, [*c]const ?*const anyopaque, [*c]const ?*const anyopaque) callconv(.c) c_int; pub const struct_stack_st = extern struct { num: usize, data: [*c]?*anyopaque, @@ -687,20 +687,20 @@ pub extern fn sk_set_cmp_func(sk: [*c]_STACK, comp: OPENSSL_sk_cmp_func) OPENSSL pub extern fn sk_deep_copy(sk: [*c]const _STACK, call_copy_func: OPENSSL_sk_call_copy_func, copy_func: OPENSSL_sk_copy_func, call_free_func: OPENSSL_sk_call_free_func, free_func: OPENSSL_sk_free_func) [*c]_STACK; pub extern fn sk_pop_free(sk: [*c]_STACK, free_func: OPENSSL_sk_free_func) void; pub const OPENSSL_STRING = [*c]u8; -pub const sk_void_free_func = ?*const fn (?*anyopaque) callconv(.C) void; -pub const sk_void_copy_func = ?*const fn (?*anyopaque) callconv(.C) ?*anyopaque; -pub const sk_void_cmp_func = ?*const fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int; -pub fn sk_void_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_void_free_func = ?*const fn (?*anyopaque) callconv(.c) void; +pub const sk_void_copy_func = ?*const fn (?*anyopaque) callconv(.c) ?*anyopaque; +pub const sk_void_cmp_func = ?*const fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.c) c_int; +pub fn sk_void_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_void_free_func, @ptrCast(@alignCast(free_func))).?(ptr); } -pub fn sk_void_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_void_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(sk_void_copy_func, @ptrCast(@alignCast(copy_func))).?(ptr); } -pub fn sk_void_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_void_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -708,114 +708,114 @@ pub fn sk_void_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const var b_ptr: ?*const anyopaque = b.*; return @as(sk_void_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_void_new(arg_comp: sk_void_cmp_func) callconv(.C) ?*struct_stack_st_void { +pub fn sk_void_new(arg_comp: sk_void_cmp_func) callconv(.c) ?*struct_stack_st_void { const comp = arg_comp; return @as(?*struct_stack_st_void, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_void_new_null() callconv(.C) ?*struct_stack_st_void { +pub fn sk_void_new_null() callconv(.c) ?*struct_stack_st_void { return @as(?*struct_stack_st_void, @ptrCast(sk_new_null())); } -pub fn sk_void_num(arg_sk: ?*const struct_stack_st_void) callconv(.C) usize { +pub fn sk_void_num(arg_sk: ?*const struct_stack_st_void) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_void_zero(arg_sk: ?*struct_stack_st_void) callconv(.C) void { +pub fn sk_void_zero(arg_sk: ?*struct_stack_st_void) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_void_value(arg_sk: ?*const struct_stack_st_void, arg_i: usize) callconv(.C) ?*anyopaque { +pub fn sk_void_value(arg_sk: ?*const struct_stack_st_void, arg_i: usize) callconv(.c) ?*anyopaque { const sk = arg_sk; const i = arg_i; - return @alignCast(@ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); + return @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_void_set(arg_sk: ?*struct_stack_st_void, arg_i: usize, arg_p: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_void_set(arg_sk: ?*struct_stack_st_void, arg_i: usize, arg_p: ?*anyopaque) callconv(.c) ?*anyopaque { const sk = arg_sk; const i = arg_i; const p = arg_p; return sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, p); } -pub fn sk_void_free(arg_sk: ?*struct_stack_st_void) callconv(.C) void { +pub fn sk_void_free(arg_sk: ?*struct_stack_st_void) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_void_pop_free(arg_sk: ?*struct_stack_st_void, arg_free_func: sk_void_free_func) callconv(.C) void { +pub fn sk_void_pop_free(arg_sk: ?*struct_stack_st_void, arg_free_func: sk_void_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_void_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_void_insert(arg_sk: ?*struct_stack_st_void, arg_p: ?*anyopaque, arg_where: usize) callconv(.C) usize { +pub fn sk_void_insert(arg_sk: ?*struct_stack_st_void, arg_p: ?*anyopaque, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), p, where); } -pub fn sk_void_delete(arg_sk: ?*struct_stack_st_void, arg_where: usize) callconv(.C) ?*anyopaque { +pub fn sk_void_delete(arg_sk: ?*struct_stack_st_void, arg_where: usize) callconv(.c) ?*anyopaque { const sk = arg_sk; const where = arg_where; return sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where); } -pub fn sk_void_delete_ptr(arg_sk: ?*struct_stack_st_void, arg_p: ?*const anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_void_delete_ptr(arg_sk: ?*struct_stack_st_void, arg_p: ?*const anyopaque) callconv(.c) ?*anyopaque { const sk = arg_sk; const p = arg_p; return sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), p); } -pub fn sk_void_find(arg_sk: ?*const struct_stack_st_void, arg_out_index: [*c]usize, arg_p: ?*const anyopaque) callconv(.C) c_int { +pub fn sk_void_find(arg_sk: ?*const struct_stack_st_void, arg_out_index: [*c]usize, arg_p: ?*const anyopaque) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, p, &sk_void_call_cmp_func); } -pub fn sk_void_shift(arg_sk: ?*struct_stack_st_void) callconv(.C) ?*anyopaque { +pub fn sk_void_shift(arg_sk: ?*struct_stack_st_void) callconv(.c) ?*anyopaque { const sk = arg_sk; return sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_void_push(arg_sk: ?*struct_stack_st_void, arg_p: ?*anyopaque) callconv(.C) usize { +pub fn sk_void_push(arg_sk: ?*struct_stack_st_void, arg_p: ?*anyopaque) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), p); } -pub fn sk_void_pop(arg_sk: ?*struct_stack_st_void) callconv(.C) ?*anyopaque { +pub fn sk_void_pop(arg_sk: ?*struct_stack_st_void) callconv(.c) ?*anyopaque { const sk = arg_sk; return sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_void_dup(arg_sk: ?*const struct_stack_st_void) callconv(.C) ?*struct_stack_st_void { +pub fn sk_void_dup(arg_sk: ?*const struct_stack_st_void) callconv(.c) ?*struct_stack_st_void { const sk = arg_sk; return @as(?*struct_stack_st_void, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_void_sort(arg_sk: ?*struct_stack_st_void) callconv(.C) void { +pub fn sk_void_sort(arg_sk: ?*struct_stack_st_void) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_void_call_cmp_func); } -pub fn sk_void_is_sorted(arg_sk: ?*const struct_stack_st_void) callconv(.C) c_int { +pub fn sk_void_is_sorted(arg_sk: ?*const struct_stack_st_void) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_void_set_cmp_func(arg_sk: ?*struct_stack_st_void, arg_comp: sk_void_cmp_func) callconv(.C) sk_void_cmp_func { +pub fn sk_void_set_cmp_func(arg_sk: ?*struct_stack_st_void, arg_comp: sk_void_cmp_func) callconv(.c) sk_void_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_void_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_void_deep_copy(arg_sk: ?*const struct_stack_st_void, arg_copy_func: sk_void_copy_func, arg_free_func: sk_void_free_func) callconv(.C) ?*struct_stack_st_void { +pub fn sk_void_deep_copy(arg_sk: ?*const struct_stack_st_void, arg_copy_func: sk_void_copy_func, arg_free_func: sk_void_free_func) callconv(.c) ?*struct_stack_st_void { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; return @as(?*struct_stack_st_void, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_void_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_void_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub const struct_stack_st_OPENSSL_STRING = opaque {}; -pub const sk_OPENSSL_STRING_free_func = ?*const fn ([*c]u8) callconv(.C) void; -pub const sk_OPENSSL_STRING_copy_func = ?*const fn ([*c]u8) callconv(.C) [*c]u8; -pub const sk_OPENSSL_STRING_cmp_func = ?*const fn ([*c][*c]const u8, [*c][*c]const u8) callconv(.C) c_int; -pub fn sk_OPENSSL_STRING_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_OPENSSL_STRING_free_func = ?*const fn ([*c]u8) callconv(.c) void; +pub const sk_OPENSSL_STRING_copy_func = ?*const fn ([*c]u8) callconv(.c) [*c]u8; +pub const sk_OPENSSL_STRING_cmp_func = ?*const fn ([*c][*c]const u8, [*c][*c]const u8) callconv(.c) c_int; +pub fn sk_OPENSSL_STRING_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_OPENSSL_STRING_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]u8, @ptrCast(@alignCast(ptr)))); } -pub fn sk_OPENSSL_STRING_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_OPENSSL_STRING_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_OPENSSL_STRING_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]u8, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_OPENSSL_STRING_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_OPENSSL_STRING_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -823,139 +823,139 @@ pub fn sk_OPENSSL_STRING_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: var b_ptr: [*c]const u8 = @as([*c]const u8, @ptrCast(@alignCast(b.*))); return @as(sk_OPENSSL_STRING_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_OPENSSL_STRING_new(arg_comp: sk_OPENSSL_STRING_cmp_func) callconv(.C) ?*struct_stack_st_OPENSSL_STRING { +pub fn sk_OPENSSL_STRING_new(arg_comp: sk_OPENSSL_STRING_cmp_func) callconv(.c) ?*struct_stack_st_OPENSSL_STRING { const comp = arg_comp; return @as(?*struct_stack_st_OPENSSL_STRING, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_OPENSSL_STRING_new_null() callconv(.C) ?*struct_stack_st_OPENSSL_STRING { +pub fn sk_OPENSSL_STRING_new_null() callconv(.c) ?*struct_stack_st_OPENSSL_STRING { return @as(?*struct_stack_st_OPENSSL_STRING, @ptrCast(sk_new_null())); } -pub fn sk_OPENSSL_STRING_num(arg_sk: ?*const struct_stack_st_OPENSSL_STRING) callconv(.C) usize { +pub fn sk_OPENSSL_STRING_num(arg_sk: ?*const struct_stack_st_OPENSSL_STRING) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_OPENSSL_STRING_zero(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.C) void { +pub fn sk_OPENSSL_STRING_zero(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_OPENSSL_STRING_value(arg_sk: ?*const struct_stack_st_OPENSSL_STRING, arg_i: usize) callconv(.C) [*c]u8 { +pub fn sk_OPENSSL_STRING_value(arg_sk: ?*const struct_stack_st_OPENSSL_STRING, arg_i: usize) callconv(.c) [*c]u8 { const sk = arg_sk; const i = arg_i; return @as([*c]u8, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } -pub fn sk_OPENSSL_STRING_set(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_i: usize, arg_p: [*c]u8) callconv(.C) [*c]u8 { +pub fn sk_OPENSSL_STRING_set(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_i: usize, arg_p: [*c]u8) callconv(.c) [*c]u8 { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as([*c]u8, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } -pub fn sk_OPENSSL_STRING_free(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.C) void { +pub fn sk_OPENSSL_STRING_free(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_OPENSSL_STRING_pop_free(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_free_func: sk_OPENSSL_STRING_free_func) callconv(.C) void { +pub fn sk_OPENSSL_STRING_pop_free(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_free_func: sk_OPENSSL_STRING_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_OPENSSL_STRING_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_OPENSSL_STRING_insert(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_p: [*c]u8, arg_where: usize) callconv(.C) usize { +pub fn sk_OPENSSL_STRING_insert(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_p: [*c]u8, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_OPENSSL_STRING_delete(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_where: usize) callconv(.C) [*c]u8 { +pub fn sk_OPENSSL_STRING_delete(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_where: usize) callconv(.c) [*c]u8 { const sk = arg_sk; const where = arg_where; return @as([*c]u8, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } -pub fn sk_OPENSSL_STRING_delete_ptr(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_p: [*c]const u8) callconv(.C) [*c]u8 { +pub fn sk_OPENSSL_STRING_delete_ptr(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_p: [*c]const u8) callconv(.c) [*c]u8 { const sk = arg_sk; const p = arg_p; return @as([*c]u8, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } -pub fn sk_OPENSSL_STRING_find(arg_sk: ?*const struct_stack_st_OPENSSL_STRING, arg_out_index: [*c]usize, arg_p: [*c]const u8) callconv(.C) c_int { +pub fn sk_OPENSSL_STRING_find(arg_sk: ?*const struct_stack_st_OPENSSL_STRING, arg_out_index: [*c]usize, arg_p: [*c]const u8) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_OPENSSL_STRING_call_cmp_func); } -pub fn sk_OPENSSL_STRING_shift(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.C) [*c]u8 { +pub fn sk_OPENSSL_STRING_shift(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.c) [*c]u8 { const sk = arg_sk; return @as([*c]u8, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_OPENSSL_STRING_push(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_p: [*c]u8) callconv(.C) usize { +pub fn sk_OPENSSL_STRING_push(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_p: [*c]u8) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_OPENSSL_STRING_pop(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.C) [*c]u8 { +pub fn sk_OPENSSL_STRING_pop(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.c) [*c]u8 { const sk = arg_sk; return @as([*c]u8, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_OPENSSL_STRING_dup(arg_sk: ?*const struct_stack_st_OPENSSL_STRING) callconv(.C) ?*struct_stack_st_OPENSSL_STRING { +pub fn sk_OPENSSL_STRING_dup(arg_sk: ?*const struct_stack_st_OPENSSL_STRING) callconv(.c) ?*struct_stack_st_OPENSSL_STRING { const sk = arg_sk; return @as(?*struct_stack_st_OPENSSL_STRING, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_OPENSSL_STRING_sort(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.C) void { +pub fn sk_OPENSSL_STRING_sort(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_OPENSSL_STRING_call_cmp_func); } -pub fn sk_OPENSSL_STRING_is_sorted(arg_sk: ?*const struct_stack_st_OPENSSL_STRING) callconv(.C) c_int { +pub fn sk_OPENSSL_STRING_is_sorted(arg_sk: ?*const struct_stack_st_OPENSSL_STRING) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_OPENSSL_STRING_set_cmp_func(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_comp: sk_OPENSSL_STRING_cmp_func) callconv(.C) sk_OPENSSL_STRING_cmp_func { +pub fn sk_OPENSSL_STRING_set_cmp_func(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_comp: sk_OPENSSL_STRING_cmp_func) callconv(.c) sk_OPENSSL_STRING_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_OPENSSL_STRING_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_OPENSSL_STRING_deep_copy(arg_sk: ?*const struct_stack_st_OPENSSL_STRING, arg_copy_func: sk_OPENSSL_STRING_copy_func, arg_free_func: sk_OPENSSL_STRING_free_func) callconv(.C) ?*struct_stack_st_OPENSSL_STRING { +pub fn sk_OPENSSL_STRING_deep_copy(arg_sk: ?*const struct_stack_st_OPENSSL_STRING, arg_copy_func: sk_OPENSSL_STRING_copy_func, arg_free_func: sk_OPENSSL_STRING_free_func) callconv(.c) ?*struct_stack_st_OPENSSL_STRING { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; return @as(?*struct_stack_st_OPENSSL_STRING, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_OPENSSL_STRING_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_OPENSSL_STRING_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } -pub const CRYPTO_EX_free = fn (?*anyopaque, ?*anyopaque, [*c]CRYPTO_EX_DATA, c_int, c_long, ?*anyopaque) callconv(.C) void; +pub const CRYPTO_EX_free = fn (?*anyopaque, ?*anyopaque, [*c]CRYPTO_EX_DATA, c_int, c_long, ?*anyopaque) callconv(.c) void; pub extern fn CRYPTO_cleanup_all_ex_data() void; -pub const CRYPTO_EX_dup = fn ([*c]CRYPTO_EX_DATA, [*c]const CRYPTO_EX_DATA, [*c]?*anyopaque, c_int, c_long, ?*anyopaque) callconv(.C) c_int; +pub const CRYPTO_EX_dup = fn ([*c]CRYPTO_EX_DATA, [*c]const CRYPTO_EX_DATA, [*c]?*anyopaque, c_int, c_long, ?*anyopaque) callconv(.c) c_int; pub const CRYPTO_EX_unused = c_int; pub extern fn CRYPTO_num_locks() c_int; -pub extern fn CRYPTO_set_locking_callback(func: ?*const fn (c_int, c_int, [*c]const u8, c_int) callconv(.C) void) void; -pub extern fn CRYPTO_set_add_lock_callback(func: ?*const fn ([*c]c_int, c_int, c_int, [*c]const u8, c_int) callconv(.C) c_int) void; -pub extern fn CRYPTO_get_locking_callback() ?*const fn (c_int, c_int, [*c]const u8, c_int) callconv(.C) void; +pub extern fn CRYPTO_set_locking_callback(func: ?*const fn (c_int, c_int, [*c]const u8, c_int) callconv(.c) void) void; +pub extern fn CRYPTO_set_add_lock_callback(func: ?*const fn ([*c]c_int, c_int, c_int, [*c]const u8, c_int) callconv(.c) c_int) void; +pub extern fn CRYPTO_get_locking_callback() ?*const fn (c_int, c_int, [*c]const u8, c_int) callconv(.c) void; pub extern fn CRYPTO_get_lock_name(lock_num: c_int) [*c]const u8; -pub extern fn CRYPTO_THREADID_set_callback(threadid_func: ?*const fn ([*c]CRYPTO_THREADID) callconv(.C) void) c_int; +pub extern fn CRYPTO_THREADID_set_callback(threadid_func: ?*const fn ([*c]CRYPTO_THREADID) callconv(.c) void) c_int; pub extern fn CRYPTO_THREADID_set_numeric(id: [*c]CRYPTO_THREADID, val: c_ulong) void; pub extern fn CRYPTO_THREADID_set_pointer(id: [*c]CRYPTO_THREADID, ptr: ?*anyopaque) void; pub extern fn CRYPTO_THREADID_current(id: [*c]CRYPTO_THREADID) void; -pub extern fn CRYPTO_set_id_callback(func: ?*const fn () callconv(.C) c_ulong) void; +pub extern fn CRYPTO_set_id_callback(func: ?*const fn () callconv(.c) c_ulong) void; pub const struct_CRYPTO_dynlock_value = opaque {}; pub const CRYPTO_dynlock = extern struct { references: c_int, data: ?*struct_CRYPTO_dynlock_value, }; -pub extern fn CRYPTO_set_dynlock_create_callback(dyn_create_function: ?*const fn ([*c]const u8, c_int) callconv(.C) ?*struct_CRYPTO_dynlock_value) void; -pub extern fn CRYPTO_set_dynlock_lock_callback(dyn_lock_function: ?*const fn (c_int, ?*struct_CRYPTO_dynlock_value, [*c]const u8, c_int) callconv(.C) void) void; -pub extern fn CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function: ?*const fn (?*struct_CRYPTO_dynlock_value, [*c]const u8, c_int) callconv(.C) void) void; -pub extern fn CRYPTO_get_dynlock_create_callback() ?*const fn ([*c]const u8, c_int) callconv(.C) ?*struct_CRYPTO_dynlock_value; -pub extern fn CRYPTO_get_dynlock_lock_callback() ?*const fn (c_int, ?*struct_CRYPTO_dynlock_value, [*c]const u8, c_int) callconv(.C) void; -pub extern fn CRYPTO_get_dynlock_destroy_callback() ?*const fn (?*struct_CRYPTO_dynlock_value, [*c]const u8, c_int) callconv(.C) void; +pub extern fn CRYPTO_set_dynlock_create_callback(dyn_create_function: ?*const fn ([*c]const u8, c_int) callconv(.c) ?*struct_CRYPTO_dynlock_value) void; +pub extern fn CRYPTO_set_dynlock_lock_callback(dyn_lock_function: ?*const fn (c_int, ?*struct_CRYPTO_dynlock_value, [*c]const u8, c_int) callconv(.c) void) void; +pub extern fn CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function: ?*const fn (?*struct_CRYPTO_dynlock_value, [*c]const u8, c_int) callconv(.c) void) void; +pub extern fn CRYPTO_get_dynlock_create_callback() ?*const fn ([*c]const u8, c_int) callconv(.c) ?*struct_CRYPTO_dynlock_value; +pub extern fn CRYPTO_get_dynlock_lock_callback() ?*const fn (c_int, ?*struct_CRYPTO_dynlock_value, [*c]const u8, c_int) callconv(.c) void; +pub extern fn CRYPTO_get_dynlock_destroy_callback() ?*const fn (?*struct_CRYPTO_dynlock_value, [*c]const u8, c_int) callconv(.c) void; pub const struct_stack_st_BIO = opaque {}; -pub const sk_BIO_free_func = ?*const fn ([*c]BIO) callconv(.C) void; -pub const sk_BIO_copy_func = ?*const fn ([*c]BIO) callconv(.C) [*c]BIO; -pub const sk_BIO_cmp_func = ?*const fn ([*c][*c]const BIO, [*c][*c]const BIO) callconv(.C) c_int; -pub fn sk_BIO_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_BIO_free_func = ?*const fn ([*c]BIO) callconv(.c) void; +pub const sk_BIO_copy_func = ?*const fn ([*c]BIO) callconv(.c) [*c]BIO; +pub const sk_BIO_cmp_func = ?*const fn ([*c][*c]const BIO, [*c][*c]const BIO) callconv(.c) c_int; +pub fn sk_BIO_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_BIO_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]BIO, @ptrCast(@alignCast(ptr)))); } -pub fn sk_BIO_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_BIO_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_BIO_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]BIO, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_BIO_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_BIO_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -963,94 +963,94 @@ pub fn sk_BIO_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const var b_ptr: [*c]const BIO = @as([*c]const BIO, @ptrCast(@alignCast(b.*))); return @as(sk_BIO_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_BIO_new(arg_comp: sk_BIO_cmp_func) callconv(.C) ?*struct_stack_st_BIO { +pub fn sk_BIO_new(arg_comp: sk_BIO_cmp_func) callconv(.c) ?*struct_stack_st_BIO { const comp = arg_comp; return @as(?*struct_stack_st_BIO, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_BIO_new_null() callconv(.C) ?*struct_stack_st_BIO { +pub fn sk_BIO_new_null() callconv(.c) ?*struct_stack_st_BIO { return @as(?*struct_stack_st_BIO, @ptrCast(sk_new_null())); } -pub fn sk_BIO_num(arg_sk: ?*const struct_stack_st_BIO) callconv(.C) usize { +pub fn sk_BIO_num(arg_sk: ?*const struct_stack_st_BIO) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_BIO_zero(arg_sk: ?*struct_stack_st_BIO) callconv(.C) void { +pub fn sk_BIO_zero(arg_sk: ?*struct_stack_st_BIO) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_BIO_value(arg_sk: ?*const struct_stack_st_BIO, arg_i: usize) callconv(.C) [*c]BIO { +pub fn sk_BIO_value(arg_sk: ?*const struct_stack_st_BIO, arg_i: usize) callconv(.c) [*c]BIO { const sk = arg_sk; const i = arg_i; return @as([*c]BIO, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } -pub fn sk_BIO_set(arg_sk: ?*struct_stack_st_BIO, arg_i: usize, arg_p: [*c]BIO) callconv(.C) [*c]BIO { +pub fn sk_BIO_set(arg_sk: ?*struct_stack_st_BIO, arg_i: usize, arg_p: [*c]BIO) callconv(.c) [*c]BIO { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as([*c]BIO, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } -pub fn sk_BIO_free(arg_sk: ?*struct_stack_st_BIO) callconv(.C) void { +pub fn sk_BIO_free(arg_sk: ?*struct_stack_st_BIO) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_BIO_pop_free(arg_sk: ?*struct_stack_st_BIO, arg_free_func: sk_BIO_free_func) callconv(.C) void { +pub fn sk_BIO_pop_free(arg_sk: ?*struct_stack_st_BIO, arg_free_func: sk_BIO_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_BIO_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_BIO_insert(arg_sk: ?*struct_stack_st_BIO, arg_p: [*c]BIO, arg_where: usize) callconv(.C) usize { +pub fn sk_BIO_insert(arg_sk: ?*struct_stack_st_BIO, arg_p: [*c]BIO, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_BIO_delete(arg_sk: ?*struct_stack_st_BIO, arg_where: usize) callconv(.C) [*c]BIO { +pub fn sk_BIO_delete(arg_sk: ?*struct_stack_st_BIO, arg_where: usize) callconv(.c) [*c]BIO { const sk = arg_sk; const where = arg_where; return @as([*c]BIO, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } -pub fn sk_BIO_delete_ptr(arg_sk: ?*struct_stack_st_BIO, arg_p: [*c]const BIO) callconv(.C) [*c]BIO { +pub fn sk_BIO_delete_ptr(arg_sk: ?*struct_stack_st_BIO, arg_p: [*c]const BIO) callconv(.c) [*c]BIO { const sk = arg_sk; const p = arg_p; return @as([*c]BIO, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } -pub fn sk_BIO_find(arg_sk: ?*const struct_stack_st_BIO, arg_out_index: [*c]usize, arg_p: [*c]const BIO) callconv(.C) c_int { +pub fn sk_BIO_find(arg_sk: ?*const struct_stack_st_BIO, arg_out_index: [*c]usize, arg_p: [*c]const BIO) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_BIO_call_cmp_func); } -pub fn sk_BIO_shift(arg_sk: ?*struct_stack_st_BIO) callconv(.C) [*c]BIO { +pub fn sk_BIO_shift(arg_sk: ?*struct_stack_st_BIO) callconv(.c) [*c]BIO { const sk = arg_sk; return @as([*c]BIO, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_BIO_push(arg_sk: ?*struct_stack_st_BIO, arg_p: [*c]BIO) callconv(.C) usize { +pub fn sk_BIO_push(arg_sk: ?*struct_stack_st_BIO, arg_p: [*c]BIO) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_BIO_pop(arg_sk: ?*struct_stack_st_BIO) callconv(.C) [*c]BIO { +pub fn sk_BIO_pop(arg_sk: ?*struct_stack_st_BIO) callconv(.c) [*c]BIO { const sk = arg_sk; return @as([*c]BIO, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_BIO_dup(arg_sk: ?*const struct_stack_st_BIO) callconv(.C) ?*struct_stack_st_BIO { +pub fn sk_BIO_dup(arg_sk: ?*const struct_stack_st_BIO) callconv(.c) ?*struct_stack_st_BIO { const sk = arg_sk; return @as(?*struct_stack_st_BIO, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_BIO_sort(arg_sk: ?*struct_stack_st_BIO) callconv(.C) void { +pub fn sk_BIO_sort(arg_sk: ?*struct_stack_st_BIO) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_BIO_call_cmp_func); } -pub fn sk_BIO_is_sorted(arg_sk: ?*const struct_stack_st_BIO) callconv(.C) c_int { +pub fn sk_BIO_is_sorted(arg_sk: ?*const struct_stack_st_BIO) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_BIO_set_cmp_func(arg_sk: ?*struct_stack_st_BIO, arg_comp: sk_BIO_cmp_func) callconv(.C) sk_BIO_cmp_func { +pub fn sk_BIO_set_cmp_func(arg_sk: ?*struct_stack_st_BIO, arg_comp: sk_BIO_cmp_func) callconv(.c) sk_BIO_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_BIO_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_BIO_deep_copy(arg_sk: ?*const struct_stack_st_BIO, arg_copy_func: sk_BIO_copy_func, arg_free_func: sk_BIO_free_func) callconv(.C) ?*struct_stack_st_BIO { +pub fn sk_BIO_deep_copy(arg_sk: ?*const struct_stack_st_BIO, arg_copy_func: sk_BIO_copy_func, arg_free_func: sk_BIO_free_func) callconv(.c) ?*struct_stack_st_BIO { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -1149,12 +1149,12 @@ pub extern fn BIO_rw_filename(bio: [*c]BIO, filename: [*c]const u8) c_int; pub extern fn BIO_get_new_index() c_int; pub extern fn BIO_meth_new(@"type": c_int, name: [*c]const u8) [*c]BIO_METHOD; pub extern fn BIO_meth_free(method: [*c]BIO_METHOD) void; -pub extern fn BIO_meth_set_create(method: [*c]BIO_METHOD, create: ?*const fn ([*c]BIO) callconv(.C) c_int) c_int; -pub extern fn BIO_meth_set_destroy(method: [*c]BIO_METHOD, destroy: ?*const fn ([*c]BIO) callconv(.C) c_int) c_int; -pub extern fn BIO_meth_set_write(method: [*c]BIO_METHOD, write: ?*const fn ([*c]BIO, [*c]const u8, c_int) callconv(.C) c_int) c_int; -pub extern fn BIO_meth_set_read(method: [*c]BIO_METHOD, read: ?*const fn ([*c]BIO, [*c]u8, c_int) callconv(.C) c_int) c_int; -pub extern fn BIO_meth_set_gets(method: [*c]BIO_METHOD, gets: ?*const fn ([*c]BIO, [*c]u8, c_int) callconv(.C) c_int) c_int; -pub extern fn BIO_meth_set_ctrl(method: [*c]BIO_METHOD, ctrl: ?*const fn ([*c]BIO, c_int, c_long, ?*anyopaque) callconv(.C) c_long) c_int; +pub extern fn BIO_meth_set_create(method: [*c]BIO_METHOD, create: ?*const fn ([*c]BIO) callconv(.c) c_int) c_int; +pub extern fn BIO_meth_set_destroy(method: [*c]BIO_METHOD, destroy: ?*const fn ([*c]BIO) callconv(.c) c_int) c_int; +pub extern fn BIO_meth_set_write(method: [*c]BIO_METHOD, write: ?*const fn ([*c]BIO, [*c]const u8, c_int) callconv(.c) c_int) c_int; +pub extern fn BIO_meth_set_read(method: [*c]BIO_METHOD, read: ?*const fn ([*c]BIO, [*c]u8, c_int) callconv(.c) c_int) c_int; +pub extern fn BIO_meth_set_gets(method: [*c]BIO_METHOD, gets: ?*const fn ([*c]BIO, [*c]u8, c_int) callconv(.c) c_int) c_int; +pub extern fn BIO_meth_set_ctrl(method: [*c]BIO_METHOD, ctrl: ?*const fn ([*c]BIO, c_int, c_long, ?*anyopaque) callconv(.c) c_long) c_int; pub extern fn BIO_set_data(bio: [*c]BIO, ptr: ?*anyopaque) void; pub extern fn BIO_get_data(bio: [*c]BIO) ?*anyopaque; pub extern fn BIO_set_init(bio: [*c]BIO, init: c_int) void; @@ -1164,7 +1164,7 @@ pub extern fn BIO_set_retry_special(bio: [*c]BIO) void; pub extern fn BIO_set_write_buffer_size(bio: [*c]BIO, buffer_size: c_int) c_int; pub extern fn BIO_set_shutdown(bio: [*c]BIO, shutdown: c_int) void; pub extern fn BIO_get_shutdown(bio: [*c]BIO) c_int; -pub extern fn BIO_meth_set_puts(method: [*c]BIO_METHOD, puts: ?*const fn ([*c]BIO, [*c]const u8) callconv(.C) c_int) c_int; +pub extern fn BIO_meth_set_puts(method: [*c]BIO_METHOD, puts: ?*const fn ([*c]BIO, [*c]const u8) callconv(.c) c_int) c_int; pub extern fn EVP_EncodeBlock(dst: [*c]u8, src: [*c]const u8, src_len: usize) usize; pub extern fn EVP_EncodedLength(out_len: [*c]usize, len: usize) c_int; pub extern fn EVP_DecodedLength(out_len: [*c]usize, len: usize) c_int; @@ -1446,9 +1446,9 @@ pub extern fn OPENSSL_add_all_algorithms_conf() void; pub extern fn OpenSSL_add_all_ciphers() void; pub extern fn OpenSSL_add_all_digests() void; pub extern fn EVP_cleanup() void; -pub extern fn EVP_CIPHER_do_all_sorted(callback: ?*const fn (?*const EVP_CIPHER, [*c]const u8, [*c]const u8, ?*anyopaque) callconv(.C) void, arg: ?*anyopaque) void; -pub extern fn EVP_MD_do_all_sorted(callback: *const fn (*const EVP_MD, ?[*:0]const u8, ?[*:0]const u8, *anyopaque) callconv(.C) void, arg: *anyopaque) void; -pub extern fn EVP_MD_do_all(callback: ?*const fn (?*const EVP_MD, [*c]const u8, [*c]const u8, ?*anyopaque) callconv(.C) void, arg: ?*anyopaque) void; +pub extern fn EVP_CIPHER_do_all_sorted(callback: ?*const fn (?*const EVP_CIPHER, [*c]const u8, [*c]const u8, ?*anyopaque) callconv(.c) void, arg: ?*anyopaque) void; +pub extern fn EVP_MD_do_all_sorted(callback: *const fn (*const EVP_MD, ?[*:0]const u8, ?[*:0]const u8, *anyopaque) callconv(.c) void, arg: *anyopaque) void; +pub extern fn EVP_MD_do_all(callback: ?*const fn (?*const EVP_MD, [*c]const u8, [*c]const u8, ?*anyopaque) callconv(.c) void, arg: ?*anyopaque) void; pub extern fn i2d_PrivateKey(key: [*c]const EVP_PKEY, outp: [*c][*c]u8) c_int; pub extern fn i2d_PublicKey(key: [*c]const EVP_PKEY, outp: [*c][*c]u8) c_int; pub extern fn d2i_PrivateKey(@"type": c_int, out: [*c][*c]EVP_PKEY, inp: [*c][*c]const u8, len: c_long) [*c]EVP_PKEY; @@ -1614,7 +1614,7 @@ pub extern fn BN_rand_range_ex(r: [*c]BIGNUM, min_inclusive: BN_ULONG, max_exclu pub extern fn BN_pseudo_rand_range(rnd: [*c]BIGNUM, range: [*c]const BIGNUM) c_int; pub extern fn BN_GENCB_new() [*c]BN_GENCB; pub extern fn BN_GENCB_free(callback: [*c]BN_GENCB) void; -pub extern fn BN_GENCB_set(callback: [*c]BN_GENCB, f: ?*const fn (c_int, c_int, [*c]BN_GENCB) callconv(.C) c_int, arg: ?*anyopaque) void; +pub extern fn BN_GENCB_set(callback: [*c]BN_GENCB, f: ?*const fn (c_int, c_int, [*c]BN_GENCB) callconv(.c) c_int, arg: ?*anyopaque) void; pub extern fn BN_GENCB_call(callback: [*c]BN_GENCB, event: c_int, n: c_int) c_int; pub extern fn BN_GENCB_get_arg(callback: [*c]const BN_GENCB) ?*anyopaque; pub extern fn BN_generate_prime_ex(ret: [*c]BIGNUM, bits: c_int, safe: c_int, add: [*c]const BIGNUM, rem: [*c]const BIGNUM, cb: [*c]BN_GENCB) c_int; @@ -1624,8 +1624,8 @@ pub const bn_non_prime_power_composite: c_int = 2; pub const enum_bn_primality_result_t = c_uint; pub extern fn ASN1_tag2bit(tag: c_int) c_ulong; pub extern fn ASN1_tag2str(tag: c_int) [*c]const u8; -pub const d2i_of_void = fn ([*c]?*anyopaque, [*c][*c]const u8, c_long) callconv(.C) ?*anyopaque; -pub const i2d_of_void = fn (?*const anyopaque, [*c][*c]u8) callconv(.C) c_int; +pub const d2i_of_void = fn ([*c]?*anyopaque, [*c][*c]const u8, c_long) callconv(.c) ?*anyopaque; +pub const i2d_of_void = fn (?*const anyopaque, [*c][*c]u8) callconv(.c) c_int; pub const ASN1_ITEM_EXP = ASN1_ITEM; pub extern fn ASN1_item_new(it: ?*const ASN1_ITEM) ?*ASN1_VALUE; pub extern fn ASN1_item_free(val: ?*ASN1_VALUE, it: ?*const ASN1_ITEM) void; @@ -1731,20 +1731,20 @@ pub extern fn ASN1_BIT_STRING_set_bit(str: [*c]ASN1_BIT_STRING, n: c_int, value: pub extern fn ASN1_BIT_STRING_get_bit(str: [*c]const ASN1_BIT_STRING, n: c_int) c_int; pub extern fn ASN1_BIT_STRING_check(str: [*c]const ASN1_BIT_STRING, flags: [*c]const u8, flags_len: c_int) c_int; pub const struct_stack_st_ASN1_INTEGER = opaque {}; -pub const sk_ASN1_INTEGER_free_func = ?*const fn ([*c]ASN1_INTEGER) callconv(.C) void; -pub const sk_ASN1_INTEGER_copy_func = ?*const fn ([*c]ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER; -pub const sk_ASN1_INTEGER_cmp_func = ?*const fn ([*c][*c]const ASN1_INTEGER, [*c][*c]const ASN1_INTEGER) callconv(.C) c_int; -pub fn sk_ASN1_INTEGER_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_ASN1_INTEGER_free_func = ?*const fn ([*c]ASN1_INTEGER) callconv(.c) void; +pub const sk_ASN1_INTEGER_copy_func = ?*const fn ([*c]ASN1_INTEGER) callconv(.c) [*c]ASN1_INTEGER; +pub const sk_ASN1_INTEGER_cmp_func = ?*const fn ([*c][*c]const ASN1_INTEGER, [*c][*c]const ASN1_INTEGER) callconv(.c) c_int; +pub fn sk_ASN1_INTEGER_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_ASN1_INTEGER_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]ASN1_INTEGER, @ptrCast(@alignCast(ptr)))); } -pub fn sk_ASN1_INTEGER_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_ASN1_INTEGER_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_ASN1_INTEGER_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]ASN1_INTEGER, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_ASN1_INTEGER_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_ASN1_INTEGER_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -1752,94 +1752,94 @@ pub fn sk_ASN1_INTEGER_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [ var b_ptr: [*c]const ASN1_INTEGER = @as([*c]const ASN1_INTEGER, @ptrCast(@alignCast(b.*))); return @as(sk_ASN1_INTEGER_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_ASN1_INTEGER_new(arg_comp: sk_ASN1_INTEGER_cmp_func) callconv(.C) ?*struct_stack_st_ASN1_INTEGER { +pub fn sk_ASN1_INTEGER_new(arg_comp: sk_ASN1_INTEGER_cmp_func) callconv(.c) ?*struct_stack_st_ASN1_INTEGER { const comp = arg_comp; return @as(?*struct_stack_st_ASN1_INTEGER, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_ASN1_INTEGER_new_null() callconv(.C) ?*struct_stack_st_ASN1_INTEGER { +pub fn sk_ASN1_INTEGER_new_null() callconv(.c) ?*struct_stack_st_ASN1_INTEGER { return @as(?*struct_stack_st_ASN1_INTEGER, @ptrCast(sk_new_null())); } -pub fn sk_ASN1_INTEGER_num(arg_sk: ?*const struct_stack_st_ASN1_INTEGER) callconv(.C) usize { +pub fn sk_ASN1_INTEGER_num(arg_sk: ?*const struct_stack_st_ASN1_INTEGER) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_INTEGER_zero(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.C) void { +pub fn sk_ASN1_INTEGER_zero(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_INTEGER_value(arg_sk: ?*const struct_stack_st_ASN1_INTEGER, arg_i: usize) callconv(.C) [*c]ASN1_INTEGER { +pub fn sk_ASN1_INTEGER_value(arg_sk: ?*const struct_stack_st_ASN1_INTEGER, arg_i: usize) callconv(.c) [*c]ASN1_INTEGER { const sk = arg_sk; const i = arg_i; return @as([*c]ASN1_INTEGER, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } -pub fn sk_ASN1_INTEGER_set(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_i: usize, arg_p: [*c]ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER { +pub fn sk_ASN1_INTEGER_set(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_i: usize, arg_p: [*c]ASN1_INTEGER) callconv(.c) [*c]ASN1_INTEGER { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as([*c]ASN1_INTEGER, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } -pub fn sk_ASN1_INTEGER_free(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.C) void { +pub fn sk_ASN1_INTEGER_free(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_INTEGER_pop_free(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_free_func: sk_ASN1_INTEGER_free_func) callconv(.C) void { +pub fn sk_ASN1_INTEGER_pop_free(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_free_func: sk_ASN1_INTEGER_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_INTEGER_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_ASN1_INTEGER_insert(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_p: [*c]ASN1_INTEGER, arg_where: usize) callconv(.C) usize { +pub fn sk_ASN1_INTEGER_insert(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_p: [*c]ASN1_INTEGER, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_ASN1_INTEGER_delete(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_where: usize) callconv(.C) [*c]ASN1_INTEGER { +pub fn sk_ASN1_INTEGER_delete(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_where: usize) callconv(.c) [*c]ASN1_INTEGER { const sk = arg_sk; const where = arg_where; return @as([*c]ASN1_INTEGER, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } -pub fn sk_ASN1_INTEGER_delete_ptr(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_p: [*c]const ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER { +pub fn sk_ASN1_INTEGER_delete_ptr(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_p: [*c]const ASN1_INTEGER) callconv(.c) [*c]ASN1_INTEGER { const sk = arg_sk; const p = arg_p; return @as([*c]ASN1_INTEGER, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } -pub fn sk_ASN1_INTEGER_find(arg_sk: ?*const struct_stack_st_ASN1_INTEGER, arg_out_index: [*c]usize, arg_p: [*c]const ASN1_INTEGER) callconv(.C) c_int { +pub fn sk_ASN1_INTEGER_find(arg_sk: ?*const struct_stack_st_ASN1_INTEGER, arg_out_index: [*c]usize, arg_p: [*c]const ASN1_INTEGER) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_ASN1_INTEGER_call_cmp_func); } -pub fn sk_ASN1_INTEGER_shift(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER { +pub fn sk_ASN1_INTEGER_shift(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.c) [*c]ASN1_INTEGER { const sk = arg_sk; return @as([*c]ASN1_INTEGER, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_ASN1_INTEGER_push(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_p: [*c]ASN1_INTEGER) callconv(.C) usize { +pub fn sk_ASN1_INTEGER_push(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_p: [*c]ASN1_INTEGER) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_ASN1_INTEGER_pop(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER { +pub fn sk_ASN1_INTEGER_pop(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.c) [*c]ASN1_INTEGER { const sk = arg_sk; return @as([*c]ASN1_INTEGER, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_ASN1_INTEGER_dup(arg_sk: ?*const struct_stack_st_ASN1_INTEGER) callconv(.C) ?*struct_stack_st_ASN1_INTEGER { +pub fn sk_ASN1_INTEGER_dup(arg_sk: ?*const struct_stack_st_ASN1_INTEGER) callconv(.c) ?*struct_stack_st_ASN1_INTEGER { const sk = arg_sk; return @as(?*struct_stack_st_ASN1_INTEGER, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_ASN1_INTEGER_sort(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.C) void { +pub fn sk_ASN1_INTEGER_sort(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_INTEGER_call_cmp_func); } -pub fn sk_ASN1_INTEGER_is_sorted(arg_sk: ?*const struct_stack_st_ASN1_INTEGER) callconv(.C) c_int { +pub fn sk_ASN1_INTEGER_is_sorted(arg_sk: ?*const struct_stack_st_ASN1_INTEGER) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_INTEGER_set_cmp_func(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_comp: sk_ASN1_INTEGER_cmp_func) callconv(.C) sk_ASN1_INTEGER_cmp_func { +pub fn sk_ASN1_INTEGER_set_cmp_func(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_comp: sk_ASN1_INTEGER_cmp_func) callconv(.c) sk_ASN1_INTEGER_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_ASN1_INTEGER_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_ASN1_INTEGER_deep_copy(arg_sk: ?*const struct_stack_st_ASN1_INTEGER, arg_copy_func: sk_ASN1_INTEGER_copy_func, arg_free_func: sk_ASN1_INTEGER_free_func) callconv(.C) ?*struct_stack_st_ASN1_INTEGER { +pub fn sk_ASN1_INTEGER_deep_copy(arg_sk: ?*const struct_stack_st_ASN1_INTEGER, arg_copy_func: sk_ASN1_INTEGER_copy_func, arg_free_func: sk_ASN1_INTEGER_free_func) callconv(.c) ?*struct_stack_st_ASN1_INTEGER { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -1909,20 +1909,20 @@ pub extern fn d2i_ASN1_NULL(out: [*c]?*ASN1_NULL, inp: [*c][*c]const u8, len: c_ pub extern fn i2d_ASN1_NULL(in: ?*const ASN1_NULL, outp: [*c][*c]u8) c_int; pub extern const ASN1_NULL_it: ASN1_ITEM; pub const struct_stack_st_ASN1_OBJECT = opaque {}; -pub const sk_ASN1_OBJECT_free_func = ?*const fn (?*ASN1_OBJECT) callconv(.C) void; -pub const sk_ASN1_OBJECT_copy_func = ?*const fn (?*ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT; -pub const sk_ASN1_OBJECT_cmp_func = ?*const fn ([*c]?*const ASN1_OBJECT, [*c]?*const ASN1_OBJECT) callconv(.C) c_int; -pub fn sk_ASN1_OBJECT_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_ASN1_OBJECT_free_func = ?*const fn (?*ASN1_OBJECT) callconv(.c) void; +pub const sk_ASN1_OBJECT_copy_func = ?*const fn (?*ASN1_OBJECT) callconv(.c) ?*ASN1_OBJECT; +pub const sk_ASN1_OBJECT_cmp_func = ?*const fn ([*c]?*const ASN1_OBJECT, [*c]?*const ASN1_OBJECT) callconv(.c) c_int; +pub fn sk_ASN1_OBJECT_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_ASN1_OBJECT_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*ASN1_OBJECT, @ptrCast(ptr))); } -pub fn sk_ASN1_OBJECT_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_ASN1_OBJECT_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_ASN1_OBJECT_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*ASN1_OBJECT, @ptrCast(ptr))))); } -pub fn sk_ASN1_OBJECT_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_ASN1_OBJECT_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -1930,94 +1930,94 @@ pub fn sk_ASN1_OBJECT_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [* var b_ptr: ?*const ASN1_OBJECT = @as(?*const ASN1_OBJECT, @ptrCast(b.*)); return @as(sk_ASN1_OBJECT_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_ASN1_OBJECT_new(arg_comp: sk_ASN1_OBJECT_cmp_func) callconv(.C) ?*struct_stack_st_ASN1_OBJECT { +pub fn sk_ASN1_OBJECT_new(arg_comp: sk_ASN1_OBJECT_cmp_func) callconv(.c) ?*struct_stack_st_ASN1_OBJECT { const comp = arg_comp; return @as(?*struct_stack_st_ASN1_OBJECT, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_ASN1_OBJECT_new_null() callconv(.C) ?*struct_stack_st_ASN1_OBJECT { +pub fn sk_ASN1_OBJECT_new_null() callconv(.c) ?*struct_stack_st_ASN1_OBJECT { return @as(?*struct_stack_st_ASN1_OBJECT, @ptrCast(sk_new_null())); } -pub fn sk_ASN1_OBJECT_num(arg_sk: ?*const struct_stack_st_ASN1_OBJECT) callconv(.C) usize { +pub fn sk_ASN1_OBJECT_num(arg_sk: ?*const struct_stack_st_ASN1_OBJECT) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_OBJECT_zero(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.C) void { +pub fn sk_ASN1_OBJECT_zero(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_OBJECT_value(arg_sk: ?*const struct_stack_st_ASN1_OBJECT, arg_i: usize) callconv(.C) ?*ASN1_OBJECT { +pub fn sk_ASN1_OBJECT_value(arg_sk: ?*const struct_stack_st_ASN1_OBJECT, arg_i: usize) callconv(.c) ?*ASN1_OBJECT { const sk = arg_sk; const i = arg_i; return @as(?*ASN1_OBJECT, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_ASN1_OBJECT_set(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_i: usize, arg_p: ?*ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT { +pub fn sk_ASN1_OBJECT_set(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_i: usize, arg_p: ?*ASN1_OBJECT) callconv(.c) ?*ASN1_OBJECT { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as(?*ASN1_OBJECT, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_ASN1_OBJECT_free(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.C) void { +pub fn sk_ASN1_OBJECT_free(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_OBJECT_pop_free(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_free_func: sk_ASN1_OBJECT_free_func) callconv(.C) void { +pub fn sk_ASN1_OBJECT_pop_free(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_free_func: sk_ASN1_OBJECT_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_OBJECT_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_ASN1_OBJECT_insert(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_p: ?*ASN1_OBJECT, arg_where: usize) callconv(.C) usize { +pub fn sk_ASN1_OBJECT_insert(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_p: ?*ASN1_OBJECT, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_ASN1_OBJECT_delete(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_where: usize) callconv(.C) ?*ASN1_OBJECT { +pub fn sk_ASN1_OBJECT_delete(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_where: usize) callconv(.c) ?*ASN1_OBJECT { const sk = arg_sk; const where = arg_where; return @as(?*ASN1_OBJECT, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_ASN1_OBJECT_delete_ptr(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_p: ?*const ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT { +pub fn sk_ASN1_OBJECT_delete_ptr(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_p: ?*const ASN1_OBJECT) callconv(.c) ?*ASN1_OBJECT { const sk = arg_sk; const p = arg_p; return @as(?*ASN1_OBJECT, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_ASN1_OBJECT_find(arg_sk: ?*const struct_stack_st_ASN1_OBJECT, arg_out_index: [*c]usize, arg_p: ?*const ASN1_OBJECT) callconv(.C) c_int { +pub fn sk_ASN1_OBJECT_find(arg_sk: ?*const struct_stack_st_ASN1_OBJECT, arg_out_index: [*c]usize, arg_p: ?*const ASN1_OBJECT) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_ASN1_OBJECT_call_cmp_func); } -pub fn sk_ASN1_OBJECT_shift(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT { +pub fn sk_ASN1_OBJECT_shift(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.c) ?*ASN1_OBJECT { const sk = arg_sk; return @as(?*ASN1_OBJECT, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_ASN1_OBJECT_push(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_p: ?*ASN1_OBJECT) callconv(.C) usize { +pub fn sk_ASN1_OBJECT_push(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_p: ?*ASN1_OBJECT) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_ASN1_OBJECT_pop(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT { +pub fn sk_ASN1_OBJECT_pop(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.c) ?*ASN1_OBJECT { const sk = arg_sk; return @as(?*ASN1_OBJECT, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_ASN1_OBJECT_dup(arg_sk: ?*const struct_stack_st_ASN1_OBJECT) callconv(.C) ?*struct_stack_st_ASN1_OBJECT { +pub fn sk_ASN1_OBJECT_dup(arg_sk: ?*const struct_stack_st_ASN1_OBJECT) callconv(.c) ?*struct_stack_st_ASN1_OBJECT { const sk = arg_sk; return @as(?*struct_stack_st_ASN1_OBJECT, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_ASN1_OBJECT_sort(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.C) void { +pub fn sk_ASN1_OBJECT_sort(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_OBJECT_call_cmp_func); } -pub fn sk_ASN1_OBJECT_is_sorted(arg_sk: ?*const struct_stack_st_ASN1_OBJECT) callconv(.C) c_int { +pub fn sk_ASN1_OBJECT_is_sorted(arg_sk: ?*const struct_stack_st_ASN1_OBJECT) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_OBJECT_set_cmp_func(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_comp: sk_ASN1_OBJECT_cmp_func) callconv(.C) sk_ASN1_OBJECT_cmp_func { +pub fn sk_ASN1_OBJECT_set_cmp_func(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_comp: sk_ASN1_OBJECT_cmp_func) callconv(.c) sk_ASN1_OBJECT_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_ASN1_OBJECT_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_ASN1_OBJECT_deep_copy(arg_sk: ?*const struct_stack_st_ASN1_OBJECT, arg_copy_func: sk_ASN1_OBJECT_copy_func, arg_free_func: sk_ASN1_OBJECT_free_func) callconv(.C) ?*struct_stack_st_ASN1_OBJECT { +pub fn sk_ASN1_OBJECT_deep_copy(arg_sk: ?*const struct_stack_st_ASN1_OBJECT, arg_copy_func: sk_ASN1_OBJECT_copy_func, arg_free_func: sk_ASN1_OBJECT_free_func) callconv(.c) ?*struct_stack_st_ASN1_OBJECT { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -2030,20 +2030,20 @@ pub extern fn i2d_ASN1_OBJECT(a: ?*const ASN1_OBJECT, outp: [*c][*c]u8) c_int; pub extern fn c2i_ASN1_OBJECT(out: [*c]?*ASN1_OBJECT, inp: [*c][*c]const u8, len: c_long) ?*ASN1_OBJECT; pub extern const ASN1_OBJECT_it: ASN1_ITEM; pub const struct_stack_st_ASN1_TYPE = opaque {}; -pub const sk_ASN1_TYPE_free_func = ?*const fn ([*c]ASN1_TYPE) callconv(.C) void; -pub const sk_ASN1_TYPE_copy_func = ?*const fn ([*c]ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE; -pub const sk_ASN1_TYPE_cmp_func = ?*const fn ([*c][*c]const ASN1_TYPE, [*c][*c]const ASN1_TYPE) callconv(.C) c_int; -pub fn sk_ASN1_TYPE_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_ASN1_TYPE_free_func = ?*const fn ([*c]ASN1_TYPE) callconv(.c) void; +pub const sk_ASN1_TYPE_copy_func = ?*const fn ([*c]ASN1_TYPE) callconv(.c) [*c]ASN1_TYPE; +pub const sk_ASN1_TYPE_cmp_func = ?*const fn ([*c][*c]const ASN1_TYPE, [*c][*c]const ASN1_TYPE) callconv(.c) c_int; +pub fn sk_ASN1_TYPE_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_ASN1_TYPE_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]ASN1_TYPE, @ptrCast(@alignCast(ptr)))); } -pub fn sk_ASN1_TYPE_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_ASN1_TYPE_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_ASN1_TYPE_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]ASN1_TYPE, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_ASN1_TYPE_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_ASN1_TYPE_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -2051,94 +2051,94 @@ pub fn sk_ASN1_TYPE_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c] var b_ptr: [*c]const ASN1_TYPE = @as([*c]const ASN1_TYPE, @ptrCast(@alignCast(b.*))); return @as(sk_ASN1_TYPE_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_ASN1_TYPE_new(arg_comp: sk_ASN1_TYPE_cmp_func) callconv(.C) ?*struct_stack_st_ASN1_TYPE { +pub fn sk_ASN1_TYPE_new(arg_comp: sk_ASN1_TYPE_cmp_func) callconv(.c) ?*struct_stack_st_ASN1_TYPE { const comp = arg_comp; return @as(?*struct_stack_st_ASN1_TYPE, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_ASN1_TYPE_new_null() callconv(.C) ?*struct_stack_st_ASN1_TYPE { +pub fn sk_ASN1_TYPE_new_null() callconv(.c) ?*struct_stack_st_ASN1_TYPE { return @as(?*struct_stack_st_ASN1_TYPE, @ptrCast(sk_new_null())); } -pub fn sk_ASN1_TYPE_num(arg_sk: ?*const struct_stack_st_ASN1_TYPE) callconv(.C) usize { +pub fn sk_ASN1_TYPE_num(arg_sk: ?*const struct_stack_st_ASN1_TYPE) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_TYPE_zero(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.C) void { +pub fn sk_ASN1_TYPE_zero(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_TYPE_value(arg_sk: ?*const struct_stack_st_ASN1_TYPE, arg_i: usize) callconv(.C) [*c]ASN1_TYPE { +pub fn sk_ASN1_TYPE_value(arg_sk: ?*const struct_stack_st_ASN1_TYPE, arg_i: usize) callconv(.c) [*c]ASN1_TYPE { const sk = arg_sk; const i = arg_i; return @as([*c]ASN1_TYPE, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } -pub fn sk_ASN1_TYPE_set(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_i: usize, arg_p: [*c]ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE { +pub fn sk_ASN1_TYPE_set(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_i: usize, arg_p: [*c]ASN1_TYPE) callconv(.c) [*c]ASN1_TYPE { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as([*c]ASN1_TYPE, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } -pub fn sk_ASN1_TYPE_free(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.C) void { +pub fn sk_ASN1_TYPE_free(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_TYPE_pop_free(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_free_func: sk_ASN1_TYPE_free_func) callconv(.C) void { +pub fn sk_ASN1_TYPE_pop_free(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_free_func: sk_ASN1_TYPE_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_TYPE_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_ASN1_TYPE_insert(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_p: [*c]ASN1_TYPE, arg_where: usize) callconv(.C) usize { +pub fn sk_ASN1_TYPE_insert(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_p: [*c]ASN1_TYPE, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_ASN1_TYPE_delete(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_where: usize) callconv(.C) [*c]ASN1_TYPE { +pub fn sk_ASN1_TYPE_delete(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_where: usize) callconv(.c) [*c]ASN1_TYPE { const sk = arg_sk; const where = arg_where; return @as([*c]ASN1_TYPE, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } -pub fn sk_ASN1_TYPE_delete_ptr(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_p: [*c]const ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE { +pub fn sk_ASN1_TYPE_delete_ptr(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_p: [*c]const ASN1_TYPE) callconv(.c) [*c]ASN1_TYPE { const sk = arg_sk; const p = arg_p; return @as([*c]ASN1_TYPE, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } -pub fn sk_ASN1_TYPE_find(arg_sk: ?*const struct_stack_st_ASN1_TYPE, arg_out_index: [*c]usize, arg_p: [*c]const ASN1_TYPE) callconv(.C) c_int { +pub fn sk_ASN1_TYPE_find(arg_sk: ?*const struct_stack_st_ASN1_TYPE, arg_out_index: [*c]usize, arg_p: [*c]const ASN1_TYPE) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_ASN1_TYPE_call_cmp_func); } -pub fn sk_ASN1_TYPE_shift(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE { +pub fn sk_ASN1_TYPE_shift(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.c) [*c]ASN1_TYPE { const sk = arg_sk; return @as([*c]ASN1_TYPE, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_ASN1_TYPE_push(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_p: [*c]ASN1_TYPE) callconv(.C) usize { +pub fn sk_ASN1_TYPE_push(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_p: [*c]ASN1_TYPE) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_ASN1_TYPE_pop(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE { +pub fn sk_ASN1_TYPE_pop(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.c) [*c]ASN1_TYPE { const sk = arg_sk; return @as([*c]ASN1_TYPE, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_ASN1_TYPE_dup(arg_sk: ?*const struct_stack_st_ASN1_TYPE) callconv(.C) ?*struct_stack_st_ASN1_TYPE { +pub fn sk_ASN1_TYPE_dup(arg_sk: ?*const struct_stack_st_ASN1_TYPE) callconv(.c) ?*struct_stack_st_ASN1_TYPE { const sk = arg_sk; return @as(?*struct_stack_st_ASN1_TYPE, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_ASN1_TYPE_sort(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.C) void { +pub fn sk_ASN1_TYPE_sort(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_TYPE_call_cmp_func); } -pub fn sk_ASN1_TYPE_is_sorted(arg_sk: ?*const struct_stack_st_ASN1_TYPE) callconv(.C) c_int { +pub fn sk_ASN1_TYPE_is_sorted(arg_sk: ?*const struct_stack_st_ASN1_TYPE) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_TYPE_set_cmp_func(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_comp: sk_ASN1_TYPE_cmp_func) callconv(.C) sk_ASN1_TYPE_cmp_func { +pub fn sk_ASN1_TYPE_set_cmp_func(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_comp: sk_ASN1_TYPE_cmp_func) callconv(.c) sk_ASN1_TYPE_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_ASN1_TYPE_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_ASN1_TYPE_deep_copy(arg_sk: ?*const struct_stack_st_ASN1_TYPE, arg_copy_func: sk_ASN1_TYPE_copy_func, arg_free_func: sk_ASN1_TYPE_free_func) callconv(.C) ?*struct_stack_st_ASN1_TYPE { +pub fn sk_ASN1_TYPE_deep_copy(arg_sk: ?*const struct_stack_st_ASN1_TYPE, arg_copy_func: sk_ASN1_TYPE_copy_func, arg_free_func: sk_ASN1_TYPE_free_func) callconv(.c) ?*struct_stack_st_ASN1_TYPE { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -2218,7 +2218,7 @@ pub extern fn DH_check_pub_key(dh: ?*const DH, pub_key: [*c]const BIGNUM, out_fl pub extern fn DHparams_dup(dh: ?*const DH) ?*DH; pub extern fn DH_parse_parameters(cbs: [*c]CBS) ?*DH; pub extern fn DH_marshal_parameters(cbb: ?*CBB, dh: ?*const DH) c_int; -pub extern fn DH_generate_parameters(prime_len: c_int, generator: c_int, callback: ?*const fn (c_int, c_int, ?*anyopaque) callconv(.C) void, cb_arg: ?*anyopaque) ?*DH; +pub extern fn DH_generate_parameters(prime_len: c_int, generator: c_int, callback: ?*const fn (c_int, c_int, ?*anyopaque) callconv(.c) void, cb_arg: ?*anyopaque) ?*DH; pub extern fn d2i_DHparams(ret: [*c]?*DH, inp: [*c][*c]const u8, len: c_long) ?*DH; pub extern fn i2d_DHparams(in: ?*const DH, outp: [*c][*c]u8) c_int; pub extern fn DH_compute_key(out: [*c]u8, peers_key: [*c]const BIGNUM, dh: ?*DH) c_int; @@ -2277,7 +2277,7 @@ pub extern fn d2i_DSAPrivateKey(out: [*c][*c]DSA, inp: [*c][*c]const u8, len: c_ pub extern fn i2d_DSAPrivateKey(in: [*c]const DSA, outp: [*c][*c]u8) c_int; pub extern fn d2i_DSAparams(out: [*c][*c]DSA, inp: [*c][*c]const u8, len: c_long) [*c]DSA; pub extern fn i2d_DSAparams(in: [*c]const DSA, outp: [*c][*c]u8) c_int; -pub extern fn DSA_generate_parameters(bits: c_int, seed: [*c]u8, seed_len: c_int, counter_ret: [*c]c_int, h_ret: [*c]c_ulong, callback: ?*const fn (c_int, c_int, ?*anyopaque) callconv(.C) void, cb_arg: ?*anyopaque) [*c]DSA; +pub extern fn DSA_generate_parameters(bits: c_int, seed: [*c]u8, seed_len: c_int, counter_ret: [*c]c_int, h_ret: [*c]c_ulong, callback: ?*const fn (c_int, c_int, ?*anyopaque) callconv(.c) void, cb_arg: ?*anyopaque) [*c]DSA; pub const POINT_CONVERSION_COMPRESSED: c_int = 2; pub const POINT_CONVERSION_UNCOMPRESSED: c_int = 4; pub const POINT_CONVERSION_HYBRID: c_int = 6; @@ -2375,7 +2375,7 @@ pub extern fn d2i_ECParameters(out_key: [*c]?*EC_KEY, inp: [*c][*c]const u8, len pub extern fn i2d_ECParameters(key: ?*const EC_KEY, outp: [*c][*c]u8) c_int; pub extern fn o2i_ECPublicKey(out_key: [*c]?*EC_KEY, inp: [*c][*c]const u8, len: c_long) ?*EC_KEY; pub extern fn i2o_ECPublicKey(key: ?*const EC_KEY, outp: [*c][*c]u8) c_int; -pub extern fn ECDH_compute_key(out: ?*anyopaque, outlen: usize, pub_key: ?*const EC_POINT, priv_key: ?*const EC_KEY, kdf: ?*const fn (?*const anyopaque, usize, ?*anyopaque, [*c]usize) callconv(.C) ?*anyopaque) c_int; +pub extern fn ECDH_compute_key(out: ?*anyopaque, outlen: usize, pub_key: ?*const EC_POINT, priv_key: ?*const EC_KEY, kdf: ?*const fn (?*const anyopaque, usize, ?*anyopaque, [*c]usize) callconv(.c) ?*anyopaque) c_int; pub extern fn ECDH_compute_key_fips(out: [*c]u8, out_len: usize, pub_key: ?*const EC_POINT, priv_key: ?*const EC_KEY) c_int; pub extern fn ECDSA_sign(@"type": c_int, digest: [*c]const u8, digest_len: usize, sig: [*c]u8, sig_len: [*c]c_uint, key: ?*const EC_KEY) c_int; pub extern fn ECDSA_verify(@"type": c_int, digest: [*c]const u8, digest_len: usize, sig: [*c]const u8, sig_len: usize, key: ?*const EC_KEY) c_int; @@ -2498,23 +2498,23 @@ pub const struct_obj_name_st = extern struct { data: [*c]const u8, }; pub const OBJ_NAME = struct_obj_name_st; -pub extern fn OBJ_NAME_do_all_sorted(@"type": c_int, callback: ?*const fn ([*c]const OBJ_NAME, ?*anyopaque) callconv(.C) void, arg: ?*anyopaque) void; -pub extern fn OBJ_NAME_do_all(@"type": c_int, callback: ?*const fn ([*c]const OBJ_NAME, ?*anyopaque) callconv(.C) void, arg: ?*anyopaque) void; +pub extern fn OBJ_NAME_do_all_sorted(@"type": c_int, callback: ?*const fn ([*c]const OBJ_NAME, ?*anyopaque) callconv(.c) void, arg: ?*anyopaque) void; +pub extern fn OBJ_NAME_do_all(@"type": c_int, callback: ?*const fn ([*c]const OBJ_NAME, ?*anyopaque) callconv(.c) void, arg: ?*anyopaque) void; pub extern fn OBJ_cleanup() void; -pub const sk_CRYPTO_BUFFER_free_func = ?*const fn (?*CRYPTO_BUFFER) callconv(.C) void; -pub const sk_CRYPTO_BUFFER_copy_func = ?*const fn (?*CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER; -pub const sk_CRYPTO_BUFFER_cmp_func = ?*const fn ([*c]?*const CRYPTO_BUFFER, [*c]?*const CRYPTO_BUFFER) callconv(.C) c_int; -pub fn sk_CRYPTO_BUFFER_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_CRYPTO_BUFFER_free_func = ?*const fn (?*CRYPTO_BUFFER) callconv(.c) void; +pub const sk_CRYPTO_BUFFER_copy_func = ?*const fn (?*CRYPTO_BUFFER) callconv(.c) ?*CRYPTO_BUFFER; +pub const sk_CRYPTO_BUFFER_cmp_func = ?*const fn ([*c]?*const CRYPTO_BUFFER, [*c]?*const CRYPTO_BUFFER) callconv(.c) c_int; +pub fn sk_CRYPTO_BUFFER_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_CRYPTO_BUFFER_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*CRYPTO_BUFFER, @ptrCast(ptr))); } -pub fn sk_CRYPTO_BUFFER_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_CRYPTO_BUFFER_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_CRYPTO_BUFFER_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*CRYPTO_BUFFER, @ptrCast(ptr))))); } -pub fn sk_CRYPTO_BUFFER_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_CRYPTO_BUFFER_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -2522,94 +2522,94 @@ pub fn sk_CRYPTO_BUFFER_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: var b_ptr: ?*const CRYPTO_BUFFER = @as(?*const CRYPTO_BUFFER, @ptrCast(b.*)); return @as(sk_CRYPTO_BUFFER_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_CRYPTO_BUFFER_new(arg_comp: sk_CRYPTO_BUFFER_cmp_func) callconv(.C) ?*struct_stack_st_CRYPTO_BUFFER { +pub fn sk_CRYPTO_BUFFER_new(arg_comp: sk_CRYPTO_BUFFER_cmp_func) callconv(.c) ?*struct_stack_st_CRYPTO_BUFFER { const comp = arg_comp; return @as(?*struct_stack_st_CRYPTO_BUFFER, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_CRYPTO_BUFFER_new_null() callconv(.C) ?*struct_stack_st_CRYPTO_BUFFER { +pub fn sk_CRYPTO_BUFFER_new_null() callconv(.c) ?*struct_stack_st_CRYPTO_BUFFER { return @as(?*struct_stack_st_CRYPTO_BUFFER, @ptrCast(sk_new_null())); } -pub fn sk_CRYPTO_BUFFER_num(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER) callconv(.C) usize { +pub fn sk_CRYPTO_BUFFER_num(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_CRYPTO_BUFFER_zero(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.C) void { +pub fn sk_CRYPTO_BUFFER_zero(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_CRYPTO_BUFFER_value(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER, arg_i: usize) callconv(.C) ?*CRYPTO_BUFFER { +pub fn sk_CRYPTO_BUFFER_value(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER, arg_i: usize) callconv(.c) ?*CRYPTO_BUFFER { const sk = arg_sk; const i = arg_i; return @as(?*CRYPTO_BUFFER, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_CRYPTO_BUFFER_set(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_i: usize, arg_p: ?*CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER { +pub fn sk_CRYPTO_BUFFER_set(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_i: usize, arg_p: ?*CRYPTO_BUFFER) callconv(.c) ?*CRYPTO_BUFFER { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as(?*CRYPTO_BUFFER, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_CRYPTO_BUFFER_free(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.C) void { +pub fn sk_CRYPTO_BUFFER_free(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_CRYPTO_BUFFER_pop_free(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_free_func: sk_CRYPTO_BUFFER_free_func) callconv(.C) void { +pub fn sk_CRYPTO_BUFFER_pop_free(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_free_func: sk_CRYPTO_BUFFER_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_CRYPTO_BUFFER_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_CRYPTO_BUFFER_insert(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_p: ?*CRYPTO_BUFFER, arg_where: usize) callconv(.C) usize { +pub fn sk_CRYPTO_BUFFER_insert(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_p: ?*CRYPTO_BUFFER, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_CRYPTO_BUFFER_delete(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_where: usize) callconv(.C) ?*CRYPTO_BUFFER { +pub fn sk_CRYPTO_BUFFER_delete(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_where: usize) callconv(.c) ?*CRYPTO_BUFFER { const sk = arg_sk; const where = arg_where; return @as(?*CRYPTO_BUFFER, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_CRYPTO_BUFFER_delete_ptr(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_p: ?*const CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER { +pub fn sk_CRYPTO_BUFFER_delete_ptr(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_p: ?*const CRYPTO_BUFFER) callconv(.c) ?*CRYPTO_BUFFER { const sk = arg_sk; const p = arg_p; return @as(?*CRYPTO_BUFFER, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_CRYPTO_BUFFER_find(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER, arg_out_index: [*c]usize, arg_p: ?*const CRYPTO_BUFFER) callconv(.C) c_int { +pub fn sk_CRYPTO_BUFFER_find(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER, arg_out_index: [*c]usize, arg_p: ?*const CRYPTO_BUFFER) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_CRYPTO_BUFFER_call_cmp_func); } -pub fn sk_CRYPTO_BUFFER_shift(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER { +pub fn sk_CRYPTO_BUFFER_shift(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.c) ?*CRYPTO_BUFFER { const sk = arg_sk; return @as(?*CRYPTO_BUFFER, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_CRYPTO_BUFFER_push(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_p: ?*CRYPTO_BUFFER) callconv(.C) usize { +pub fn sk_CRYPTO_BUFFER_push(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_p: ?*CRYPTO_BUFFER) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_CRYPTO_BUFFER_pop(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER { +pub fn sk_CRYPTO_BUFFER_pop(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.c) ?*CRYPTO_BUFFER { const sk = arg_sk; return @as(?*CRYPTO_BUFFER, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_CRYPTO_BUFFER_dup(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER) callconv(.C) ?*struct_stack_st_CRYPTO_BUFFER { +pub fn sk_CRYPTO_BUFFER_dup(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER) callconv(.c) ?*struct_stack_st_CRYPTO_BUFFER { const sk = arg_sk; return @as(?*struct_stack_st_CRYPTO_BUFFER, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_CRYPTO_BUFFER_sort(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.C) void { +pub fn sk_CRYPTO_BUFFER_sort(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_CRYPTO_BUFFER_call_cmp_func); } -pub fn sk_CRYPTO_BUFFER_is_sorted(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER) callconv(.C) c_int { +pub fn sk_CRYPTO_BUFFER_is_sorted(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_CRYPTO_BUFFER_set_cmp_func(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_comp: sk_CRYPTO_BUFFER_cmp_func) callconv(.C) sk_CRYPTO_BUFFER_cmp_func { +pub fn sk_CRYPTO_BUFFER_set_cmp_func(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_comp: sk_CRYPTO_BUFFER_cmp_func) callconv(.c) sk_CRYPTO_BUFFER_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_CRYPTO_BUFFER_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_CRYPTO_BUFFER_deep_copy(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER, arg_copy_func: sk_CRYPTO_BUFFER_copy_func, arg_free_func: sk_CRYPTO_BUFFER_free_func) callconv(.C) ?*struct_stack_st_CRYPTO_BUFFER { +pub fn sk_CRYPTO_BUFFER_deep_copy(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER, arg_copy_func: sk_CRYPTO_BUFFER_copy_func, arg_free_func: sk_CRYPTO_BUFFER_free_func) callconv(.c) ?*struct_stack_st_CRYPTO_BUFFER { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -2721,20 +2721,20 @@ pub extern fn SHA512_256_Init(sha: [*c]SHA512_CTX) c_int; pub extern fn SHA512_256_Update(sha: [*c]SHA512_CTX, data: ?*const anyopaque, len: usize) c_int; pub extern fn SHA512_256_Final(out: [*c]u8, sha: [*c]SHA512_CTX) c_int; pub extern fn SHA512_256(data: [*c]const u8, len: usize, out: [*c]u8) [*c]u8; -pub const sk_X509_free_func = ?*const fn (?*X509) callconv(.C) void; -pub const sk_X509_copy_func = ?*const fn (?*X509) callconv(.C) ?*X509; -pub const sk_X509_cmp_func = ?*const fn ([*c]?*const X509, [*c]?*const X509) callconv(.C) c_int; -pub fn sk_X509_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_free_func = ?*const fn (?*X509) callconv(.c) void; +pub const sk_X509_copy_func = ?*const fn (?*X509) callconv(.c) ?*X509; +pub const sk_X509_cmp_func = ?*const fn ([*c]?*const X509, [*c]?*const X509) callconv(.c) c_int; +pub fn sk_X509_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509, @ptrCast(ptr))); } -pub fn sk_X509_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_X509_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509, @ptrCast(ptr))))); } -pub fn sk_X509_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -2742,102 +2742,102 @@ pub fn sk_X509_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const var b_ptr: ?*const X509 = @as(?*const X509, @ptrCast(b.*)); return @as(sk_X509_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_new(arg_comp: sk_X509_cmp_func) callconv(.C) ?*struct_stack_st_X509 { +pub fn sk_X509_new(arg_comp: sk_X509_cmp_func) callconv(.c) ?*struct_stack_st_X509 { const comp = arg_comp; return @as(?*struct_stack_st_X509, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_new_null() callconv(.C) ?*struct_stack_st_X509 { +pub fn sk_X509_new_null() callconv(.c) ?*struct_stack_st_X509 { return @as(?*struct_stack_st_X509, @ptrCast(sk_new_null())); } -pub fn sk_X509_num(arg_sk: ?*const struct_stack_st_X509) callconv(.C) usize { +pub fn sk_X509_num(arg_sk: ?*const struct_stack_st_X509) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_zero(arg_sk: ?*struct_stack_st_X509) callconv(.C) void { +pub fn sk_X509_zero(arg_sk: ?*struct_stack_st_X509) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_value(arg_sk: ?*const struct_stack_st_X509, arg_i: usize) callconv(.C) ?*X509 { +pub fn sk_X509_value(arg_sk: ?*const struct_stack_st_X509, arg_i: usize) callconv(.c) ?*X509 { const sk = arg_sk; const i = arg_i; return @as(?*X509, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_set(arg_sk: ?*struct_stack_st_X509, arg_i: usize, arg_p: ?*X509) callconv(.C) ?*X509 { +pub fn sk_X509_set(arg_sk: ?*struct_stack_st_X509, arg_i: usize, arg_p: ?*X509) callconv(.c) ?*X509 { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as(?*X509, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_X509_free(arg_sk: ?*struct_stack_st_X509) callconv(.C) void { +pub fn sk_X509_free(arg_sk: ?*struct_stack_st_X509) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_pop_free(arg_sk: ?*struct_stack_st_X509, arg_free_func: sk_X509_free_func) callconv(.C) void { +pub fn sk_X509_pop_free(arg_sk: ?*struct_stack_st_X509, arg_free_func: sk_X509_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_insert(arg_sk: ?*struct_stack_st_X509, arg_p: ?*X509, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_insert(arg_sk: ?*struct_stack_st_X509, arg_p: ?*X509, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_delete(arg_sk: ?*struct_stack_st_X509, arg_where: usize) callconv(.C) ?*X509 { +pub fn sk_X509_delete(arg_sk: ?*struct_stack_st_X509, arg_where: usize) callconv(.c) ?*X509 { const sk = arg_sk; const where = arg_where; return @as(?*X509, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_delete_ptr(arg_sk: ?*struct_stack_st_X509, arg_p: ?*const X509) callconv(.C) ?*X509 { +pub fn sk_X509_delete_ptr(arg_sk: ?*struct_stack_st_X509, arg_p: ?*const X509) callconv(.c) ?*X509 { const sk = arg_sk; const p = arg_p; return @as(?*X509, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_find(arg_sk: ?*const struct_stack_st_X509, arg_out_index: [*c]usize, arg_p: ?*const X509) callconv(.C) c_int { +pub fn sk_X509_find(arg_sk: ?*const struct_stack_st_X509, arg_out_index: [*c]usize, arg_p: ?*const X509) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_call_cmp_func); } -pub fn sk_X509_shift(arg_sk: ?*struct_stack_st_X509) callconv(.C) ?*X509 { +pub fn sk_X509_shift(arg_sk: ?*struct_stack_st_X509) callconv(.c) ?*X509 { const sk = arg_sk; return @as(?*X509, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_push(arg_sk: ?*struct_stack_st_X509, arg_p: ?*X509) callconv(.C) usize { +pub fn sk_X509_push(arg_sk: ?*struct_stack_st_X509, arg_p: ?*X509) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_pop(arg_sk: ?*struct_stack_st_X509) callconv(.C) ?*X509 { +pub fn sk_X509_pop(arg_sk: ?*struct_stack_st_X509) callconv(.c) ?*X509 { const sk = arg_sk; return @as(?*X509, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_dup(arg_sk: ?*const struct_stack_st_X509) callconv(.C) ?*struct_stack_st_X509 { +pub fn sk_X509_dup(arg_sk: ?*const struct_stack_st_X509) callconv(.c) ?*struct_stack_st_X509 { const sk = arg_sk; return @as(?*struct_stack_st_X509, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_sort(arg_sk: ?*struct_stack_st_X509) callconv(.C) void { +pub fn sk_X509_sort(arg_sk: ?*struct_stack_st_X509) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_call_cmp_func); } -pub fn sk_X509_is_sorted(arg_sk: ?*const struct_stack_st_X509) callconv(.C) c_int { +pub fn sk_X509_is_sorted(arg_sk: ?*const struct_stack_st_X509) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_set_cmp_func(arg_sk: ?*struct_stack_st_X509, arg_comp: sk_X509_cmp_func) callconv(.C) sk_X509_cmp_func { +pub fn sk_X509_set_cmp_func(arg_sk: ?*struct_stack_st_X509, arg_comp: sk_X509_cmp_func) callconv(.c) sk_X509_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_deep_copy(arg_sk: ?*const struct_stack_st_X509, arg_copy_func: sk_X509_copy_func, arg_free_func: sk_X509_free_func) callconv(.C) ?*struct_stack_st_X509 { +pub fn sk_X509_deep_copy(arg_sk: ?*const struct_stack_st_X509, arg_copy_func: sk_X509_copy_func, arg_free_func: sk_X509_free_func) callconv(.c) ?*struct_stack_st_X509 { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; return @as(?*struct_stack_st_X509, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } -pub const stack_free_func = ?*const fn (?*anyopaque) callconv(.C) void; -pub const stack_copy_func = ?*const fn (?*anyopaque) callconv(.C) ?*anyopaque; -pub const stack_cmp_func = ?*const fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int; +pub const stack_free_func = ?*const fn (?*anyopaque) callconv(.c) void; +pub const stack_copy_func = ?*const fn (?*anyopaque) callconv(.c) ?*anyopaque; +pub const stack_cmp_func = ?*const fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.c) c_int; pub extern const X509_it: ASN1_ITEM; pub extern fn X509_up_ref(x509: ?*X509) c_int; pub extern fn X509_chain_up_ref(chain: ?*struct_stack_st_X509) ?*struct_stack_st_X509; @@ -2890,10 +2890,10 @@ pub extern fn X509_alias_set1(x509: ?*X509, name: [*c]const u8, len: c_int) c_in pub extern fn X509_keyid_set1(x509: ?*X509, id: [*c]const u8, len: c_int) c_int; pub extern fn X509_alias_get0(x509: ?*X509, out_len: [*c]c_int) [*c]u8; pub extern fn X509_keyid_get0(x509: ?*X509, out_len: [*c]c_int) [*c]u8; -pub const sk_X509_CRL_free_func = ?*const fn (?*X509_CRL) callconv(.C) void; -pub const sk_X509_CRL_copy_func = ?*const fn (?*X509_CRL) callconv(.C) ?*X509_CRL; -pub const sk_X509_CRL_cmp_func = ?*const fn ([*c]?*const X509_CRL, [*c]?*const X509_CRL) callconv(.C) c_int; -pub fn sk_X509_CRL_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_CRL_free_func = ?*const fn (?*X509_CRL) callconv(.c) void; +pub const sk_X509_CRL_copy_func = ?*const fn (?*X509_CRL) callconv(.c) ?*X509_CRL; +pub const sk_X509_CRL_cmp_func = ?*const fn ([*c]?*const X509_CRL, [*c]?*const X509_CRL) callconv(.c) c_int; +pub fn sk_X509_CRL_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_CRL_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_CRL, @ptrCast(ptr))); @@ -2902,7 +2902,7 @@ pub extern fn X509V3_EXT_d2i(ex: ?*X509_EXTENSION) ?*anyopaque; pub extern fn X509V3_EXT_get(ex: ?*X509_EXTENSION) ?*X509V3_EXT_METHOD; pub const X509V3_EXT_METHOD = opaque {}; pub extern fn X509V3_EXT_get_nid(ndi: c_int) ?*X509V3_EXT_METHOD; -pub fn sk_X509_CRL_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_CRL_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -2911,9 +2911,9 @@ pub fn sk_X509_CRL_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]c return @as(sk_X509_CRL_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } pub const struct_stack_st_X509_REVOKED = opaque {}; -pub const stack_X509_REVOKED_free_func = ?*const fn ([*c]X509_REVOKED) callconv(.C) void; -pub const stack_X509_REVOKED_copy_func = ?*const fn ([*c]X509_REVOKED) callconv(.C) [*c]X509_REVOKED; -pub const stack_X509_REVOKED_cmp_func = ?*const fn ([*c][*c]const X509_REVOKED, [*c][*c]const X509_REVOKED) callconv(.C) c_int; +pub const stack_X509_REVOKED_free_func = ?*const fn ([*c]X509_REVOKED) callconv(.c) void; +pub const stack_X509_REVOKED_copy_func = ?*const fn ([*c]X509_REVOKED) callconv(.c) [*c]X509_REVOKED; +pub const stack_X509_REVOKED_cmp_func = ?*const fn ([*c][*c]const X509_REVOKED, [*c][*c]const X509_REVOKED) callconv(.c) c_int; pub const struct_stack_st_GENERAL_NAMES = opaque {}; pub const struct_stack_st_ACCESS_DESCRIPTION = opaque {}; @@ -2959,159 +2959,159 @@ pub const ACCESS_DESCRIPTION = extern struct { location: *GENERAL_NAME, }; -pub fn sk_GENERAL_NAME_num(arg_sk: ?*const struct_stack_st_GENERAL_NAME) callconv(.C) usize { +pub fn sk_GENERAL_NAME_num(arg_sk: ?*const struct_stack_st_GENERAL_NAME) callconv(.c) usize { const sk = arg_sk; - return sk_num(@as([*c]const _STACK, @alignCast(@ptrCast(sk)))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_GENERAL_NAME_free(arg_sk: ?*struct_stack_st_GENERAL_NAME) callconv(.C) void { +pub fn sk_GENERAL_NAME_free(arg_sk: ?*struct_stack_st_GENERAL_NAME) callconv(.c) void { const sk = arg_sk; - sk_free(@as([*c]_STACK, @alignCast(@ptrCast(sk)))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub const stack_GENERAL_NAME_free_func = ?*const fn (?*struct_stack_st_GENERAL_NAME) callconv(.C) void; +pub const stack_GENERAL_NAME_free_func = ?*const fn (?*struct_stack_st_GENERAL_NAME) callconv(.c) void; -pub fn sk_GENERAL_NAME_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub fn sk_GENERAL_NAME_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(stack_GENERAL_NAME_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*struct_stack_st_GENERAL_NAME, @ptrCast(ptr))); } -pub fn sk_GENERAL_NAME_pop_free(arg_sk: ?*struct_stack_st_GENERAL_NAME, arg_free_func: stack_GENERAL_NAME_free_func) callconv(.C) void { +pub fn sk_GENERAL_NAME_pop_free(arg_sk: ?*struct_stack_st_GENERAL_NAME, arg_free_func: stack_GENERAL_NAME_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; - sk_pop_free_ex(@as([*c]_STACK, @alignCast(@ptrCast(sk))), sk_GENERAL_NAME_call_free_func, @as(stack_free_func, @ptrCast(free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), sk_GENERAL_NAME_call_free_func, @as(stack_free_func, @ptrCast(free_func))); } -pub fn sk_GENERAL_NAME_value(arg_sk: ?*const struct_stack_st_GENERAL_NAME, arg_i: usize) callconv(.C) ?*GENERAL_NAME { +pub fn sk_GENERAL_NAME_value(arg_sk: ?*const struct_stack_st_GENERAL_NAME, arg_i: usize) callconv(.c) ?*GENERAL_NAME { const sk = arg_sk; const i = arg_i; - return @alignCast(@ptrCast(sk_value(@as([*c]const _STACK, @alignCast(@ptrCast(sk))), i))); + return @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_ACCESS_DESCRIPTION_num(arg_sk: ?*const AUTHORITY_INFO_ACCESS) callconv(.C) usize { +pub fn sk_ACCESS_DESCRIPTION_num(arg_sk: ?*const AUTHORITY_INFO_ACCESS) callconv(.c) usize { const sk = arg_sk; - return sk_num(@as([*c]const _STACK, @alignCast(@ptrCast(sk)))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ACCESS_DESCRIPTION_free(arg_sk: ?*AUTHORITY_INFO_ACCESS) callconv(.C) void { +pub fn sk_ACCESS_DESCRIPTION_free(arg_sk: ?*AUTHORITY_INFO_ACCESS) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub const stack_ACCESS_DESCRIPTION_free_func = ?*const fn (?*AUTHORITY_INFO_ACCESS) callconv(.C) void; +pub const stack_ACCESS_DESCRIPTION_free_func = ?*const fn (?*AUTHORITY_INFO_ACCESS) callconv(.c) void; -pub fn sk_ACCESS_DESCRIPTION_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub fn sk_ACCESS_DESCRIPTION_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(stack_ACCESS_DESCRIPTION_free_func, @ptrCast(free_func)).?(@as(?*AUTHORITY_INFO_ACCESS, @ptrCast(ptr))); } -pub fn sk_ACCESS_DESCRIPTION_pop_free(arg_sk: ?*AUTHORITY_INFO_ACCESS, arg_free_func: stack_ACCESS_DESCRIPTION_free_func) callconv(.C) void { +pub fn sk_ACCESS_DESCRIPTION_pop_free(arg_sk: ?*AUTHORITY_INFO_ACCESS, arg_free_func: stack_ACCESS_DESCRIPTION_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; - sk_pop_free_ex(@as([*c]_STACK, @alignCast(@ptrCast(sk))), sk_ACCESS_DESCRIPTION_call_free_func, @as(stack_free_func, @ptrCast(free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), sk_ACCESS_DESCRIPTION_call_free_func, @as(stack_free_func, @ptrCast(free_func))); } pub extern fn X509_get_serialNumber(x509: ?*X509) [*c]ASN1_INTEGER; -pub fn sk_ACCESS_DESCRIPTION_value(arg_sk: ?*const AUTHORITY_INFO_ACCESS, arg_i: usize) callconv(.C) ?*ACCESS_DESCRIPTION { +pub fn sk_ACCESS_DESCRIPTION_value(arg_sk: ?*const AUTHORITY_INFO_ACCESS, arg_i: usize) callconv(.c) ?*ACCESS_DESCRIPTION { const sk = arg_sk; const i = arg_i; - return @alignCast(@ptrCast(sk_value(@as([*c]const _STACK, @alignCast(@ptrCast(sk))), i))); + return @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } pub const NID_id_on_SmtpUTF8Mailbox = @as(c_int, 1208); pub const NID_XmppAddr = @as(c_int, 1209); pub const NID_SRVName = @as(c_int, 1210); pub const NID_NAIRealm = @as(c_int, 1211); -pub const stack_X509_CRL_free_func = ?*const fn (?*X509_CRL) callconv(.C) void; -pub const stack_X509_CRL_copy_func = ?*const fn (?*X509_CRL) callconv(.C) ?*X509_CRL; -pub const stack_X509_CRL_cmp_func = ?*const fn ([*c]?*const X509_CRL, [*c]?*const X509_CRL) callconv(.C) c_int; -pub fn sk_X509_CRL_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub const stack_X509_CRL_free_func = ?*const fn (?*X509_CRL) callconv(.c) void; +pub const stack_X509_CRL_copy_func = ?*const fn (?*X509_CRL) callconv(.c) ?*X509_CRL; +pub const stack_X509_CRL_cmp_func = ?*const fn ([*c]?*const X509_CRL, [*c]?*const X509_CRL) callconv(.c) c_int; +pub fn sk_X509_CRL_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(stack_X509_CRL_copy_func, @ptrCast(copy_func)).?(@as(?*X509_CRL, @ptrCast(ptr))))); } -pub fn sk_X509_CRL_new(arg_comp: stack_X509_CRL_cmp_func) callconv(.C) ?*struct_stack_st_X509_CRL { +pub fn sk_X509_CRL_new(arg_comp: stack_X509_CRL_cmp_func) callconv(.c) ?*struct_stack_st_X509_CRL { const comp = arg_comp; return @as(?*struct_stack_st_X509_CRL, @ptrCast(sk_new(@as(stack_cmp_func, @ptrCast(comp))))); } -pub fn sk_X509_CRL_new_null() callconv(.C) ?*struct_stack_st_X509_CRL { +pub fn sk_X509_CRL_new_null() callconv(.c) ?*struct_stack_st_X509_CRL { return @as(?*struct_stack_st_X509_CRL, @ptrCast(sk_new_null())); } -pub fn sk_X509_CRL_num(arg_sk: ?*const struct_stack_st_X509_CRL) callconv(.C) usize { +pub fn sk_X509_CRL_num(arg_sk: ?*const struct_stack_st_X509_CRL) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_CRL_zero(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) void { +pub fn sk_X509_CRL_zero(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_CRL_value(arg_sk: ?*const struct_stack_st_X509_CRL, arg_i: usize) callconv(.C) ?*X509_CRL { +pub fn sk_X509_CRL_value(arg_sk: ?*const struct_stack_st_X509_CRL, arg_i: usize) callconv(.c) ?*X509_CRL { const sk = arg_sk; const i = arg_i; return @as(?*X509_CRL, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_CRL_set(arg_sk: ?*struct_stack_st_X509_CRL, arg_i: usize, arg_p: ?*X509_CRL) callconv(.C) ?*X509_CRL { +pub fn sk_X509_CRL_set(arg_sk: ?*struct_stack_st_X509_CRL, arg_i: usize, arg_p: ?*X509_CRL) callconv(.c) ?*X509_CRL { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as(?*X509_CRL, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_X509_CRL_free(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) void { +pub fn sk_X509_CRL_free(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_CRL_pop_free(arg_sk: ?*struct_stack_st_X509_CRL, arg_free_func: sk_X509_CRL_free_func) callconv(.C) void { +pub fn sk_X509_CRL_pop_free(arg_sk: ?*struct_stack_st_X509_CRL, arg_free_func: sk_X509_CRL_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_CRL_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_CRL_insert(arg_sk: ?*struct_stack_st_X509_CRL, arg_p: ?*X509_CRL, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_CRL_insert(arg_sk: ?*struct_stack_st_X509_CRL, arg_p: ?*X509_CRL, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_CRL_delete(arg_sk: ?*struct_stack_st_X509_CRL, arg_where: usize) callconv(.C) ?*X509_CRL { +pub fn sk_X509_CRL_delete(arg_sk: ?*struct_stack_st_X509_CRL, arg_where: usize) callconv(.c) ?*X509_CRL { const sk = arg_sk; const where = arg_where; return @as(?*X509_CRL, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_CRL_delete_ptr(arg_sk: ?*struct_stack_st_X509_CRL, arg_p: ?*const X509_CRL) callconv(.C) ?*X509_CRL { +pub fn sk_X509_CRL_delete_ptr(arg_sk: ?*struct_stack_st_X509_CRL, arg_p: ?*const X509_CRL) callconv(.c) ?*X509_CRL { const sk = arg_sk; const p = arg_p; return @as(?*X509_CRL, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_CRL_find(arg_sk: ?*const struct_stack_st_X509_CRL, arg_out_index: [*c]usize, arg_p: ?*const X509_CRL) callconv(.C) c_int { +pub fn sk_X509_CRL_find(arg_sk: ?*const struct_stack_st_X509_CRL, arg_out_index: [*c]usize, arg_p: ?*const X509_CRL) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_CRL_call_cmp_func); } -pub fn sk_X509_CRL_shift(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) ?*X509_CRL { +pub fn sk_X509_CRL_shift(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.c) ?*X509_CRL { const sk = arg_sk; return @as(?*X509_CRL, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_CRL_push(arg_sk: ?*struct_stack_st_X509_CRL, arg_p: ?*X509_CRL) callconv(.C) usize { +pub fn sk_X509_CRL_push(arg_sk: ?*struct_stack_st_X509_CRL, arg_p: ?*X509_CRL) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_CRL_pop(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) ?*X509_CRL { +pub fn sk_X509_CRL_pop(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.c) ?*X509_CRL { const sk = arg_sk; return @as(?*X509_CRL, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_CRL_dup(arg_sk: ?*const struct_stack_st_X509_CRL) callconv(.C) ?*struct_stack_st_X509_CRL { +pub fn sk_X509_CRL_dup(arg_sk: ?*const struct_stack_st_X509_CRL) callconv(.c) ?*struct_stack_st_X509_CRL { const sk = arg_sk; return @as(?*struct_stack_st_X509_CRL, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_CRL_sort(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) void { +pub fn sk_X509_CRL_sort(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_CRL_call_cmp_func); } -pub fn sk_X509_CRL_is_sorted(arg_sk: ?*const struct_stack_st_X509_CRL) callconv(.C) c_int { +pub fn sk_X509_CRL_is_sorted(arg_sk: ?*const struct_stack_st_X509_CRL) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_CRL_set_cmp_func(arg_sk: ?*struct_stack_st_X509_CRL, arg_comp: sk_X509_CRL_cmp_func) callconv(.C) sk_X509_CRL_cmp_func { +pub fn sk_X509_CRL_set_cmp_func(arg_sk: ?*struct_stack_st_X509_CRL, arg_comp: sk_X509_CRL_cmp_func) callconv(.c) sk_X509_CRL_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_CRL_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_CRL_deep_copy(arg_sk: ?*const struct_stack_st_X509_CRL, arg_copy_func: sk_X509_CRL_copy_func, arg_free_func: sk_X509_CRL_free_func) callconv(.C) ?*struct_stack_st_X509_CRL { +pub fn sk_X509_CRL_deep_copy(arg_sk: ?*const struct_stack_st_X509_CRL, arg_copy_func: sk_X509_CRL_copy_func, arg_free_func: sk_X509_CRL_free_func) callconv(.c) ?*struct_stack_st_X509_CRL { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -3169,20 +3169,20 @@ pub extern fn i2d_re_X509_REQ_tbs(req: ?*X509_REQ, outp: [*c][*c]u8) c_int; pub extern fn X509_REQ_set1_signature_algo(req: ?*X509_REQ, algo: [*c]const X509_ALGOR) c_int; pub extern fn X509_REQ_set1_signature_value(req: ?*X509_REQ, sig: [*c]const u8, sig_len: usize) c_int; pub const struct_stack_st_X509_NAME_ENTRY = opaque {}; -pub const sk_X509_NAME_ENTRY_free_func = ?*const fn (?*X509_NAME_ENTRY) callconv(.C) void; -pub const sk_X509_NAME_ENTRY_copy_func = ?*const fn (?*X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY; -pub const sk_X509_NAME_ENTRY_cmp_func = ?*const fn ([*c]?*const X509_NAME_ENTRY, [*c]?*const X509_NAME_ENTRY) callconv(.C) c_int; -pub fn sk_X509_NAME_ENTRY_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_NAME_ENTRY_free_func = ?*const fn (?*X509_NAME_ENTRY) callconv(.c) void; +pub const sk_X509_NAME_ENTRY_copy_func = ?*const fn (?*X509_NAME_ENTRY) callconv(.c) ?*X509_NAME_ENTRY; +pub const sk_X509_NAME_ENTRY_cmp_func = ?*const fn ([*c]?*const X509_NAME_ENTRY, [*c]?*const X509_NAME_ENTRY) callconv(.c) c_int; +pub fn sk_X509_NAME_ENTRY_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_NAME_ENTRY_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_NAME_ENTRY, @ptrCast(ptr))); } -pub fn sk_X509_NAME_ENTRY_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_NAME_ENTRY_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_X509_NAME_ENTRY_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_NAME_ENTRY, @ptrCast(ptr))))); } -pub fn sk_X509_NAME_ENTRY_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_NAME_ENTRY_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -3190,114 +3190,114 @@ pub fn sk_X509_NAME_ENTRY_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a var b_ptr: ?*const X509_NAME_ENTRY = @as(?*const X509_NAME_ENTRY, @ptrCast(b.*)); return @as(sk_X509_NAME_ENTRY_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_NAME_ENTRY_new(arg_comp: sk_X509_NAME_ENTRY_cmp_func) callconv(.C) ?*struct_stack_st_X509_NAME_ENTRY { +pub fn sk_X509_NAME_ENTRY_new(arg_comp: sk_X509_NAME_ENTRY_cmp_func) callconv(.c) ?*struct_stack_st_X509_NAME_ENTRY { const comp = arg_comp; return @as(?*struct_stack_st_X509_NAME_ENTRY, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_NAME_ENTRY_new_null() callconv(.C) ?*struct_stack_st_X509_NAME_ENTRY { +pub fn sk_X509_NAME_ENTRY_new_null() callconv(.c) ?*struct_stack_st_X509_NAME_ENTRY { return @as(?*struct_stack_st_X509_NAME_ENTRY, @ptrCast(sk_new_null())); } -pub fn sk_X509_NAME_ENTRY_num(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY) callconv(.C) usize { +pub fn sk_X509_NAME_ENTRY_num(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_NAME_ENTRY_zero(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.C) void { +pub fn sk_X509_NAME_ENTRY_zero(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_NAME_ENTRY_value(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY, arg_i: usize) callconv(.C) ?*X509_NAME_ENTRY { +pub fn sk_X509_NAME_ENTRY_value(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY, arg_i: usize) callconv(.c) ?*X509_NAME_ENTRY { const sk = arg_sk; const i = arg_i; return @as(?*X509_NAME_ENTRY, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_NAME_ENTRY_set(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_i: usize, arg_p: ?*X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY { +pub fn sk_X509_NAME_ENTRY_set(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_i: usize, arg_p: ?*X509_NAME_ENTRY) callconv(.c) ?*X509_NAME_ENTRY { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as(?*X509_NAME_ENTRY, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_X509_NAME_ENTRY_free(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.C) void { +pub fn sk_X509_NAME_ENTRY_free(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_NAME_ENTRY_pop_free(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_free_func: sk_X509_NAME_ENTRY_free_func) callconv(.C) void { +pub fn sk_X509_NAME_ENTRY_pop_free(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_free_func: sk_X509_NAME_ENTRY_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_NAME_ENTRY_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_NAME_ENTRY_insert(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_p: ?*X509_NAME_ENTRY, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_NAME_ENTRY_insert(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_p: ?*X509_NAME_ENTRY, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_NAME_ENTRY_delete(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_where: usize) callconv(.C) ?*X509_NAME_ENTRY { +pub fn sk_X509_NAME_ENTRY_delete(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_where: usize) callconv(.c) ?*X509_NAME_ENTRY { const sk = arg_sk; const where = arg_where; return @as(?*X509_NAME_ENTRY, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_NAME_ENTRY_delete_ptr(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_p: ?*const X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY { +pub fn sk_X509_NAME_ENTRY_delete_ptr(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_p: ?*const X509_NAME_ENTRY) callconv(.c) ?*X509_NAME_ENTRY { const sk = arg_sk; const p = arg_p; return @as(?*X509_NAME_ENTRY, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_NAME_ENTRY_find(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY, arg_out_index: [*c]usize, arg_p: ?*const X509_NAME_ENTRY) callconv(.C) c_int { +pub fn sk_X509_NAME_ENTRY_find(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY, arg_out_index: [*c]usize, arg_p: ?*const X509_NAME_ENTRY) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_NAME_ENTRY_call_cmp_func); } -pub fn sk_X509_NAME_ENTRY_shift(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY { +pub fn sk_X509_NAME_ENTRY_shift(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.c) ?*X509_NAME_ENTRY { const sk = arg_sk; return @as(?*X509_NAME_ENTRY, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_NAME_ENTRY_push(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_p: ?*X509_NAME_ENTRY) callconv(.C) usize { +pub fn sk_X509_NAME_ENTRY_push(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_p: ?*X509_NAME_ENTRY) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_NAME_ENTRY_pop(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY { +pub fn sk_X509_NAME_ENTRY_pop(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.c) ?*X509_NAME_ENTRY { const sk = arg_sk; return @as(?*X509_NAME_ENTRY, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_NAME_ENTRY_dup(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY) callconv(.C) ?*struct_stack_st_X509_NAME_ENTRY { +pub fn sk_X509_NAME_ENTRY_dup(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY) callconv(.c) ?*struct_stack_st_X509_NAME_ENTRY { const sk = arg_sk; return @as(?*struct_stack_st_X509_NAME_ENTRY, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_NAME_ENTRY_sort(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.C) void { +pub fn sk_X509_NAME_ENTRY_sort(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_NAME_ENTRY_call_cmp_func); } -pub fn sk_X509_NAME_ENTRY_is_sorted(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY) callconv(.C) c_int { +pub fn sk_X509_NAME_ENTRY_is_sorted(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_NAME_ENTRY_set_cmp_func(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_comp: sk_X509_NAME_ENTRY_cmp_func) callconv(.C) sk_X509_NAME_ENTRY_cmp_func { +pub fn sk_X509_NAME_ENTRY_set_cmp_func(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_comp: sk_X509_NAME_ENTRY_cmp_func) callconv(.c) sk_X509_NAME_ENTRY_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_NAME_ENTRY_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_NAME_ENTRY_deep_copy(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY, arg_copy_func: sk_X509_NAME_ENTRY_copy_func, arg_free_func: sk_X509_NAME_ENTRY_free_func) callconv(.C) ?*struct_stack_st_X509_NAME_ENTRY { +pub fn sk_X509_NAME_ENTRY_deep_copy(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY, arg_copy_func: sk_X509_NAME_ENTRY_copy_func, arg_free_func: sk_X509_NAME_ENTRY_free_func) callconv(.c) ?*struct_stack_st_X509_NAME_ENTRY { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; return @as(?*struct_stack_st_X509_NAME_ENTRY, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_NAME_ENTRY_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_NAME_ENTRY_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub const struct_stack_st_X509_NAME = opaque {}; -pub const sk_X509_NAME_free_func = ?*const fn (?*X509_NAME) callconv(.C) void; -pub const sk_X509_NAME_copy_func = ?*const fn (?*X509_NAME) callconv(.C) ?*X509_NAME; -pub const sk_X509_NAME_cmp_func = ?*const fn ([*c]?*const X509_NAME, [*c]?*const X509_NAME) callconv(.C) c_int; -pub fn sk_X509_NAME_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_NAME_free_func = ?*const fn (?*X509_NAME) callconv(.c) void; +pub const sk_X509_NAME_copy_func = ?*const fn (?*X509_NAME) callconv(.c) ?*X509_NAME; +pub const sk_X509_NAME_cmp_func = ?*const fn ([*c]?*const X509_NAME, [*c]?*const X509_NAME) callconv(.c) c_int; +pub fn sk_X509_NAME_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_NAME_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_NAME, @ptrCast(ptr))); } -pub fn sk_X509_NAME_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_NAME_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_X509_NAME_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_NAME, @ptrCast(ptr))))); } -pub fn sk_X509_NAME_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_NAME_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -3305,94 +3305,94 @@ pub fn sk_X509_NAME_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c] var b_ptr: ?*const X509_NAME = @as(?*const X509_NAME, @ptrCast(b.*)); return @as(sk_X509_NAME_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_NAME_new(arg_comp: sk_X509_NAME_cmp_func) callconv(.C) ?*struct_stack_st_X509_NAME { +pub fn sk_X509_NAME_new(arg_comp: sk_X509_NAME_cmp_func) callconv(.c) ?*struct_stack_st_X509_NAME { const comp = arg_comp; return @as(?*struct_stack_st_X509_NAME, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_NAME_new_null() callconv(.C) ?*struct_stack_st_X509_NAME { +pub fn sk_X509_NAME_new_null() callconv(.c) ?*struct_stack_st_X509_NAME { return @as(?*struct_stack_st_X509_NAME, @ptrCast(sk_new_null())); } -pub fn sk_X509_NAME_num(arg_sk: ?*const struct_stack_st_X509_NAME) callconv(.C) usize { +pub fn sk_X509_NAME_num(arg_sk: ?*const struct_stack_st_X509_NAME) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_NAME_zero(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.C) void { +pub fn sk_X509_NAME_zero(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_NAME_value(arg_sk: ?*const struct_stack_st_X509_NAME, arg_i: usize) callconv(.C) ?*X509_NAME { +pub fn sk_X509_NAME_value(arg_sk: ?*const struct_stack_st_X509_NAME, arg_i: usize) callconv(.c) ?*X509_NAME { const sk = arg_sk; const i = arg_i; return @as(?*X509_NAME, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_NAME_set(arg_sk: ?*struct_stack_st_X509_NAME, arg_i: usize, arg_p: ?*X509_NAME) callconv(.C) ?*X509_NAME { +pub fn sk_X509_NAME_set(arg_sk: ?*struct_stack_st_X509_NAME, arg_i: usize, arg_p: ?*X509_NAME) callconv(.c) ?*X509_NAME { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as(?*X509_NAME, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_X509_NAME_free(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.C) void { +pub fn sk_X509_NAME_free(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_NAME_pop_free(arg_sk: ?*struct_stack_st_X509_NAME, arg_free_func: sk_X509_NAME_free_func) callconv(.C) void { +pub fn sk_X509_NAME_pop_free(arg_sk: ?*struct_stack_st_X509_NAME, arg_free_func: sk_X509_NAME_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_NAME_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_NAME_insert(arg_sk: ?*struct_stack_st_X509_NAME, arg_p: ?*X509_NAME, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_NAME_insert(arg_sk: ?*struct_stack_st_X509_NAME, arg_p: ?*X509_NAME, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_NAME_delete(arg_sk: ?*struct_stack_st_X509_NAME, arg_where: usize) callconv(.C) ?*X509_NAME { +pub fn sk_X509_NAME_delete(arg_sk: ?*struct_stack_st_X509_NAME, arg_where: usize) callconv(.c) ?*X509_NAME { const sk = arg_sk; const where = arg_where; return @as(?*X509_NAME, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_NAME_delete_ptr(arg_sk: ?*struct_stack_st_X509_NAME, arg_p: ?*const X509_NAME) callconv(.C) ?*X509_NAME { +pub fn sk_X509_NAME_delete_ptr(arg_sk: ?*struct_stack_st_X509_NAME, arg_p: ?*const X509_NAME) callconv(.c) ?*X509_NAME { const sk = arg_sk; const p = arg_p; return @as(?*X509_NAME, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_NAME_find(arg_sk: ?*const struct_stack_st_X509_NAME, arg_out_index: [*c]usize, arg_p: ?*const X509_NAME) callconv(.C) c_int { +pub fn sk_X509_NAME_find(arg_sk: ?*const struct_stack_st_X509_NAME, arg_out_index: [*c]usize, arg_p: ?*const X509_NAME) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_NAME_call_cmp_func); } -pub fn sk_X509_NAME_shift(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.C) ?*X509_NAME { +pub fn sk_X509_NAME_shift(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.c) ?*X509_NAME { const sk = arg_sk; return @as(?*X509_NAME, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_NAME_push(arg_sk: ?*struct_stack_st_X509_NAME, arg_p: ?*X509_NAME) callconv(.C) usize { +pub fn sk_X509_NAME_push(arg_sk: ?*struct_stack_st_X509_NAME, arg_p: ?*X509_NAME) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_NAME_pop(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.C) ?*X509_NAME { +pub fn sk_X509_NAME_pop(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.c) ?*X509_NAME { const sk = arg_sk; return @as(?*X509_NAME, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_NAME_dup(arg_sk: ?*const struct_stack_st_X509_NAME) callconv(.C) ?*struct_stack_st_X509_NAME { +pub fn sk_X509_NAME_dup(arg_sk: ?*const struct_stack_st_X509_NAME) callconv(.c) ?*struct_stack_st_X509_NAME { const sk = arg_sk; return @as(?*struct_stack_st_X509_NAME, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_NAME_sort(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.C) void { +pub fn sk_X509_NAME_sort(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_NAME_call_cmp_func); } -pub fn sk_X509_NAME_is_sorted(arg_sk: ?*const struct_stack_st_X509_NAME) callconv(.C) c_int { +pub fn sk_X509_NAME_is_sorted(arg_sk: ?*const struct_stack_st_X509_NAME) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_NAME_set_cmp_func(arg_sk: ?*struct_stack_st_X509_NAME, arg_comp: sk_X509_NAME_cmp_func) callconv(.C) sk_X509_NAME_cmp_func { +pub fn sk_X509_NAME_set_cmp_func(arg_sk: ?*struct_stack_st_X509_NAME, arg_comp: sk_X509_NAME_cmp_func) callconv(.c) sk_X509_NAME_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_NAME_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_NAME_deep_copy(arg_sk: ?*const struct_stack_st_X509_NAME, arg_copy_func: sk_X509_NAME_copy_func, arg_free_func: sk_X509_NAME_free_func) callconv(.C) ?*struct_stack_st_X509_NAME { +pub fn sk_X509_NAME_deep_copy(arg_sk: ?*const struct_stack_st_X509_NAME, arg_copy_func: sk_X509_NAME_copy_func, arg_free_func: sk_X509_NAME_free_func) callconv(.c) ?*struct_stack_st_X509_NAME { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -3443,20 +3443,20 @@ pub extern fn X509_EXTENSION_get_critical(ex: ?*const X509_EXTENSION) c_int; pub extern fn X509_EXTENSION_set_object(ex: ?*X509_EXTENSION, obj: ?*const ASN1_OBJECT) c_int; pub extern fn X509_EXTENSION_set_critical(ex: ?*X509_EXTENSION, crit: c_int) c_int; pub extern fn X509_EXTENSION_set_data(ex: ?*X509_EXTENSION, data: [*c]const ASN1_OCTET_STRING) c_int; -pub const sk_X509_EXTENSION_free_func = ?*const fn (?*X509_EXTENSION) callconv(.C) void; -pub const sk_X509_EXTENSION_copy_func = ?*const fn (?*X509_EXTENSION) callconv(.C) ?*X509_EXTENSION; -pub const sk_X509_EXTENSION_cmp_func = ?*const fn ([*c]?*const X509_EXTENSION, [*c]?*const X509_EXTENSION) callconv(.C) c_int; -pub fn sk_X509_EXTENSION_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_EXTENSION_free_func = ?*const fn (?*X509_EXTENSION) callconv(.c) void; +pub const sk_X509_EXTENSION_copy_func = ?*const fn (?*X509_EXTENSION) callconv(.c) ?*X509_EXTENSION; +pub const sk_X509_EXTENSION_cmp_func = ?*const fn ([*c]?*const X509_EXTENSION, [*c]?*const X509_EXTENSION) callconv(.c) c_int; +pub fn sk_X509_EXTENSION_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_EXTENSION_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_EXTENSION, @ptrCast(ptr))); } -pub fn sk_X509_EXTENSION_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_EXTENSION_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_X509_EXTENSION_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_EXTENSION, @ptrCast(ptr))))); } -pub fn sk_X509_EXTENSION_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_EXTENSION_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -3464,94 +3464,94 @@ pub fn sk_X509_EXTENSION_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: var b_ptr: ?*const X509_EXTENSION = @as(?*const X509_EXTENSION, @ptrCast(b.*)); return @as(sk_X509_EXTENSION_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_EXTENSION_new(arg_comp: sk_X509_EXTENSION_cmp_func) callconv(.C) ?*struct_stack_st_X509_EXTENSION { +pub fn sk_X509_EXTENSION_new(arg_comp: sk_X509_EXTENSION_cmp_func) callconv(.c) ?*struct_stack_st_X509_EXTENSION { const comp = arg_comp; return @as(?*struct_stack_st_X509_EXTENSION, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_EXTENSION_new_null() callconv(.C) ?*struct_stack_st_X509_EXTENSION { +pub fn sk_X509_EXTENSION_new_null() callconv(.c) ?*struct_stack_st_X509_EXTENSION { return @as(?*struct_stack_st_X509_EXTENSION, @ptrCast(sk_new_null())); } -pub fn sk_X509_EXTENSION_num(arg_sk: ?*const struct_stack_st_X509_EXTENSION) callconv(.C) usize { +pub fn sk_X509_EXTENSION_num(arg_sk: ?*const struct_stack_st_X509_EXTENSION) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_EXTENSION_zero(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.C) void { +pub fn sk_X509_EXTENSION_zero(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_EXTENSION_value(arg_sk: ?*const struct_stack_st_X509_EXTENSION, arg_i: usize) callconv(.C) ?*X509_EXTENSION { +pub fn sk_X509_EXTENSION_value(arg_sk: ?*const struct_stack_st_X509_EXTENSION, arg_i: usize) callconv(.c) ?*X509_EXTENSION { const sk = arg_sk; const i = arg_i; return @as(?*X509_EXTENSION, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_EXTENSION_set(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_i: usize, arg_p: ?*X509_EXTENSION) callconv(.C) ?*X509_EXTENSION { +pub fn sk_X509_EXTENSION_set(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_i: usize, arg_p: ?*X509_EXTENSION) callconv(.c) ?*X509_EXTENSION { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as(?*X509_EXTENSION, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_X509_EXTENSION_free(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.C) void { +pub fn sk_X509_EXTENSION_free(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_EXTENSION_pop_free(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_free_func: sk_X509_EXTENSION_free_func) callconv(.C) void { +pub fn sk_X509_EXTENSION_pop_free(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_free_func: sk_X509_EXTENSION_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_EXTENSION_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_EXTENSION_insert(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_p: ?*X509_EXTENSION, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_EXTENSION_insert(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_p: ?*X509_EXTENSION, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_EXTENSION_delete(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_where: usize) callconv(.C) ?*X509_EXTENSION { +pub fn sk_X509_EXTENSION_delete(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_where: usize) callconv(.c) ?*X509_EXTENSION { const sk = arg_sk; const where = arg_where; return @as(?*X509_EXTENSION, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_EXTENSION_delete_ptr(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_p: ?*const X509_EXTENSION) callconv(.C) ?*X509_EXTENSION { +pub fn sk_X509_EXTENSION_delete_ptr(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_p: ?*const X509_EXTENSION) callconv(.c) ?*X509_EXTENSION { const sk = arg_sk; const p = arg_p; return @as(?*X509_EXTENSION, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_EXTENSION_find(arg_sk: ?*const struct_stack_st_X509_EXTENSION, arg_out_index: [*c]usize, arg_p: ?*const X509_EXTENSION) callconv(.C) c_int { +pub fn sk_X509_EXTENSION_find(arg_sk: ?*const struct_stack_st_X509_EXTENSION, arg_out_index: [*c]usize, arg_p: ?*const X509_EXTENSION) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_EXTENSION_call_cmp_func); } -pub fn sk_X509_EXTENSION_shift(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.C) ?*X509_EXTENSION { +pub fn sk_X509_EXTENSION_shift(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.c) ?*X509_EXTENSION { const sk = arg_sk; return @as(?*X509_EXTENSION, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_EXTENSION_push(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_p: ?*X509_EXTENSION) callconv(.C) usize { +pub fn sk_X509_EXTENSION_push(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_p: ?*X509_EXTENSION) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_EXTENSION_pop(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.C) ?*X509_EXTENSION { +pub fn sk_X509_EXTENSION_pop(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.c) ?*X509_EXTENSION { const sk = arg_sk; return @as(?*X509_EXTENSION, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_EXTENSION_dup(arg_sk: ?*const struct_stack_st_X509_EXTENSION) callconv(.C) ?*struct_stack_st_X509_EXTENSION { +pub fn sk_X509_EXTENSION_dup(arg_sk: ?*const struct_stack_st_X509_EXTENSION) callconv(.c) ?*struct_stack_st_X509_EXTENSION { const sk = arg_sk; return @as(?*struct_stack_st_X509_EXTENSION, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_EXTENSION_sort(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.C) void { +pub fn sk_X509_EXTENSION_sort(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_EXTENSION_call_cmp_func); } -pub fn sk_X509_EXTENSION_is_sorted(arg_sk: ?*const struct_stack_st_X509_EXTENSION) callconv(.C) c_int { +pub fn sk_X509_EXTENSION_is_sorted(arg_sk: ?*const struct_stack_st_X509_EXTENSION) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_EXTENSION_set_cmp_func(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_comp: sk_X509_EXTENSION_cmp_func) callconv(.C) sk_X509_EXTENSION_cmp_func { +pub fn sk_X509_EXTENSION_set_cmp_func(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_comp: sk_X509_EXTENSION_cmp_func) callconv(.c) sk_X509_EXTENSION_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_EXTENSION_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_EXTENSION_deep_copy(arg_sk: ?*const struct_stack_st_X509_EXTENSION, arg_copy_func: sk_X509_EXTENSION_copy_func, arg_free_func: sk_X509_EXTENSION_free_func) callconv(.C) ?*struct_stack_st_X509_EXTENSION { +pub fn sk_X509_EXTENSION_deep_copy(arg_sk: ?*const struct_stack_st_X509_EXTENSION, arg_copy_func: sk_X509_EXTENSION_copy_func, arg_free_func: sk_X509_EXTENSION_free_func) callconv(.c) ?*struct_stack_st_X509_EXTENSION { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -3569,20 +3569,20 @@ pub extern fn X509v3_get_ext(x: ?*const struct_stack_st_X509_EXTENSION, loc: c_i pub extern fn X509v3_delete_ext(x: ?*struct_stack_st_X509_EXTENSION, loc: c_int) ?*X509_EXTENSION; pub extern fn X509v3_add_ext(x: [*c]?*struct_stack_st_X509_EXTENSION, ex: ?*const X509_EXTENSION, loc: c_int) ?*struct_stack_st_X509_EXTENSION; pub const struct_stack_st_X509_ALGOR = opaque {}; -pub const sk_X509_ALGOR_free_func = ?*const fn ([*c]X509_ALGOR) callconv(.C) void; -pub const sk_X509_ALGOR_copy_func = ?*const fn ([*c]X509_ALGOR) callconv(.C) [*c]X509_ALGOR; -pub const sk_X509_ALGOR_cmp_func = ?*const fn ([*c][*c]const X509_ALGOR, [*c][*c]const X509_ALGOR) callconv(.C) c_int; -pub fn sk_X509_ALGOR_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_ALGOR_free_func = ?*const fn ([*c]X509_ALGOR) callconv(.c) void; +pub const sk_X509_ALGOR_copy_func = ?*const fn ([*c]X509_ALGOR) callconv(.c) [*c]X509_ALGOR; +pub const sk_X509_ALGOR_cmp_func = ?*const fn ([*c][*c]const X509_ALGOR, [*c][*c]const X509_ALGOR) callconv(.c) c_int; +pub fn sk_X509_ALGOR_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_ALGOR_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]X509_ALGOR, @ptrCast(@alignCast(ptr)))); } -pub fn sk_X509_ALGOR_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_ALGOR_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_X509_ALGOR_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]X509_ALGOR, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_X509_ALGOR_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_ALGOR_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -3590,94 +3590,94 @@ pub fn sk_X509_ALGOR_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c var b_ptr: [*c]const X509_ALGOR = @as([*c]const X509_ALGOR, @ptrCast(@alignCast(b.*))); return @as(sk_X509_ALGOR_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_ALGOR_new(arg_comp: sk_X509_ALGOR_cmp_func) callconv(.C) ?*struct_stack_st_X509_ALGOR { +pub fn sk_X509_ALGOR_new(arg_comp: sk_X509_ALGOR_cmp_func) callconv(.c) ?*struct_stack_st_X509_ALGOR { const comp = arg_comp; return @as(?*struct_stack_st_X509_ALGOR, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_ALGOR_new_null() callconv(.C) ?*struct_stack_st_X509_ALGOR { +pub fn sk_X509_ALGOR_new_null() callconv(.c) ?*struct_stack_st_X509_ALGOR { return @as(?*struct_stack_st_X509_ALGOR, @ptrCast(sk_new_null())); } -pub fn sk_X509_ALGOR_num(arg_sk: ?*const struct_stack_st_X509_ALGOR) callconv(.C) usize { +pub fn sk_X509_ALGOR_num(arg_sk: ?*const struct_stack_st_X509_ALGOR) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ALGOR_zero(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) void { +pub fn sk_X509_ALGOR_zero(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ALGOR_value(arg_sk: ?*const struct_stack_st_X509_ALGOR, arg_i: usize) callconv(.C) [*c]X509_ALGOR { +pub fn sk_X509_ALGOR_value(arg_sk: ?*const struct_stack_st_X509_ALGOR, arg_i: usize) callconv(.c) [*c]X509_ALGOR { const sk = arg_sk; const i = arg_i; return @as([*c]X509_ALGOR, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } -pub fn sk_X509_ALGOR_set(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_i: usize, arg_p: [*c]X509_ALGOR) callconv(.C) [*c]X509_ALGOR { +pub fn sk_X509_ALGOR_set(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_i: usize, arg_p: [*c]X509_ALGOR) callconv(.c) [*c]X509_ALGOR { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as([*c]X509_ALGOR, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } -pub fn sk_X509_ALGOR_free(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) void { +pub fn sk_X509_ALGOR_free(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ALGOR_pop_free(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_free_func: sk_X509_ALGOR_free_func) callconv(.C) void { +pub fn sk_X509_ALGOR_pop_free(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_free_func: sk_X509_ALGOR_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_ALGOR_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_ALGOR_insert(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_p: [*c]X509_ALGOR, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_ALGOR_insert(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_p: [*c]X509_ALGOR, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_ALGOR_delete(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_where: usize) callconv(.C) [*c]X509_ALGOR { +pub fn sk_X509_ALGOR_delete(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_where: usize) callconv(.c) [*c]X509_ALGOR { const sk = arg_sk; const where = arg_where; return @as([*c]X509_ALGOR, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } -pub fn sk_X509_ALGOR_delete_ptr(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_p: [*c]const X509_ALGOR) callconv(.C) [*c]X509_ALGOR { +pub fn sk_X509_ALGOR_delete_ptr(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_p: [*c]const X509_ALGOR) callconv(.c) [*c]X509_ALGOR { const sk = arg_sk; const p = arg_p; return @as([*c]X509_ALGOR, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } -pub fn sk_X509_ALGOR_find(arg_sk: ?*const struct_stack_st_X509_ALGOR, arg_out_index: [*c]usize, arg_p: [*c]const X509_ALGOR) callconv(.C) c_int { +pub fn sk_X509_ALGOR_find(arg_sk: ?*const struct_stack_st_X509_ALGOR, arg_out_index: [*c]usize, arg_p: [*c]const X509_ALGOR) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_ALGOR_call_cmp_func); } -pub fn sk_X509_ALGOR_shift(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) [*c]X509_ALGOR { +pub fn sk_X509_ALGOR_shift(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.c) [*c]X509_ALGOR { const sk = arg_sk; return @as([*c]X509_ALGOR, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_X509_ALGOR_push(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_p: [*c]X509_ALGOR) callconv(.C) usize { +pub fn sk_X509_ALGOR_push(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_p: [*c]X509_ALGOR) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_ALGOR_pop(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) [*c]X509_ALGOR { +pub fn sk_X509_ALGOR_pop(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.c) [*c]X509_ALGOR { const sk = arg_sk; return @as([*c]X509_ALGOR, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_X509_ALGOR_dup(arg_sk: ?*const struct_stack_st_X509_ALGOR) callconv(.C) ?*struct_stack_st_X509_ALGOR { +pub fn sk_X509_ALGOR_dup(arg_sk: ?*const struct_stack_st_X509_ALGOR) callconv(.c) ?*struct_stack_st_X509_ALGOR { const sk = arg_sk; return @as(?*struct_stack_st_X509_ALGOR, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_ALGOR_sort(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) void { +pub fn sk_X509_ALGOR_sort(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_ALGOR_call_cmp_func); } -pub fn sk_X509_ALGOR_is_sorted(arg_sk: ?*const struct_stack_st_X509_ALGOR) callconv(.C) c_int { +pub fn sk_X509_ALGOR_is_sorted(arg_sk: ?*const struct_stack_st_X509_ALGOR) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ALGOR_set_cmp_func(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_comp: sk_X509_ALGOR_cmp_func) callconv(.C) sk_X509_ALGOR_cmp_func { +pub fn sk_X509_ALGOR_set_cmp_func(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_comp: sk_X509_ALGOR_cmp_func) callconv(.c) sk_X509_ALGOR_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_ALGOR_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_ALGOR_deep_copy(arg_sk: ?*const struct_stack_st_X509_ALGOR, arg_copy_func: sk_X509_ALGOR_copy_func, arg_free_func: sk_X509_ALGOR_free_func) callconv(.C) ?*struct_stack_st_X509_ALGOR { +pub fn sk_X509_ALGOR_deep_copy(arg_sk: ?*const struct_stack_st_X509_ALGOR, arg_copy_func: sk_X509_ALGOR_copy_func, arg_free_func: sk_X509_ALGOR_free_func) callconv(.c) ?*struct_stack_st_X509_ALGOR { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -3763,20 +3763,20 @@ pub extern fn i2d_PKCS8PrivateKeyInfo_bio(bp: [*c]BIO, key: [*c]EVP_PKEY) c_int; pub extern fn X509_NAME_get_text_by_OBJ(name: ?*const X509_NAME, obj: ?*const ASN1_OBJECT, buf: [*c]u8, len: c_int) c_int; pub extern fn X509_NAME_get_text_by_NID(name: ?*const X509_NAME, nid: c_int, buf: [*c]u8, len: c_int) c_int; pub const struct_stack_st_X509_ATTRIBUTE = opaque {}; -pub const sk_X509_ATTRIBUTE_free_func = ?*const fn (?*X509_ATTRIBUTE) callconv(.C) void; -pub const sk_X509_ATTRIBUTE_copy_func = ?*const fn (?*X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE; -pub const sk_X509_ATTRIBUTE_cmp_func = ?*const fn ([*c]?*const X509_ATTRIBUTE, [*c]?*const X509_ATTRIBUTE) callconv(.C) c_int; -pub fn sk_X509_ATTRIBUTE_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_ATTRIBUTE_free_func = ?*const fn (?*X509_ATTRIBUTE) callconv(.c) void; +pub const sk_X509_ATTRIBUTE_copy_func = ?*const fn (?*X509_ATTRIBUTE) callconv(.c) ?*X509_ATTRIBUTE; +pub const sk_X509_ATTRIBUTE_cmp_func = ?*const fn ([*c]?*const X509_ATTRIBUTE, [*c]?*const X509_ATTRIBUTE) callconv(.c) c_int; +pub fn sk_X509_ATTRIBUTE_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_ATTRIBUTE_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_ATTRIBUTE, @ptrCast(ptr))); } -pub fn sk_X509_ATTRIBUTE_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_ATTRIBUTE_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_X509_ATTRIBUTE_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_ATTRIBUTE, @ptrCast(ptr))))); } -pub fn sk_X509_ATTRIBUTE_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_ATTRIBUTE_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -3784,94 +3784,94 @@ pub fn sk_X509_ATTRIBUTE_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: var b_ptr: ?*const X509_ATTRIBUTE = @as(?*const X509_ATTRIBUTE, @ptrCast(b.*)); return @as(sk_X509_ATTRIBUTE_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_ATTRIBUTE_new(arg_comp: sk_X509_ATTRIBUTE_cmp_func) callconv(.C) ?*struct_stack_st_X509_ATTRIBUTE { +pub fn sk_X509_ATTRIBUTE_new(arg_comp: sk_X509_ATTRIBUTE_cmp_func) callconv(.c) ?*struct_stack_st_X509_ATTRIBUTE { const comp = arg_comp; return @as(?*struct_stack_st_X509_ATTRIBUTE, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_ATTRIBUTE_new_null() callconv(.C) ?*struct_stack_st_X509_ATTRIBUTE { +pub fn sk_X509_ATTRIBUTE_new_null() callconv(.c) ?*struct_stack_st_X509_ATTRIBUTE { return @as(?*struct_stack_st_X509_ATTRIBUTE, @ptrCast(sk_new_null())); } -pub fn sk_X509_ATTRIBUTE_num(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE) callconv(.C) usize { +pub fn sk_X509_ATTRIBUTE_num(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ATTRIBUTE_zero(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) void { +pub fn sk_X509_ATTRIBUTE_zero(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ATTRIBUTE_value(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE, arg_i: usize) callconv(.C) ?*X509_ATTRIBUTE { +pub fn sk_X509_ATTRIBUTE_value(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE, arg_i: usize) callconv(.c) ?*X509_ATTRIBUTE { const sk = arg_sk; const i = arg_i; return @as(?*X509_ATTRIBUTE, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_ATTRIBUTE_set(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_i: usize, arg_p: ?*X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE { +pub fn sk_X509_ATTRIBUTE_set(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_i: usize, arg_p: ?*X509_ATTRIBUTE) callconv(.c) ?*X509_ATTRIBUTE { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as(?*X509_ATTRIBUTE, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_X509_ATTRIBUTE_free(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) void { +pub fn sk_X509_ATTRIBUTE_free(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ATTRIBUTE_pop_free(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_free_func: sk_X509_ATTRIBUTE_free_func) callconv(.C) void { +pub fn sk_X509_ATTRIBUTE_pop_free(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_free_func: sk_X509_ATTRIBUTE_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_ATTRIBUTE_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_ATTRIBUTE_insert(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_p: ?*X509_ATTRIBUTE, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_ATTRIBUTE_insert(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_p: ?*X509_ATTRIBUTE, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_ATTRIBUTE_delete(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_where: usize) callconv(.C) ?*X509_ATTRIBUTE { +pub fn sk_X509_ATTRIBUTE_delete(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_where: usize) callconv(.c) ?*X509_ATTRIBUTE { const sk = arg_sk; const where = arg_where; return @as(?*X509_ATTRIBUTE, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_ATTRIBUTE_delete_ptr(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_p: ?*const X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE { +pub fn sk_X509_ATTRIBUTE_delete_ptr(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_p: ?*const X509_ATTRIBUTE) callconv(.c) ?*X509_ATTRIBUTE { const sk = arg_sk; const p = arg_p; return @as(?*X509_ATTRIBUTE, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_ATTRIBUTE_find(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE, arg_out_index: [*c]usize, arg_p: ?*const X509_ATTRIBUTE) callconv(.C) c_int { +pub fn sk_X509_ATTRIBUTE_find(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE, arg_out_index: [*c]usize, arg_p: ?*const X509_ATTRIBUTE) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_ATTRIBUTE_call_cmp_func); } -pub fn sk_X509_ATTRIBUTE_shift(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE { +pub fn sk_X509_ATTRIBUTE_shift(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.c) ?*X509_ATTRIBUTE { const sk = arg_sk; return @as(?*X509_ATTRIBUTE, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_ATTRIBUTE_push(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_p: ?*X509_ATTRIBUTE) callconv(.C) usize { +pub fn sk_X509_ATTRIBUTE_push(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_p: ?*X509_ATTRIBUTE) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_ATTRIBUTE_pop(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE { +pub fn sk_X509_ATTRIBUTE_pop(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.c) ?*X509_ATTRIBUTE { const sk = arg_sk; return @as(?*X509_ATTRIBUTE, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_ATTRIBUTE_dup(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE) callconv(.C) ?*struct_stack_st_X509_ATTRIBUTE { +pub fn sk_X509_ATTRIBUTE_dup(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE) callconv(.c) ?*struct_stack_st_X509_ATTRIBUTE { const sk = arg_sk; return @as(?*struct_stack_st_X509_ATTRIBUTE, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_ATTRIBUTE_sort(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) void { +pub fn sk_X509_ATTRIBUTE_sort(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_ATTRIBUTE_call_cmp_func); } -pub fn sk_X509_ATTRIBUTE_is_sorted(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE) callconv(.C) c_int { +pub fn sk_X509_ATTRIBUTE_is_sorted(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ATTRIBUTE_set_cmp_func(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_comp: sk_X509_ATTRIBUTE_cmp_func) callconv(.C) sk_X509_ATTRIBUTE_cmp_func { +pub fn sk_X509_ATTRIBUTE_set_cmp_func(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_comp: sk_X509_ATTRIBUTE_cmp_func) callconv(.c) sk_X509_ATTRIBUTE_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_ATTRIBUTE_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_ATTRIBUTE_deep_copy(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE, arg_copy_func: sk_X509_ATTRIBUTE_copy_func, arg_free_func: sk_X509_ATTRIBUTE_free_func) callconv(.C) ?*struct_stack_st_X509_ATTRIBUTE { +pub fn sk_X509_ATTRIBUTE_deep_copy(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE, arg_copy_func: sk_X509_ATTRIBUTE_copy_func, arg_free_func: sk_X509_ATTRIBUTE_free_func) callconv(.c) ?*struct_stack_st_X509_ATTRIBUTE { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -3880,20 +3880,20 @@ pub fn sk_X509_ATTRIBUTE_deep_copy(arg_sk: ?*const struct_stack_st_X509_ATTRIBUT pub const struct_stack_st_DIST_POINT = opaque {}; pub const struct_stack_st_GENERAL_NAME = opaque {}; pub const struct_stack_st_X509_TRUST = opaque {}; -pub const sk_X509_TRUST_free_func = ?*const fn ([*c]X509_TRUST) callconv(.C) void; -pub const sk_X509_TRUST_copy_func = ?*const fn ([*c]X509_TRUST) callconv(.C) [*c]X509_TRUST; -pub const sk_X509_TRUST_cmp_func = ?*const fn ([*c][*c]const X509_TRUST, [*c][*c]const X509_TRUST) callconv(.C) c_int; -pub fn sk_X509_TRUST_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_TRUST_free_func = ?*const fn ([*c]X509_TRUST) callconv(.c) void; +pub const sk_X509_TRUST_copy_func = ?*const fn ([*c]X509_TRUST) callconv(.c) [*c]X509_TRUST; +pub const sk_X509_TRUST_cmp_func = ?*const fn ([*c][*c]const X509_TRUST, [*c][*c]const X509_TRUST) callconv(.c) c_int; +pub fn sk_X509_TRUST_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_TRUST_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]X509_TRUST, @ptrCast(@alignCast(ptr)))); } -pub fn sk_X509_TRUST_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_TRUST_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_X509_TRUST_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]X509_TRUST, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_X509_TRUST_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_TRUST_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -3901,113 +3901,113 @@ pub fn sk_X509_TRUST_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c var b_ptr: [*c]const X509_TRUST = @as([*c]const X509_TRUST, @ptrCast(@alignCast(b.*))); return @as(sk_X509_TRUST_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_TRUST_new(arg_comp: sk_X509_TRUST_cmp_func) callconv(.C) ?*struct_stack_st_X509_TRUST { +pub fn sk_X509_TRUST_new(arg_comp: sk_X509_TRUST_cmp_func) callconv(.c) ?*struct_stack_st_X509_TRUST { const comp = arg_comp; return @as(?*struct_stack_st_X509_TRUST, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_TRUST_new_null() callconv(.C) ?*struct_stack_st_X509_TRUST { +pub fn sk_X509_TRUST_new_null() callconv(.c) ?*struct_stack_st_X509_TRUST { return @as(?*struct_stack_st_X509_TRUST, @ptrCast(sk_new_null())); } -pub fn sk_X509_TRUST_num(arg_sk: ?*const struct_stack_st_X509_TRUST) callconv(.C) usize { +pub fn sk_X509_TRUST_num(arg_sk: ?*const struct_stack_st_X509_TRUST) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_TRUST_zero(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.C) void { +pub fn sk_X509_TRUST_zero(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_TRUST_value(arg_sk: ?*const struct_stack_st_X509_TRUST, arg_i: usize) callconv(.C) [*c]X509_TRUST { +pub fn sk_X509_TRUST_value(arg_sk: ?*const struct_stack_st_X509_TRUST, arg_i: usize) callconv(.c) [*c]X509_TRUST { const sk = arg_sk; const i = arg_i; return @as([*c]X509_TRUST, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } -pub fn sk_X509_TRUST_set(arg_sk: ?*struct_stack_st_X509_TRUST, arg_i: usize, arg_p: [*c]X509_TRUST) callconv(.C) [*c]X509_TRUST { +pub fn sk_X509_TRUST_set(arg_sk: ?*struct_stack_st_X509_TRUST, arg_i: usize, arg_p: [*c]X509_TRUST) callconv(.c) [*c]X509_TRUST { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as([*c]X509_TRUST, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } -pub fn sk_X509_TRUST_free(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.C) void { +pub fn sk_X509_TRUST_free(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_TRUST_pop_free(arg_sk: ?*struct_stack_st_X509_TRUST, arg_free_func: sk_X509_TRUST_free_func) callconv(.C) void { +pub fn sk_X509_TRUST_pop_free(arg_sk: ?*struct_stack_st_X509_TRUST, arg_free_func: sk_X509_TRUST_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_TRUST_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_TRUST_insert(arg_sk: ?*struct_stack_st_X509_TRUST, arg_p: [*c]X509_TRUST, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_TRUST_insert(arg_sk: ?*struct_stack_st_X509_TRUST, arg_p: [*c]X509_TRUST, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_TRUST_delete(arg_sk: ?*struct_stack_st_X509_TRUST, arg_where: usize) callconv(.C) [*c]X509_TRUST { +pub fn sk_X509_TRUST_delete(arg_sk: ?*struct_stack_st_X509_TRUST, arg_where: usize) callconv(.c) [*c]X509_TRUST { const sk = arg_sk; const where = arg_where; return @as([*c]X509_TRUST, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } -pub fn sk_X509_TRUST_delete_ptr(arg_sk: ?*struct_stack_st_X509_TRUST, arg_p: [*c]const X509_TRUST) callconv(.C) [*c]X509_TRUST { +pub fn sk_X509_TRUST_delete_ptr(arg_sk: ?*struct_stack_st_X509_TRUST, arg_p: [*c]const X509_TRUST) callconv(.c) [*c]X509_TRUST { const sk = arg_sk; const p = arg_p; return @as([*c]X509_TRUST, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } -pub fn sk_X509_TRUST_find(arg_sk: ?*const struct_stack_st_X509_TRUST, arg_out_index: [*c]usize, arg_p: [*c]const X509_TRUST) callconv(.C) c_int { +pub fn sk_X509_TRUST_find(arg_sk: ?*const struct_stack_st_X509_TRUST, arg_out_index: [*c]usize, arg_p: [*c]const X509_TRUST) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_TRUST_call_cmp_func); } -pub fn sk_X509_TRUST_shift(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.C) [*c]X509_TRUST { +pub fn sk_X509_TRUST_shift(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.c) [*c]X509_TRUST { const sk = arg_sk; return @as([*c]X509_TRUST, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_X509_TRUST_push(arg_sk: ?*struct_stack_st_X509_TRUST, arg_p: [*c]X509_TRUST) callconv(.C) usize { +pub fn sk_X509_TRUST_push(arg_sk: ?*struct_stack_st_X509_TRUST, arg_p: [*c]X509_TRUST) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_TRUST_pop(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.C) [*c]X509_TRUST { +pub fn sk_X509_TRUST_pop(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.c) [*c]X509_TRUST { const sk = arg_sk; return @as([*c]X509_TRUST, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_X509_TRUST_dup(arg_sk: ?*const struct_stack_st_X509_TRUST) callconv(.C) ?*struct_stack_st_X509_TRUST { +pub fn sk_X509_TRUST_dup(arg_sk: ?*const struct_stack_st_X509_TRUST) callconv(.c) ?*struct_stack_st_X509_TRUST { const sk = arg_sk; return @as(?*struct_stack_st_X509_TRUST, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_TRUST_sort(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.C) void { +pub fn sk_X509_TRUST_sort(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_TRUST_call_cmp_func); } -pub fn sk_X509_TRUST_is_sorted(arg_sk: ?*const struct_stack_st_X509_TRUST) callconv(.C) c_int { +pub fn sk_X509_TRUST_is_sorted(arg_sk: ?*const struct_stack_st_X509_TRUST) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_TRUST_set_cmp_func(arg_sk: ?*struct_stack_st_X509_TRUST, arg_comp: sk_X509_TRUST_cmp_func) callconv(.C) sk_X509_TRUST_cmp_func { +pub fn sk_X509_TRUST_set_cmp_func(arg_sk: ?*struct_stack_st_X509_TRUST, arg_comp: sk_X509_TRUST_cmp_func) callconv(.c) sk_X509_TRUST_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_TRUST_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_TRUST_deep_copy(arg_sk: ?*const struct_stack_st_X509_TRUST, arg_copy_func: sk_X509_TRUST_copy_func, arg_free_func: sk_X509_TRUST_free_func) callconv(.C) ?*struct_stack_st_X509_TRUST { +pub fn sk_X509_TRUST_deep_copy(arg_sk: ?*const struct_stack_st_X509_TRUST, arg_copy_func: sk_X509_TRUST_copy_func, arg_free_func: sk_X509_TRUST_free_func) callconv(.c) ?*struct_stack_st_X509_TRUST { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; return @as(?*struct_stack_st_X509_TRUST, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_TRUST_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_TRUST_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } -pub const sk_X509_REVOKED_free_func = ?*const fn (?*X509_REVOKED) callconv(.C) void; -pub const sk_X509_REVOKED_copy_func = ?*const fn (?*X509_REVOKED) callconv(.C) ?*X509_REVOKED; -pub const sk_X509_REVOKED_cmp_func = ?*const fn ([*c]?*const X509_REVOKED, [*c]?*const X509_REVOKED) callconv(.C) c_int; -pub fn sk_X509_REVOKED_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_REVOKED_free_func = ?*const fn (?*X509_REVOKED) callconv(.c) void; +pub const sk_X509_REVOKED_copy_func = ?*const fn (?*X509_REVOKED) callconv(.c) ?*X509_REVOKED; +pub const sk_X509_REVOKED_cmp_func = ?*const fn ([*c]?*const X509_REVOKED, [*c]?*const X509_REVOKED) callconv(.c) c_int; +pub fn sk_X509_REVOKED_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_REVOKED_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_REVOKED, @ptrCast(ptr))); } -pub fn sk_X509_REVOKED_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_REVOKED_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_X509_REVOKED_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_REVOKED, @ptrCast(ptr))))); } -pub fn sk_X509_REVOKED_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_REVOKED_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -4015,114 +4015,114 @@ pub fn sk_X509_REVOKED_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [ var b_ptr: ?*const X509_REVOKED = @as(?*const X509_REVOKED, @ptrCast(b.*)); return @as(sk_X509_REVOKED_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_REVOKED_new(arg_comp: sk_X509_REVOKED_cmp_func) callconv(.C) ?*struct_stack_st_X509_REVOKED { +pub fn sk_X509_REVOKED_new(arg_comp: sk_X509_REVOKED_cmp_func) callconv(.c) ?*struct_stack_st_X509_REVOKED { const comp = arg_comp; return @as(?*struct_stack_st_X509_REVOKED, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_REVOKED_new_null() callconv(.C) ?*struct_stack_st_X509_REVOKED { +pub fn sk_X509_REVOKED_new_null() callconv(.c) ?*struct_stack_st_X509_REVOKED { return @as(?*struct_stack_st_X509_REVOKED, @ptrCast(sk_new_null())); } -pub fn sk_X509_REVOKED_num(arg_sk: ?*const struct_stack_st_X509_REVOKED) callconv(.C) usize { +pub fn sk_X509_REVOKED_num(arg_sk: ?*const struct_stack_st_X509_REVOKED) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_REVOKED_zero(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.C) void { +pub fn sk_X509_REVOKED_zero(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_REVOKED_value(arg_sk: ?*const struct_stack_st_X509_REVOKED, arg_i: usize) callconv(.C) ?*X509_REVOKED { +pub fn sk_X509_REVOKED_value(arg_sk: ?*const struct_stack_st_X509_REVOKED, arg_i: usize) callconv(.c) ?*X509_REVOKED { const sk = arg_sk; const i = arg_i; return @as(?*X509_REVOKED, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_REVOKED_set(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_i: usize, arg_p: ?*X509_REVOKED) callconv(.C) ?*X509_REVOKED { +pub fn sk_X509_REVOKED_set(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_i: usize, arg_p: ?*X509_REVOKED) callconv(.c) ?*X509_REVOKED { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as(?*X509_REVOKED, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_X509_REVOKED_free(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.C) void { +pub fn sk_X509_REVOKED_free(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_REVOKED_pop_free(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_free_func: sk_X509_REVOKED_free_func) callconv(.C) void { +pub fn sk_X509_REVOKED_pop_free(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_free_func: sk_X509_REVOKED_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_REVOKED_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_REVOKED_insert(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_p: ?*X509_REVOKED, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_REVOKED_insert(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_p: ?*X509_REVOKED, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_REVOKED_delete(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_where: usize) callconv(.C) ?*X509_REVOKED { +pub fn sk_X509_REVOKED_delete(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_where: usize) callconv(.c) ?*X509_REVOKED { const sk = arg_sk; const where = arg_where; return @as(?*X509_REVOKED, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_REVOKED_delete_ptr(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_p: ?*const X509_REVOKED) callconv(.C) ?*X509_REVOKED { +pub fn sk_X509_REVOKED_delete_ptr(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_p: ?*const X509_REVOKED) callconv(.c) ?*X509_REVOKED { const sk = arg_sk; const p = arg_p; return @as(?*X509_REVOKED, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_REVOKED_find(arg_sk: ?*const struct_stack_st_X509_REVOKED, arg_out_index: [*c]usize, arg_p: ?*const X509_REVOKED) callconv(.C) c_int { +pub fn sk_X509_REVOKED_find(arg_sk: ?*const struct_stack_st_X509_REVOKED, arg_out_index: [*c]usize, arg_p: ?*const X509_REVOKED) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_REVOKED_call_cmp_func); } -pub fn sk_X509_REVOKED_shift(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.C) ?*X509_REVOKED { +pub fn sk_X509_REVOKED_shift(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.c) ?*X509_REVOKED { const sk = arg_sk; return @as(?*X509_REVOKED, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_REVOKED_push(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_p: ?*X509_REVOKED) callconv(.C) usize { +pub fn sk_X509_REVOKED_push(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_p: ?*X509_REVOKED) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_REVOKED_pop(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.C) ?*X509_REVOKED { +pub fn sk_X509_REVOKED_pop(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.c) ?*X509_REVOKED { const sk = arg_sk; return @as(?*X509_REVOKED, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_REVOKED_dup(arg_sk: ?*const struct_stack_st_X509_REVOKED) callconv(.C) ?*struct_stack_st_X509_REVOKED { +pub fn sk_X509_REVOKED_dup(arg_sk: ?*const struct_stack_st_X509_REVOKED) callconv(.c) ?*struct_stack_st_X509_REVOKED { const sk = arg_sk; return @as(?*struct_stack_st_X509_REVOKED, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_REVOKED_sort(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.C) void { +pub fn sk_X509_REVOKED_sort(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_REVOKED_call_cmp_func); } -pub fn sk_X509_REVOKED_is_sorted(arg_sk: ?*const struct_stack_st_X509_REVOKED) callconv(.C) c_int { +pub fn sk_X509_REVOKED_is_sorted(arg_sk: ?*const struct_stack_st_X509_REVOKED) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_REVOKED_set_cmp_func(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_comp: sk_X509_REVOKED_cmp_func) callconv(.C) sk_X509_REVOKED_cmp_func { +pub fn sk_X509_REVOKED_set_cmp_func(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_comp: sk_X509_REVOKED_cmp_func) callconv(.c) sk_X509_REVOKED_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_REVOKED_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_REVOKED_deep_copy(arg_sk: ?*const struct_stack_st_X509_REVOKED, arg_copy_func: sk_X509_REVOKED_copy_func, arg_free_func: sk_X509_REVOKED_free_func) callconv(.C) ?*struct_stack_st_X509_REVOKED { +pub fn sk_X509_REVOKED_deep_copy(arg_sk: ?*const struct_stack_st_X509_REVOKED, arg_copy_func: sk_X509_REVOKED_copy_func, arg_free_func: sk_X509_REVOKED_free_func) callconv(.c) ?*struct_stack_st_X509_REVOKED { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; return @as(?*struct_stack_st_X509_REVOKED, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_REVOKED_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_REVOKED_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub const struct_stack_st_X509_INFO = opaque {}; -pub const sk_X509_INFO_free_func = ?*const fn ([*c]X509_INFO) callconv(.C) void; -pub const sk_X509_INFO_copy_func = ?*const fn ([*c]X509_INFO) callconv(.C) [*c]X509_INFO; -pub const sk_X509_INFO_cmp_func = ?*const fn ([*c][*c]const X509_INFO, [*c][*c]const X509_INFO) callconv(.C) c_int; -pub fn sk_X509_INFO_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_INFO_free_func = ?*const fn ([*c]X509_INFO) callconv(.c) void; +pub const sk_X509_INFO_copy_func = ?*const fn ([*c]X509_INFO) callconv(.c) [*c]X509_INFO; +pub const sk_X509_INFO_cmp_func = ?*const fn ([*c][*c]const X509_INFO, [*c][*c]const X509_INFO) callconv(.c) c_int; +pub fn sk_X509_INFO_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_INFO_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]X509_INFO, @ptrCast(@alignCast(ptr)))); } -pub fn sk_X509_INFO_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_INFO_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_X509_INFO_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]X509_INFO, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_X509_INFO_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_INFO_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -4130,94 +4130,94 @@ pub fn sk_X509_INFO_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c] var b_ptr: [*c]const X509_INFO = @as([*c]const X509_INFO, @ptrCast(@alignCast(b.*))); return @as(sk_X509_INFO_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_INFO_new(arg_comp: sk_X509_INFO_cmp_func) callconv(.C) ?*struct_stack_st_X509_INFO { +pub fn sk_X509_INFO_new(arg_comp: sk_X509_INFO_cmp_func) callconv(.c) ?*struct_stack_st_X509_INFO { const comp = arg_comp; return @as(?*struct_stack_st_X509_INFO, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_INFO_new_null() callconv(.C) ?*struct_stack_st_X509_INFO { +pub fn sk_X509_INFO_new_null() callconv(.c) ?*struct_stack_st_X509_INFO { return @as(?*struct_stack_st_X509_INFO, @ptrCast(sk_new_null())); } -pub fn sk_X509_INFO_num(arg_sk: ?*const struct_stack_st_X509_INFO) callconv(.C) usize { +pub fn sk_X509_INFO_num(arg_sk: ?*const struct_stack_st_X509_INFO) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_INFO_zero(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.C) void { +pub fn sk_X509_INFO_zero(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_INFO_value(arg_sk: ?*const struct_stack_st_X509_INFO, arg_i: usize) callconv(.C) [*c]X509_INFO { +pub fn sk_X509_INFO_value(arg_sk: ?*const struct_stack_st_X509_INFO, arg_i: usize) callconv(.c) [*c]X509_INFO { const sk = arg_sk; const i = arg_i; return @as([*c]X509_INFO, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } -pub fn sk_X509_INFO_set(arg_sk: ?*struct_stack_st_X509_INFO, arg_i: usize, arg_p: [*c]X509_INFO) callconv(.C) [*c]X509_INFO { +pub fn sk_X509_INFO_set(arg_sk: ?*struct_stack_st_X509_INFO, arg_i: usize, arg_p: [*c]X509_INFO) callconv(.c) [*c]X509_INFO { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as([*c]X509_INFO, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } -pub fn sk_X509_INFO_free(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.C) void { +pub fn sk_X509_INFO_free(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_INFO_pop_free(arg_sk: ?*struct_stack_st_X509_INFO, arg_free_func: sk_X509_INFO_free_func) callconv(.C) void { +pub fn sk_X509_INFO_pop_free(arg_sk: ?*struct_stack_st_X509_INFO, arg_free_func: sk_X509_INFO_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_INFO_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_INFO_insert(arg_sk: ?*struct_stack_st_X509_INFO, arg_p: [*c]X509_INFO, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_INFO_insert(arg_sk: ?*struct_stack_st_X509_INFO, arg_p: [*c]X509_INFO, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_INFO_delete(arg_sk: ?*struct_stack_st_X509_INFO, arg_where: usize) callconv(.C) [*c]X509_INFO { +pub fn sk_X509_INFO_delete(arg_sk: ?*struct_stack_st_X509_INFO, arg_where: usize) callconv(.c) [*c]X509_INFO { const sk = arg_sk; const where = arg_where; return @as([*c]X509_INFO, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } -pub fn sk_X509_INFO_delete_ptr(arg_sk: ?*struct_stack_st_X509_INFO, arg_p: [*c]const X509_INFO) callconv(.C) [*c]X509_INFO { +pub fn sk_X509_INFO_delete_ptr(arg_sk: ?*struct_stack_st_X509_INFO, arg_p: [*c]const X509_INFO) callconv(.c) [*c]X509_INFO { const sk = arg_sk; const p = arg_p; return @as([*c]X509_INFO, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } -pub fn sk_X509_INFO_find(arg_sk: ?*const struct_stack_st_X509_INFO, arg_out_index: [*c]usize, arg_p: [*c]const X509_INFO) callconv(.C) c_int { +pub fn sk_X509_INFO_find(arg_sk: ?*const struct_stack_st_X509_INFO, arg_out_index: [*c]usize, arg_p: [*c]const X509_INFO) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_INFO_call_cmp_func); } -pub fn sk_X509_INFO_shift(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.C) [*c]X509_INFO { +pub fn sk_X509_INFO_shift(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.c) [*c]X509_INFO { const sk = arg_sk; return @as([*c]X509_INFO, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_X509_INFO_push(arg_sk: ?*struct_stack_st_X509_INFO, arg_p: [*c]X509_INFO) callconv(.C) usize { +pub fn sk_X509_INFO_push(arg_sk: ?*struct_stack_st_X509_INFO, arg_p: [*c]X509_INFO) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_INFO_pop(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.C) [*c]X509_INFO { +pub fn sk_X509_INFO_pop(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.c) [*c]X509_INFO { const sk = arg_sk; return @as([*c]X509_INFO, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_X509_INFO_dup(arg_sk: ?*const struct_stack_st_X509_INFO) callconv(.C) ?*struct_stack_st_X509_INFO { +pub fn sk_X509_INFO_dup(arg_sk: ?*const struct_stack_st_X509_INFO) callconv(.c) ?*struct_stack_st_X509_INFO { const sk = arg_sk; return @as(?*struct_stack_st_X509_INFO, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_INFO_sort(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.C) void { +pub fn sk_X509_INFO_sort(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_INFO_call_cmp_func); } -pub fn sk_X509_INFO_is_sorted(arg_sk: ?*const struct_stack_st_X509_INFO) callconv(.C) c_int { +pub fn sk_X509_INFO_is_sorted(arg_sk: ?*const struct_stack_st_X509_INFO) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_INFO_set_cmp_func(arg_sk: ?*struct_stack_st_X509_INFO, arg_comp: sk_X509_INFO_cmp_func) callconv(.C) sk_X509_INFO_cmp_func { +pub fn sk_X509_INFO_set_cmp_func(arg_sk: ?*struct_stack_st_X509_INFO, arg_comp: sk_X509_INFO_cmp_func) callconv(.c) sk_X509_INFO_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_INFO_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_INFO_deep_copy(arg_sk: ?*const struct_stack_st_X509_INFO, arg_copy_func: sk_X509_INFO_copy_func, arg_free_func: sk_X509_INFO_free_func) callconv(.C) ?*struct_stack_st_X509_INFO { +pub fn sk_X509_INFO_deep_copy(arg_sk: ?*const struct_stack_st_X509_INFO, arg_copy_func: sk_X509_INFO_copy_func, arg_free_func: sk_X509_INFO_free_func) callconv(.c) ?*struct_stack_st_X509_INFO { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -4396,7 +4396,7 @@ pub extern fn X509_check_trust(x: ?*X509, id: c_int, flags: c_int) c_int; pub extern fn X509_TRUST_get_count() c_int; pub extern fn X509_TRUST_get0(idx: c_int) [*c]X509_TRUST; pub extern fn X509_TRUST_get_by_id(id: c_int) c_int; -pub extern fn X509_TRUST_add(id: c_int, flags: c_int, ck: ?*const fn ([*c]X509_TRUST, ?*X509, c_int) callconv(.C) c_int, name: [*c]u8, arg1: c_int, arg2: ?*anyopaque) c_int; +pub extern fn X509_TRUST_add(id: c_int, flags: c_int, ck: ?*const fn ([*c]X509_TRUST, ?*X509, c_int) callconv(.c) c_int, name: [*c]u8, arg1: c_int, arg2: ?*anyopaque) c_int; pub extern fn X509_TRUST_cleanup() void; pub extern fn X509_TRUST_get_flags(xp: [*c]const X509_TRUST) c_int; pub extern fn X509_TRUST_get0_name(xp: [*c]const X509_TRUST) [*c]u8; @@ -4407,20 +4407,20 @@ pub extern fn d2i_RSA_PSS_PARAMS(a: [*c][*c]RSA_PSS_PARAMS, in: [*c][*c]const u8 pub extern fn i2d_RSA_PSS_PARAMS(a: [*c]const RSA_PSS_PARAMS, out: [*c][*c]u8) c_int; pub extern const RSA_PSS_PARAMS_it: ASN1_ITEM; pub const struct_stack_st_X509_LOOKUP = opaque {}; -pub const sk_X509_LOOKUP_free_func = ?*const fn (?*X509_LOOKUP) callconv(.C) void; -pub const sk_X509_LOOKUP_copy_func = ?*const fn (?*X509_LOOKUP) callconv(.C) ?*X509_LOOKUP; -pub const sk_X509_LOOKUP_cmp_func = ?*const fn ([*c]?*const X509_LOOKUP, [*c]?*const X509_LOOKUP) callconv(.C) c_int; -pub fn sk_X509_LOOKUP_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_LOOKUP_free_func = ?*const fn (?*X509_LOOKUP) callconv(.c) void; +pub const sk_X509_LOOKUP_copy_func = ?*const fn (?*X509_LOOKUP) callconv(.c) ?*X509_LOOKUP; +pub const sk_X509_LOOKUP_cmp_func = ?*const fn ([*c]?*const X509_LOOKUP, [*c]?*const X509_LOOKUP) callconv(.c) c_int; +pub fn sk_X509_LOOKUP_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_LOOKUP_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_LOOKUP, @ptrCast(ptr))); } -pub fn sk_X509_LOOKUP_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_LOOKUP_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_X509_LOOKUP_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_LOOKUP, @ptrCast(ptr))))); } -pub fn sk_X509_LOOKUP_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_LOOKUP_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -4428,114 +4428,114 @@ pub fn sk_X509_LOOKUP_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [* var b_ptr: ?*const X509_LOOKUP = @as(?*const X509_LOOKUP, @ptrCast(b.*)); return @as(sk_X509_LOOKUP_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_LOOKUP_new(arg_comp: sk_X509_LOOKUP_cmp_func) callconv(.C) ?*struct_stack_st_X509_LOOKUP { +pub fn sk_X509_LOOKUP_new(arg_comp: sk_X509_LOOKUP_cmp_func) callconv(.c) ?*struct_stack_st_X509_LOOKUP { const comp = arg_comp; return @as(?*struct_stack_st_X509_LOOKUP, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_LOOKUP_new_null() callconv(.C) ?*struct_stack_st_X509_LOOKUP { +pub fn sk_X509_LOOKUP_new_null() callconv(.c) ?*struct_stack_st_X509_LOOKUP { return @as(?*struct_stack_st_X509_LOOKUP, @ptrCast(sk_new_null())); } -pub fn sk_X509_LOOKUP_num(arg_sk: ?*const struct_stack_st_X509_LOOKUP) callconv(.C) usize { +pub fn sk_X509_LOOKUP_num(arg_sk: ?*const struct_stack_st_X509_LOOKUP) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_LOOKUP_zero(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.C) void { +pub fn sk_X509_LOOKUP_zero(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_LOOKUP_value(arg_sk: ?*const struct_stack_st_X509_LOOKUP, arg_i: usize) callconv(.C) ?*X509_LOOKUP { +pub fn sk_X509_LOOKUP_value(arg_sk: ?*const struct_stack_st_X509_LOOKUP, arg_i: usize) callconv(.c) ?*X509_LOOKUP { const sk = arg_sk; const i = arg_i; return @as(?*X509_LOOKUP, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_LOOKUP_set(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_i: usize, arg_p: ?*X509_LOOKUP) callconv(.C) ?*X509_LOOKUP { +pub fn sk_X509_LOOKUP_set(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_i: usize, arg_p: ?*X509_LOOKUP) callconv(.c) ?*X509_LOOKUP { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as(?*X509_LOOKUP, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_X509_LOOKUP_free(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.C) void { +pub fn sk_X509_LOOKUP_free(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_LOOKUP_pop_free(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_free_func: sk_X509_LOOKUP_free_func) callconv(.C) void { +pub fn sk_X509_LOOKUP_pop_free(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_free_func: sk_X509_LOOKUP_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_LOOKUP_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_LOOKUP_insert(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_p: ?*X509_LOOKUP, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_LOOKUP_insert(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_p: ?*X509_LOOKUP, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_LOOKUP_delete(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_where: usize) callconv(.C) ?*X509_LOOKUP { +pub fn sk_X509_LOOKUP_delete(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_where: usize) callconv(.c) ?*X509_LOOKUP { const sk = arg_sk; const where = arg_where; return @as(?*X509_LOOKUP, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_LOOKUP_delete_ptr(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_p: ?*const X509_LOOKUP) callconv(.C) ?*X509_LOOKUP { +pub fn sk_X509_LOOKUP_delete_ptr(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_p: ?*const X509_LOOKUP) callconv(.c) ?*X509_LOOKUP { const sk = arg_sk; const p = arg_p; return @as(?*X509_LOOKUP, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_LOOKUP_find(arg_sk: ?*const struct_stack_st_X509_LOOKUP, arg_out_index: [*c]usize, arg_p: ?*const X509_LOOKUP) callconv(.C) c_int { +pub fn sk_X509_LOOKUP_find(arg_sk: ?*const struct_stack_st_X509_LOOKUP, arg_out_index: [*c]usize, arg_p: ?*const X509_LOOKUP) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_LOOKUP_call_cmp_func); } -pub fn sk_X509_LOOKUP_shift(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.C) ?*X509_LOOKUP { +pub fn sk_X509_LOOKUP_shift(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.c) ?*X509_LOOKUP { const sk = arg_sk; return @as(?*X509_LOOKUP, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_LOOKUP_push(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_p: ?*X509_LOOKUP) callconv(.C) usize { +pub fn sk_X509_LOOKUP_push(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_p: ?*X509_LOOKUP) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_LOOKUP_pop(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.C) ?*X509_LOOKUP { +pub fn sk_X509_LOOKUP_pop(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.c) ?*X509_LOOKUP { const sk = arg_sk; return @as(?*X509_LOOKUP, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_LOOKUP_dup(arg_sk: ?*const struct_stack_st_X509_LOOKUP) callconv(.C) ?*struct_stack_st_X509_LOOKUP { +pub fn sk_X509_LOOKUP_dup(arg_sk: ?*const struct_stack_st_X509_LOOKUP) callconv(.c) ?*struct_stack_st_X509_LOOKUP { const sk = arg_sk; return @as(?*struct_stack_st_X509_LOOKUP, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_LOOKUP_sort(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.C) void { +pub fn sk_X509_LOOKUP_sort(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_LOOKUP_call_cmp_func); } -pub fn sk_X509_LOOKUP_is_sorted(arg_sk: ?*const struct_stack_st_X509_LOOKUP) callconv(.C) c_int { +pub fn sk_X509_LOOKUP_is_sorted(arg_sk: ?*const struct_stack_st_X509_LOOKUP) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_LOOKUP_set_cmp_func(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_comp: sk_X509_LOOKUP_cmp_func) callconv(.C) sk_X509_LOOKUP_cmp_func { +pub fn sk_X509_LOOKUP_set_cmp_func(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_comp: sk_X509_LOOKUP_cmp_func) callconv(.c) sk_X509_LOOKUP_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_LOOKUP_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_LOOKUP_deep_copy(arg_sk: ?*const struct_stack_st_X509_LOOKUP, arg_copy_func: sk_X509_LOOKUP_copy_func, arg_free_func: sk_X509_LOOKUP_free_func) callconv(.C) ?*struct_stack_st_X509_LOOKUP { +pub fn sk_X509_LOOKUP_deep_copy(arg_sk: ?*const struct_stack_st_X509_LOOKUP, arg_copy_func: sk_X509_LOOKUP_copy_func, arg_free_func: sk_X509_LOOKUP_free_func) callconv(.c) ?*struct_stack_st_X509_LOOKUP { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; return @as(?*struct_stack_st_X509_LOOKUP, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_LOOKUP_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_LOOKUP_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub const struct_stack_st_X509_OBJECT = opaque {}; -pub const sk_X509_OBJECT_free_func = ?*const fn (?*X509_OBJECT) callconv(.C) void; -pub const sk_X509_OBJECT_copy_func = ?*const fn (?*X509_OBJECT) callconv(.C) ?*X509_OBJECT; -pub const sk_X509_OBJECT_cmp_func = ?*const fn ([*c]?*const X509_OBJECT, [*c]?*const X509_OBJECT) callconv(.C) c_int; -pub fn sk_X509_OBJECT_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_OBJECT_free_func = ?*const fn (?*X509_OBJECT) callconv(.c) void; +pub const sk_X509_OBJECT_copy_func = ?*const fn (?*X509_OBJECT) callconv(.c) ?*X509_OBJECT; +pub const sk_X509_OBJECT_cmp_func = ?*const fn ([*c]?*const X509_OBJECT, [*c]?*const X509_OBJECT) callconv(.c) c_int; +pub fn sk_X509_OBJECT_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_OBJECT_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_OBJECT, @ptrCast(ptr))); } -pub fn sk_X509_OBJECT_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_OBJECT_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_X509_OBJECT_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_OBJECT, @ptrCast(ptr))))); } -pub fn sk_X509_OBJECT_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_OBJECT_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -4543,114 +4543,114 @@ pub fn sk_X509_OBJECT_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [* var b_ptr: ?*const X509_OBJECT = @as(?*const X509_OBJECT, @ptrCast(b.*)); return @as(sk_X509_OBJECT_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_OBJECT_new(arg_comp: sk_X509_OBJECT_cmp_func) callconv(.C) ?*struct_stack_st_X509_OBJECT { +pub fn sk_X509_OBJECT_new(arg_comp: sk_X509_OBJECT_cmp_func) callconv(.c) ?*struct_stack_st_X509_OBJECT { const comp = arg_comp; return @as(?*struct_stack_st_X509_OBJECT, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_OBJECT_new_null() callconv(.C) ?*struct_stack_st_X509_OBJECT { +pub fn sk_X509_OBJECT_new_null() callconv(.c) ?*struct_stack_st_X509_OBJECT { return @as(?*struct_stack_st_X509_OBJECT, @ptrCast(sk_new_null())); } -pub fn sk_X509_OBJECT_num(arg_sk: ?*const struct_stack_st_X509_OBJECT) callconv(.C) usize { +pub fn sk_X509_OBJECT_num(arg_sk: ?*const struct_stack_st_X509_OBJECT) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_OBJECT_zero(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.C) void { +pub fn sk_X509_OBJECT_zero(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_OBJECT_value(arg_sk: ?*const struct_stack_st_X509_OBJECT, arg_i: usize) callconv(.C) ?*X509_OBJECT { +pub fn sk_X509_OBJECT_value(arg_sk: ?*const struct_stack_st_X509_OBJECT, arg_i: usize) callconv(.c) ?*X509_OBJECT { const sk = arg_sk; const i = arg_i; return @as(?*X509_OBJECT, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_OBJECT_set(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_i: usize, arg_p: ?*X509_OBJECT) callconv(.C) ?*X509_OBJECT { +pub fn sk_X509_OBJECT_set(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_i: usize, arg_p: ?*X509_OBJECT) callconv(.c) ?*X509_OBJECT { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as(?*X509_OBJECT, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_X509_OBJECT_free(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.C) void { +pub fn sk_X509_OBJECT_free(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_OBJECT_pop_free(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_free_func: sk_X509_OBJECT_free_func) callconv(.C) void { +pub fn sk_X509_OBJECT_pop_free(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_free_func: sk_X509_OBJECT_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_OBJECT_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_OBJECT_insert(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_p: ?*X509_OBJECT, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_OBJECT_insert(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_p: ?*X509_OBJECT, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_OBJECT_delete(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_where: usize) callconv(.C) ?*X509_OBJECT { +pub fn sk_X509_OBJECT_delete(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_where: usize) callconv(.c) ?*X509_OBJECT { const sk = arg_sk; const where = arg_where; return @as(?*X509_OBJECT, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_OBJECT_delete_ptr(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_p: ?*const X509_OBJECT) callconv(.C) ?*X509_OBJECT { +pub fn sk_X509_OBJECT_delete_ptr(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_p: ?*const X509_OBJECT) callconv(.c) ?*X509_OBJECT { const sk = arg_sk; const p = arg_p; return @as(?*X509_OBJECT, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_OBJECT_find(arg_sk: ?*const struct_stack_st_X509_OBJECT, arg_out_index: [*c]usize, arg_p: ?*const X509_OBJECT) callconv(.C) c_int { +pub fn sk_X509_OBJECT_find(arg_sk: ?*const struct_stack_st_X509_OBJECT, arg_out_index: [*c]usize, arg_p: ?*const X509_OBJECT) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_OBJECT_call_cmp_func); } -pub fn sk_X509_OBJECT_shift(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.C) ?*X509_OBJECT { +pub fn sk_X509_OBJECT_shift(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.c) ?*X509_OBJECT { const sk = arg_sk; return @as(?*X509_OBJECT, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_OBJECT_push(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_p: ?*X509_OBJECT) callconv(.C) usize { +pub fn sk_X509_OBJECT_push(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_p: ?*X509_OBJECT) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_OBJECT_pop(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.C) ?*X509_OBJECT { +pub fn sk_X509_OBJECT_pop(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.c) ?*X509_OBJECT { const sk = arg_sk; return @as(?*X509_OBJECT, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_OBJECT_dup(arg_sk: ?*const struct_stack_st_X509_OBJECT) callconv(.C) ?*struct_stack_st_X509_OBJECT { +pub fn sk_X509_OBJECT_dup(arg_sk: ?*const struct_stack_st_X509_OBJECT) callconv(.c) ?*struct_stack_st_X509_OBJECT { const sk = arg_sk; return @as(?*struct_stack_st_X509_OBJECT, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_OBJECT_sort(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.C) void { +pub fn sk_X509_OBJECT_sort(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_OBJECT_call_cmp_func); } -pub fn sk_X509_OBJECT_is_sorted(arg_sk: ?*const struct_stack_st_X509_OBJECT) callconv(.C) c_int { +pub fn sk_X509_OBJECT_is_sorted(arg_sk: ?*const struct_stack_st_X509_OBJECT) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_OBJECT_set_cmp_func(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_comp: sk_X509_OBJECT_cmp_func) callconv(.C) sk_X509_OBJECT_cmp_func { +pub fn sk_X509_OBJECT_set_cmp_func(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_comp: sk_X509_OBJECT_cmp_func) callconv(.c) sk_X509_OBJECT_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_OBJECT_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_OBJECT_deep_copy(arg_sk: ?*const struct_stack_st_X509_OBJECT, arg_copy_func: sk_X509_OBJECT_copy_func, arg_free_func: sk_X509_OBJECT_free_func) callconv(.C) ?*struct_stack_st_X509_OBJECT { +pub fn sk_X509_OBJECT_deep_copy(arg_sk: ?*const struct_stack_st_X509_OBJECT, arg_copy_func: sk_X509_OBJECT_copy_func, arg_free_func: sk_X509_OBJECT_free_func) callconv(.c) ?*struct_stack_st_X509_OBJECT { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; return @as(?*struct_stack_st_X509_OBJECT, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_OBJECT_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_OBJECT_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub const struct_stack_st_X509_VERIFY_PARAM = opaque {}; -pub const sk_X509_VERIFY_PARAM_free_func = ?*const fn (?*X509_VERIFY_PARAM) callconv(.C) void; -pub const sk_X509_VERIFY_PARAM_copy_func = ?*const fn (?*X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM; -pub const sk_X509_VERIFY_PARAM_cmp_func = ?*const fn ([*c]?*const X509_VERIFY_PARAM, [*c]?*const X509_VERIFY_PARAM) callconv(.C) c_int; -pub fn sk_X509_VERIFY_PARAM_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_VERIFY_PARAM_free_func = ?*const fn (?*X509_VERIFY_PARAM) callconv(.c) void; +pub const sk_X509_VERIFY_PARAM_copy_func = ?*const fn (?*X509_VERIFY_PARAM) callconv(.c) ?*X509_VERIFY_PARAM; +pub const sk_X509_VERIFY_PARAM_cmp_func = ?*const fn ([*c]?*const X509_VERIFY_PARAM, [*c]?*const X509_VERIFY_PARAM) callconv(.c) c_int; +pub fn sk_X509_VERIFY_PARAM_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_X509_VERIFY_PARAM_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_VERIFY_PARAM, @ptrCast(ptr))); } -pub fn sk_X509_VERIFY_PARAM_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_VERIFY_PARAM_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_X509_VERIFY_PARAM_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_VERIFY_PARAM, @ptrCast(ptr))))); } -pub fn sk_X509_VERIFY_PARAM_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_VERIFY_PARAM_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -4658,112 +4658,112 @@ pub fn sk_X509_VERIFY_PARAM_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg var b_ptr: ?*const X509_VERIFY_PARAM = @as(?*const X509_VERIFY_PARAM, @ptrCast(b.*)); return @as(sk_X509_VERIFY_PARAM_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_VERIFY_PARAM_new(arg_comp: sk_X509_VERIFY_PARAM_cmp_func) callconv(.C) ?*struct_stack_st_X509_VERIFY_PARAM { +pub fn sk_X509_VERIFY_PARAM_new(arg_comp: sk_X509_VERIFY_PARAM_cmp_func) callconv(.c) ?*struct_stack_st_X509_VERIFY_PARAM { const comp = arg_comp; return @as(?*struct_stack_st_X509_VERIFY_PARAM, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_VERIFY_PARAM_new_null() callconv(.C) ?*struct_stack_st_X509_VERIFY_PARAM { +pub fn sk_X509_VERIFY_PARAM_new_null() callconv(.c) ?*struct_stack_st_X509_VERIFY_PARAM { return @as(?*struct_stack_st_X509_VERIFY_PARAM, @ptrCast(sk_new_null())); } -pub fn sk_X509_VERIFY_PARAM_num(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM) callconv(.C) usize { +pub fn sk_X509_VERIFY_PARAM_num(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_VERIFY_PARAM_zero(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.C) void { +pub fn sk_X509_VERIFY_PARAM_zero(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_VERIFY_PARAM_value(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM, arg_i: usize) callconv(.C) ?*X509_VERIFY_PARAM { +pub fn sk_X509_VERIFY_PARAM_value(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM, arg_i: usize) callconv(.c) ?*X509_VERIFY_PARAM { const sk = arg_sk; const i = arg_i; return @as(?*X509_VERIFY_PARAM, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_VERIFY_PARAM_set(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_i: usize, arg_p: ?*X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM { +pub fn sk_X509_VERIFY_PARAM_set(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_i: usize, arg_p: ?*X509_VERIFY_PARAM) callconv(.c) ?*X509_VERIFY_PARAM { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as(?*X509_VERIFY_PARAM, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_X509_VERIFY_PARAM_free(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.C) void { +pub fn sk_X509_VERIFY_PARAM_free(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_VERIFY_PARAM_pop_free(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_free_func: sk_X509_VERIFY_PARAM_free_func) callconv(.C) void { +pub fn sk_X509_VERIFY_PARAM_pop_free(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_free_func: sk_X509_VERIFY_PARAM_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_VERIFY_PARAM_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_VERIFY_PARAM_insert(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_p: ?*X509_VERIFY_PARAM, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_VERIFY_PARAM_insert(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_p: ?*X509_VERIFY_PARAM, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_VERIFY_PARAM_delete(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_where: usize) callconv(.C) ?*X509_VERIFY_PARAM { +pub fn sk_X509_VERIFY_PARAM_delete(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_where: usize) callconv(.c) ?*X509_VERIFY_PARAM { const sk = arg_sk; const where = arg_where; return @as(?*X509_VERIFY_PARAM, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_VERIFY_PARAM_delete_ptr(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_p: ?*const X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM { +pub fn sk_X509_VERIFY_PARAM_delete_ptr(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_p: ?*const X509_VERIFY_PARAM) callconv(.c) ?*X509_VERIFY_PARAM { const sk = arg_sk; const p = arg_p; return @as(?*X509_VERIFY_PARAM, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_VERIFY_PARAM_find(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM, arg_out_index: [*c]usize, arg_p: ?*const X509_VERIFY_PARAM) callconv(.C) c_int { +pub fn sk_X509_VERIFY_PARAM_find(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM, arg_out_index: [*c]usize, arg_p: ?*const X509_VERIFY_PARAM) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_VERIFY_PARAM_call_cmp_func); } -pub fn sk_X509_VERIFY_PARAM_shift(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM { +pub fn sk_X509_VERIFY_PARAM_shift(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.c) ?*X509_VERIFY_PARAM { const sk = arg_sk; return @as(?*X509_VERIFY_PARAM, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_VERIFY_PARAM_push(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_p: ?*X509_VERIFY_PARAM) callconv(.C) usize { +pub fn sk_X509_VERIFY_PARAM_push(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_p: ?*X509_VERIFY_PARAM) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_VERIFY_PARAM_pop(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM { +pub fn sk_X509_VERIFY_PARAM_pop(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.c) ?*X509_VERIFY_PARAM { const sk = arg_sk; return @as(?*X509_VERIFY_PARAM, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_VERIFY_PARAM_dup(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM) callconv(.C) ?*struct_stack_st_X509_VERIFY_PARAM { +pub fn sk_X509_VERIFY_PARAM_dup(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM) callconv(.c) ?*struct_stack_st_X509_VERIFY_PARAM { const sk = arg_sk; return @as(?*struct_stack_st_X509_VERIFY_PARAM, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_VERIFY_PARAM_sort(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.C) void { +pub fn sk_X509_VERIFY_PARAM_sort(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_VERIFY_PARAM_call_cmp_func); } -pub fn sk_X509_VERIFY_PARAM_is_sorted(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM) callconv(.C) c_int { +pub fn sk_X509_VERIFY_PARAM_is_sorted(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_VERIFY_PARAM_set_cmp_func(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_comp: sk_X509_VERIFY_PARAM_cmp_func) callconv(.C) sk_X509_VERIFY_PARAM_cmp_func { +pub fn sk_X509_VERIFY_PARAM_set_cmp_func(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_comp: sk_X509_VERIFY_PARAM_cmp_func) callconv(.c) sk_X509_VERIFY_PARAM_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_X509_VERIFY_PARAM_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_VERIFY_PARAM_deep_copy(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM, arg_copy_func: sk_X509_VERIFY_PARAM_copy_func, arg_free_func: sk_X509_VERIFY_PARAM_free_func) callconv(.C) ?*struct_stack_st_X509_VERIFY_PARAM { +pub fn sk_X509_VERIFY_PARAM_deep_copy(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM, arg_copy_func: sk_X509_VERIFY_PARAM_copy_func, arg_free_func: sk_X509_VERIFY_PARAM_free_func) callconv(.c) ?*struct_stack_st_X509_VERIFY_PARAM { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; return @as(?*struct_stack_st_X509_VERIFY_PARAM, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_VERIFY_PARAM_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_VERIFY_PARAM_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub extern fn X509_check_ca(x: ?*X509) c_int; -pub const X509_STORE_CTX_verify_cb = ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.C) c_int; -pub const X509_STORE_CTX_verify_fn = ?*const fn (?*X509_STORE_CTX) callconv(.C) c_int; -pub const X509_STORE_CTX_get_issuer_fn = ?*const fn ([*c]?*X509, ?*X509_STORE_CTX, ?*X509) callconv(.C) c_int; -pub const X509_STORE_CTX_check_issued_fn = ?*const fn (?*X509_STORE_CTX, ?*X509, ?*X509) callconv(.C) c_int; -pub const X509_STORE_CTX_check_revocation_fn = ?*const fn (?*X509_STORE_CTX) callconv(.C) c_int; -pub const X509_STORE_CTX_get_crl_fn = ?*const fn (?*X509_STORE_CTX, [*c]?*X509_CRL, ?*X509) callconv(.C) c_int; -pub const X509_STORE_CTX_check_crl_fn = ?*const fn (?*X509_STORE_CTX, ?*X509_CRL) callconv(.C) c_int; -pub const X509_STORE_CTX_cert_crl_fn = ?*const fn (?*X509_STORE_CTX, ?*X509_CRL, ?*X509) callconv(.C) c_int; -pub const X509_STORE_CTX_check_policy_fn = ?*const fn (?*X509_STORE_CTX) callconv(.C) c_int; -pub const X509_STORE_CTX_lookup_certs_fn = ?*const fn (?*X509_STORE_CTX, ?*X509_NAME) callconv(.C) ?*struct_stack_st_X509; -pub const X509_STORE_CTX_lookup_crls_fn = ?*const fn (?*X509_STORE_CTX, ?*X509_NAME) callconv(.C) ?*struct_stack_st_X509_CRL; -pub const X509_STORE_CTX_cleanup_fn = ?*const fn (?*X509_STORE_CTX) callconv(.C) c_int; +pub const X509_STORE_CTX_verify_cb = ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.c) c_int; +pub const X509_STORE_CTX_verify_fn = ?*const fn (?*X509_STORE_CTX) callconv(.c) c_int; +pub const X509_STORE_CTX_get_issuer_fn = ?*const fn ([*c]?*X509, ?*X509_STORE_CTX, ?*X509) callconv(.c) c_int; +pub const X509_STORE_CTX_check_issued_fn = ?*const fn (?*X509_STORE_CTX, ?*X509, ?*X509) callconv(.c) c_int; +pub const X509_STORE_CTX_check_revocation_fn = ?*const fn (?*X509_STORE_CTX) callconv(.c) c_int; +pub const X509_STORE_CTX_get_crl_fn = ?*const fn (?*X509_STORE_CTX, [*c]?*X509_CRL, ?*X509) callconv(.c) c_int; +pub const X509_STORE_CTX_check_crl_fn = ?*const fn (?*X509_STORE_CTX, ?*X509_CRL) callconv(.c) c_int; +pub const X509_STORE_CTX_cert_crl_fn = ?*const fn (?*X509_STORE_CTX, ?*X509_CRL, ?*X509) callconv(.c) c_int; +pub const X509_STORE_CTX_check_policy_fn = ?*const fn (?*X509_STORE_CTX) callconv(.c) c_int; +pub const X509_STORE_CTX_lookup_certs_fn = ?*const fn (?*X509_STORE_CTX, ?*X509_NAME) callconv(.c) ?*struct_stack_st_X509; +pub const X509_STORE_CTX_lookup_crls_fn = ?*const fn (?*X509_STORE_CTX, ?*X509_NAME) callconv(.c) ?*struct_stack_st_X509_CRL; +pub const X509_STORE_CTX_cleanup_fn = ?*const fn (?*X509_STORE_CTX) callconv(.c) c_int; pub extern fn X509_STORE_set_depth(store: ?*X509_STORE, depth: c_int) c_int; pub extern fn X509_STORE_CTX_set_depth(ctx: ?*X509_STORE_CTX, depth: c_int) void; pub extern fn X509_OBJECT_idx_by_subject(h: ?*struct_stack_st_X509_OBJECT, @"type": c_int, name: ?*X509_NAME) c_int; @@ -4853,7 +4853,7 @@ pub extern fn X509_STORE_CTX_set_trust(ctx: ?*X509_STORE_CTX, trust: c_int) c_in pub extern fn X509_STORE_CTX_purpose_inherit(ctx: ?*X509_STORE_CTX, def_purpose: c_int, purpose: c_int, trust: c_int) c_int; pub extern fn X509_STORE_CTX_set_flags(ctx: ?*X509_STORE_CTX, flags: c_ulong) void; pub extern fn X509_STORE_CTX_set_time(ctx: ?*X509_STORE_CTX, flags: c_ulong, t: time_t) void; -pub extern fn X509_STORE_CTX_set_verify_cb(ctx: ?*X509_STORE_CTX, verify_cb: ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.C) c_int) void; +pub extern fn X509_STORE_CTX_set_verify_cb(ctx: ?*X509_STORE_CTX, verify_cb: ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.c) c_int) void; pub extern fn X509_STORE_CTX_get0_param(ctx: ?*X509_STORE_CTX) ?*X509_VERIFY_PARAM; pub extern fn X509_STORE_CTX_set0_param(ctx: ?*X509_STORE_CTX, param: ?*X509_VERIFY_PARAM) void; pub extern fn X509_STORE_CTX_set_default(ctx: ?*X509_STORE_CTX, name: [*c]const u8) c_int; @@ -4941,7 +4941,7 @@ pub extern fn FIPS_mode_set(on: c_int) c_int; pub extern fn FIPS_module_name() [*c]const u8; pub extern fn FIPS_version() u32; pub extern fn FIPS_query_algorithm_status(algorithm: [*c]const u8) c_int; -pub const pem_password_cb = fn ([*c]u8, c_int, c_int, ?*anyopaque) callconv(.C) c_int; +pub const pem_password_cb = fn ([*c]u8, c_int, c_int, ?*anyopaque) callconv(.c) c_int; pub extern fn PEM_get_EVP_CIPHER_INFO(header: [*c]u8, cipher: [*c]EVP_CIPHER_INFO) c_int; pub extern fn PEM_do_header(cipher: [*c]EVP_CIPHER_INFO, data: [*c]u8, len: [*c]c_long, callback: ?*const pem_password_cb, u: ?*anyopaque) c_int; pub extern fn PEM_read_bio(bp: [*c]BIO, name: [*c][*c]u8, header: [*c][*c]u8, data: [*c][*c]u8, len: [*c]c_long) c_int; @@ -5140,8 +5140,8 @@ pub extern fn SSL_add1_chain_cert(ssl: ?*SSL, x509: ?*X509) c_int; pub extern fn SSL_CTX_clear_chain_certs(ctx: ?*SSL_CTX) c_int; pub extern fn SSL_CTX_clear_extra_chain_certs(ctx: ?*SSL_CTX) c_int; pub extern fn SSL_clear_chain_certs(ssl: ?*SSL) c_int; -pub extern fn SSL_CTX_set_cert_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, ?*anyopaque) callconv(.C) c_int, arg: ?*anyopaque) void; -pub extern fn SSL_set_cert_cb(ssl: ?*SSL, cb: ?*const fn (?*SSL, ?*anyopaque) callconv(.C) c_int, arg: ?*anyopaque) void; +pub extern fn SSL_CTX_set_cert_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, ?*anyopaque) callconv(.c) c_int, arg: ?*anyopaque) void; +pub extern fn SSL_set_cert_cb(ssl: ?*SSL, cb: ?*const fn (?*SSL, ?*anyopaque) callconv(.c) c_int, arg: ?*anyopaque) void; pub extern fn SSL_get0_certificate_types(ssl: ?*const SSL, out_types: [*c][*c]const u8) usize; pub extern fn SSL_get0_peer_verify_algorithms(ssl: ?*const SSL, out_sigalgs: [*c][*c]const u16) usize; pub extern fn SSL_get0_peer_delegation_algorithms(ssl: ?*const SSL, out_sigalgs: [*c][*c]const u16) usize; @@ -5191,20 +5191,20 @@ pub extern fn SSL_set_private_key_method(ssl: ?*SSL, key_method: [*c]const SSL_P pub extern fn SSL_CTX_set_private_key_method(ctx: ?*SSL_CTX, key_method: [*c]const SSL_PRIVATE_KEY_METHOD) void; pub extern fn SSL_can_release_private_key(ssl: ?*const SSL) c_int; pub const struct_stack_st_SSL_CIPHER = opaque {}; -pub const sk_SSL_CIPHER_free_func = ?*const fn (?*const SSL_CIPHER) callconv(.C) void; -pub const sk_SSL_CIPHER_copy_func = ?*const fn (?*const SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER; -pub const sk_SSL_CIPHER_cmp_func = ?*const fn ([*c]?*const SSL_CIPHER, [*c]?*const SSL_CIPHER) callconv(.C) c_int; -pub fn sk_SSL_CIPHER_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_SSL_CIPHER_free_func = ?*const fn (?*const SSL_CIPHER) callconv(.c) void; +pub const sk_SSL_CIPHER_copy_func = ?*const fn (?*const SSL_CIPHER) callconv(.c) ?*const SSL_CIPHER; +pub const sk_SSL_CIPHER_cmp_func = ?*const fn ([*c]?*const SSL_CIPHER, [*c]?*const SSL_CIPHER) callconv(.c) c_int; +pub fn sk_SSL_CIPHER_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_SSL_CIPHER_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*const SSL_CIPHER, @ptrCast(ptr))); } -pub fn sk_SSL_CIPHER_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_SSL_CIPHER_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; - return @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(@as(sk_SSL_CIPHER_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*const SSL_CIPHER, @ptrCast(ptr))))))); + return @as(?*anyopaque, @ptrCast(@constCast(@volatileCast(@as(sk_SSL_CIPHER_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*const SSL_CIPHER, @ptrCast(ptr))))))); } -pub fn sk_SSL_CIPHER_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_SSL_CIPHER_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -5212,94 +5212,94 @@ pub fn sk_SSL_CIPHER_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c var b_ptr: ?*const SSL_CIPHER = @as(?*const SSL_CIPHER, @ptrCast(b.*)); return @as(sk_SSL_CIPHER_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_SSL_CIPHER_new(arg_comp: sk_SSL_CIPHER_cmp_func) callconv(.C) ?*struct_stack_st_SSL_CIPHER { +pub fn sk_SSL_CIPHER_new(arg_comp: sk_SSL_CIPHER_cmp_func) callconv(.c) ?*struct_stack_st_SSL_CIPHER { const comp = arg_comp; return @as(?*struct_stack_st_SSL_CIPHER, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_SSL_CIPHER_new_null() callconv(.C) ?*struct_stack_st_SSL_CIPHER { +pub fn sk_SSL_CIPHER_new_null() callconv(.c) ?*struct_stack_st_SSL_CIPHER { return @as(?*struct_stack_st_SSL_CIPHER, @ptrCast(sk_new_null())); } -pub fn sk_SSL_CIPHER_num(arg_sk: ?*const struct_stack_st_SSL_CIPHER) callconv(.C) usize { +pub fn sk_SSL_CIPHER_num(arg_sk: ?*const struct_stack_st_SSL_CIPHER) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SSL_CIPHER_zero(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.C) void { +pub fn sk_SSL_CIPHER_zero(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SSL_CIPHER_value(arg_sk: ?*const struct_stack_st_SSL_CIPHER, arg_i: usize) callconv(.C) ?*const SSL_CIPHER { +pub fn sk_SSL_CIPHER_value(arg_sk: ?*const struct_stack_st_SSL_CIPHER, arg_i: usize) callconv(.c) ?*const SSL_CIPHER { const sk = arg_sk; const i = arg_i; return @as(?*const SSL_CIPHER, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_SSL_CIPHER_set(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_i: usize, arg_p: ?*const SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER { +pub fn sk_SSL_CIPHER_set(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_i: usize, arg_p: ?*const SSL_CIPHER) callconv(.c) ?*const SSL_CIPHER { const sk = arg_sk; const i = arg_i; const p = arg_p; - return @as(?*const SSL_CIPHER, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(p))))))); + return @as(?*const SSL_CIPHER, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(@constCast(@volatileCast(p))))))); } -pub fn sk_SSL_CIPHER_free(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.C) void { +pub fn sk_SSL_CIPHER_free(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SSL_CIPHER_pop_free(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_free_func: sk_SSL_CIPHER_free_func) callconv(.C) void { +pub fn sk_SSL_CIPHER_pop_free(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_free_func: sk_SSL_CIPHER_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_SSL_CIPHER_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_SSL_CIPHER_insert(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_p: ?*const SSL_CIPHER, arg_where: usize) callconv(.C) usize { +pub fn sk_SSL_CIPHER_insert(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_p: ?*const SSL_CIPHER, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; - return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(p)))), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(@constCast(@volatileCast(p)))), where); } -pub fn sk_SSL_CIPHER_delete(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_where: usize) callconv(.C) ?*const SSL_CIPHER { +pub fn sk_SSL_CIPHER_delete(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_where: usize) callconv(.c) ?*const SSL_CIPHER { const sk = arg_sk; const where = arg_where; return @as(?*const SSL_CIPHER, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_SSL_CIPHER_delete_ptr(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_p: ?*const SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER { +pub fn sk_SSL_CIPHER_delete_ptr(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_p: ?*const SSL_CIPHER) callconv(.c) ?*const SSL_CIPHER { const sk = arg_sk; const p = arg_p; return @as(?*const SSL_CIPHER, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_SSL_CIPHER_find(arg_sk: ?*const struct_stack_st_SSL_CIPHER, arg_out_index: [*c]usize, arg_p: ?*const SSL_CIPHER) callconv(.C) c_int { +pub fn sk_SSL_CIPHER_find(arg_sk: ?*const struct_stack_st_SSL_CIPHER, arg_out_index: [*c]usize, arg_p: ?*const SSL_CIPHER) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_SSL_CIPHER_call_cmp_func); } -pub fn sk_SSL_CIPHER_shift(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER { +pub fn sk_SSL_CIPHER_shift(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.c) ?*const SSL_CIPHER { const sk = arg_sk; return @as(?*const SSL_CIPHER, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_SSL_CIPHER_push(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_p: ?*const SSL_CIPHER) callconv(.C) usize { +pub fn sk_SSL_CIPHER_push(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_p: ?*const SSL_CIPHER) callconv(.c) usize { const sk = arg_sk; const p = arg_p; - return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(p))))); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(@constCast(@volatileCast(p))))); } -pub fn sk_SSL_CIPHER_pop(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER { +pub fn sk_SSL_CIPHER_pop(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.c) ?*const SSL_CIPHER { const sk = arg_sk; return @as(?*const SSL_CIPHER, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_SSL_CIPHER_dup(arg_sk: ?*const struct_stack_st_SSL_CIPHER) callconv(.C) ?*struct_stack_st_SSL_CIPHER { +pub fn sk_SSL_CIPHER_dup(arg_sk: ?*const struct_stack_st_SSL_CIPHER) callconv(.c) ?*struct_stack_st_SSL_CIPHER { const sk = arg_sk; return @as(?*struct_stack_st_SSL_CIPHER, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_SSL_CIPHER_sort(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.C) void { +pub fn sk_SSL_CIPHER_sort(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_SSL_CIPHER_call_cmp_func); } -pub fn sk_SSL_CIPHER_is_sorted(arg_sk: ?*const struct_stack_st_SSL_CIPHER) callconv(.C) c_int { +pub fn sk_SSL_CIPHER_is_sorted(arg_sk: ?*const struct_stack_st_SSL_CIPHER) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SSL_CIPHER_set_cmp_func(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_comp: sk_SSL_CIPHER_cmp_func) callconv(.C) sk_SSL_CIPHER_cmp_func { +pub fn sk_SSL_CIPHER_set_cmp_func(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_comp: sk_SSL_CIPHER_cmp_func) callconv(.c) sk_SSL_CIPHER_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_SSL_CIPHER_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_SSL_CIPHER_deep_copy(arg_sk: ?*const struct_stack_st_SSL_CIPHER, arg_copy_func: sk_SSL_CIPHER_copy_func, arg_free_func: sk_SSL_CIPHER_free_func) callconv(.C) ?*struct_stack_st_SSL_CIPHER { +pub fn sk_SSL_CIPHER_deep_copy(arg_sk: ?*const struct_stack_st_SSL_CIPHER, arg_copy_func: sk_SSL_CIPHER_copy_func, arg_free_func: sk_SSL_CIPHER_free_func) callconv(.c) ?*struct_stack_st_SSL_CIPHER { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -5393,16 +5393,16 @@ pub extern fn SSL_CTX_sess_number(ctx: ?*const SSL_CTX) usize; pub extern fn SSL_CTX_add_session(ctx: ?*SSL_CTX, session: ?*SSL_SESSION) c_int; pub extern fn SSL_CTX_remove_session(ctx: ?*SSL_CTX, session: ?*SSL_SESSION) c_int; pub extern fn SSL_CTX_flush_sessions(ctx: ?*SSL_CTX, time: u64) void; -pub extern fn SSL_CTX_sess_set_new_cb(ctx: ?*SSL_CTX, new_session_cb: ?*const fn (?*SSL, ?*SSL_SESSION) callconv(.C) c_int) void; -pub extern fn SSL_CTX_sess_get_new_cb(ctx: ?*SSL_CTX) ?*const fn (?*SSL, ?*SSL_SESSION) callconv(.C) c_int; -pub extern fn SSL_CTX_sess_set_remove_cb(ctx: ?*SSL_CTX, remove_session_cb: ?*const fn (?*SSL_CTX, ?*SSL_SESSION) callconv(.C) void) void; -pub extern fn SSL_CTX_sess_get_remove_cb(ctx: ?*SSL_CTX) ?*const fn (?*SSL_CTX, ?*SSL_SESSION) callconv(.C) void; -pub extern fn SSL_CTX_sess_set_get_cb(ctx: ?*SSL_CTX, get_session_cb: ?*const fn (?*SSL, [*c]const u8, c_int, [*c]c_int) callconv(.C) ?*SSL_SESSION) void; -pub extern fn SSL_CTX_sess_get_get_cb(ctx: ?*SSL_CTX) ?*const fn (?*SSL, [*c]const u8, c_int, [*c]c_int) callconv(.C) ?*SSL_SESSION; +pub extern fn SSL_CTX_sess_set_new_cb(ctx: ?*SSL_CTX, new_session_cb: ?*const fn (?*SSL, ?*SSL_SESSION) callconv(.c) c_int) void; +pub extern fn SSL_CTX_sess_get_new_cb(ctx: ?*SSL_CTX) ?*const fn (?*SSL, ?*SSL_SESSION) callconv(.c) c_int; +pub extern fn SSL_CTX_sess_set_remove_cb(ctx: ?*SSL_CTX, remove_session_cb: ?*const fn (?*SSL_CTX, ?*SSL_SESSION) callconv(.c) void) void; +pub extern fn SSL_CTX_sess_get_remove_cb(ctx: ?*SSL_CTX) ?*const fn (?*SSL_CTX, ?*SSL_SESSION) callconv(.c) void; +pub extern fn SSL_CTX_sess_set_get_cb(ctx: ?*SSL_CTX, get_session_cb: ?*const fn (?*SSL, [*c]const u8, c_int, [*c]c_int) callconv(.c) ?*SSL_SESSION) void; +pub extern fn SSL_CTX_sess_get_get_cb(ctx: ?*SSL_CTX) ?*const fn (?*SSL, [*c]const u8, c_int, [*c]c_int) callconv(.c) ?*SSL_SESSION; pub extern fn SSL_magic_pending_session_ptr() ?*SSL_SESSION; pub extern fn SSL_CTX_get_tlsext_ticket_keys(ctx: ?*SSL_CTX, out: ?*anyopaque, len: usize) c_int; pub extern fn SSL_CTX_set_tlsext_ticket_keys(ctx: ?*SSL_CTX, in: ?*const anyopaque, len: usize) c_int; -pub extern fn SSL_CTX_set_tlsext_ticket_key_cb(ctx: ?*SSL_CTX, callback: ?*const fn (?*SSL, [*c]u8, [*c]u8, [*c]EVP_CIPHER_CTX, [*c]HMAC_CTX, c_int) callconv(.C) c_int) c_int; +pub extern fn SSL_CTX_set_tlsext_ticket_key_cb(ctx: ?*SSL_CTX, callback: ?*const fn (?*SSL, [*c]u8, [*c]u8, [*c]EVP_CIPHER_CTX, [*c]HMAC_CTX, c_int) callconv(.c) c_int) c_int; pub extern fn SSL_CTX_set_ticket_aead_method(ctx: ?*SSL_CTX, aead_method: [*c]const SSL_TICKET_AEAD_METHOD) void; pub extern fn SSL_process_tls13_new_session_ticket(ssl: ?*SSL, buf: [*c]const u8, buf_len: usize) ?*SSL_SESSION; pub extern fn SSL_CTX_set_num_tickets(ctx: ?*SSL_CTX, num_tickets: usize) c_int; @@ -5417,16 +5417,16 @@ pub extern fn SSL_CTX_set1_groups(ctx: ?*SSL_CTX, groups: [*c]const c_int, group pub extern fn SSL_set1_groups(ssl: ?*SSL, groups: [*c]const c_int, groups_len: usize) c_int; pub extern fn SSL_CTX_set1_groups_list(ctx: ?*SSL_CTX, groups: [*c]const u8) c_int; pub extern fn SSL_set1_groups_list(ssl: ?*SSL, groups: [*c]const u8) c_int; -pub extern fn SSL_CTX_set_verify(ctx: ?*SSL_CTX, mode: c_int, callback: ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.C) c_int) void; -pub extern fn SSL_set_verify(ssl: ?*SSL, mode: c_int, callback: ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.C) c_int) void; +pub extern fn SSL_CTX_set_verify(ctx: ?*SSL_CTX, mode: c_int, callback: ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.c) c_int) void; +pub extern fn SSL_set_verify(ssl: ?*SSL, mode: c_int, callback: ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.c) c_int) void; pub const ssl_verify_ok: c_int = 0; pub const ssl_verify_invalid: c_int = 1; pub const ssl_verify_retry: c_int = 2; -pub extern fn SSL_set_custom_verify(ssl: ?*SSL, mode: c_int, callback: ?*const fn (?*SSL, [*c]u8) callconv(.C) enum_ssl_verify_result_t) void; +pub extern fn SSL_set_custom_verify(ssl: ?*SSL, mode: c_int, callback: ?*const fn (?*SSL, [*c]u8) callconv(.c) enum_ssl_verify_result_t) void; pub extern fn SSL_CTX_get_verify_mode(ctx: ?*const SSL_CTX) c_int; pub extern fn SSL_get_verify_mode(ssl: ?*const SSL) c_int; -pub extern fn SSL_CTX_get_verify_callback(ctx: ?*const SSL_CTX) ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.C) c_int; -pub extern fn SSL_get_verify_callback(ssl: ?*const SSL) ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.C) c_int; +pub extern fn SSL_CTX_get_verify_callback(ctx: ?*const SSL_CTX) ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.c) c_int; +pub extern fn SSL_get_verify_callback(ssl: ?*const SSL) ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.c) c_int; pub extern fn SSL_set1_host(ssl: ?*SSL, hostname: [*c]const u8) c_int; pub extern fn SSL_CTX_set_verify_depth(ctx: ?*SSL_CTX, depth: c_int) void; pub extern fn SSL_set_verify_depth(ssl: ?*SSL, depth: c_int) void; @@ -5447,7 +5447,7 @@ pub extern fn SSL_CTX_set_default_verify_paths(ctx: ?*SSL_CTX) c_int; pub extern fn SSL_get_verify_result(ssl: ?*const SSL) c_long; pub extern fn SSL_alert_from_verify_result(result: c_long) c_int; pub extern fn SSL_get_ex_data_X509_STORE_CTX_idx() c_int; -pub extern fn SSL_CTX_set_cert_verify_callback(ctx: ?*SSL_CTX, callback: ?*const fn (?*X509_STORE_CTX, ?*anyopaque) callconv(.C) c_int, arg: ?*anyopaque) void; +pub extern fn SSL_CTX_set_cert_verify_callback(ctx: ?*SSL_CTX, callback: ?*const fn (?*X509_STORE_CTX, ?*anyopaque) callconv(.c) c_int, arg: ?*anyopaque) void; pub extern fn SSL_enable_signed_cert_timestamps(ssl: ?*SSL) void; pub extern fn SSL_CTX_enable_signed_cert_timestamps(ctx: ?*SSL_CTX) void; pub extern fn SSL_enable_ocsp_stapling(ssl: ?*SSL) void; @@ -5475,22 +5475,22 @@ pub extern fn SSL_add_bio_cert_subjects_to_stack(out: ?*struct_stack_st_X509_NAM pub extern fn SSL_set_tlsext_host_name(ssl: ?*SSL, name: [*c]const u8) c_int; pub extern fn SSL_get_servername(ssl: ?*const SSL, @"type": c_int) [*c]const u8; pub extern fn SSL_get_servername_type(ssl: ?*const SSL) c_int; -pub extern fn SSL_CTX_set_tlsext_servername_callback(ctx: ?*SSL_CTX, callback: ?*const fn (?*SSL, [*c]c_int, ?*anyopaque) callconv(.C) c_int) c_int; +pub extern fn SSL_CTX_set_tlsext_servername_callback(ctx: ?*SSL_CTX, callback: ?*const fn (?*SSL, [*c]c_int, ?*anyopaque) callconv(.c) c_int) c_int; pub extern fn SSL_CTX_set_tlsext_servername_arg(ctx: ?*SSL_CTX, arg: ?*anyopaque) c_int; pub extern fn SSL_set_SSL_CTX(ssl: ?*SSL, ctx: ?*SSL_CTX) ?*SSL_CTX; pub extern fn SSL_CTX_set_alpn_protos(ctx: ?*SSL_CTX, protos: [*c]const u8, protos_len: usize) c_int; pub extern fn SSL_set_alpn_protos(ssl: ?*SSL, protos: [*c]const u8, protos_len: usize) c_int; -pub extern fn SSL_CTX_set_alpn_select_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c][*c]const u8, [*c]u8, [*c]const u8, c_uint, ?*anyopaque) callconv(.C) c_int, arg: ?*anyopaque) void; +pub extern fn SSL_CTX_set_alpn_select_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c][*c]const u8, [*c]u8, [*c]const u8, c_uint, ?*anyopaque) callconv(.c) c_int, arg: ?*anyopaque) void; pub extern fn SSL_get0_alpn_selected(ssl: ?*const SSL, out_data: [*c][*c]const u8, out_len: [*c]c_uint) void; pub extern fn SSL_CTX_set_allow_unknown_alpn_protos(ctx: ?*SSL_CTX, enabled: c_int) void; pub extern fn SSL_add_application_settings(ssl: ?*SSL, proto: [*c]const u8, proto_len: usize, settings: [*c]const u8, settings_len: usize) c_int; pub extern fn SSL_get0_peer_application_settings(ssl: ?*const SSL, out_data: [*c][*c]const u8, out_len: [*c]usize) void; pub extern fn SSL_has_application_settings(ssl: ?*const SSL) c_int; -pub const ssl_cert_compression_func_t = ?*const fn (?*SSL, ?*CBB, [*c]const u8, usize) callconv(.C) c_int; -pub const ssl_cert_decompression_func_t = ?*const fn (?*SSL, [*c]?*CRYPTO_BUFFER, usize, [*c]const u8, usize) callconv(.C) c_int; +pub const ssl_cert_compression_func_t = ?*const fn (?*SSL, ?*CBB, [*c]const u8, usize) callconv(.c) c_int; +pub const ssl_cert_decompression_func_t = ?*const fn (?*SSL, [*c]?*CRYPTO_BUFFER, usize, [*c]const u8, usize) callconv(.c) c_int; pub extern fn SSL_CTX_add_cert_compression_alg(ctx: ?*SSL_CTX, alg_id: u16, compress: ssl_cert_compression_func_t, decompress: ssl_cert_decompression_func_t) c_int; -pub extern fn SSL_CTX_set_next_protos_advertised_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c][*c]const u8, [*c]c_uint, ?*anyopaque) callconv(.C) c_int, arg: ?*anyopaque) void; -pub extern fn SSL_CTX_set_next_proto_select_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c][*c]u8, [*c]u8, [*c]const u8, c_uint, ?*anyopaque) callconv(.C) c_int, arg: ?*anyopaque) void; +pub extern fn SSL_CTX_set_next_protos_advertised_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c][*c]const u8, [*c]c_uint, ?*anyopaque) callconv(.c) c_int, arg: ?*anyopaque) void; +pub extern fn SSL_CTX_set_next_proto_select_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c][*c]u8, [*c]u8, [*c]const u8, c_uint, ?*anyopaque) callconv(.c) c_int, arg: ?*anyopaque) void; pub extern fn SSL_get0_next_proto_negotiated(ssl: ?*const SSL, out_data: [*c][*c]const u8, out_len: [*c]c_uint) void; pub extern fn SSL_select_next_proto(out: [*c][*c]u8, out_len: [*c]u8, peer: [*c]const u8, peer_len: c_uint, supported: [*c]const u8, supported_len: c_uint) c_int; pub extern fn SSL_CTX_set_tls_channel_id_enabled(ctx: ?*SSL_CTX, enabled: c_int) void; @@ -5499,20 +5499,20 @@ pub extern fn SSL_CTX_set1_tls_channel_id(ctx: ?*SSL_CTX, private_key: [*c]EVP_P pub extern fn SSL_set1_tls_channel_id(ssl: ?*SSL, private_key: [*c]EVP_PKEY) c_int; pub extern fn SSL_get_tls_channel_id(ssl: ?*SSL, out: [*c]u8, max_out: usize) usize; pub const struct_stack_st_SRTP_PROTECTION_PROFILE = opaque {}; -pub const sk_SRTP_PROTECTION_PROFILE_free_func = ?*const fn ([*c]const SRTP_PROTECTION_PROFILE) callconv(.C) void; -pub const sk_SRTP_PROTECTION_PROFILE_copy_func = ?*const fn ([*c]const SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE; -pub const sk_SRTP_PROTECTION_PROFILE_cmp_func = ?*const fn ([*c][*c]const SRTP_PROTECTION_PROFILE, [*c][*c]const SRTP_PROTECTION_PROFILE) callconv(.C) c_int; -pub fn sk_SRTP_PROTECTION_PROFILE_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_SRTP_PROTECTION_PROFILE_free_func = ?*const fn ([*c]const SRTP_PROTECTION_PROFILE) callconv(.c) void; +pub const sk_SRTP_PROTECTION_PROFILE_copy_func = ?*const fn ([*c]const SRTP_PROTECTION_PROFILE) callconv(.c) [*c]const SRTP_PROTECTION_PROFILE; +pub const sk_SRTP_PROTECTION_PROFILE_cmp_func = ?*const fn ([*c][*c]const SRTP_PROTECTION_PROFILE, [*c][*c]const SRTP_PROTECTION_PROFILE) callconv(.c) c_int; +pub fn sk_SRTP_PROTECTION_PROFILE_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_SRTP_PROTECTION_PROFILE_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(ptr)))); } -pub fn sk_SRTP_PROTECTION_PROFILE_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_SRTP_PROTECTION_PROFILE_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; - return @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(@as(sk_SRTP_PROTECTION_PROFILE_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(ptr)))))))); + return @as(?*anyopaque, @ptrCast(@constCast(@volatileCast(@as(sk_SRTP_PROTECTION_PROFILE_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(ptr)))))))); } -pub fn sk_SRTP_PROTECTION_PROFILE_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_SRTP_PROTECTION_PROFILE_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -5520,94 +5520,94 @@ pub fn sk_SRTP_PROTECTION_PROFILE_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_fun var b_ptr: [*c]const SRTP_PROTECTION_PROFILE = @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(b.*))); return @as(sk_SRTP_PROTECTION_PROFILE_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_SRTP_PROTECTION_PROFILE_new(arg_comp: sk_SRTP_PROTECTION_PROFILE_cmp_func) callconv(.C) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { +pub fn sk_SRTP_PROTECTION_PROFILE_new(arg_comp: sk_SRTP_PROTECTION_PROFILE_cmp_func) callconv(.c) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { const comp = arg_comp; return @as(?*struct_stack_st_SRTP_PROTECTION_PROFILE, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_SRTP_PROTECTION_PROFILE_new_null() callconv(.C) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { +pub fn sk_SRTP_PROTECTION_PROFILE_new_null() callconv(.c) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { return @as(?*struct_stack_st_SRTP_PROTECTION_PROFILE, @ptrCast(sk_new_null())); } -pub fn sk_SRTP_PROTECTION_PROFILE_num(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) usize { +pub fn sk_SRTP_PROTECTION_PROFILE_num(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SRTP_PROTECTION_PROFILE_zero(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) void { +pub fn sk_SRTP_PROTECTION_PROFILE_zero(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SRTP_PROTECTION_PROFILE_value(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE, arg_i: usize) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE { +pub fn sk_SRTP_PROTECTION_PROFILE_value(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE, arg_i: usize) callconv(.c) [*c]const SRTP_PROTECTION_PROFILE { const sk = arg_sk; const i = arg_i; return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } -pub fn sk_SRTP_PROTECTION_PROFILE_set(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_i: usize, arg_p: [*c]const SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE { +pub fn sk_SRTP_PROTECTION_PROFILE_set(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_i: usize, arg_p: [*c]const SRTP_PROTECTION_PROFILE) callconv(.c) [*c]const SRTP_PROTECTION_PROFILE { const sk = arg_sk; const i = arg_i; const p = arg_p; - return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(p)))))))); + return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(@constCast(@volatileCast(p)))))))); } -pub fn sk_SRTP_PROTECTION_PROFILE_free(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) void { +pub fn sk_SRTP_PROTECTION_PROFILE_free(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SRTP_PROTECTION_PROFILE_pop_free(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_free_func: sk_SRTP_PROTECTION_PROFILE_free_func) callconv(.C) void { +pub fn sk_SRTP_PROTECTION_PROFILE_pop_free(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_free_func: sk_SRTP_PROTECTION_PROFILE_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_SRTP_PROTECTION_PROFILE_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_SRTP_PROTECTION_PROFILE_insert(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_p: [*c]const SRTP_PROTECTION_PROFILE, arg_where: usize) callconv(.C) usize { +pub fn sk_SRTP_PROTECTION_PROFILE_insert(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_p: [*c]const SRTP_PROTECTION_PROFILE, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; - return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(p)))), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(@constCast(@volatileCast(p)))), where); } -pub fn sk_SRTP_PROTECTION_PROFILE_delete(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_where: usize) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE { +pub fn sk_SRTP_PROTECTION_PROFILE_delete(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_where: usize) callconv(.c) [*c]const SRTP_PROTECTION_PROFILE { const sk = arg_sk; const where = arg_where; return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } -pub fn sk_SRTP_PROTECTION_PROFILE_delete_ptr(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_p: [*c]const SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE { +pub fn sk_SRTP_PROTECTION_PROFILE_delete_ptr(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_p: [*c]const SRTP_PROTECTION_PROFILE) callconv(.c) [*c]const SRTP_PROTECTION_PROFILE { const sk = arg_sk; const p = arg_p; return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } -pub fn sk_SRTP_PROTECTION_PROFILE_find(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE, arg_out_index: [*c]usize, arg_p: [*c]const SRTP_PROTECTION_PROFILE) callconv(.C) c_int { +pub fn sk_SRTP_PROTECTION_PROFILE_find(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE, arg_out_index: [*c]usize, arg_p: [*c]const SRTP_PROTECTION_PROFILE) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_SRTP_PROTECTION_PROFILE_call_cmp_func); } -pub fn sk_SRTP_PROTECTION_PROFILE_shift(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE { +pub fn sk_SRTP_PROTECTION_PROFILE_shift(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.c) [*c]const SRTP_PROTECTION_PROFILE { const sk = arg_sk; return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_SRTP_PROTECTION_PROFILE_push(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_p: [*c]const SRTP_PROTECTION_PROFILE) callconv(.C) usize { +pub fn sk_SRTP_PROTECTION_PROFILE_push(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_p: [*c]const SRTP_PROTECTION_PROFILE) callconv(.c) usize { const sk = arg_sk; const p = arg_p; - return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(p))))); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(@constCast(@volatileCast(p))))); } -pub fn sk_SRTP_PROTECTION_PROFILE_pop(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE { +pub fn sk_SRTP_PROTECTION_PROFILE_pop(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.c) [*c]const SRTP_PROTECTION_PROFILE { const sk = arg_sk; return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_SRTP_PROTECTION_PROFILE_dup(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { +pub fn sk_SRTP_PROTECTION_PROFILE_dup(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.c) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { const sk = arg_sk; return @as(?*struct_stack_st_SRTP_PROTECTION_PROFILE, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_SRTP_PROTECTION_PROFILE_sort(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) void { +pub fn sk_SRTP_PROTECTION_PROFILE_sort(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_SRTP_PROTECTION_PROFILE_call_cmp_func); } -pub fn sk_SRTP_PROTECTION_PROFILE_is_sorted(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) c_int { +pub fn sk_SRTP_PROTECTION_PROFILE_is_sorted(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SRTP_PROTECTION_PROFILE_set_cmp_func(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_comp: sk_SRTP_PROTECTION_PROFILE_cmp_func) callconv(.C) sk_SRTP_PROTECTION_PROFILE_cmp_func { +pub fn sk_SRTP_PROTECTION_PROFILE_set_cmp_func(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_comp: sk_SRTP_PROTECTION_PROFILE_cmp_func) callconv(.c) sk_SRTP_PROTECTION_PROFILE_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_SRTP_PROTECTION_PROFILE_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_SRTP_PROTECTION_PROFILE_deep_copy(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE, arg_copy_func: sk_SRTP_PROTECTION_PROFILE_copy_func, arg_free_func: sk_SRTP_PROTECTION_PROFILE_free_func) callconv(.C) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { +pub fn sk_SRTP_PROTECTION_PROFILE_deep_copy(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE, arg_copy_func: sk_SRTP_PROTECTION_PROFILE_copy_func, arg_free_func: sk_SRTP_PROTECTION_PROFILE_free_func) callconv(.c) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -5617,10 +5617,10 @@ pub fn sk_SRTP_PROTECTION_PROFILE_deep_copy(arg_sk: ?*const struct_stack_st_SRTP // pub extern fn SSL_set_srtp_profiles(ssl: ?*SSL, profiles: [*c]const u8) c_int; // pub extern fn SSL_get_srtp_profiles(ssl: ?*const SSL) ?*const struct_stack_st_SRTP_PROTECTION_PROFILE; // pub extern fn SSL_get_selected_srtp_profile(ssl: ?*SSL) [*c]const SRTP_PROTECTION_PROFILE; -pub extern fn SSL_CTX_set_psk_client_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c]const u8, [*c]u8, c_uint, [*c]u8, c_uint) callconv(.C) c_uint) void; -pub extern fn SSL_set_psk_client_callback(ssl: ?*SSL, cb: ?*const fn (?*SSL, [*c]const u8, [*c]u8, c_uint, [*c]u8, c_uint) callconv(.C) c_uint) void; -pub extern fn SSL_CTX_set_psk_server_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c]const u8, [*c]u8, c_uint) callconv(.C) c_uint) void; -pub extern fn SSL_set_psk_server_callback(ssl: ?*SSL, cb: ?*const fn (?*SSL, [*c]const u8, [*c]u8, c_uint) callconv(.C) c_uint) void; +pub extern fn SSL_CTX_set_psk_client_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c]const u8, [*c]u8, c_uint, [*c]u8, c_uint) callconv(.c) c_uint) void; +pub extern fn SSL_set_psk_client_callback(ssl: ?*SSL, cb: ?*const fn (?*SSL, [*c]const u8, [*c]u8, c_uint, [*c]u8, c_uint) callconv(.c) c_uint) void; +pub extern fn SSL_CTX_set_psk_server_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c]const u8, [*c]u8, c_uint) callconv(.c) c_uint) void; +pub extern fn SSL_set_psk_server_callback(ssl: ?*SSL, cb: ?*const fn (?*SSL, [*c]const u8, [*c]u8, c_uint) callconv(.c) c_uint) void; pub extern fn SSL_CTX_use_psk_identity_hint(ctx: ?*SSL_CTX, identity_hint: [*c]const u8) c_int; pub extern fn SSL_use_psk_identity_hint(ssl: ?*SSL, identity_hint: [*c]const u8) c_int; pub extern fn SSL_get_psk_identity_hint(ssl: ?*const SSL) [*c]const u8; @@ -5699,13 +5699,13 @@ pub extern fn SSL_serialize_capabilities(ssl: ?*const SSL, out: ?*CBB) c_int; pub extern fn SSL_request_handshake_hints(ssl: ?*SSL, client_hello: [*c]const u8, client_hello_len: usize, capabilities: [*c]const u8, capabilities_len: usize) c_int; pub extern fn SSL_serialize_handshake_hints(ssl: ?*const SSL, out: ?*CBB) c_int; pub extern fn SSL_set_handshake_hints(ssl: ?*SSL, hints: [*c]const u8, hints_len: usize) c_int; -pub extern fn SSL_CTX_set_msg_callback(ctx: ?*SSL_CTX, cb: ?*const fn (c_int, c_int, c_int, ?*const anyopaque, usize, ?*SSL, ?*anyopaque) callconv(.C) void) void; +pub extern fn SSL_CTX_set_msg_callback(ctx: ?*SSL_CTX, cb: ?*const fn (c_int, c_int, c_int, ?*const anyopaque, usize, ?*SSL, ?*anyopaque) callconv(.c) void) void; pub extern fn SSL_CTX_set_msg_callback_arg(ctx: ?*SSL_CTX, arg: ?*anyopaque) void; -pub extern fn SSL_set_msg_callback(ssl: ?*SSL, cb: ?*const fn (c_int, c_int, c_int, ?*const anyopaque, usize, ?*SSL, ?*anyopaque) callconv(.C) void) void; +pub extern fn SSL_set_msg_callback(ssl: ?*SSL, cb: ?*const fn (c_int, c_int, c_int, ?*const anyopaque, usize, ?*SSL, ?*anyopaque) callconv(.c) void) void; pub extern fn SSL_set_msg_callback_arg(ssl: ?*SSL, arg: ?*anyopaque) void; -pub extern fn SSL_CTX_set_keylog_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*const SSL, [*c]const u8) callconv(.C) void) void; -pub extern fn SSL_CTX_get_keylog_callback(ctx: ?*const SSL_CTX) ?*const fn (?*const SSL, [*c]const u8) callconv(.C) void; -pub extern fn SSL_CTX_set_current_time_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*const SSL, [*c]struct_timeval) callconv(.C) void) void; +pub extern fn SSL_CTX_set_keylog_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*const SSL, [*c]const u8) callconv(.c) void) void; +pub extern fn SSL_CTX_get_keylog_callback(ctx: ?*const SSL_CTX) ?*const fn (?*const SSL, [*c]const u8) callconv(.c) void; +pub extern fn SSL_CTX_set_current_time_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*const SSL, [*c]struct_timeval) callconv(.c) void) void; pub extern fn SSL_set_shed_handshake_config(ssl: ?*SSL, enable: c_int) void; pub const ssl_renegotiate_never: c_int = 0; pub const ssl_renegotiate_once: c_int = 1; @@ -5728,15 +5728,15 @@ pub const ssl_select_cert_retry: c_int = 0; pub const ssl_select_cert_error: c_int = -1; pub const enum_ssl_select_cert_result_t = c_int; pub extern fn SSL_early_callback_ctx_extension_get(client_hello: [*c]const SSL_CLIENT_HELLO, extension_type: u16, out_data: [*c][*c]const u8, out_len: [*c]usize) c_int; -pub extern fn SSL_CTX_set_select_certificate_cb(ctx: ?*SSL_CTX, cb: ?*const fn ([*c]const SSL_CLIENT_HELLO) callconv(.C) enum_ssl_select_cert_result_t) void; -pub extern fn SSL_CTX_set_dos_protection_cb(ctx: ?*SSL_CTX, cb: ?*const fn ([*c]const SSL_CLIENT_HELLO) callconv(.C) c_int) void; +pub extern fn SSL_CTX_set_select_certificate_cb(ctx: ?*SSL_CTX, cb: ?*const fn ([*c]const SSL_CLIENT_HELLO) callconv(.c) enum_ssl_select_cert_result_t) void; +pub extern fn SSL_CTX_set_dos_protection_cb(ctx: ?*SSL_CTX, cb: ?*const fn ([*c]const SSL_CLIENT_HELLO) callconv(.c) c_int) void; pub extern fn SSL_CTX_set_reverify_on_resume(ctx: ?*SSL_CTX, enabled: c_int) void; pub extern fn SSL_set_enforce_rsa_key_usage(ssl: ?*SSL, enabled: c_int) void; pub extern fn SSL_was_key_usage_invalid(ssl: ?*const SSL) c_int; -pub extern fn SSL_CTX_set_info_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*const SSL, c_int, c_int) callconv(.C) void) void; -pub extern fn SSL_CTX_get_info_callback(ctx: ?*SSL_CTX) ?*const fn (?*const SSL, c_int, c_int) callconv(.C) void; -pub extern fn SSL_set_info_callback(ssl: ?*SSL, cb: ?*const fn (?*const SSL, c_int, c_int) callconv(.C) void) void; -pub extern fn SSL_get_info_callback(ssl: ?*const SSL) ?*const fn (?*const SSL, c_int, c_int) callconv(.C) void; +pub extern fn SSL_CTX_set_info_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*const SSL, c_int, c_int) callconv(.c) void) void; +pub extern fn SSL_CTX_get_info_callback(ctx: ?*SSL_CTX) ?*const fn (?*const SSL, c_int, c_int) callconv(.c) void; +pub extern fn SSL_set_info_callback(ssl: ?*SSL, cb: ?*const fn (?*const SSL, c_int, c_int) callconv(.c) void) void; +pub extern fn SSL_get_info_callback(ssl: ?*const SSL) ?*const fn (?*const SSL, c_int, c_int) callconv(.c) void; pub extern fn SSL_state_string_long(ssl: ?*const SSL) [*c]const u8; pub extern fn SSL_get_shutdown(ssl: ?*const SSL) c_int; pub extern fn SSL_get_peer_signature_algorithm(ssl: ?*const SSL) u16; @@ -5793,8 +5793,8 @@ pub extern fn DTLSv1_client_method() ?*const SSL_METHOD; pub extern fn DTLSv1_2_server_method() ?*const SSL_METHOD; pub extern fn DTLSv1_2_client_method() ?*const SSL_METHOD; pub extern fn SSL_clear(ssl: ?*SSL) c_int; -pub extern fn SSL_CTX_set_tmp_rsa_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, c_int, c_int) callconv(.C) ?*RSA) void; -pub extern fn SSL_set_tmp_rsa_callback(ssl: ?*SSL, cb: ?*const fn (?*SSL, c_int, c_int) callconv(.C) ?*RSA) void; +pub extern fn SSL_CTX_set_tmp_rsa_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, c_int, c_int) callconv(.c) ?*RSA) void; +pub extern fn SSL_set_tmp_rsa_callback(ssl: ?*SSL, cb: ?*const fn (?*SSL, c_int, c_int) callconv(.c) ?*RSA) void; pub extern fn SSL_CTX_sess_connect(ctx: ?*const SSL_CTX) c_int; pub extern fn SSL_CTX_sess_connect_good(ctx: ?*const SSL_CTX) c_int; pub extern fn SSL_CTX_sess_connect_renegotiate(ctx: ?*const SSL_CTX) c_int; @@ -5832,26 +5832,26 @@ pub extern fn SSL_get_current_expansion(ssl: ?*SSL) ?*const COMP_METHOD; pub extern fn SSL_get_server_tmp_key(ssl: ?*SSL, out_key: [*c][*c]EVP_PKEY) c_int; pub extern fn SSL_CTX_set_tmp_dh(ctx: ?*SSL_CTX, dh: ?*const DH) c_int; pub extern fn SSL_set_tmp_dh(ssl: ?*SSL, dh: ?*const DH) c_int; -pub extern fn SSL_CTX_set_tmp_dh_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, c_int, c_int) callconv(.C) ?*DH) void; -pub extern fn SSL_set_tmp_dh_callback(ssl: ?*SSL, cb: ?*const fn (?*SSL, c_int, c_int) callconv(.C) ?*DH) void; +pub extern fn SSL_CTX_set_tmp_dh_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, c_int, c_int) callconv(.c) ?*DH) void; +pub extern fn SSL_set_tmp_dh_callback(ssl: ?*SSL, cb: ?*const fn (?*SSL, c_int, c_int) callconv(.c) ?*DH) void; pub extern fn SSL_CTX_set1_sigalgs(ctx: ?*SSL_CTX, values: [*c]const c_int, num_values: usize) c_int; pub extern fn SSL_set1_sigalgs(ssl: ?*SSL, values: [*c]const c_int, num_values: usize) c_int; pub extern fn SSL_CTX_set1_sigalgs_list(ctx: ?*SSL_CTX, str: [*c]const u8) c_int; pub extern fn SSL_set1_sigalgs_list(ssl: ?*SSL, str: [*c]const u8) c_int; -pub const sk_SSL_COMP_free_func = ?*const fn ([*c]SSL_COMP) callconv(.C) void; -pub const sk_SSL_COMP_copy_func = ?*const fn ([*c]SSL_COMP) callconv(.C) [*c]SSL_COMP; -pub const sk_SSL_COMP_cmp_func = ?*const fn ([*c][*c]const SSL_COMP, [*c][*c]const SSL_COMP) callconv(.C) c_int; -pub fn sk_SSL_COMP_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_SSL_COMP_free_func = ?*const fn ([*c]SSL_COMP) callconv(.c) void; +pub const sk_SSL_COMP_copy_func = ?*const fn ([*c]SSL_COMP) callconv(.c) [*c]SSL_COMP; +pub const sk_SSL_COMP_cmp_func = ?*const fn ([*c][*c]const SSL_COMP, [*c][*c]const SSL_COMP) callconv(.c) c_int; +pub fn sk_SSL_COMP_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.c) void { const free_func = arg_free_func; const ptr = arg_ptr; @as(sk_SSL_COMP_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]SSL_COMP, @ptrCast(@alignCast(ptr)))); } -pub fn sk_SSL_COMP_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_SSL_COMP_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.c) ?*anyopaque { const copy_func = arg_copy_func; const ptr = arg_ptr; return @as(?*anyopaque, @ptrCast(@as(sk_SSL_COMP_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]SSL_COMP, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_SSL_COMP_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { +pub fn sk_SSL_COMP_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.c) c_int { const cmp_func = arg_cmp_func; const a = arg_a; const b = arg_b; @@ -5859,94 +5859,94 @@ pub fn sk_SSL_COMP_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]c var b_ptr: [*c]const SSL_COMP = @as([*c]const SSL_COMP, @ptrCast(@alignCast(b.*))); return @as(sk_SSL_COMP_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_SSL_COMP_new(arg_comp: sk_SSL_COMP_cmp_func) callconv(.C) ?*struct_stack_st_SSL_COMP { +pub fn sk_SSL_COMP_new(arg_comp: sk_SSL_COMP_cmp_func) callconv(.c) ?*struct_stack_st_SSL_COMP { const comp = arg_comp; return @as(?*struct_stack_st_SSL_COMP, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_SSL_COMP_new_null() callconv(.C) ?*struct_stack_st_SSL_COMP { +pub fn sk_SSL_COMP_new_null() callconv(.c) ?*struct_stack_st_SSL_COMP { return @as(?*struct_stack_st_SSL_COMP, @ptrCast(sk_new_null())); } -pub fn sk_SSL_COMP_num(arg_sk: ?*const struct_stack_st_SSL_COMP) callconv(.C) usize { +pub fn sk_SSL_COMP_num(arg_sk: ?*const struct_stack_st_SSL_COMP) callconv(.c) usize { const sk = arg_sk; return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SSL_COMP_zero(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.C) void { +pub fn sk_SSL_COMP_zero(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.c) void { const sk = arg_sk; sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SSL_COMP_value(arg_sk: ?*const struct_stack_st_SSL_COMP, arg_i: usize) callconv(.C) [*c]SSL_COMP { +pub fn sk_SSL_COMP_value(arg_sk: ?*const struct_stack_st_SSL_COMP, arg_i: usize) callconv(.c) [*c]SSL_COMP { const sk = arg_sk; const i = arg_i; return @as([*c]SSL_COMP, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } -pub fn sk_SSL_COMP_set(arg_sk: ?*struct_stack_st_SSL_COMP, arg_i: usize, arg_p: [*c]SSL_COMP) callconv(.C) [*c]SSL_COMP { +pub fn sk_SSL_COMP_set(arg_sk: ?*struct_stack_st_SSL_COMP, arg_i: usize, arg_p: [*c]SSL_COMP) callconv(.c) [*c]SSL_COMP { const sk = arg_sk; const i = arg_i; const p = arg_p; return @as([*c]SSL_COMP, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } -pub fn sk_SSL_COMP_free(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.C) void { +pub fn sk_SSL_COMP_free(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.c) void { const sk = arg_sk; sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SSL_COMP_pop_free(arg_sk: ?*struct_stack_st_SSL_COMP, arg_free_func: sk_SSL_COMP_free_func) callconv(.C) void { +pub fn sk_SSL_COMP_pop_free(arg_sk: ?*struct_stack_st_SSL_COMP, arg_free_func: sk_SSL_COMP_free_func) callconv(.c) void { const sk = arg_sk; const free_func = arg_free_func; sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_SSL_COMP_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_SSL_COMP_insert(arg_sk: ?*struct_stack_st_SSL_COMP, arg_p: [*c]SSL_COMP, arg_where: usize) callconv(.C) usize { +pub fn sk_SSL_COMP_insert(arg_sk: ?*struct_stack_st_SSL_COMP, arg_p: [*c]SSL_COMP, arg_where: usize) callconv(.c) usize { const sk = arg_sk; const p = arg_p; const where = arg_where; return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_SSL_COMP_delete(arg_sk: ?*struct_stack_st_SSL_COMP, arg_where: usize) callconv(.C) [*c]SSL_COMP { +pub fn sk_SSL_COMP_delete(arg_sk: ?*struct_stack_st_SSL_COMP, arg_where: usize) callconv(.c) [*c]SSL_COMP { const sk = arg_sk; const where = arg_where; return @as([*c]SSL_COMP, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } -pub fn sk_SSL_COMP_delete_ptr(arg_sk: ?*struct_stack_st_SSL_COMP, arg_p: [*c]const SSL_COMP) callconv(.C) [*c]SSL_COMP { +pub fn sk_SSL_COMP_delete_ptr(arg_sk: ?*struct_stack_st_SSL_COMP, arg_p: [*c]const SSL_COMP) callconv(.c) [*c]SSL_COMP { const sk = arg_sk; const p = arg_p; return @as([*c]SSL_COMP, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } -pub fn sk_SSL_COMP_find(arg_sk: ?*const struct_stack_st_SSL_COMP, arg_out_index: [*c]usize, arg_p: [*c]const SSL_COMP) callconv(.C) c_int { +pub fn sk_SSL_COMP_find(arg_sk: ?*const struct_stack_st_SSL_COMP, arg_out_index: [*c]usize, arg_p: [*c]const SSL_COMP) callconv(.c) c_int { const sk = arg_sk; const out_index = arg_out_index; const p = arg_p; return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_SSL_COMP_call_cmp_func); } -pub fn sk_SSL_COMP_shift(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.C) [*c]SSL_COMP { +pub fn sk_SSL_COMP_shift(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.c) [*c]SSL_COMP { const sk = arg_sk; return @as([*c]SSL_COMP, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_SSL_COMP_push(arg_sk: ?*struct_stack_st_SSL_COMP, arg_p: [*c]SSL_COMP) callconv(.C) usize { +pub fn sk_SSL_COMP_push(arg_sk: ?*struct_stack_st_SSL_COMP, arg_p: [*c]SSL_COMP) callconv(.c) usize { const sk = arg_sk; const p = arg_p; return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_SSL_COMP_pop(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.C) [*c]SSL_COMP { +pub fn sk_SSL_COMP_pop(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.c) [*c]SSL_COMP { const sk = arg_sk; return @as([*c]SSL_COMP, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_SSL_COMP_dup(arg_sk: ?*const struct_stack_st_SSL_COMP) callconv(.C) ?*struct_stack_st_SSL_COMP { +pub fn sk_SSL_COMP_dup(arg_sk: ?*const struct_stack_st_SSL_COMP) callconv(.c) ?*struct_stack_st_SSL_COMP { const sk = arg_sk; return @as(?*struct_stack_st_SSL_COMP, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_SSL_COMP_sort(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.C) void { +pub fn sk_SSL_COMP_sort(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.c) void { const sk = arg_sk; sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_SSL_COMP_call_cmp_func); } -pub fn sk_SSL_COMP_is_sorted(arg_sk: ?*const struct_stack_st_SSL_COMP) callconv(.C) c_int { +pub fn sk_SSL_COMP_is_sorted(arg_sk: ?*const struct_stack_st_SSL_COMP) callconv(.c) c_int { const sk = arg_sk; return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SSL_COMP_set_cmp_func(arg_sk: ?*struct_stack_st_SSL_COMP, arg_comp: sk_SSL_COMP_cmp_func) callconv(.C) sk_SSL_COMP_cmp_func { +pub fn sk_SSL_COMP_set_cmp_func(arg_sk: ?*struct_stack_st_SSL_COMP, arg_comp: sk_SSL_COMP_cmp_func) callconv(.c) sk_SSL_COMP_cmp_func { const sk = arg_sk; const comp = arg_comp; return @as(sk_SSL_COMP_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_SSL_COMP_deep_copy(arg_sk: ?*const struct_stack_st_SSL_COMP, arg_copy_func: sk_SSL_COMP_copy_func, arg_free_func: sk_SSL_COMP_free_func) callconv(.C) ?*struct_stack_st_SSL_COMP { +pub fn sk_SSL_COMP_deep_copy(arg_sk: ?*const struct_stack_st_SSL_COMP, arg_copy_func: sk_SSL_COMP_copy_func, arg_free_func: sk_SSL_COMP_free_func) callconv(.c) ?*struct_stack_st_SSL_COMP { const sk = arg_sk; const copy_func = arg_copy_func; const free_func = arg_free_func; @@ -5956,7 +5956,7 @@ pub extern fn SSL_cache_hit(ssl: ?*SSL) c_int; pub extern fn SSL_get_default_timeout(ssl: ?*const SSL) c_long; pub extern fn SSL_get_version(ssl: ?*const SSL) [*c]const u8; pub extern fn SSL_get_cipher_list(ssl: ?*const SSL, n: c_int) [*c]const u8; -pub extern fn SSL_CTX_set_client_cert_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c]?*X509, [*c][*c]EVP_PKEY) callconv(.C) c_int) void; +pub extern fn SSL_CTX_set_client_cert_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c]?*X509, [*c][*c]EVP_PKEY) callconv(.c) c_int) void; pub extern fn SSL_want(ssl: ?*const SSL) c_int; pub extern fn SSL_get_finished(ssl: ?*const SSL, buf: ?*anyopaque, count: usize) usize; pub extern fn SSL_get_peer_finished(ssl: ?*const SSL, buf: ?*anyopaque, count: usize) usize; @@ -5981,7 +5981,7 @@ pub extern fn SSL_set_tlsext_status_type(ssl: ?*SSL, @"type": c_int) c_int; pub extern fn SSL_get_tlsext_status_type(ssl: ?*const SSL) c_int; pub extern fn SSL_set_tlsext_status_ocsp_resp(ssl: ?*SSL, resp: [*c]u8, resp_len: usize) c_int; pub extern fn SSL_get_tlsext_status_ocsp_resp(ssl: ?*const SSL, out: [*c][*c]const u8) usize; -pub extern fn SSL_CTX_set_tlsext_status_cb(ctx: ?*SSL_CTX, callback: ?*const fn (?*SSL, ?*anyopaque) callconv(.C) c_int) c_int; +pub extern fn SSL_CTX_set_tlsext_status_cb(ctx: ?*SSL_CTX, callback: ?*const fn (?*SSL, ?*anyopaque) callconv(.c) c_int) c_int; pub extern fn SSL_CTX_set_tlsext_status_arg(ctx: ?*SSL_CTX, arg: ?*anyopaque) c_int; pub extern fn SSL_CIPHER_get_value(cipher: ?*const SSL_CIPHER) u16; pub const ssl_compliance_policy_fips_202205: c_int = 0; @@ -19174,7 +19174,7 @@ pub const VerifyResult = enum(c_int) { invalid = 1, retry = 2, }; -pub const VerifyCallback = *const fn (*SSL, [*c]u8) callconv(.C) VerifyResult; +pub const VerifyCallback = *const fn (*SSL, [*c]u8) callconv(.c) VerifyResult; pub extern fn SSL_CTX_set_custom_verify(ctx: ?*SSL_CTX, mode: c_int, callback: ?VerifyCallback) void; @@ -19203,19 +19203,19 @@ pub const SSL_CTX = opaque { } }; -fn noop_custom_verify(_: *SSL, _: [*c]u8) callconv(.C) VerifyResult { +fn noop_custom_verify(_: *SSL, _: [*c]u8) callconv(.c) VerifyResult { return VerifyResult.ok; } threadlocal var auto_crypto_buffer_pool: ?*CRYPTO_BUFFER_POOL = null; pub const BIOMethod = struct { - pub const create = *const fn (*BIO) callconv(.C) c_int; - pub const destroy = *const fn (*BIO) callconv(.C) c_int; - pub const write = *const fn (*BIO, [*c]const u8, c_int) callconv(.C) c_int; - pub const read = *const fn (*BIO, [*c]u8, c_int) callconv(.C) c_int; - pub const gets = *const fn (*BIO, [*c]u8, c_int) callconv(.C) c_int; - pub const ctrl = *const fn (*BIO, c_int, c_long, ?*anyopaque) callconv(.C) c_long; + pub const create = *const fn (*BIO) callconv(.c) c_int; + pub const destroy = *const fn (*BIO) callconv(.c) c_int; + pub const write = *const fn (*BIO, [*c]const u8, c_int) callconv(.c) c_int; + pub const read = *const fn (*BIO, [*c]u8, c_int) callconv(.c) c_int; + pub const gets = *const fn (*BIO, [*c]u8, c_int) callconv(.c) c_int; + pub const ctrl = *const fn (*BIO, c_int, c_long, ?*anyopaque) callconv(.c) c_long; pub fn init( name: [:0]const u8, comptime create__: ?create, diff --git a/src/deps/brotli_c.zig b/src/deps/brotli_c.zig index f279020f08..57f690bc1e 100644 --- a/src/deps/brotli_c.zig +++ b/src/deps/brotli_c.zig @@ -1,7 +1,7 @@ // TODO: prefer generating this file via translate_c -pub const brotli_alloc_func = ?*const fn (?*anyopaque, usize) callconv(.C) ?*anyopaque; -pub const brotli_free_func = ?*const fn (?*anyopaque, *anyopaque) callconv(.C) void; +pub const brotli_alloc_func = ?*const fn (?*anyopaque, usize) callconv(.c) ?*anyopaque; +pub const brotli_free_func = ?*const fn (?*anyopaque, *anyopaque) callconv(.c) void; pub const struct_BrotliSharedDictionaryStruct = opaque {}; pub const BrotliSharedDictionary = struct_BrotliSharedDictionaryStruct; pub const BROTLI_SHARED_DICTIONARY_RAW: c_int = 0; @@ -12,76 +12,76 @@ pub const BrotliSharedDictionaryType = enum_BrotliSharedDictionaryType; // pub extern fn BrotliSharedDictionaryDestroyInstance(dict: ?*BrotliSharedDictionary) void; // pub extern fn BrotliSharedDictionaryAttach(dict: ?*BrotliSharedDictionary, @"type": BrotliSharedDictionaryType, data_size: usize, data: [*]const u8) c_int; -pub extern fn BrotliDecoderSetParameter(state: *BrotliDecoder, param: c_uint, value: u32) callconv(.C) c_int; -pub extern fn BrotliDecoderAttachDictionary(state: *BrotliDecoder, @"type": BrotliSharedDictionaryType, data_size: usize, data: [*]const u8) callconv(.C) c_int; -pub extern fn BrotliDecoderCreateInstance(alloc_func: brotli_alloc_func, free_func: brotli_free_func, @"opaque": ?*anyopaque) callconv(.C) ?*BrotliDecoder; -pub extern fn BrotliDecoderDestroyInstance(state: *BrotliDecoder) callconv(.C) void; -pub extern fn BrotliDecoderDecompress(encoded_size: usize, encoded_buffer: [*]const u8, decoded_size: *usize, decoded_buffer: [*]u8) callconv(.C) BrotliDecoderResult; -pub extern fn BrotliDecoderDecompressStream(state: *BrotliDecoder, available_in: *usize, next_in: *?[*]const u8, available_out: *usize, next_out: *?[*]u8, total_out: ?*usize) callconv(.C) BrotliDecoderResult; -pub extern fn BrotliDecoderHasMoreOutput(state: *const BrotliDecoder) callconv(.C) c_int; -pub extern fn BrotliDecoderTakeOutput(state: *BrotliDecoder, size: *usize) callconv(.C) ?[*]const u8; -pub extern fn BrotliDecoderIsUsed(state: *const BrotliDecoder) callconv(.C) c_int; -pub extern fn BrotliDecoderIsFinished(state: *const BrotliDecoder) callconv(.C) c_int; -pub extern fn BrotliDecoderGetErrorCode(state: *const BrotliDecoder) callconv(.C) BrotliDecoderErrorCode2; -pub extern fn BrotliDecoderErrorString(c: BrotliDecoderErrorCode) callconv(.C) ?[*:0]const u8; -pub extern fn BrotliDecoderVersion() callconv(.C) u32; +pub extern fn BrotliDecoderSetParameter(state: *BrotliDecoder, param: c_uint, value: u32) callconv(.c) c_int; +pub extern fn BrotliDecoderAttachDictionary(state: *BrotliDecoder, @"type": BrotliSharedDictionaryType, data_size: usize, data: [*]const u8) callconv(.c) c_int; +pub extern fn BrotliDecoderCreateInstance(alloc_func: brotli_alloc_func, free_func: brotli_free_func, @"opaque": ?*anyopaque) callconv(.c) ?*BrotliDecoder; +pub extern fn BrotliDecoderDestroyInstance(state: *BrotliDecoder) callconv(.c) void; +pub extern fn BrotliDecoderDecompress(encoded_size: usize, encoded_buffer: [*]const u8, decoded_size: *usize, decoded_buffer: [*]u8) callconv(.c) BrotliDecoderResult; +pub extern fn BrotliDecoderDecompressStream(state: *BrotliDecoder, available_in: *usize, next_in: *?[*]const u8, available_out: *usize, next_out: *?[*]u8, total_out: ?*usize) callconv(.c) BrotliDecoderResult; +pub extern fn BrotliDecoderHasMoreOutput(state: *const BrotliDecoder) callconv(.c) c_int; +pub extern fn BrotliDecoderTakeOutput(state: *BrotliDecoder, size: *usize) callconv(.c) ?[*]const u8; +pub extern fn BrotliDecoderIsUsed(state: *const BrotliDecoder) callconv(.c) c_int; +pub extern fn BrotliDecoderIsFinished(state: *const BrotliDecoder) callconv(.c) c_int; +pub extern fn BrotliDecoderGetErrorCode(state: *const BrotliDecoder) callconv(.c) BrotliDecoderErrorCode2; +pub extern fn BrotliDecoderErrorString(c: BrotliDecoderErrorCode) callconv(.c) ?[*:0]const u8; +pub extern fn BrotliDecoderVersion() callconv(.c) u32; pub const BrotliDecoder = opaque { - const BrotliDecoderSetMetadataCallbacks = fn (state: *BrotliDecoder, start_func: brotli_decoder_metadata_start_func, chunk_func: brotli_decoder_metadata_chunk_func, @"opaque": ?*anyopaque) callconv(.C) void; - const brotli_decoder_metadata_start_func = ?*const fn (?*anyopaque, usize) callconv(.C) void; - const brotli_decoder_metadata_chunk_func = ?*const fn (?*anyopaque, [*]const u8, usize) callconv(.C) void; + const BrotliDecoderSetMetadataCallbacks = fn (state: *BrotliDecoder, start_func: brotli_decoder_metadata_start_func, chunk_func: brotli_decoder_metadata_chunk_func, @"opaque": ?*anyopaque) callconv(.c) void; + const brotli_decoder_metadata_start_func = ?*const fn (?*anyopaque, usize) callconv(.c) void; + const brotli_decoder_metadata_chunk_func = ?*const fn (?*anyopaque, [*]const u8, usize) callconv(.c) void; - pub fn setParameter(state: *BrotliDecoder, param: BrotliDecoderParameter, value: u32) callconv(.C) bool { + pub fn setParameter(state: *BrotliDecoder, param: BrotliDecoderParameter, value: u32) callconv(.c) bool { return BrotliDecoderSetParameter(state, @intFromEnum(param), value) > 0; } - pub fn attachDictionary(state: *BrotliDecoder, @"type": BrotliSharedDictionaryType, data: []const u8) callconv(.C) c_int { + pub fn attachDictionary(state: *BrotliDecoder, @"type": BrotliSharedDictionaryType, data: []const u8) callconv(.c) c_int { return BrotliDecoderAttachDictionary(state, @"type", data.len, data.ptr); } - pub fn createInstance(alloc_func: brotli_alloc_func, free_func: brotli_free_func, @"opaque": ?*anyopaque) callconv(.C) ?*BrotliDecoder { + pub fn createInstance(alloc_func: brotli_alloc_func, free_func: brotli_free_func, @"opaque": ?*anyopaque) callconv(.c) ?*BrotliDecoder { return BrotliDecoderCreateInstance(alloc_func, free_func, @"opaque"); } - pub fn destroyInstance(state: *BrotliDecoder) callconv(.C) void { + pub fn destroyInstance(state: *BrotliDecoder) callconv(.c) void { return BrotliDecoderDestroyInstance(state); } - pub fn decompress(encoded: []const u8, decoded: *[]u8) callconv(.C) BrotliDecoderResult { + pub fn decompress(encoded: []const u8, decoded: *[]u8) callconv(.c) BrotliDecoderResult { return BrotliDecoderDecompress(encoded.len, encoded.ptr, &decoded.len, decoded.ptr); } - pub fn decompressStream(state: *BrotliDecoder, available_in: *usize, next_in: *?[*]const u8, available_out: *usize, next_out: *?[*]u8, total_out: ?*usize) callconv(.C) BrotliDecoderResult { + pub fn decompressStream(state: *BrotliDecoder, available_in: *usize, next_in: *?[*]const u8, available_out: *usize, next_out: *?[*]u8, total_out: ?*usize) callconv(.c) BrotliDecoderResult { return BrotliDecoderDecompressStream(state, available_in, next_in, available_out, next_out, total_out); } - pub fn hasMoreOutput(state: *const BrotliDecoder) callconv(.C) bool { + pub fn hasMoreOutput(state: *const BrotliDecoder) callconv(.c) bool { return BrotliDecoderHasMoreOutput(state) != 0; } - pub fn takeOutput(state: *BrotliDecoder) callconv(.C) []const u8 { + pub fn takeOutput(state: *BrotliDecoder) callconv(.c) []const u8 { var max_size: usize = std.math.maxInt(usize); const ptr = BrotliDecoderTakeOutput(state, &max_size) orelse return ""; return ptr[0..max_size]; } - pub fn isUsed(state: *const BrotliDecoder) callconv(.C) bool { + pub fn isUsed(state: *const BrotliDecoder) callconv(.c) bool { return BrotliDecoderIsUsed(state) != 0; } - pub fn isFinished(state: *const BrotliDecoder) callconv(.C) bool { + pub fn isFinished(state: *const BrotliDecoder) callconv(.c) bool { return BrotliDecoderIsFinished(state) != 0; } - pub fn getErrorCode(state: *const BrotliDecoder) callconv(.C) BrotliDecoderErrorCode { + pub fn getErrorCode(state: *const BrotliDecoder) callconv(.c) BrotliDecoderErrorCode { return @enumFromInt(@intFromEnum(BrotliDecoderGetErrorCode(state))); } - pub fn errorString(c: BrotliDecoderErrorCode) callconv(.C) [:0]const u8 { + pub fn errorString(c: BrotliDecoderErrorCode) callconv(.c) [:0]const u8 { return bun.sliceTo(BrotliDecoderErrorString(c) orelse "", 0); } - pub fn version() callconv(.C) u32 { + pub fn version() callconv(.c) u32 { return BrotliDecoderVersion(); } @@ -263,15 +263,15 @@ pub const BrotliEncoder = opaque { emit_metadata = 3, }; - pub fn createInstance(alloc_func: brotli_alloc_func, free_func: brotli_free_func, @"opaque": ?*anyopaque) callconv(.C) ?*BrotliEncoder { + pub fn createInstance(alloc_func: brotli_alloc_func, free_func: brotli_free_func, @"opaque": ?*anyopaque) callconv(.c) ?*BrotliEncoder { return BrotliEncoderCreateInstance(alloc_func, free_func, @"opaque"); } - pub fn destroyInstance(state: *BrotliEncoder) callconv(.C) void { + pub fn destroyInstance(state: *BrotliEncoder) callconv(.c) void { return BrotliEncoderDestroyInstance(state); } - pub fn hasMoreOutput(state: *BrotliEncoder) callconv(.C) bool { + pub fn hasMoreOutput(state: *BrotliEncoder) callconv(.c) bool { return BrotliEncoderHasMoreOutput(state) > 0; } diff --git a/src/deps/c_ares.zig b/src/deps/c_ares.zig index 7a20dd4ed4..f9535416a2 100644 --- a/src/deps/c_ares.zig +++ b/src/deps/c_ares.zig @@ -1,7 +1,7 @@ pub const socklen_t = c.socklen_t; pub const ares_ssize_t = isize; pub const ares_socket_t = if (bun.Environment.isWindows) std.os.windows.ws2_32.SOCKET else c_int; -pub const ares_sock_state_cb = ?*const fn (?*anyopaque, ares_socket_t, c_int, c_int) callconv(.C) void; +pub const ares_sock_state_cb = ?*const fn (?*anyopaque, ares_socket_t, c_int, c_int) callconv(.c) void; pub const struct_apattern = opaque {}; pub const AF = std.posix.AF; @@ -232,7 +232,7 @@ pub const struct_hostent = extern struct { comptime function: Callback(Type), ) ares_host_callback { return &struct { - pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, hostent: ?*struct_hostent) callconv(.C) void { + pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, hostent: ?*struct_hostent) callconv(.c) void { const this = bun.cast(*Type, ctx.?); if (status != ARES_SUCCESS) { function(this, Error.get(status), timeouts, null); @@ -249,7 +249,7 @@ pub const struct_hostent = extern struct { comptime function: Callback(Type), ) ares_callback { return &struct { - pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.C) void { + pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.c) void { const this = bun.cast(*Type, ctx.?); if (status != ARES_SUCCESS) { function(this, Error.get(status), timeouts, null); @@ -340,7 +340,7 @@ pub const hostent_with_ttls = struct { comptime function: Callback(Type), ) ares_host_callback { return &struct { - pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, hostent: ?*hostent_with_ttls) callconv(.C) void { + pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, hostent: ?*hostent_with_ttls) callconv(.c) void { const this = bun.cast(*Type, ctx.?); if (status != ARES_SUCCESS) { function(this, Error.get(status), timeouts, null); @@ -357,7 +357,7 @@ pub const hostent_with_ttls = struct { comptime function: Callback(Type), ) ares_callback { return &struct { - pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.C) void { + pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.c) void { const this = bun.cast(*Type, ctx.?); if (status != ARES_SUCCESS) { function(this, Error.get(status), timeouts, null); @@ -451,7 +451,7 @@ pub const struct_nameinfo = extern struct { comptime function: Callback(Type), ) ares_nameinfo_callback { return &struct { - pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, node: [*c]u8, service: [*c]u8) callconv(.C) void { + pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, node: [*c]u8, service: [*c]u8) callconv(.c) void { const this = bun.cast(*Type, ctx.?); if (status != ARES_SUCCESS) { function(this, Error.get(status), timeouts, null); @@ -546,7 +546,7 @@ pub const AddrInfo = extern struct { comptime function: Callback(Type), ) ares_addrinfo_callback { return &struct { - pub fn handleAddrInfo(ctx: ?*anyopaque, status: c_int, timeouts: c_int, addr_info: ?*AddrInfo) callconv(.C) void { + pub fn handleAddrInfo(ctx: ?*anyopaque, status: c_int, timeouts: c_int, addr_info: ?*AddrInfo) callconv(.c) void { const this = bun.cast(*Type, ctx.?); function(this, Error.get(status), timeouts, addr_info); @@ -584,7 +584,7 @@ pub const Channel = opaque { return err; } const SockStateWrap = struct { - pub fn onSockState(ctx: ?*anyopaque, socket: ares_socket_t, readable: c_int, writable: c_int) callconv(.C) void { + pub fn onSockState(ctx: ?*anyopaque, socket: ares_socket_t, readable: c_int, writable: c_int) callconv(.c) void { const container = bun.cast(*Container, ctx.?); Container.onDNSSocketState(container, socket, readable != 0, writable != 0); } @@ -780,19 +780,19 @@ fn libraryInit() void { bun.mimalloc.mi_realloc, ); if (rc != ARES_SUCCESS) { - std.debug.panic("ares_library_init_mem failed: {any}", .{rc}); + std.debug.panic("ares_library_init_mem failed: {d}", .{rc}); unreachable; } } -pub const ares_callback = ?*const fn (?*anyopaque, c_int, c_int, [*c]u8, c_int) callconv(.C) void; -pub const ares_host_callback = ?*const fn (?*anyopaque, c_int, c_int, ?*struct_hostent) callconv(.C) void; -pub const ares_nameinfo_callback = ?*const fn (?*anyopaque, c_int, c_int, [*c]u8, [*c]u8) callconv(.C) void; -pub const ares_sock_create_callback = ?*const fn (ares_socket_t, c_int, ?*anyopaque) callconv(.C) c_int; -pub const ares_sock_config_callback = ?*const fn (ares_socket_t, c_int, ?*anyopaque) callconv(.C) c_int; -pub const ares_addrinfo_callback = *const fn (?*anyopaque, c_int, c_int, ?*AddrInfo) callconv(.C) void; +pub const ares_callback = ?*const fn (?*anyopaque, c_int, c_int, [*c]u8, c_int) callconv(.c) void; +pub const ares_host_callback = ?*const fn (?*anyopaque, c_int, c_int, ?*struct_hostent) callconv(.c) void; +pub const ares_nameinfo_callback = ?*const fn (?*anyopaque, c_int, c_int, [*c]u8, [*c]u8) callconv(.c) void; +pub const ares_sock_create_callback = ?*const fn (ares_socket_t, c_int, ?*anyopaque) callconv(.c) c_int; +pub const ares_sock_config_callback = ?*const fn (ares_socket_t, c_int, ?*anyopaque) callconv(.c) c_int; +pub const ares_addrinfo_callback = *const fn (?*anyopaque, c_int, c_int, ?*AddrInfo) callconv(.c) void; pub extern fn ares_library_init(flags: c_int) c_int; -pub extern fn ares_library_init_mem(flags: c_int, amalloc: ?*const fn (usize) callconv(.C) ?*anyopaque, afree: ?*const fn (?*anyopaque) callconv(.C) void, arealloc: ?*const fn (?*anyopaque, usize) callconv(.C) ?*anyopaque) c_int; +pub extern fn ares_library_init_mem(flags: c_int, amalloc: ?*const fn (usize) callconv(.c) ?*anyopaque, afree: ?*const fn (?*anyopaque) callconv(.c) void, arealloc: ?*const fn (?*anyopaque, usize) callconv(.c) ?*anyopaque) c_int; pub extern fn ares_library_initialized() c_int; pub extern fn ares_library_cleanup() void; pub extern fn ares_version(version: [*c]c_int) [*c]const u8; @@ -812,11 +812,11 @@ pub extern fn ares_set_sortlist(channel: *Channel, sortstr: [*c]const u8) c_int; pub extern fn ares_getaddrinfo(channel: *Channel, node: ?[*:0]const u8, service: ?[*:0]const u8, hints: [*c]const AddrInfo_hints, callback: ares_addrinfo_callback, arg: ?*anyopaque) void; pub extern fn ares_freeaddrinfo(ai: *AddrInfo) void; pub const ares_socket_functions = extern struct { - socket: ?*const fn (c_int, c_int, c_int, ?*anyopaque) callconv(.C) ares_socket_t = null, - close: ?*const fn (ares_socket_t, ?*anyopaque) callconv(.C) c_int = null, - connect: ?*const fn (ares_socket_t, [*c]const struct_sockaddr, ares_socklen_t, ?*anyopaque) callconv(.C) c_int = null, - recvfrom: ?*const fn (ares_socket_t, ?*anyopaque, usize, c_int, [*c]struct_sockaddr, [*c]ares_socklen_t, ?*anyopaque) callconv(.C) ares_ssize_t = null, - sendv: ?*const fn (ares_socket_t, [*c]const iovec, c_int, ?*anyopaque) callconv(.C) ares_ssize_t = null, + socket: ?*const fn (c_int, c_int, c_int, ?*anyopaque) callconv(.c) ares_socket_t = null, + close: ?*const fn (ares_socket_t, ?*anyopaque) callconv(.c) c_int = null, + connect: ?*const fn (ares_socket_t, [*c]const struct_sockaddr, ares_socklen_t, ?*anyopaque) callconv(.c) c_int = null, + recvfrom: ?*const fn (ares_socket_t, ?*anyopaque, usize, c_int, [*c]struct_sockaddr, [*c]ares_socklen_t, ?*anyopaque) callconv(.c) ares_ssize_t = null, + sendv: ?*const fn (ares_socket_t, [*c]const iovec, c_int, ?*anyopaque) callconv(.c) ares_ssize_t = null, }; pub extern fn ares_set_socket_functions(channel: *Channel, funcs: ?*const ares_socket_functions, user_data: ?*anyopaque) void; pub extern fn ares_send(channel: *Channel, qbuf: [*c]const u8, qlen: c_int, callback: ares_callback, arg: ?*anyopaque) void; @@ -907,7 +907,7 @@ pub const struct_ares_caa_reply = extern struct { comptime function: Callback(Type), ) ares_callback { return &struct { - pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.C) void { + pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.c) void { const this = bun.cast(*Type, ctx.?); if (status != ARES_SUCCESS) { function(this, Error.get(status), timeouts, null); @@ -992,7 +992,7 @@ pub const struct_ares_srv_reply = extern struct { comptime function: Callback(Type), ) ares_callback { return &struct { - pub fn handleSrv(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.C) void { + pub fn handleSrv(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.c) void { const this = bun.cast(*Type, ctx.?); if (status != ARES_SUCCESS) { function(this, Error.get(status), timeouts, null); @@ -1066,7 +1066,7 @@ pub const struct_ares_mx_reply = extern struct { comptime function: Callback(Type), ) ares_callback { return &struct { - pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.C) void { + pub fn handle(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.c) void { const this = bun.cast(*Type, ctx.?); if (status != ARES_SUCCESS) { function(this, Error.get(status), timeouts, null); @@ -1158,7 +1158,7 @@ pub const struct_ares_txt_reply = extern struct { comptime function: Callback(Type), ) ares_callback { return &struct { - pub fn handleTxt(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.C) void { + pub fn handleTxt(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.c) void { const this = bun.cast(*Type, ctx.?); if (status != ARES_SUCCESS) { function(this, Error.get(status), timeouts, null); @@ -1256,7 +1256,7 @@ pub const struct_ares_naptr_reply = extern struct { comptime function: Callback(Type), ) ares_callback { return &struct { - pub fn handleNaptr(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.C) void { + pub fn handleNaptr(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.c) void { const this = bun.cast(*Type, ctx.?); if (status != ARES_SUCCESS) { function(this, Error.get(status), timeouts, null); @@ -1327,7 +1327,7 @@ pub const struct_ares_soa_reply = extern struct { comptime function: Callback(Type), ) ares_callback { return &struct { - pub fn handleSoa(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.C) void { + pub fn handleSoa(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.c) void { const this = bun.cast(*Type, ctx.?); if (status != ARES_SUCCESS) { function(this, Error.get(status), timeouts, null); @@ -1451,7 +1451,7 @@ pub const struct_any_reply = struct { comptime function: Callback(Type), ) ares_callback { return &struct { - pub fn handleAny(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.C) void { + pub fn handleAny(ctx: ?*anyopaque, status: c_int, timeouts: c_int, buffer: [*c]u8, buffer_length: c_int) callconv(.c) void { const this = bun.cast(*Type, ctx.?); if (status != ARES_SUCCESS) { function(this, Error.get(status), timeouts, null); @@ -1687,7 +1687,7 @@ pub const Error = enum(i32) { .errno = @intFromEnum(this.errno), .code = bun.String.static(this.errno.code()), .message = if (this.hostname) |hostname| - bun.handleOom(bun.String.createFormat("{s} {s} {s}", .{ this.syscall, this.errno.code()[4..], hostname })) + bun.handleOom(bun.String.createFormat("{s} {s} {f}", .{ this.syscall, this.errno.code()[4..], hostname })) else bun.handleOom(bun.String.createFormat("{s} {s}", .{ this.syscall, this.errno.code()[4..] })), .syscall = bun.String.cloneUTF8(this.syscall), @@ -2059,7 +2059,7 @@ pub fn getSockaddr(addr: []const u8, port: u16, sa: *std.posix.sockaddr) c_int { }; { - const in: *std.posix.sockaddr.in = @alignCast(@ptrCast(sa)); + const in: *std.posix.sockaddr.in = @ptrCast(@alignCast(sa)); if (ares_inet_pton(AF.INET, addr_ptr, &in.addr) == 1) { in.*.family = AF.INET; in.*.port = std.mem.nativeToBig(u16, port); @@ -2067,7 +2067,7 @@ pub fn getSockaddr(addr: []const u8, port: u16, sa: *std.posix.sockaddr) c_int { } } { - const in6: *std.posix.sockaddr.in6 = @alignCast(@ptrCast(sa)); + const in6: *std.posix.sockaddr.in6 = @ptrCast(@alignCast(sa)); if (ares_inet_pton(AF.INET6, addr_ptr, &in6.addr) == 1) { in6.*.family = AF.INET6; in6.*.port = std.mem.nativeToBig(u16, port); diff --git a/src/deps/libdeflate.zig b/src/deps/libdeflate.zig index ac0a8223f0..818ccee5c3 100644 --- a/src/deps/libdeflate.zig +++ b/src/deps/libdeflate.zig @@ -1,7 +1,7 @@ pub const Options = extern struct { sizeof_options: usize = @sizeOf(Options), - malloc_func: ?*const fn (usize) callconv(.C) ?*anyopaque = @import("std").mem.zeroes(?*const fn (usize) callconv(.C) ?*anyopaque), - free_func: ?*const fn (?*anyopaque) callconv(.C) void = @import("std").mem.zeroes(?*const fn (?*anyopaque) callconv(.C) void), + malloc_func: ?*const fn (usize) callconv(.c) ?*anyopaque = @import("std").mem.zeroes(?*const fn (usize) callconv(.c) ?*anyopaque), + free_func: ?*const fn (?*anyopaque) callconv(.c) void = @import("std").mem.zeroes(?*const fn (?*anyopaque) callconv(.c) void), }; pub extern fn libdeflate_alloc_compressor(compression_level: c_int) ?*Compressor; pub extern fn libdeflate_alloc_compressor_ex(compression_level: c_int, options: ?*const Options) ?*Compressor; @@ -141,7 +141,7 @@ pub extern fn libdeflate_gzip_decompress_ex(decompressor: *Decompressor, in: ?*c pub extern fn libdeflate_free_decompressor(decompressor: *Decompressor) void; pub extern fn libdeflate_adler32(adler: u32, buffer: ?*const anyopaque, len: usize) u32; pub extern fn libdeflate_crc32(crc: u32, buffer: ?*const anyopaque, len: usize) u32; -pub extern fn libdeflate_set_memory_allocator(malloc_func: ?*const fn (usize) callconv(.C) ?*anyopaque, free_func: ?*const fn (?*anyopaque) callconv(.C) void) void; +pub extern fn libdeflate_set_memory_allocator(malloc_func: ?*const fn (usize) callconv(.c) ?*anyopaque, free_func: ?*const fn (?*anyopaque) callconv(.c) void) void; pub const libdeflate_compressor = Compressor; pub const libdeflate_options = Options; pub const libdeflate_decompressor = Decompressor; diff --git a/src/deps/libuv.zig b/src/deps/libuv.zig index 08dd7e01e4..f09aa3c0c2 100644 --- a/src/deps/libuv.zig +++ b/src/deps/libuv.zig @@ -338,7 +338,7 @@ pub const struct_uv_req_s = extern struct { }; pub const uv_req_t = struct_uv_req_s; pub const uv_loop_t = Loop; -pub const uv_close_cb = ?*const fn (*anyopaque) callconv(.C) void; +pub const uv_close_cb = ?*const fn (*anyopaque) callconv(.c) void; const union_unnamed_374 = extern union { fd: c_int, reserved: [4]?*anyopaque, @@ -368,7 +368,7 @@ pub const Handle = extern struct { pub const Type = enum(c_uint) { unknown = 0, - @"async" = 1, + async = 1, check = 2, fs_event = 3, fs_poll = 4, @@ -391,7 +391,7 @@ pub const Handle = extern struct { fn HandleMixin(comptime Type: type) type { return struct { pub fn getData(this: *const Type, comptime DataType: type) ?*DataType { - return @alignCast(@ptrCast(uv_handle_get_data(@ptrCast(this)))); + return @ptrCast(@alignCast(uv_handle_get_data(@ptrCast(this)))); } pub fn getLoop(this: *const Type) *Loop { return uv_handle_get_loop(@ptrCast(this)); @@ -399,9 +399,9 @@ fn HandleMixin(comptime Type: type) type { pub fn setData(handle: *Type, ptr: ?*anyopaque) void { uv_handle_set_data(@ptrCast(handle), ptr); } - pub fn close(this: *Type, cb: *const fn (*Type) callconv(.C) void) void { + pub fn close(this: *Type, cb: *const fn (*Type) callconv(.c) void) void { if (comptime Env.isDebug) - log("{s}.close({})", .{ bun.meta.typeName(Type), fd(this) }); + log("{s}.close({f})", .{ bun.meta.typeName(Type), fd(this) }); uv_close(@ptrCast(this), @ptrCast(cb)); } @@ -411,13 +411,13 @@ fn HandleMixin(comptime Type: type) type { pub fn ref(this: *Type) void { if (comptime Env.isDebug) - log("{s}.ref({})", .{ bun.meta.typeName(Type), if (comptime Type != Process) fd(this) else Process.getPid(this) }); + log("{s}.ref({f})", .{ bun.meta.typeName(Type), bun.fs.printHandle(if (comptime Type != Process) fd(this) else Process.getPid(this)) }); uv_ref(@ptrCast(this)); } pub fn unref(this: *Type) void { if (comptime Env.isDebug) - log("{s}.unref({})", .{ bun.meta.typeName(Type), if (comptime Type != Process) fd(this) else Process.getPid(this) }); + log("{s}.unref({f})", .{ bun.meta.typeName(Type), bun.fs.printHandle(if (comptime Type != Process) fd(this) else Process.getPid(this)) }); uv_unref(@ptrCast(this)); } @@ -466,7 +466,7 @@ const union_unnamed_375 = extern union { fd: c_int, reserved: [4]?*anyopaque, }; -pub const uv_prepare_cb = ?*const fn (*uv_prepare_t) callconv(.C) void; +pub const uv_prepare_cb = ?*const fn (*uv_prepare_t) callconv(.c) void; pub const struct_uv_prepare_s = extern struct { data: ?*anyopaque, loop: *uv_loop_t, @@ -485,7 +485,7 @@ const union_unnamed_376 = extern union { fd: c_int, reserved: [4]?*anyopaque, }; -pub const uv_check_cb = ?*const fn (*uv_check_t) callconv(.C) void; +pub const uv_check_cb = ?*const fn (*uv_check_t) callconv(.c) void; pub const struct_uv_check_s = extern struct { data: ?*anyopaque, loop: *uv_loop_t, @@ -504,7 +504,7 @@ const union_unnamed_377 = extern union { fd: c_int, reserved: [4]?*anyopaque, }; -pub const uv_idle_cb = ?*const fn (this: *uv_idle_t) callconv(.C) void; +pub const uv_idle_cb = ?*const fn (this: *uv_idle_t) callconv(.c) void; pub const struct_uv_idle_s = extern struct { data: ?*anyopaque, loop: *uv_loop_t, @@ -540,7 +540,7 @@ const union_unnamed_378 = extern union { fd: c_int, reserved: [4]?*anyopaque, }; -pub const uv_async_cb = ?*const fn ([*c]uv_async_t) callconv(.C) void; +pub const uv_async_cb = ?*const fn ([*c]uv_async_t) callconv(.c) void; pub const struct_uv_async_s = extern struct { data: ?*anyopaque, loop: *uv_loop_t, @@ -707,8 +707,8 @@ pub const Loop = extern struct { } }; pub const struct_uv__work = extern struct { - work: ?*const fn ([*c]struct_uv__work) callconv(.C) void, - done: ?*const fn ([*c]struct_uv__work, c_int) callconv(.C) void, + work: ?*const fn ([*c]struct_uv__work) callconv(.c) void, + done: ?*const fn ([*c]struct_uv__work, c_int) callconv(.c) void, loop: [*c]Loop, wq: struct_uv__queue, }; @@ -934,10 +934,10 @@ const union_unnamed_380 = extern union { fd: c_int, reserved: [4]?*anyopaque, }; -pub const uv_alloc_cb = ?*const fn (*uv_handle_t, usize, *uv_buf_t) callconv(.C) void; +pub const uv_alloc_cb = ?*const fn (*uv_handle_t, usize, *uv_buf_t) callconv(.c) void; pub const uv_stream_t = struct_uv_stream_s; /// *uv.uv_handle_t is actually *uv_stream_t, just changed to avoid dependency loop error on Zig -pub const uv_read_cb = ?*const fn (*uv_handle_t, ReturnCodeI64, *const uv_buf_t) callconv(.C) void; +pub const uv_read_cb = ?*const fn (*uv_handle_t, ReturnCodeI64, *const uv_buf_t) callconv(.c) void; const struct_unnamed_382 = extern struct { overlapped: OVERLAPPED, queued_bytes: usize, @@ -976,7 +976,7 @@ const union_unnamed_386 = extern union { io: struct_unnamed_387, connect: struct_unnamed_388, }; -pub const uv_shutdown_cb = ?*const fn (*uv_shutdown_t, c_int) callconv(.C) void; +pub const uv_shutdown_cb = ?*const fn (*uv_shutdown_t, c_int) callconv(.c) void; pub const struct_uv_shutdown_s = extern struct { data: ?*anyopaque, type: uv_req_type, @@ -991,7 +991,7 @@ const struct_unnamed_385 = extern struct { write_reqs_pending: c_uint, shutdown_req: [*c]uv_shutdown_t, }; -pub const uv_connection_cb = ?*const fn (*uv_stream_t, ReturnCode) callconv(.C) void; +pub const uv_connection_cb = ?*const fn (*uv_stream_t, ReturnCode) callconv(.c) void; const struct_unnamed_389 = extern struct { connection_cb: uv_connection_cb, }; @@ -1122,7 +1122,7 @@ const union_unnamed_400 = extern union { reserved: [4]?*anyopaque, }; pub const uv_udp_t = struct_uv_udp_s; -pub const uv_udp_recv_cb = ?*const fn ([*c]uv_udp_t, isize, [*]const uv_buf_t, [*c]const sockaddr, c_uint) callconv(.C) void; +pub const uv_udp_recv_cb = ?*const fn ([*c]uv_udp_t, isize, [*]const uv_buf_t, [*c]const sockaddr, c_uint) callconv(.c) void; pub const struct_uv_udp_s = extern struct { data: ?*anyopaque, loop: *uv_loop_t, @@ -1194,7 +1194,7 @@ const union_unnamed_411 = extern union { fd: c_int, reserved: [4]?*anyopaque, }; -pub const uv_timer_cb = ?*const fn (*Timer) callconv(.C) void; +pub const uv_timer_cb = ?*const fn (*Timer) callconv(.c) void; pub const Timer = extern struct { data: ?*anyopaque, loop: *uv_loop_t, @@ -1230,11 +1230,11 @@ pub const Timer = extern struct { } pub fn unref(this: *@This()) void { - uv_unref(@alignCast(@ptrCast(this))); + uv_unref(@ptrCast(@alignCast(this))); } pub fn ref(this: *@This()) void { - uv_ref(@alignCast(@ptrCast(this))); + uv_ref(@ptrCast(@alignCast(this))); } }; const struct_unnamed_413 = extern struct { @@ -1251,7 +1251,7 @@ const union_unnamed_412 = extern union { io: struct_unnamed_413, connect: struct_unnamed_414, }; -pub const uv_write_cb = ?*const fn (*uv_write_t, ReturnCode) callconv(.C) void; +pub const uv_write_cb = ?*const fn (*uv_write_t, ReturnCode) callconv(.c) void; pub const struct_uv_write_s = extern struct { data: ?*anyopaque, type: uv_req_type, @@ -1269,7 +1269,7 @@ pub const struct_uv_write_s = extern struct { pub fn write(req: *@This(), stream: *uv_stream_t, input: *uv_buf_t, context: anytype, comptime onWrite: ?*const (fn (@TypeOf(context), status: ReturnCode) void)) Maybe(void) { if (comptime onWrite) |callback| { const Wrapper = struct { - pub fn uvWriteCb(handler: *uv_write_t, status: ReturnCode) callconv(.C) void { + pub fn uvWriteCb(handler: *uv_write_t, status: ReturnCode) callconv(.c) void { callback(@ptrCast(@alignCast(handler.data)), status); } }; @@ -1388,7 +1388,7 @@ pub const Pipe = extern struct { pub fn connect(this: *@This(), req: *uv_connect_t, name: []const u8, context: anytype, comptime onConnect: *const (fn (@TypeOf(context), ReturnCode) void)) Maybe(void) { this.data = @ptrCast(context); const Wrapper = struct { - pub fn uvConnectCb(handle: *uv_connect_t, status: ReturnCode) callconv(.C) void { + pub fn uvConnectCb(handle: *uv_connect_t, status: ReturnCode) callconv(.c) void { onConnect(@ptrCast(@alignCast(handle.data)), status); } }; @@ -1513,7 +1513,7 @@ const union_unnamed_423 = extern union { reserved: [4]?*anyopaque, }; pub const uv_poll_t = struct_uv_poll_s; -pub const uv_poll_cb = ?*const fn ([*c]uv_poll_t, c_int, c_int) callconv(.C) void; +pub const uv_poll_cb = ?*const fn ([*c]uv_poll_t, c_int, c_int) callconv(.c) void; pub const struct_uv_poll_s = extern struct { data: ?*anyopaque, loop: *uv_loop_t, @@ -1555,7 +1555,7 @@ const union_unnamed_424 = extern union { reserved: [4]?*anyopaque, }; pub const uv_process_t = Process; -pub const uv_exit_cb = ?*const fn (*uv_process_t, i64, c_int) callconv(.C) void; +pub const uv_exit_cb = ?*const fn (*uv_process_t, i64, c_int) callconv(.c) void; const struct_unnamed_426 = extern struct { overlapped: OVERLAPPED, queued_bytes: usize, @@ -1613,11 +1613,11 @@ pub const Process = extern struct { pub const fd = handle_impl.fd; pub fn kill(this: *@This(), signum: c_int) ReturnCode { - return uv_process_kill(@alignCast(@ptrCast(this)), signum); + return uv_process_kill(@ptrCast(@alignCast(this)), signum); } pub fn getPid(this: *const @This()) c_int { - return uv_process_get_pid(@alignCast(@ptrCast(this))); + return uv_process_get_pid(@ptrCast(@alignCast(this))); } }; const union_unnamed_428 = extern union { @@ -1646,7 +1646,7 @@ pub const struct_uv_fs_event_req_s = extern struct { next_req: [*c]struct_uv_req_s, }; pub const uv_fs_event_t = struct_uv_fs_event_s; -pub const uv_fs_event_cb = ?*const fn (*uv_fs_event_t, [*c]const u8, c_int, ReturnCode) callconv(.C) void; +pub const uv_fs_event_cb = ?*const fn (*uv_fs_event_t, [*c]const u8, c_int, ReturnCode) callconv(.c) void; pub const struct_uv_fs_event_s = extern struct { data: ?*anyopaque, loop: *uv_loop_t, @@ -1704,7 +1704,7 @@ const union_unnamed_433 = extern union { reserved: [4]?*anyopaque, }; pub const uv_signal_t = struct_uv_signal_s; -pub const uv_signal_cb = ?*const fn (*uv_signal_t, c_int) callconv(.C) void; +pub const uv_signal_cb = ?*const fn (*uv_signal_t, c_int) callconv(.c) void; const struct_unnamed_434 = extern struct { rbe_left: [*c]struct_uv_signal_s, rbe_right: [*c]struct_uv_signal_s, @@ -1741,7 +1741,7 @@ const union_unnamed_435 = extern union { connect: struct_unnamed_437, }; pub const uv_getaddrinfo_t = struct_uv_getaddrinfo_s; -pub const uv_getaddrinfo_cb = ?*const fn (*uv_getaddrinfo_t, c_int, ?*addrinfo) callconv(.C) void; +pub const uv_getaddrinfo_cb = ?*const fn (*uv_getaddrinfo_t, c_int, ?*addrinfo) callconv(.c) void; pub const struct_uv_getaddrinfo_s = extern struct { data: ?*anyopaque, type: uv_req_type, @@ -1773,7 +1773,7 @@ const union_unnamed_438 = extern union { connect: struct_unnamed_440, }; pub const uv_getnameinfo_t = struct_uv_getnameinfo_s; -pub const uv_getnameinfo_cb = ?*const fn ([*c]uv_getnameinfo_t, c_int, [*]const u8, [*]const u8) callconv(.C) void; +pub const uv_getnameinfo_cb = ?*const fn ([*c]uv_getnameinfo_t, c_int, [*]const u8, [*]const u8) callconv(.c) void; pub const struct_uv_getnameinfo_s = extern struct { data: ?*anyopaque, type: uv_req_type, @@ -1804,7 +1804,7 @@ const union_unnamed_441 = extern union { connect: struct_unnamed_443, }; pub const uv_connect_t = struct_uv_connect_s; -pub const uv_connect_cb = ?*const fn (*uv_connect_t, ReturnCode) callconv(.C) void; +pub const uv_connect_cb = ?*const fn (*uv_connect_t, ReturnCode) callconv(.c) void; pub const struct_uv_connect_s = extern struct { data: ?*anyopaque, type: uv_req_type, @@ -1829,7 +1829,7 @@ const union_unnamed_444 = extern union { connect: struct_unnamed_446, }; pub const uv_udp_send_t = struct_uv_udp_send_s; -pub const uv_udp_send_cb = ?*const fn ([*c]uv_udp_send_t, c_int) callconv(.C) void; +pub const uv_udp_send_cb = ?*const fn ([*c]uv_udp_send_t, c_int) callconv(.c) void; pub const struct_uv_udp_send_s = extern struct { data: ?*anyopaque, type: uv_req_type, @@ -1854,7 +1854,7 @@ const union_unnamed_447 = extern union { connect: struct_unnamed_449, }; pub const uv_fs_cb = ?*const FSCallback; -pub const FSCallback = fn (req: *fs_t) callconv(.C) void; +pub const FSCallback = fn (req: *fs_t) callconv(.c) void; const union_unnamed_450 = extern union { pathw: [*]WCHAR, fd: c_int, @@ -1964,8 +1964,8 @@ const union_unnamed_454 = extern union { connect: struct_unnamed_456, }; pub const uv_work_t = struct_uv_work_s; -pub const uv_work_cb = ?*const fn ([*c]uv_work_t) callconv(.C) void; -pub const uv_after_work_cb = ?*const fn ([*c]uv_work_t, c_int) callconv(.C) void; +pub const uv_work_cb = ?*const fn ([*c]uv_work_t) callconv(.c) void; +pub const uv_after_work_cb = ?*const fn ([*c]uv_work_t, c_int) callconv(.c) void; pub const struct_uv_work_s = extern struct { data: ?*anyopaque, type: uv_req_type, @@ -1998,7 +1998,7 @@ const union_unnamed_457 = extern union { connect: struct_unnamed_459, }; pub const uv_random_t = struct_uv_random_s; -pub const uv_random_cb = ?*const fn ([*c]uv_random_t, c_int, ?*anyopaque, usize) callconv(.C) void; +pub const uv_random_cb = ?*const fn ([*c]uv_random_t, c_int, ?*anyopaque, usize) callconv(.c) void; pub const struct_uv_random_s = extern struct { data: ?*anyopaque, type: uv_req_type, @@ -2113,10 +2113,10 @@ pub const RunMode = enum(c_uint) { }; pub extern fn uv_version() c_uint; pub extern fn uv_version_string() [*:0]const u8; -pub const uv_malloc_func = ?*const fn (usize) callconv(.C) ?*anyopaque; -pub const uv_realloc_func = ?*const fn (?*anyopaque, usize) callconv(.C) ?*anyopaque; -pub const uv_calloc_func = ?*const fn (usize, usize) callconv(.C) ?*anyopaque; -pub const uv_free_func = ?*const fn (?*anyopaque) callconv(.C) void; +pub const uv_malloc_func = ?*const fn (usize) callconv(.c) ?*anyopaque; +pub const uv_realloc_func = ?*const fn (?*anyopaque, usize) callconv(.c) ?*anyopaque; +pub const uv_calloc_func = ?*const fn (usize, usize) callconv(.c) ?*anyopaque; +pub const uv_free_func = ?*const fn (?*anyopaque) callconv(.c) void; pub extern fn uv_library_shutdown() void; pub extern fn uv_replace_allocator(malloc_func: uv_malloc_func, realloc_func: uv_realloc_func, calloc_func: uv_calloc_func, free_func: uv_free_func) c_int; pub extern fn uv_loop_init(loop: *uv_loop_t) ReturnCode; @@ -2136,7 +2136,7 @@ pub extern fn uv_update_time(*uv_loop_t) void; pub extern fn uv_now([*c]const uv_loop_t) u64; pub extern fn uv_backend_fd([*c]const uv_loop_t) c_int; pub extern fn uv_backend_timeout([*c]const uv_loop_t) c_int; -pub const uv_walk_cb = ?*const fn ([*c]uv_handle_t, ?*anyopaque) callconv(.C) void; +pub const uv_walk_cb = ?*const fn ([*c]uv_handle_t, ?*anyopaque) callconv(.c) void; pub const UV_CLOCK_MONOTONIC: c_int = 0; pub const UV_CLOCK_REALTIME: c_int = 1; pub const uv_clock_id = c_uint; @@ -2190,7 +2190,7 @@ pub const uv_stat_t = extern struct { return self.birthtim; } }; -pub const uv_fs_poll_cb = ?*const fn ([*c]uv_fs_poll_t, c_int, [*c]const uv_stat_t, [*c]const uv_stat_t) callconv(.C) void; +pub const uv_fs_poll_cb = ?*const fn ([*c]uv_fs_poll_t, c_int, [*c]const uv_stat_t, [*c]const uv_stat_t) callconv(.c) void; pub const UV_LEAVE_GROUP: c_int = 0; pub const UV_JOIN_GROUP: c_int = 1; pub const uv_membership = c_uint; @@ -2322,8 +2322,8 @@ pub extern fn uv_check_stop(check: *uv_check_t) c_int; pub extern fn uv_idle_init(*uv_loop_t, idle: *uv_idle_t) c_int; pub extern fn uv_idle_start(idle: *uv_idle_t, cb: uv_idle_cb) c_int; pub extern fn uv_idle_stop(idle: *uv_idle_t) c_int; -pub extern fn uv_async_init(*uv_loop_t, @"async": *uv_async_t, async_cb: uv_async_cb) c_int; -pub extern fn uv_async_send(@"async": *uv_async_t) c_int; +pub extern fn uv_async_init(*uv_loop_t, async: *uv_async_t, async_cb: uv_async_cb) c_int; +pub extern fn uv_async_send(async: *uv_async_t) c_int; pub extern fn uv_timer_init(*uv_loop_t, handle: *Timer) c_int; pub extern fn uv_timer_start(handle: *Timer, cb: uv_timer_cb, timeout: u64, repeat: u64) c_int; pub extern fn uv_timer_stop(handle: *Timer) c_int; @@ -2630,13 +2630,13 @@ pub extern fn uv_dlerror(lib: [*c]const uv_lib_t) [*]const u8; // pub extern fn uv_barrier_wait(barrier: [*c]uv_barrier_t) c_int; // pub extern fn uv_cond_wait(cond: [*c]uv_cond_t, mutex: [*c]uv_mutex_t) void; // pub extern fn uv_cond_timedwait(cond: [*c]uv_cond_t, mutex: [*c]uv_mutex_t, timeout: u64) c_int; -pub extern fn uv_once(guard: [*c]uv_once_t, callback: ?*const fn () callconv(.C) void) void; +pub extern fn uv_once(guard: [*c]uv_once_t, callback: ?*const fn () callconv(.c) void) void; pub extern fn uv_key_create(key: [*c]uv_key_t) c_int; pub extern fn uv_key_delete(key: [*c]uv_key_t) void; pub extern fn uv_key_get(key: [*c]uv_key_t) ?*anyopaque; pub extern fn uv_key_set(key: [*c]uv_key_t, value: ?*anyopaque) void; pub extern fn uv_gettimeofday(tv: [*c]uv_timeval64_t) c_int; -pub const uv_thread_cb = ?*const fn (?*anyopaque) callconv(.C) void; +pub const uv_thread_cb = ?*const fn (?*anyopaque) callconv(.c) void; pub extern fn uv_thread_create(tid: [*c]uv_thread_t, entry: uv_thread_cb, arg: ?*anyopaque) c_int; pub const UV_THREAD_NO_FLAGS: c_int = 0; pub const UV_THREAD_HAS_STACK_SIZE: c_int = 1; @@ -2654,7 +2654,7 @@ pub extern fn uv_thread_self() uv_thread_t; pub extern fn uv_thread_join(tid: [*c]uv_thread_t) c_int; pub extern fn uv_thread_equal(t1: [*c]const uv_thread_t, t2: [*c]const uv_thread_t) c_int; pub const union_uv_any_handle = extern union { - @"async": uv_async_t, + async: uv_async_t, check: uv_check_t, fs_event: uv_fs_event_t, fs_poll: uv_fs_poll_t, @@ -2775,10 +2775,7 @@ pub const ReturnCode = enum(c_int) { zero = 0, _, - pub fn format(this: ReturnCode, comptime fmt_: []const u8, options_: std.fmt.FormatOptions, writer: anytype) !void { - _ = fmt_; - _ = options_; - + pub fn format(this: ReturnCode, writer: *std.Io.Writer) !void { if (this.errEnum()) |err| { try writer.writeAll(@tagName(err)); } else { @@ -2896,10 +2893,7 @@ pub const ReturnCodeI64 = enum(i64) { return @enumFromInt(i); } - pub fn format(this: ReturnCodeI64, comptime fmt_: []const u8, options_: std.fmt.FormatOptions, writer: anytype) !void { - _ = fmt_; - _ = options_; - + pub fn format(this: ReturnCodeI64, writer: *std.Io.Writer) std.Io.Writer.Error!void { if (this.errEnum()) |err| { try writer.writeAll(@tagName(err)); } else { @@ -2953,7 +2947,7 @@ fn StreamMixin(comptime Type: type) type { pub fn listen(this: *Type, backlog: i32, context: anytype, comptime onConnect: *const (fn (@TypeOf(context), ReturnCode) void)) Maybe(void) { this.data = @ptrCast(context); const Wrapper = struct { - pub fn uvConnectCb(handle: *uv_stream_t, status: ReturnCode) callconv(.C) void { + pub fn uvConnectCb(handle: *uv_stream_t, status: ReturnCode) callconv(.c) void { onConnect(@ptrCast(@alignCast(handle.data)), status); } }; @@ -2980,11 +2974,11 @@ fn StreamMixin(comptime Type: type) type { const Context = @TypeOf(context); this.data = @ptrCast(context); const Wrapper = struct { - pub fn uvAllocb(req: *uv_stream_t, suggested_size: usize, buffer: *uv_buf_t) callconv(.C) void { + pub fn uvAllocb(req: *uv_stream_t, suggested_size: usize, buffer: *uv_buf_t) callconv(.c) void { const context_data: Context = @ptrCast(@alignCast(req.data)); buffer.* = uv_buf_t.init(alloc_cb(context_data, suggested_size)); } - pub fn uvReadcb(req: *uv_stream_t, nreads: isize, buffer: *uv_buf_t) callconv(.C) void { + pub fn uvReadcb(req: *uv_stream_t, nreads: isize, buffer: *uv_buf_t) callconv(.c) void { const context_data: Context = @ptrCast(@alignCast(req.data)); if (nreads == 0) return; // EAGAIN or EWOULDBLOCK if (nreads < 0) { @@ -3012,7 +3006,7 @@ fn StreamMixin(comptime Type: type) type { const Context = @TypeOf(context); const Wrapper = struct { - pub fn uvWriteCb(req: *uv_write_t, status: ReturnCode) callconv(.C) void { + pub fn uvWriteCb(req: *uv_write_t, status: ReturnCode) callconv(.c) void { const context_data: Context = @ptrCast(@alignCast(req.data)); bun.sys.syslog("uv_write({d}) = {d}", .{ req.write_buffer.len, status.int() }); bun.destroy(req); @@ -3075,7 +3069,7 @@ pub fn StreamWriterMixin(comptime Type: type, comptime pipe_field_name: std.meta return @ptrCast(&@field(this, @tagName(@tagName(pipe_field_name)))); } - fn uv_on_write_cb(req: *uv_write_t, status: ReturnCode) callconv(.C) void { + fn uv_on_write_cb(req: *uv_write_t, status: ReturnCode) callconv(.c) void { var this: *Type = @fieldParentPtr(@tagName(uv_write_t_field_name), req); this.onWrite(if (status.toError(.send)) |err| .{ .err = err } else .{ .result = @intCast(status.int()) }); } diff --git a/src/deps/lol-html.zig b/src/deps/lol-html.zig index b823e7309b..c4c1885b1c 100644 --- a/src/deps/lol-html.zig +++ b/src/deps/lol-html.zig @@ -79,7 +79,7 @@ pub const HTMLRewriter = opaque { encoding: [*]const u8, encoding_len: usize, memory_settings: MemorySettings, - output_sink: ?*const fn ([*]const u8, usize, *anyopaque) callconv(.C) void, + output_sink: ?*const fn ([*]const u8, usize, *anyopaque) callconv(.c) void, output_sink_user_data: *anyopaque, strict: bool, ) ?*HTMLRewriter; @@ -88,7 +88,7 @@ pub const HTMLRewriter = opaque { encoding: [*]const u8, encoding_len: usize, memory_settings: MemorySettings, - output_sink: ?*const fn ([*]const u8, usize, *anyopaque) callconv(.C) void, + output_sink: ?*const fn ([*]const u8, usize, *anyopaque) callconv(.c) void, output_sink_user_data: *anyopaque, strict: bool, ) ?*HTMLRewriter; @@ -261,9 +261,9 @@ pub const HTMLRewriter = opaque { comptime OutputSinkType: type, comptime Writer: (fn (*OutputSinkType, bytes: []const u8) void), comptime Done: (fn (*OutputSinkType) void), - ) (fn ([*]const u8, usize, *anyopaque) callconv(.C) void) { + ) (fn ([*]const u8, usize, *anyopaque) callconv(.c) void) { return struct { - fn writeChunk(ptr: [*]const u8, len: usize, user_data: *anyopaque) callconv(.C) void { + fn writeChunk(ptr: [*]const u8, len: usize, user_data: *anyopaque) callconv(.c) void { auto_disable(); @setRuntimeSafety(false); @@ -595,7 +595,7 @@ pub const HTMLString = extern struct { return this.ptr[0..this.len]; } - fn deinit_external(_: [*]u8, ptr: *anyopaque, len: u32) callconv(.C) void { + fn deinit_external(_: [*]u8, ptr: *anyopaque, len: u32) callconv(.c) void { auto_disable(); lol_html_str_free(.{ .ptr = @as([*]const u8, @ptrCast(ptr)), .len = len }); } @@ -760,11 +760,11 @@ pub const Directive = enum(c_uint) { @"continue" = 0, stop = 1, }; -pub const lol_html_comment_handler_t = *const fn (*Comment, ?*anyopaque) callconv(.C) Directive; -pub const lol_html_text_handler_handler_t = *const fn (*TextChunk, ?*anyopaque) callconv(.C) Directive; -pub const lol_html_element_handler_t = *const fn (*Element, ?*anyopaque) callconv(.C) Directive; -pub const lol_html_doc_end_handler_t = *const fn (*DocEnd, ?*anyopaque) callconv(.C) Directive; -pub const lol_html_end_tag_handler_t = *const fn (*EndTag, ?*anyopaque) callconv(.C) Directive; +pub const lol_html_comment_handler_t = *const fn (*Comment, ?*anyopaque) callconv(.c) Directive; +pub const lol_html_text_handler_handler_t = *const fn (*TextChunk, ?*anyopaque) callconv(.c) Directive; +pub const lol_html_element_handler_t = *const fn (*Element, ?*anyopaque) callconv(.c) Directive; +pub const lol_html_doc_end_handler_t = *const fn (*DocEnd, ?*anyopaque) callconv(.c) Directive; +pub const lol_html_end_tag_handler_t = *const fn (*EndTag, ?*anyopaque) callconv(.c) Directive; pub const DocEnd = opaque { extern fn lol_html_doc_end_append(doc_end: ?*DocEnd, content: [*]const u8, content_len: usize, is_html: bool) c_int; @@ -779,7 +779,7 @@ pub const DocEnd = opaque { }; fn DirectiveFunctionType(comptime Container: type) type { - return *const fn (*Container, ?*anyopaque) callconv(.C) Directive; + return *const fn (*Container, ?*anyopaque) callconv(.c) Directive; } fn DirectiveFunctionTypeForHandler(comptime Container: type, comptime UserDataType: type) type { @@ -792,7 +792,7 @@ fn DocTypeHandlerCallback(comptime UserDataType: type) type { pub fn DirectiveHandler(comptime Container: type, comptime UserDataType: type, comptime Callback: (*const fn (this: *UserDataType, container: *Container) bool)) DirectiveFunctionType(Container) { return struct { - pub fn callback(this: *Container, user_data: ?*anyopaque) callconv(.C) Directive { + pub fn callback(this: *Container, user_data: ?*anyopaque) callconv(.c) Directive { auto_disable(); return @as( Directive, @@ -825,7 +825,7 @@ pub const DocType = opaque { extern fn lol_html_doctype_is_removed(doctype: *const DocType) bool; extern fn lol_html_doctype_source_location_bytes(doctype: *const DocType) SourceLocationBytes; - pub const Callback = *const fn (*DocType, ?*anyopaque) callconv(.C) Directive; + pub const Callback = *const fn (*DocType, ?*anyopaque) callconv(.c) Directive; pub fn getName(this: *const DocType) HTMLString { auto_disable(); diff --git a/src/deps/picohttp.zig b/src/deps/picohttp.zig index a0507c6ffa..1eb486c86b 100644 --- a/src/deps/picohttp.zig +++ b/src/deps/picohttp.zig @@ -34,18 +34,18 @@ pub const Header = struct { return self.name.len == 0; } - pub fn format(self: Header, comptime _: []const u8, _: fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: Header, writer: *std.Io.Writer) !void { if (Output.enable_ansi_colors_stderr) { if (self.isMultiline()) { - try fmt.format(writer, comptime Output.prettyFmt("{s}", true), .{self.value}); + try writer.print(comptime Output.prettyFmt("{s}", true), .{self.value}); } else { - try fmt.format(writer, comptime Output.prettyFmt("{s}: {s}", true), .{ self.name, self.value }); + try writer.print(comptime Output.prettyFmt("{s}: {s}", true), .{ self.name, self.value }); } } else { if (self.isMultiline()) { - try fmt.format(writer, comptime Output.prettyFmt("{s}", false), .{self.value}); + try writer.print(comptime Output.prettyFmt("{s}", false), .{self.value}); } else { - try fmt.format(writer, comptime Output.prettyFmt("{s}: {s}", false), .{ self.name, self.value }); + try writer.print(comptime Output.prettyFmt("{s}: {s}", false), .{ self.name, self.value }); } } } @@ -70,12 +70,12 @@ pub const Header = struct { pub const CURLFormatter = struct { header: *const Header, - pub fn format(self: @This(), comptime _: []const u8, _: fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: @This(), writer: *std.Io.Writer) !void { const header = self.header; if (header.value.len > 0) { - try fmt.format(writer, "-H \"{s}: {s}\"", .{ header.name, header.value }); + try writer.print("-H \"{s}: {s}\"", .{ header.name, header.value }); } else { - try fmt.format(writer, "-H \"{s}\"", .{header.name}); + try writer.print("-H \"{s}\"", .{header.name}); } } }; @@ -106,18 +106,18 @@ pub const Request = struct { bun.strings.hasPrefixComptime(content_type, "application/x-www-form-urlencoded"); } - pub fn format(self: @This(), comptime _: []const u8, _: fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: @This(), writer: *std.Io.Writer) !void { const request = self.request; if (Output.enable_ansi_colors_stderr) { _ = try writer.write(Output.prettyFmt("[fetch] $ ", true)); - try fmt.format(writer, Output.prettyFmt("curl --http1.1 \"{s}\"", true), .{request.path}); + try writer.print(Output.prettyFmt("curl --http1.1 \"{s}\"", true), .{request.path}); } else { - try fmt.format(writer, "curl --http1.1 \"{s}\"", .{request.path}); + try writer.print("curl --http1.1 \"{s}\"", .{request.path}); } if (!bun.strings.eqlComptime(request.method, "GET")) { - try fmt.format(writer, " -X {s}", .{request.method}); + try writer.print(" -X {s}", .{request.method}); } if (self.ignore_insecure) { @@ -134,7 +134,7 @@ pub const Request = struct { } } - try header.curl().format("", .{}, writer); + try header.curl().format(writer); if (bun.strings.eqlCaseInsensitiveASCII("accept-encoding", header.name, true)) { _ = try writer.writeAll(" --compressed"); @@ -170,17 +170,17 @@ pub const Request = struct { }; } - pub fn format(self: Request, comptime _: []const u8, _: fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: Request, writer: *std.Io.Writer) !void { if (Output.enable_ansi_colors_stderr) { _ = try writer.write(Output.prettyFmt("[fetch] ", true)); } - try fmt.format(writer, "> HTTP/1.1 {s} {s}\n", .{ self.method, self.path }); + try writer.print("> HTTP/1.1 {s} {s}\n", .{ self.method, self.path }); for (self.headers) |header| { if (Output.enable_ansi_colors_stderr) { _ = try writer.write(Output.prettyFmt("[fetch] ", true)); } _ = try writer.write("> "); - try fmt.format(writer, "{s}\n", .{header}); + try writer.print("{f}\n", .{header}); } } @@ -223,15 +223,15 @@ pub const Request = struct { const StatusCodeFormatter = struct { code: usize, - pub fn format(self: @This(), comptime _: []const u8, _: fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: @This(), writer: *std.Io.Writer) !void { if (Output.enable_ansi_colors_stderr) { switch (self.code) { - 101, 200...299 => try fmt.format(writer, comptime Output.prettyFmt("{d}", true), .{self.code}), - 300...399 => try fmt.format(writer, comptime Output.prettyFmt("{d}", true), .{self.code}), - else => try fmt.format(writer, comptime Output.prettyFmt("{d}", true), .{self.code}), + 101, 200...299 => try writer.print(comptime Output.prettyFmt("{d}", true), .{self.code}), + 300...399 => try writer.print(comptime Output.prettyFmt("{d}", true), .{self.code}), + else => try writer.print(comptime Output.prettyFmt("{d}", true), .{self.code}), } } else { - try fmt.format(writer, "{d}", .{self.code}); + try writer.print("{d}", .{self.code}); } } }; @@ -243,14 +243,13 @@ pub const Response = struct { headers: Header.List = .{}, bytes_read: c_int = 0, - pub fn format(self: Response, comptime _: []const u8, _: fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: Response, writer: *std.Io.Writer) !void { if (Output.enable_ansi_colors_stderr) { _ = try writer.write(Output.prettyFmt("[fetch] ", true)); } - try fmt.format( - writer, - "< {} {s}\n", + try writer.print( + "< {f} {s}\n", .{ StatusCodeFormatter{ .code = self.status_code, @@ -264,7 +263,7 @@ pub const Response = struct { } _ = try writer.write("< "); - try fmt.format(writer, "{s}\n", .{header}); + try writer.print("{f}\n", .{header}); } } @@ -337,9 +336,9 @@ pub const Response = struct { pub const Headers = struct { headers: []const Header, - pub fn format(self: Headers, comptime _: []const u8, _: fmt.FormatOptions, writer: anytype) !void { + pub fn format(self: Headers, writer: *std.Io.Writer) !void { for (self.headers) |header| { - try fmt.format(writer, "{s}: {s}\r\n", .{ header.name, header.value }); + try writer.print("{s}: {s}\r\n", .{ header.name, header.value }); } } @@ -377,6 +376,7 @@ pub const phr_decode_chunked_is_in_data = c.phr_decode_chunked_is_in_data; const string = []const u8; const c = @import("./picohttpparser.zig"); +const std = @import("std"); const bun = @import("bun"); const Environment = bun.Environment; @@ -384,6 +384,3 @@ const Output = bun.Output; const StringBuilder = bun.StringBuilder; const assert = bun.assert; const strings = bun.strings; - -const std = @import("std"); -const fmt = std.fmt; diff --git a/src/deps/tcc.zig b/src/deps/tcc.zig index 74c75d4c88..686b7f9ff2 100644 --- a/src/deps/tcc.zig +++ b/src/deps/tcc.zig @@ -1,7 +1,7 @@ pub const TCCState = State; -const TCCErrorFunc = ?*const fn (?*anyopaque, [*:0]const u8) callconv(.C) void; +const TCCErrorFunc = ?*const fn (?*anyopaque, [*:0]const u8) callconv(.c) void; fn ErrorFunc(Ctx: type) type { - return fn (ctx: ?*Ctx, msg: [*:0]const u8) callconv(.C) void; + return fn (ctx: ?*Ctx, msg: [*:0]const u8) callconv(.c) void; } extern fn tcc_new() ?*TCCState; extern fn tcc_delete(s: *TCCState) void; @@ -24,7 +24,7 @@ extern fn tcc_output_file(s: *TCCState, filename: [*:0]const u8) c_int; extern fn tcc_run(s: *TCCState, argc: c_int, argv: [*c][*c]u8) c_int; extern fn tcc_relocate(s1: *TCCState, ptr: ?*anyopaque) c_int; extern fn tcc_get_symbol(s: *TCCState, name: [*:0]const u8) ?*anyopaque; -extern fn tcc_list_symbols(s: *TCCState, ctx: ?*anyopaque, symbol_cb: ?*const fn (?*anyopaque, [*:0]const u8, ?*const anyopaque) callconv(.C) void) void; +extern fn tcc_list_symbols(s: *TCCState, ctx: ?*anyopaque, symbol_cb: ?*const fn (?*anyopaque, [*:0]const u8, ?*const anyopaque) callconv(.c) void) void; const TCC_OUTPUT_MEMORY = @as(c_int, 1); const TCC_OUTPUT_EXE = @as(c_int, 2); const TCC_OUTPUT_DLL = @as(c_int, 3); @@ -267,10 +267,10 @@ pub const State = opaque { /// ## Example /// ```zig /// const state = TCC.State.init() catch @panic("ahhh"); - /// fn add(a: c_int, b: c_int) callconv(.C) c_int { + /// fn add(a: c_int, b: c_int) callconv(.c) c_int { /// return a + b; /// } - /// extern "c" fn sub(a: c_int, b: c_int) callconv(.C) c_int; + /// extern "c" fn sub(a: c_int, b: c_int) callconv(.c) c_int; /// state.addSymbolsComptime(.{ /// .add = add, /// .sub = sub, diff --git a/src/deps/uws/App.zig b/src/deps/uws/App.zig index be6c1950f6..6e7e496cb4 100644 --- a/src/deps/uws/App.zig +++ b/src/deps/uws/App.zig @@ -82,7 +82,7 @@ pub fn NewApp(comptime ssl: bool) type { fn RouteHandler(comptime UserDataType: type, comptime handler: fn (UserDataType, *Request, *Response) void) type { return struct { - pub fn handle(res: *uws.uws_res, req: *Request, user_data: ?*anyopaque) callconv(.C) void { + pub fn handle(res: *uws.uws_res, req: *Request, user_data: ?*anyopaque) callconv(.c) void { if (comptime UserDataType == void) { return @call( .always_inline, @@ -246,7 +246,7 @@ pub fn NewApp(comptime ssl: bool) type { comptime handler: fn (UserData, ?*ThisApp.ListenSocket, c.uws_app_listen_config_t) void, ) void { const Wrapper = struct { - pub fn handle(socket: ?*uws.ListenSocket, conf: c.uws_app_listen_config_t, data: ?*anyopaque) callconv(.C) void { + pub fn handle(socket: ?*uws.ListenSocket, conf: c.uws_app_listen_config_t, data: ?*anyopaque) callconv(.c) void { if (comptime UserData == void) { @call(bun.callmod_inline, handler, .{ {}, @as(?*ThisApp.ListenSocket, @ptrCast(socket)), conf }); } else { @@ -268,7 +268,7 @@ pub fn NewApp(comptime ssl: bool) type { comptime handler: fn (data: UserData, socket: *us_socket_t, error_code: u8, rawPacket: []const u8) void, ) void { const Wrapper = struct { - pub fn handle(data: *anyopaque, _: c_int, socket: *us_socket_t, error_code: u8, raw_packet: ?[*]u8, raw_packet_length: c_int) callconv(.C) void { + pub fn handle(data: *anyopaque, _: c_int, socket: *us_socket_t, error_code: u8, raw_packet: ?[*]u8, raw_packet_length: c_int) callconv(.c) void { @call(bun.callmod_inline, handler, .{ @as(UserData, @ptrCast(@alignCast(data))), socket, @@ -288,7 +288,7 @@ pub fn NewApp(comptime ssl: bool) type { config: c.uws_app_listen_config_t, ) void { const Wrapper = struct { - pub fn handle(socket: ?*uws.ListenSocket, data: ?*anyopaque) callconv(.C) void { + pub fn handle(socket: ?*uws.ListenSocket, data: ?*anyopaque) callconv(.c) void { if (comptime UserData == void) { @call(bun.callmod_inline, handler, .{ {}, @as(?*ThisApp.ListenSocket, @ptrCast(socket)) }); } else { @@ -311,7 +311,7 @@ pub fn NewApp(comptime ssl: bool) type { flags: i32, ) void { const Wrapper = struct { - pub fn handle(socket: ?*uws.ListenSocket, _: [*:0]const u8, _: i32, data: *anyopaque) callconv(.C) void { + pub fn handle(socket: ?*uws.ListenSocket, _: [*:0]const u8, _: i32, data: *anyopaque) callconv(.c) void { if (comptime UserData == void) { @call(bun.callmod_inline, handler, .{ {}, @as(?*ThisApp.ListenSocket, @ptrCast(socket)) }); } else { @@ -392,14 +392,14 @@ pub const uws_app_s = opaque {}; pub const uws_app_t = uws_app_s; pub const c = struct { - pub const uws_listen_handler = ?*const fn (?*uws.ListenSocket, ?*anyopaque) callconv(.C) void; - pub const uws_method_handler = ?*const fn (*uws.uws_res, *Request, ?*anyopaque) callconv(.C) void; - pub const uws_filter_handler = ?*const fn (*uws.uws_res, i32, ?*anyopaque) callconv(.C) void; - pub const uws_missing_server_handler = ?*const fn ([*c]const u8, ?*anyopaque) callconv(.C) void; + pub const uws_listen_handler = ?*const fn (?*uws.ListenSocket, ?*anyopaque) callconv(.c) void; + pub const uws_method_handler = ?*const fn (*uws.uws_res, *Request, ?*anyopaque) callconv(.c) void; + pub const uws_filter_handler = ?*const fn (*uws.uws_res, i32, ?*anyopaque) callconv(.c) void; + pub const uws_missing_server_handler = ?*const fn ([*c]const u8, ?*anyopaque) callconv(.c) void; pub extern fn uws_app_close(ssl: i32, app: *uws_app_s) void; pub extern fn uws_app_close_idle(ssl: i32, app: *uws_app_s) void; - pub extern fn uws_app_set_on_clienterror(ssl: c_int, app: *uws_app_s, handler: *const fn (*anyopaque, c_int, *us_socket_t, u8, ?[*]u8, c_int) callconv(.C) void, user_data: *anyopaque) void; + pub extern fn uws_app_set_on_clienterror(ssl: c_int, app: *uws_app_s, handler: *const fn (*anyopaque, c_int, *us_socket_t, u8, ?[*]u8, c_int) callconv(.c) void, user_data: *anyopaque) void; pub extern fn uws_create_app(ssl: i32, options: BunSocketContextOptions) ?*uws_app_t; pub extern fn uws_app_destroy(ssl: i32, app: *uws_app_t) void; pub extern fn uws_app_set_flags(ssl: i32, app: *uws_app_t, require_host_header: bool, use_strict_method_validation: bool) void; @@ -448,7 +448,7 @@ pub const c = struct { domain: [*:0]const u8, pathlen: usize, i32, - *const (fn (*ListenSocket, domain: [*:0]const u8, i32, *anyopaque) callconv(.C) void), + *const (fn (*ListenSocket, domain: [*:0]const u8, i32, *anyopaque) callconv(.c) void), ?*anyopaque, ) void; diff --git a/src/deps/uws/BodyReaderMixin.zig b/src/deps/uws/BodyReaderMixin.zig index f280f12be0..c9b1331126 100644 --- a/src/deps/uws/BodyReaderMixin.zig +++ b/src/deps/uws/BodyReaderMixin.zig @@ -12,7 +12,7 @@ pub fn BodyReaderMixin( onError: fn (*Wrap) void, ) type { return struct { - body: std.ArrayList(u8), + body: std.array_list.Managed(u8), pub fn init(allocator: std.mem.Allocator) @This() { return .{ .body = .init(allocator) }; diff --git a/src/deps/uws/InternalLoopData.zig b/src/deps/uws/InternalLoopData.zig index 348ed0cd33..dc099649bb 100644 --- a/src/deps/uws/InternalLoopData.zig +++ b/src/deps/uws/InternalLoopData.zig @@ -11,8 +11,8 @@ pub const InternalLoopData = extern struct { recv_buf: [*]u8, send_buf: [*]u8, ssl_data: ?*anyopaque, - pre_cb: ?*fn (?*Loop) callconv(.C) void, - post_cb: ?*fn (?*Loop) callconv(.C) void, + pre_cb: ?*fn (?*Loop) callconv(.c) void, + post_cb: ?*fn (?*Loop) callconv(.c) void, closed_udp_head: ?*udp.Socket, closed_head: ?*us_socket_t, low_prio_head: ?*us_socket_t, diff --git a/src/deps/uws/Loop.zig b/src/deps/uws/Loop.zig index 999b1e95ac..fabebfba42 100644 --- a/src/deps/uws/Loop.zig +++ b/src/deps/uws/Loop.zig @@ -118,7 +118,7 @@ pub const PosixLoop = extern struct { pub fn nextTick(this: *PosixLoop, comptime UserType: type, user_data: UserType, comptime deferCallback: fn (ctx: UserType) void) void { const Handler = struct { - pub fn callback(data: *anyopaque) callconv(.C) void { + pub fn callback(data: *anyopaque) callconv(.c) void { deferCallback(@as(UserType, @ptrCast(@alignCast(data)))); } }; @@ -134,7 +134,7 @@ pub const PosixLoop = extern struct { pub fn removePre(handler: @This()) void { return c.uws_loop_removePostHandler(handler.loop, callback); } - pub fn callback(data: *anyopaque, _: *Loop) callconv(.C) void { + pub fn callback(data: *anyopaque, _: *Loop) callconv(.c) void { callback_fn(@as(UserType, @ptrCast(@alignCast(data)))); } }; @@ -254,7 +254,7 @@ pub const WindowsLoop = extern struct { pub fn nextTick(this: *Loop, comptime UserType: type, user_data: UserType, comptime deferCallback: fn (ctx: UserType) void) void { const Handler = struct { - pub fn callback(data: *anyopaque) callconv(.C) void { + pub fn callback(data: *anyopaque) callconv(.c) void { deferCallback(@as(UserType, @ptrCast(@alignCast(data)))); } }; @@ -278,7 +278,7 @@ pub const WindowsLoop = extern struct { pub fn removePre(handler: @This()) void { return c.uws_loop_removePostHandler(handler.loop, callback); } - pub fn callback(data: *anyopaque, _: *Loop) callconv(.C) void { + pub fn callback(data: *anyopaque, _: *Loop) callconv(.c) void { callback_fn(@as(UserType, @ptrCast(@alignCast(data)))); } }; @@ -290,9 +290,9 @@ pub const Loop = if (bun.Environment.isWindows) WindowsLoop else PosixLoop; const c = struct { pub extern fn us_create_loop( hint: ?*anyopaque, - wakeup_cb: ?*const fn (*Loop) callconv(.C) void, - pre_cb: ?*const fn (*Loop) callconv(.C) void, - post_cb: ?*const fn (*Loop) callconv(.C) void, + wakeup_cb: ?*const fn (*Loop) callconv(.c) void, + pre_cb: ?*const fn (*Loop) callconv(.c) void, + post_cb: ?*const fn (*Loop) callconv(.c) void, ext_size: c_uint, ) ?*Loop; pub extern fn us_loop_free(loop: ?*Loop) void; @@ -302,14 +302,14 @@ const c = struct { pub extern fn us_wakeup_loop(loop: ?*Loop) void; pub extern fn us_loop_integrate(loop: ?*Loop) void; pub extern fn us_loop_iteration_number(loop: ?*Loop) c_longlong; - pub extern fn uws_loop_addPostHandler(loop: *Loop, ctx: *anyopaque, cb: *const (fn (ctx: *anyopaque, loop: *Loop) callconv(.C) void)) void; - pub extern fn uws_loop_removePostHandler(loop: *Loop, ctx: *anyopaque, cb: *const (fn (ctx: *anyopaque, loop: *Loop) callconv(.C) void)) void; - pub extern fn uws_loop_addPreHandler(loop: *Loop, ctx: *anyopaque, cb: *const (fn (ctx: *anyopaque, loop: *Loop) callconv(.C) void)) void; - pub extern fn uws_loop_removePreHandler(loop: *Loop, ctx: *anyopaque, cb: *const (fn (ctx: *anyopaque, loop: *Loop) callconv(.C) void)) void; + pub extern fn uws_loop_addPostHandler(loop: *Loop, ctx: *anyopaque, cb: *const (fn (ctx: *anyopaque, loop: *Loop) callconv(.c) void)) void; + pub extern fn uws_loop_removePostHandler(loop: *Loop, ctx: *anyopaque, cb: *const (fn (ctx: *anyopaque, loop: *Loop) callconv(.c) void)) void; + pub extern fn uws_loop_addPreHandler(loop: *Loop, ctx: *anyopaque, cb: *const (fn (ctx: *anyopaque, loop: *Loop) callconv(.c) void)) void; + pub extern fn uws_loop_removePreHandler(loop: *Loop, ctx: *anyopaque, cb: *const (fn (ctx: *anyopaque, loop: *Loop) callconv(.c) void)) void; pub extern fn us_loop_run_bun_tick(loop: ?*Loop, timouetMs: ?*const bun.timespec) void; pub extern fn uws_get_loop() *Loop; pub extern fn uws_get_loop_with_native(*anyopaque) *WindowsLoop; - pub extern fn uws_loop_defer(loop: *Loop, ctx: *anyopaque, cb: *const (fn (ctx: *anyopaque) callconv(.C) void)) void; + pub extern fn uws_loop_defer(loop: *Loop, ctx: *anyopaque, cb: *const (fn (ctx: *anyopaque) callconv(.c) void)) void; pub extern fn uws_res_clear_corked_socket(loop: *Loop) void; pub extern fn uws_loop_date_header_timer_update(loop: *Loop) void; }; diff --git a/src/deps/uws/Response.zig b/src/deps/uws/Response.zig index 291aa43627..dee0976a9b 100644 --- a/src/deps/uws/Response.zig +++ b/src/deps/uws/Response.zig @@ -161,7 +161,7 @@ pub fn NewResponse(ssl_flag: i32) type { user_data: UserDataType, ) void { const Wrapper = struct { - pub fn handle(this: *c.uws_res, amount: u64, data: ?*anyopaque) callconv(.C) bool { + pub fn handle(this: *c.uws_res, amount: u64, data: ?*anyopaque) callconv(.c) bool { if (comptime UserDataType == void) { return @call(bun.callmod_inline, handler, .{ {}, amount, castRes(this) }); } else { @@ -186,7 +186,7 @@ pub fn NewResponse(ssl_flag: i32) type { } pub fn onAborted(res: *Response, comptime UserDataType: type, comptime handler: fn (UserDataType, *Response) void, optional_data: UserDataType) void { const Wrapper = struct { - pub fn handle(this: *c.uws_res, user_data: ?*anyopaque) callconv(.C) void { + pub fn handle(this: *c.uws_res, user_data: ?*anyopaque) callconv(.c) void { if (comptime UserDataType == void) { @call(bun.callmod_inline, handler, .{ {}, castRes(this), {} }); } else { @@ -202,7 +202,7 @@ pub fn NewResponse(ssl_flag: i32) type { } pub fn onTimeout(res: *Response, comptime UserDataType: type, comptime handler: fn (UserDataType, *Response) void, optional_data: UserDataType) void { const Wrapper = struct { - pub fn handle(this: *c.uws_res, user_data: ?*anyopaque) callconv(.C) void { + pub fn handle(this: *c.uws_res, user_data: ?*anyopaque) callconv(.c) void { if (comptime UserDataType == void) { @call(bun.callmod_inline, handler, .{ {}, castRes(this) }); } else { @@ -228,7 +228,7 @@ pub fn NewResponse(ssl_flag: i32) type { ) void { const Wrapper = struct { const handler_fn = handler; - pub fn handle(this: *c.uws_res, chunk_ptr: [*c]const u8, len: usize, last: bool, user_data: ?*anyopaque) callconv(.C) void { + pub fn handle(this: *c.uws_res, chunk_ptr: [*c]const u8, len: usize, last: bool, user_data: ?*anyopaque) callconv(.c) void { if (comptime UserDataType == void) { @call(bun.callmod_inline, handler_fn, .{ {}, @@ -262,13 +262,13 @@ pub fn NewResponse(ssl_flag: i32) type { const Wrapper = struct { const handler_fn = handler; const Args = *@TypeOf(args_tuple); - pub fn handle(user_data: ?*anyopaque) callconv(.C) void { - const args: Args = @alignCast(@ptrCast(user_data.?)); + pub fn handle(user_data: ?*anyopaque) callconv(.c) void { + const args: Args = @ptrCast(@alignCast(user_data.?)); @call(.always_inline, handler_fn, args.*); } }; - c.uws_res_cork(ssl_flag, res.downcast(), @constCast(@ptrCast(&args_tuple)), Wrapper.handle); + c.uws_res_cork(ssl_flag, res.downcast(), @ptrCast(@constCast(&args_tuple)), Wrapper.handle); } pub fn runCorkedWithType( @@ -278,7 +278,7 @@ pub fn NewResponse(ssl_flag: i32) type { optional_data: UserDataType, ) void { const Wrapper = struct { - pub fn handle(user_data: ?*anyopaque) callconv(.C) void { + pub fn handle(user_data: ?*anyopaque) callconv(.c) void { if (comptime UserDataType == void) { @call(bun.callmod_inline, handler, .{ {}, @@ -688,10 +688,10 @@ const c = struct { pub extern fn uws_res_get_write_offset(ssl: i32, res: *c.uws_res) u64; pub extern fn uws_res_override_write_offset(ssl: i32, res: *c.uws_res, u64) void; pub extern fn uws_res_has_responded(ssl: i32, res: *c.uws_res) bool; - pub extern fn uws_res_on_writable(ssl: i32, res: *c.uws_res, handler: ?*const fn (*c.uws_res, u64, ?*anyopaque) callconv(.C) bool, user_data: ?*anyopaque) void; + pub extern fn uws_res_on_writable(ssl: i32, res: *c.uws_res, handler: ?*const fn (*c.uws_res, u64, ?*anyopaque) callconv(.c) bool, user_data: ?*anyopaque) void; pub extern fn uws_res_clear_on_writable(ssl: i32, res: *c.uws_res) void; - pub extern fn uws_res_on_aborted(ssl: i32, res: *c.uws_res, handler: ?*const fn (*c.uws_res, ?*anyopaque) callconv(.C) void, optional_data: ?*anyopaque) void; - pub extern fn uws_res_on_timeout(ssl: i32, res: *c.uws_res, handler: ?*const fn (*c.uws_res, ?*anyopaque) callconv(.C) void, optional_data: ?*anyopaque) void; + pub extern fn uws_res_on_aborted(ssl: i32, res: *c.uws_res, handler: ?*const fn (*c.uws_res, ?*anyopaque) callconv(.c) void, optional_data: ?*anyopaque) void; + pub extern fn uws_res_on_timeout(ssl: i32, res: *c.uws_res, handler: ?*const fn (*c.uws_res, ?*anyopaque) callconv(.c) void, optional_data: ?*anyopaque) void; pub extern fn uws_res_try_end( ssl: i32, res: *c.uws_res, @@ -708,7 +708,7 @@ const c = struct { pub extern fn uws_res_on_data( ssl: i32, res: *c.uws_res, - handler: ?*const fn (*c.uws_res, [*c]const u8, usize, bool, ?*anyopaque) callconv(.C) void, + handler: ?*const fn (*c.uws_res, [*c]const u8, usize, bool, ?*anyopaque) callconv(.c) void, optional_data: ?*anyopaque, ) void; pub extern fn uws_res_upgrade( @@ -723,7 +723,7 @@ const c = struct { sec_web_socket_extensions_length: usize, ws: ?*uws.SocketContext, ) *Socket; - pub extern fn uws_res_cork(i32, res: *c.uws_res, ctx: *anyopaque, corker: *const (fn (?*anyopaque) callconv(.C) void)) void; + pub extern fn uws_res_cork(i32, res: *c.uws_res, ctx: *anyopaque, corker: *const (fn (?*anyopaque) callconv(.c) void)) void; }; const std = @import("std"); diff --git a/src/deps/uws/SocketContext.zig b/src/deps/uws/SocketContext.zig index 2672402e7e..caf8b40ef7 100644 --- a/src/deps/uws/SocketContext.zig +++ b/src/deps/uws/SocketContext.zig @@ -59,35 +59,35 @@ pub const SocketContext = opaque { const ssl_int: i32 = @intFromBool(is_ssl); // replace callbacks with dummy ones const DummyCallbacks = struct { - fn open(socket: *us_socket_t, _: i32, _: [*c]u8, _: i32) callconv(.C) ?*us_socket_t { + fn open(socket: *us_socket_t, _: i32, _: [*c]u8, _: i32) callconv(.c) ?*us_socket_t { return socket; } - fn close(socket: *us_socket_t, _: i32, _: ?*anyopaque) callconv(.C) ?*us_socket_t { + fn close(socket: *us_socket_t, _: i32, _: ?*anyopaque) callconv(.c) ?*us_socket_t { return socket; } - fn data(socket: *us_socket_t, _: [*c]u8, _: i32) callconv(.C) ?*us_socket_t { + fn data(socket: *us_socket_t, _: [*c]u8, _: i32) callconv(.c) ?*us_socket_t { return socket; } - fn fd(socket: *us_socket_t, _: c_int) callconv(.C) ?*us_socket_t { + fn fd(socket: *us_socket_t, _: c_int) callconv(.c) ?*us_socket_t { return socket; } - fn writable(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + fn writable(socket: *us_socket_t) callconv(.c) ?*us_socket_t { return socket; } - fn timeout(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + fn timeout(socket: *us_socket_t) callconv(.c) ?*us_socket_t { return socket; } - fn connect_error(socket: *ConnectingSocket, _: i32) callconv(.C) ?*ConnectingSocket { + fn connect_error(socket: *ConnectingSocket, _: i32) callconv(.c) ?*ConnectingSocket { return socket; } - fn socket_connect_error(socket: *us_socket_t, _: i32) callconv(.C) ?*us_socket_t { + fn socket_connect_error(socket: *us_socket_t, _: i32) callconv(.c) ?*us_socket_t { return socket; } - fn end(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + fn end(socket: *us_socket_t) callconv(.c) ?*us_socket_t { return socket; } - fn handshake(_: *us_socket_t, _: i32, _: us_bun_verify_error_t, _: ?*anyopaque) callconv(.C) void {} - fn long_timeout(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + fn handshake(_: *us_socket_t, _: i32, _: us_bun_verify_error_t, _: ?*anyopaque) callconv(.c) void {} + fn long_timeout(socket: *us_socket_t) callconv(.c) ?*us_socket_t { return socket; } }; @@ -140,51 +140,51 @@ pub const SocketContext = opaque { return @as(*align(alignment) ContextType, @ptrCast(@alignCast(ptr))); } - pub fn onOpen(this: *SocketContext, ssl: bool, on_open: ?*const fn (*us_socket_t, i32, [*c]u8, i32) callconv(.C) ?*us_socket_t) void { + pub fn onOpen(this: *SocketContext, ssl: bool, on_open: ?*const fn (*us_socket_t, i32, [*c]u8, i32) callconv(.c) ?*us_socket_t) void { c.us_socket_context_on_open(@intFromBool(ssl), this, on_open); } - pub fn onClose(this: *SocketContext, ssl: bool, on_close: ?*const fn (*us_socket_t, i32, ?*anyopaque) callconv(.C) ?*us_socket_t) void { + pub fn onClose(this: *SocketContext, ssl: bool, on_close: ?*const fn (*us_socket_t, i32, ?*anyopaque) callconv(.c) ?*us_socket_t) void { c.us_socket_context_on_close(@intFromBool(ssl), this, on_close); } - pub fn onData(this: *SocketContext, ssl: bool, on_data: ?*const fn (*us_socket_t, [*c]u8, i32) callconv(.C) ?*us_socket_t) void { + pub fn onData(this: *SocketContext, ssl: bool, on_data: ?*const fn (*us_socket_t, [*c]u8, i32) callconv(.c) ?*us_socket_t) void { c.us_socket_context_on_data(@intFromBool(ssl), this, on_data); } - pub fn onFd(this: *SocketContext, ssl: bool, on_fd: ?*const fn (*us_socket_t, c_int) callconv(.C) ?*us_socket_t) void { + pub fn onFd(this: *SocketContext, ssl: bool, on_fd: ?*const fn (*us_socket_t, c_int) callconv(.c) ?*us_socket_t) void { c.us_socket_context_on_fd(@intFromBool(ssl), this, on_fd); } - pub fn onHandshake(this: *SocketContext, ssl: bool, on_handshake: ?*const fn (*us_socket_t, i32, us_bun_verify_error_t, ?*anyopaque) callconv(.C) void) void { + pub fn onHandshake(this: *SocketContext, ssl: bool, on_handshake: ?*const fn (*us_socket_t, i32, us_bun_verify_error_t, ?*anyopaque) callconv(.c) void) void { c.us_socket_context_on_handshake(@intFromBool(ssl), this, on_handshake, null); } - pub fn onLongTimeout(this: *SocketContext, ssl: bool, on_timeout: ?*const fn (*us_socket_t) callconv(.C) ?*us_socket_t) void { + pub fn onLongTimeout(this: *SocketContext, ssl: bool, on_timeout: ?*const fn (*us_socket_t) callconv(.c) ?*us_socket_t) void { c.us_socket_context_on_long_timeout(@intFromBool(ssl), this, on_timeout); } - pub fn onWritable(this: *SocketContext, ssl: bool, on_writable: ?*const fn (*us_socket_t) callconv(.C) ?*us_socket_t) void { + pub fn onWritable(this: *SocketContext, ssl: bool, on_writable: ?*const fn (*us_socket_t) callconv(.c) ?*us_socket_t) void { c.us_socket_context_on_writable(@intFromBool(ssl), this, on_writable); } - pub fn onTimeout(this: *SocketContext, ssl: bool, on_timeout: ?*const fn (*us_socket_t) callconv(.C) ?*us_socket_t) void { + pub fn onTimeout(this: *SocketContext, ssl: bool, on_timeout: ?*const fn (*us_socket_t) callconv(.c) ?*us_socket_t) void { c.us_socket_context_on_timeout(@intFromBool(ssl), this, on_timeout); } - pub fn onConnectError(this: *SocketContext, ssl: bool, on_connect_error: ?*const fn (*ConnectingSocket, i32) callconv(.C) ?*ConnectingSocket) void { + pub fn onConnectError(this: *SocketContext, ssl: bool, on_connect_error: ?*const fn (*ConnectingSocket, i32) callconv(.c) ?*ConnectingSocket) void { c.us_socket_context_on_connect_error(@intFromBool(ssl), this, on_connect_error); } - pub fn onSocketConnectError(this: *SocketContext, ssl: bool, on_connect_error: ?*const fn (*us_socket_t, i32) callconv(.C) ?*us_socket_t) void { + pub fn onSocketConnectError(this: *SocketContext, ssl: bool, on_connect_error: ?*const fn (*us_socket_t, i32) callconv(.c) ?*us_socket_t) void { c.us_socket_context_on_socket_connect_error(@intFromBool(ssl), this, on_connect_error); } - pub fn onEnd(this: *SocketContext, ssl: bool, on_end: ?*const fn (*us_socket_t) callconv(.C) ?*us_socket_t) void { + pub fn onEnd(this: *SocketContext, ssl: bool, on_end: ?*const fn (*us_socket_t) callconv(.c) ?*us_socket_t) void { c.us_socket_context_on_end(@intFromBool(ssl), this, on_end); } - pub fn onServerName(this: *SocketContext, ssl: bool, on_server_name: ?*const fn (*SocketContext, [*c]const u8) callconv(.C) void) void { + pub fn onServerName(this: *SocketContext, ssl: bool, on_server_name: ?*const fn (*SocketContext, [*c]const u8) callconv(.c) void) void { c.us_socket_context_on_server_name(@intFromBool(ssl), this, on_server_name); } @@ -262,18 +262,18 @@ pub const c = struct { pub extern fn us_socket_context_listen(ssl: i32, context: *SocketContext, host: ?[*:0]const u8, port: i32, options: i32, socket_ext_size: i32, err: *c_int) ?*ListenSocket; pub extern fn us_socket_context_listen_unix(ssl: i32, context: *SocketContext, path: [*:0]const u8, pathlen: usize, options: i32, socket_ext_size: i32, err: *c_int) ?*ListenSocket; pub extern fn us_socket_context_loop(ssl: i32, context: *SocketContext) ?*Loop; - pub extern fn us_socket_context_on_close(ssl: i32, context: *SocketContext, on_close: ?*const fn (*us_socket_t, i32, ?*anyopaque) callconv(.C) ?*us_socket_t) void; - pub extern fn us_socket_context_on_connect_error(ssl: i32, context: *SocketContext, on_connect_error: ?*const fn (*uws.ConnectingSocket, i32) callconv(.C) ?*uws.ConnectingSocket) void; - pub extern fn us_socket_context_on_data(ssl: i32, context: *SocketContext, on_data: ?*const fn (*us_socket_t, [*c]u8, i32) callconv(.C) ?*us_socket_t) void; - pub extern fn us_socket_context_on_end(ssl: i32, context: *SocketContext, on_end: ?*const fn (*us_socket_t) callconv(.C) ?*us_socket_t) void; - pub extern fn us_socket_context_on_fd(ssl: i32, context: *SocketContext, on_fd: ?*const fn (*us_socket_t, c_int) callconv(.C) ?*us_socket_t) void; - pub extern fn us_socket_context_on_handshake(ssl: i32, context: *SocketContext, on_handshake: ?*const fn (*us_socket_t, i32, us_bun_verify_error_t, ?*anyopaque) callconv(.C) void, ?*anyopaque) void; - pub extern fn us_socket_context_on_long_timeout(ssl: i32, context: *SocketContext, on_timeout: ?*const fn (*us_socket_t) callconv(.C) ?*us_socket_t) void; - pub extern fn us_socket_context_on_open(ssl: i32, context: *SocketContext, on_open: ?*const fn (*us_socket_t, i32, [*c]u8, i32) callconv(.C) ?*us_socket_t) void; - pub extern fn us_socket_context_on_server_name(ssl: i32, context: *SocketContext, cb: ?*const fn (?*SocketContext, [*c]const u8) callconv(.C) void) void; - pub extern fn us_socket_context_on_socket_connect_error(ssl: i32, context: *SocketContext, on_connect_error: ?*const fn (*us_socket_t, i32) callconv(.C) ?*us_socket_t) void; - pub extern fn us_socket_context_on_timeout(ssl: i32, context: *SocketContext, on_timeout: ?*const fn (*us_socket_t) callconv(.C) ?*us_socket_t) void; - pub extern fn us_socket_context_on_writable(ssl: i32, context: *SocketContext, on_writable: ?*const fn (*us_socket_t) callconv(.C) ?*us_socket_t) void; + pub extern fn us_socket_context_on_close(ssl: i32, context: *SocketContext, on_close: ?*const fn (*us_socket_t, i32, ?*anyopaque) callconv(.c) ?*us_socket_t) void; + pub extern fn us_socket_context_on_connect_error(ssl: i32, context: *SocketContext, on_connect_error: ?*const fn (*uws.ConnectingSocket, i32) callconv(.c) ?*uws.ConnectingSocket) void; + pub extern fn us_socket_context_on_data(ssl: i32, context: *SocketContext, on_data: ?*const fn (*us_socket_t, [*c]u8, i32) callconv(.c) ?*us_socket_t) void; + pub extern fn us_socket_context_on_end(ssl: i32, context: *SocketContext, on_end: ?*const fn (*us_socket_t) callconv(.c) ?*us_socket_t) void; + pub extern fn us_socket_context_on_fd(ssl: i32, context: *SocketContext, on_fd: ?*const fn (*us_socket_t, c_int) callconv(.c) ?*us_socket_t) void; + pub extern fn us_socket_context_on_handshake(ssl: i32, context: *SocketContext, on_handshake: ?*const fn (*us_socket_t, i32, us_bun_verify_error_t, ?*anyopaque) callconv(.c) void, ?*anyopaque) void; + pub extern fn us_socket_context_on_long_timeout(ssl: i32, context: *SocketContext, on_timeout: ?*const fn (*us_socket_t) callconv(.c) ?*us_socket_t) void; + pub extern fn us_socket_context_on_open(ssl: i32, context: *SocketContext, on_open: ?*const fn (*us_socket_t, i32, [*c]u8, i32) callconv(.c) ?*us_socket_t) void; + pub extern fn us_socket_context_on_server_name(ssl: i32, context: *SocketContext, cb: ?*const fn (?*SocketContext, [*c]const u8) callconv(.c) void) void; + pub extern fn us_socket_context_on_socket_connect_error(ssl: i32, context: *SocketContext, on_connect_error: ?*const fn (*us_socket_t, i32) callconv(.c) ?*us_socket_t) void; + pub extern fn us_socket_context_on_timeout(ssl: i32, context: *SocketContext, on_timeout: ?*const fn (*us_socket_t) callconv(.c) ?*us_socket_t) void; + pub extern fn us_socket_context_on_writable(ssl: i32, context: *SocketContext, on_writable: ?*const fn (*us_socket_t) callconv(.c) ?*us_socket_t) void; pub extern fn us_socket_context_ref(ssl: i32, context: *SocketContext) void; pub extern fn us_socket_context_remove_server_name(ssl: i32, context: *SocketContext, hostname_pattern: [*c]const u8) void; pub extern fn us_socket_context_unref(ssl: i32, context: *SocketContext) void; diff --git a/src/deps/uws/Timer.zig b/src/deps/uws/Timer.zig index 745521f924..9b9ff20211 100644 --- a/src/deps/uws/Timer.zig +++ b/src/deps/uws/Timer.zig @@ -25,7 +25,7 @@ pub const Timer = opaque { return c.us_create_timer(loop, 1, @sizeOf(Type)) orelse bun.Output.panic("us_create_timer: returned null: {d}", .{std.c._errno().*}); } - pub fn set(this: *Timer, ptr: anytype, cb: ?*const fn (*Timer) callconv(.C) void, ms: i32, repeat_ms: i32) void { + pub fn set(this: *Timer, ptr: anytype, cb: ?*const fn (*Timer) callconv(.c) void, ms: i32, repeat_ms: i32) void { c.us_timer_set(this, cb, ms, repeat_ms); const value_ptr = c.us_timer_ext(this); @setRuntimeSafety(false); @@ -51,7 +51,7 @@ const c = struct { pub extern fn us_create_timer(loop: ?*Loop, fallthrough: i32, ext_size: c_uint) ?*Timer; pub extern fn us_timer_ext(timer: ?*Timer) *?*anyopaque; pub extern fn us_timer_close(timer: ?*Timer, fallthrough: i32) void; - pub extern fn us_timer_set(timer: ?*Timer, cb: ?*const fn (*Timer) callconv(.C) void, ms: i32, repeat_ms: i32) void; + pub extern fn us_timer_set(timer: ?*Timer, cb: ?*const fn (*Timer) callconv(.c) void, ms: i32, repeat_ms: i32) void; pub extern fn us_timer_loop(t: ?*Timer) ?*Loop; }; diff --git a/src/deps/uws/WebSocket.zig b/src/deps/uws/WebSocket.zig index f2256393f6..ec90f22abf 100644 --- a/src/deps/uws/WebSocket.zig +++ b/src/deps/uws/WebSocket.zig @@ -33,7 +33,7 @@ pub fn NewWebSocket(comptime ssl_flag: c_int) type { pub fn cork(this: *WebSocket, ctx: anytype, comptime callback: anytype) void { const ContextType = @TypeOf(ctx); const Wrapper = struct { - pub fn wrap(user_data: ?*anyopaque) callconv(.C) void { + pub fn wrap(user_data: ?*anyopaque) callconv(.c) void { @call(bun.callmod_inline, callback, .{bun.cast(ContextType, user_data.?)}); } }; @@ -137,7 +137,7 @@ pub const AnyWebSocket = union(enum) { pub fn cork(this: AnyWebSocket, ctx: anytype, comptime callback: anytype) void { const ContextType = @TypeOf(ctx); const Wrapper = struct { - pub fn wrap(user_data: ?*anyopaque) callconv(.C) void { + pub fn wrap(user_data: ?*anyopaque) callconv(.c) void { @call(bun.callmod_inline, callback, .{bun.cast(ContextType, user_data.?)}); } }; @@ -172,7 +172,7 @@ pub const AnyWebSocket = union(enum) { }; } // pub fn iterateTopics(this: AnyWebSocket) { - // return uws_ws_iterate_topics(ssl_flag, this.raw(), callback: ?*const fn ([*c]const u8, usize, ?*anyopaque) callconv(.C) void, user_data: ?*anyopaque) void; + // return uws_ws_iterate_topics(ssl_flag, this.raw(), callback: ?*const fn ([*c]const u8, usize, ?*anyopaque) callconv(.c) void, user_data: ?*anyopaque) void; // } pub fn publish(this: AnyWebSocket, topic: []const u8, message: []const u8, opcode: Opcode, compress: bool) bool { return switch (this) { @@ -231,7 +231,7 @@ pub const WebSocketBehavior = extern struct { const active_field_name = if (is_ssl) "ssl" else "tcp"; - pub fn onOpen(raw_ws: *RawWebSocket) callconv(.C) void { + pub fn onOpen(raw_ws: *RawWebSocket) callconv(.c) void { const ws = @unionInit(AnyWebSocket, active_field_name, @as(*WebSocket, @ptrCast(raw_ws))); const this = ws.as(Type).?; @call(bun.callmod_inline, Type.onOpen, .{ @@ -240,7 +240,7 @@ pub const WebSocketBehavior = extern struct { }); } - pub fn onMessage(raw_ws: *RawWebSocket, message: [*c]const u8, length: usize, opcode: Opcode) callconv(.C) void { + pub fn onMessage(raw_ws: *RawWebSocket, message: [*c]const u8, length: usize, opcode: Opcode) callconv(.c) void { const ws = @unionInit(AnyWebSocket, active_field_name, @as(*WebSocket, @ptrCast(raw_ws))); const this = ws.as(Type).?; @call(bun.callmod_inline, Type.onMessage, .{ @@ -251,7 +251,7 @@ pub const WebSocketBehavior = extern struct { }); } - pub fn onDrain(raw_ws: *RawWebSocket) callconv(.C) void { + pub fn onDrain(raw_ws: *RawWebSocket) callconv(.c) void { const ws = @unionInit(AnyWebSocket, active_field_name, @as(*WebSocket, @ptrCast(raw_ws))); const this = ws.as(Type).?; @call(bun.callmod_inline, Type.onDrain, .{ @@ -260,7 +260,7 @@ pub const WebSocketBehavior = extern struct { }); } - pub fn onPing(raw_ws: *RawWebSocket, message: [*c]const u8, length: usize) callconv(.C) void { + pub fn onPing(raw_ws: *RawWebSocket, message: [*c]const u8, length: usize) callconv(.c) void { const ws = @unionInit(AnyWebSocket, active_field_name, @as(*WebSocket, @ptrCast(raw_ws))); const this = ws.as(Type).?; @call(bun.callmod_inline, Type.onPing, .{ @@ -270,7 +270,7 @@ pub const WebSocketBehavior = extern struct { }); } - pub fn onPong(raw_ws: *RawWebSocket, message: [*c]const u8, length: usize) callconv(.C) void { + pub fn onPong(raw_ws: *RawWebSocket, message: [*c]const u8, length: usize) callconv(.c) void { const ws = @unionInit(AnyWebSocket, active_field_name, @as(*WebSocket, @ptrCast(raw_ws))); const this = ws.as(Type).?; @call(bun.callmod_inline, Type.onPong, .{ @@ -280,7 +280,7 @@ pub const WebSocketBehavior = extern struct { }); } - pub fn onClose(raw_ws: *RawWebSocket, code: i32, message: [*c]const u8, length: usize) callconv(.C) void { + pub fn onClose(raw_ws: *RawWebSocket, code: i32, message: [*c]const u8, length: usize) callconv(.c) void { const ws = @unionInit(AnyWebSocket, active_field_name, @as(*WebSocket, @ptrCast(raw_ws))); const this = ws.as(Type).?; @call(bun.callmod_inline, Type.onClose, .{ @@ -291,7 +291,7 @@ pub const WebSocketBehavior = extern struct { }); } - pub fn onUpgrade(ptr: *anyopaque, res: *uws_res, req: *Request, context: *uws.SocketContext, id: usize) callconv(.C) void { + pub fn onUpgrade(ptr: *anyopaque, res: *uws_res, req: *Request, context: *uws.SocketContext, id: usize) callconv(.c) void { @call(bun.callmod_inline, Server.onWebSocketUpgrade, .{ bun.cast(*Server, ptr), @as(*NewApp(is_ssl).Response, @ptrCast(res)), @@ -323,11 +323,11 @@ pub const WebSocketBehavior = extern struct { }; } - const uws_websocket_handler = ?*const fn (*RawWebSocket) callconv(.C) void; - const uws_websocket_message_handler = ?*const fn (*RawWebSocket, [*c]const u8, usize, Opcode) callconv(.C) void; - const uws_websocket_close_handler = ?*const fn (*RawWebSocket, i32, [*c]const u8, usize) callconv(.C) void; - const uws_websocket_upgrade_handler = ?*const fn (*anyopaque, *uws_res, *Request, *SocketContext, usize) callconv(.C) void; - const uws_websocket_ping_pong_handler = ?*const fn (*RawWebSocket, [*c]const u8, usize) callconv(.C) void; + const uws_websocket_handler = ?*const fn (*RawWebSocket) callconv(.c) void; + const uws_websocket_message_handler = ?*const fn (*RawWebSocket, [*c]const u8, usize, Opcode) callconv(.c) void; + const uws_websocket_close_handler = ?*const fn (*RawWebSocket, i32, [*c]const u8, usize) callconv(.c) void; + const uws_websocket_upgrade_handler = ?*const fn (*anyopaque, *uws_res, *Request, *SocketContext, usize) callconv(.c) void; + const uws_websocket_ping_pong_handler = ?*const fn (*RawWebSocket, [*c]const u8, usize) callconv(.c) void; }; pub const c = struct { @@ -342,11 +342,11 @@ pub const c = struct { pub extern fn uws_ws_send_first_fragment_with_opcode(ssl: i32, ws: ?*RawWebSocket, message: [*c]const u8, length: usize, opcode: Opcode, compress: bool) SendStatus; pub extern fn uws_ws_send_last_fragment(ssl: i32, ws: ?*RawWebSocket, message: [*c]const u8, length: usize, compress: bool) SendStatus; pub extern fn uws_ws_end(ssl: i32, ws: ?*RawWebSocket, code: i32, message: [*c]const u8, length: usize) void; - pub extern fn uws_ws_cork(ssl: i32, ws: ?*RawWebSocket, handler: ?*const fn (?*anyopaque) callconv(.C) void, user_data: ?*anyopaque) void; + pub extern fn uws_ws_cork(ssl: i32, ws: ?*RawWebSocket, handler: ?*const fn (?*anyopaque) callconv(.c) void, user_data: ?*anyopaque) void; pub extern fn uws_ws_subscribe(ssl: i32, ws: ?*RawWebSocket, topic: [*c]const u8, length: usize) bool; pub extern fn uws_ws_unsubscribe(ssl: i32, ws: ?*RawWebSocket, topic: [*c]const u8, length: usize) bool; pub extern fn uws_ws_is_subscribed(ssl: i32, ws: ?*RawWebSocket, topic: [*c]const u8, length: usize) bool; - pub extern fn uws_ws_iterate_topics(ssl: i32, ws: ?*RawWebSocket, callback: ?*const fn ([*c]const u8, usize, ?*anyopaque) callconv(.C) void, user_data: ?*anyopaque) void; + pub extern fn uws_ws_iterate_topics(ssl: i32, ws: ?*RawWebSocket, callback: ?*const fn ([*c]const u8, usize, ?*anyopaque) callconv(.c) void, user_data: ?*anyopaque) void; pub extern fn uws_ws_get_topics_as_js_array(ssl: i32, ws: *RawWebSocket, globalObject: *JSGlobalObject) JSValue; pub extern fn uws_ws_publish(ssl: i32, ws: ?*RawWebSocket, topic: [*]const u8, topic_length: usize, message: [*]const u8, message_length: usize) bool; pub extern fn uws_ws_publish_with_options(ssl: i32, ws: ?*RawWebSocket, topic: [*c]const u8, topic_length: usize, message: [*c]const u8, message_length: usize, opcode: Opcode, compress: bool) bool; diff --git a/src/deps/uws/socket.zig b/src/deps/uws/socket.zig index 5baee7f364..971f08c495 100644 --- a/src/deps/uws/socket.zig +++ b/src/deps/uws/socket.zig @@ -150,7 +150,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { return (TLSSocket.from(socket)).ext(ContextType); } - pub fn on_open(socket: *us_socket_t, is_client: i32, _: [*c]u8, _: i32) callconv(.C) ?*us_socket_t { + pub fn on_open(socket: *us_socket_t, is_client: i32, _: [*c]u8, _: i32) callconv(.c) ?*us_socket_t { if (comptime @hasDecl(Fields, "onCreate")) { if (is_client == 0) { Fields.onCreate( @@ -167,7 +167,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_close(socket: *us_socket_t, code: i32, reason: ?*anyopaque) callconv(.C) ?*us_socket_t { + pub fn on_close(socket: *us_socket_t, code: i32, reason: ?*anyopaque) callconv(.c) ?*us_socket_t { const res = Fields.onClose( getValue(socket), TLSSocket.from(socket), @@ -179,7 +179,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_data(socket: *us_socket_t, buf: ?[*]u8, len: i32) callconv(.C) ?*us_socket_t { + pub fn on_data(socket: *us_socket_t, buf: ?[*]u8, len: i32) callconv(.c) ?*us_socket_t { const res = Fields.onData( getValue(socket), TLSSocket.from(socket), @@ -190,7 +190,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_writable(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + pub fn on_writable(socket: *us_socket_t) callconv(.c) ?*us_socket_t { const res = Fields.onWritable( getValue(socket), TLSSocket.from(socket), @@ -200,7 +200,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_timeout(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + pub fn on_timeout(socket: *us_socket_t) callconv(.c) ?*us_socket_t { const res = Fields.onTimeout( getValue(socket), TLSSocket.from(socket), @@ -210,7 +210,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_long_timeout(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + pub fn on_long_timeout(socket: *us_socket_t) callconv(.c) ?*us_socket_t { const res = Fields.onLongTimeout( getValue(socket), TLSSocket.from(socket), @@ -220,7 +220,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_connect_error(socket: *us_socket_t, code: i32) callconv(.C) ?*us_socket_t { + pub fn on_connect_error(socket: *us_socket_t, code: i32) callconv(.c) ?*us_socket_t { const res = Fields.onConnectError( TLSSocket.from(socket).ext(ContextType).?.*, TLSSocket.from(socket), @@ -231,7 +231,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_connect_error_connecting_socket(socket: *ConnectingSocket, code: i32) callconv(.C) ?*ConnectingSocket { + pub fn on_connect_error_connecting_socket(socket: *ConnectingSocket, code: i32) callconv(.c) ?*ConnectingSocket { const res = Fields.onConnectError( @as(*align(alignment) ContextType, @ptrCast(@alignCast(socket.ext(comptime is_ssl)))).*, TLSSocket.fromConnecting(socket), @@ -242,7 +242,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_end(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + pub fn on_end(socket: *us_socket_t) callconv(.c) ?*us_socket_t { const res = Fields.onEnd( getValue(socket), TLSSocket.from(socket), @@ -252,7 +252,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_handshake(socket: *us_socket_t, success: i32, verify_error: us_bun_verify_error_t, _: ?*anyopaque) callconv(.C) void { + pub fn on_handshake(socket: *us_socket_t, success: i32, verify_error: us_bun_verify_error_t, _: ?*anyopaque) callconv(.c) void { const res = Fields.onHandshake( getValue(socket), TLSSocket.from(socket), @@ -698,7 +698,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { return (SocketHandlerType.from(socket)).ext(ContextType); } - pub fn on_open(socket: *us_socket_t, is_client: i32, _: [*c]u8, _: i32) callconv(.C) ?*us_socket_t { + pub fn on_open(socket: *us_socket_t, is_client: i32, _: [*c]u8, _: i32) callconv(.c) ?*us_socket_t { if (comptime @hasDecl(Fields, "onCreate")) { if (is_client == 0) { Fields.onCreate( @@ -715,7 +715,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_close(socket: *us_socket_t, code: i32, reason: ?*anyopaque) callconv(.C) ?*us_socket_t { + pub fn on_close(socket: *us_socket_t, code: i32, reason: ?*anyopaque) callconv(.c) ?*us_socket_t { const res = Fields.onClose( getValue(socket), SocketHandlerType.from(socket), @@ -727,7 +727,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_data(socket: *us_socket_t, buf: ?[*]u8, len: i32) callconv(.C) ?*us_socket_t { + pub fn on_data(socket: *us_socket_t, buf: ?[*]u8, len: i32) callconv(.c) ?*us_socket_t { const res = Fields.onData( getValue(socket), SocketHandlerType.from(socket), @@ -738,7 +738,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_writable(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + pub fn on_writable(socket: *us_socket_t) callconv(.c) ?*us_socket_t { const res = Fields.onWritable( getValue(socket), SocketHandlerType.from(socket), @@ -748,7 +748,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_timeout(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + pub fn on_timeout(socket: *us_socket_t) callconv(.c) ?*us_socket_t { const res = Fields.onTimeout( getValue(socket), SocketHandlerType.from(socket), @@ -758,7 +758,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_connect_error_connecting_socket(socket: *ConnectingSocket, code: i32) callconv(.C) ?*ConnectingSocket { + pub fn on_connect_error_connecting_socket(socket: *ConnectingSocket, code: i32) callconv(.c) ?*ConnectingSocket { const val = if (comptime ContextType == anyopaque) socket.ext(comptime is_ssl) else if (comptime deref_) @@ -775,7 +775,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_connect_error(socket: *us_socket_t, code: i32) callconv(.C) ?*us_socket_t { + pub fn on_connect_error(socket: *us_socket_t, code: i32) callconv(.c) ?*us_socket_t { const val = if (comptime ContextType == anyopaque) socket.ext(is_ssl) else if (comptime deref_) @@ -792,7 +792,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_end(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + pub fn on_end(socket: *us_socket_t) callconv(.c) ?*us_socket_t { const res = Fields.onEnd( getValue(socket), SocketHandlerType.from(socket), @@ -802,7 +802,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_handshake(socket: *us_socket_t, success: i32, verify_error: us_bun_verify_error_t, _: ?*anyopaque) callconv(.C) void { + pub fn on_handshake(socket: *us_socket_t, success: i32, verify_error: us_bun_verify_error_t, _: ?*anyopaque) callconv(.c) void { const res = Fields.onHandshake( getValue(socket), SocketHandlerType.from(socket), @@ -864,7 +864,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { return (ThisSocket.from(socket)).ext(ContextType); } - pub fn on_open(socket: *us_socket_t, is_client: i32, _: [*c]u8, _: i32) callconv(.C) ?*us_socket_t { + pub fn on_open(socket: *us_socket_t, is_client: i32, _: [*c]u8, _: i32) callconv(.c) ?*us_socket_t { if (comptime @hasDecl(Fields, "onCreate")) { if (is_client == 0) { Fields.onCreate( @@ -881,7 +881,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_close(socket: *us_socket_t, code: i32, reason: ?*anyopaque) callconv(.C) ?*us_socket_t { + pub fn on_close(socket: *us_socket_t, code: i32, reason: ?*anyopaque) callconv(.c) ?*us_socket_t { const res = Fields.onClose( getValue(socket), ThisSocket.from(socket), @@ -893,7 +893,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_data(socket: *us_socket_t, buf: ?[*]u8, len: i32) callconv(.C) ?*us_socket_t { + pub fn on_data(socket: *us_socket_t, buf: ?[*]u8, len: i32) callconv(.c) ?*us_socket_t { const res = Fields.onData( getValue(socket), ThisSocket.from(socket), @@ -904,7 +904,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_fd(socket: *us_socket_t, file_descriptor: c_int) callconv(.C) ?*us_socket_t { + pub fn on_fd(socket: *us_socket_t, file_descriptor: c_int) callconv(.c) ?*us_socket_t { const res = Fields.onFd( getValue(socket), ThisSocket.from(socket), @@ -915,7 +915,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_writable(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + pub fn on_writable(socket: *us_socket_t) callconv(.c) ?*us_socket_t { const res = Fields.onWritable( getValue(socket), ThisSocket.from(socket), @@ -925,7 +925,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_timeout(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + pub fn on_timeout(socket: *us_socket_t) callconv(.c) ?*us_socket_t { const res = Fields.onTimeout( getValue(socket), ThisSocket.from(socket), @@ -935,7 +935,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_long_timeout(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + pub fn on_long_timeout(socket: *us_socket_t) callconv(.c) ?*us_socket_t { const res = Fields.onLongTimeout( getValue(socket), ThisSocket.from(socket), @@ -945,7 +945,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_connect_error_connecting_socket(socket: *ConnectingSocket, code: i32) callconv(.C) ?*ConnectingSocket { + pub fn on_connect_error_connecting_socket(socket: *ConnectingSocket, code: i32) callconv(.c) ?*ConnectingSocket { const val = if (comptime ContextType == anyopaque) socket.ext(comptime is_ssl) else if (comptime deref_) @@ -962,7 +962,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_connect_error(socket: *us_socket_t, code: i32) callconv(.C) ?*us_socket_t { + pub fn on_connect_error(socket: *us_socket_t, code: i32) callconv(.c) ?*us_socket_t { const val = if (comptime ContextType == anyopaque) socket.ext(is_ssl) else if (comptime deref_) @@ -985,7 +985,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_end(socket: *us_socket_t) callconv(.C) ?*us_socket_t { + pub fn on_end(socket: *us_socket_t) callconv(.c) ?*us_socket_t { const res = Fields.onEnd( getValue(socket), ThisSocket.from(socket), @@ -995,7 +995,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { }; return socket; } - pub fn on_handshake(socket: *us_socket_t, success: i32, verify_error: us_bun_verify_error_t, _: ?*anyopaque) callconv(.C) void { + pub fn on_handshake(socket: *us_socket_t, success: i32, verify_error: us_bun_verify_error_t, _: ?*anyopaque) callconv(.c) void { const res = Fields.onHandshake( getValue(socket), ThisSocket.from(socket), @@ -1301,17 +1301,17 @@ fn NativeSocketHandleType(comptime ssl: bool) type { const c = struct { pub const us_socket_events_t = extern struct { - on_open: ?*const fn (*us_socket_t, i32, [*c]u8, i32) callconv(.C) ?*us_socket_t = null, - on_data: ?*const fn (*us_socket_t, [*c]u8, i32) callconv(.C) ?*us_socket_t = null, - on_writable: ?*const fn (*us_socket_t) callconv(.C) ?*us_socket_t = null, - on_close: ?*const fn (*us_socket_t, i32, ?*anyopaque) callconv(.C) ?*us_socket_t = null, + on_open: ?*const fn (*us_socket_t, i32, [*c]u8, i32) callconv(.c) ?*us_socket_t = null, + on_data: ?*const fn (*us_socket_t, [*c]u8, i32) callconv(.c) ?*us_socket_t = null, + on_writable: ?*const fn (*us_socket_t) callconv(.c) ?*us_socket_t = null, + on_close: ?*const fn (*us_socket_t, i32, ?*anyopaque) callconv(.c) ?*us_socket_t = null, - on_timeout: ?*const fn (*us_socket_t) callconv(.C) ?*us_socket_t = null, - on_long_timeout: ?*const fn (*us_socket_t) callconv(.C) ?*us_socket_t = null, - on_end: ?*const fn (*us_socket_t) callconv(.C) ?*us_socket_t = null, - on_connect_error: ?*const fn (*us_socket_t, i32) callconv(.C) ?*us_socket_t = null, - on_connect_error_connecting_socket: ?*const fn (*ConnectingSocket, i32) callconv(.C) ?*ConnectingSocket = null, - on_handshake: ?*const fn (*us_socket_t, i32, uws.us_bun_verify_error_t, ?*anyopaque) callconv(.C) void = null, + on_timeout: ?*const fn (*us_socket_t) callconv(.c) ?*us_socket_t = null, + on_long_timeout: ?*const fn (*us_socket_t) callconv(.c) ?*us_socket_t = null, + on_end: ?*const fn (*us_socket_t) callconv(.c) ?*us_socket_t = null, + on_connect_error: ?*const fn (*us_socket_t, i32) callconv(.c) ?*us_socket_t = null, + on_connect_error_connecting_socket: ?*const fn (*ConnectingSocket, i32) callconv(.c) ?*ConnectingSocket = null, + on_handshake: ?*const fn (*us_socket_t, i32, uws.us_bun_verify_error_t, ?*anyopaque) callconv(.c) void = null, }; pub extern fn us_socket_wrap_with_tls(ssl: i32, s: *uws.us_socket_t, options: uws.SocketContext.BunSocketContextOptions, events: c.us_socket_events_t, socket_ext_size: i32) ?*uws.us_socket_t; }; diff --git a/src/deps/uws/udp.zig b/src/deps/uws/udp.zig index 713c70b999..fabf3c681a 100644 --- a/src/deps/uws/udp.zig +++ b/src/deps/uws/udp.zig @@ -1,7 +1,7 @@ const udp = @This(); pub const Socket = opaque { - pub fn create(loop: *Loop, data_cb: *const fn (*udp.Socket, *PacketBuffer, c_int) callconv(.C) void, drain_cb: *const fn (*udp.Socket) callconv(.C) void, close_cb: *const fn (*udp.Socket) callconv(.C) void, host: [*c]const u8, port: c_ushort, options: c_int, err: ?*c_int, user_data: ?*anyopaque) ?*udp.Socket { + pub fn create(loop: *Loop, data_cb: *const fn (*udp.Socket, *PacketBuffer, c_int) callconv(.c) void, drain_cb: *const fn (*udp.Socket) callconv(.c) void, close_cb: *const fn (*udp.Socket) callconv(.c) void, host: [*c]const u8, port: c_ushort, options: c_int, err: ?*c_int, user_data: ?*anyopaque) ?*udp.Socket { return us_create_udp_socket(loop, data_cb, drain_cb, close_cb, host, port, options, err, user_data); } @@ -71,7 +71,7 @@ pub const Socket = opaque { return us_udp_socket_set_source_specific_membership(this, source, group, iface, @intFromBool(drop)); } - extern fn us_create_udp_socket(loop: ?*Loop, data_cb: *const fn (*udp.Socket, *PacketBuffer, c_int) callconv(.C) void, drain_cb: *const fn (*udp.Socket) callconv(.C) void, close_cb: *const fn (*udp.Socket) callconv(.C) void, host: [*c]const u8, port: c_ushort, options: c_int, err: ?*c_int, user_data: ?*anyopaque) ?*udp.Socket; + extern fn us_create_udp_socket(loop: ?*Loop, data_cb: *const fn (*udp.Socket, *PacketBuffer, c_int) callconv(.c) void, drain_cb: *const fn (*udp.Socket) callconv(.c) void, close_cb: *const fn (*udp.Socket) callconv(.c) void, host: [*c]const u8, port: c_ushort, options: c_int, err: ?*c_int, user_data: ?*anyopaque) ?*udp.Socket; extern fn us_udp_socket_connect(socket: *udp.Socket, hostname: [*c]const u8, port: c_uint) c_int; extern fn us_udp_socket_disconnect(socket: *udp.Socket) c_int; extern fn us_udp_socket_send(socket: *udp.Socket, [*c]const [*c]const u8, [*c]const usize, [*c]const ?*const anyopaque, c_int) c_int; diff --git a/src/deps/zig-clap/clap.zig b/src/deps/zig-clap/clap.zig index 8ec2bdab1e..07f9ec7b79 100644 --- a/src/deps/zig-clap/clap.zig +++ b/src/deps/zig-clap/clap.zig @@ -356,7 +356,7 @@ pub fn helpFull( var cs = io.countingWriter(stream); try stream.print("\t", .{}); try printParam(cs.writer(), Id, param, Error, context, valueText); - try stream.writeByteNTimes(' ', max_spacing - @as(usize, @intCast(cs.bytes_written))); + try stream.splatByteAll(' ', max_spacing - @as(usize, @intCast(cs.bytes_written))); try stream.print("\t{s}\n", .{try helpText(context, param)}); } } diff --git a/src/deps/zig-clap/clap/args.zig b/src/deps/zig-clap/clap/args.zig index 101cb34728..0518bc7944 100644 --- a/src/deps/zig-clap/clap/args.zig +++ b/src/deps/zig-clap/clap/args.zig @@ -104,7 +104,7 @@ pub const ShellIterator = struct { // Whenever possible, this iterator will return slices into `str` instead of // allocating. Sometimes this is not possible, for example, escaped characters // have be be unescape, so we need to allocate in this case. - var list = std.ArrayList(u8).init(&iter.arena.allocator); + var list = std.array_list.Managed(u8).init(&iter.arena.allocator); var start: usize = 0; var state: enum { skip_whitespace, @@ -251,7 +251,7 @@ pub const ShellIterator = struct { } } - fn result(iter: *ShellIterator, start: usize, end: usize, list: *std.ArrayList(u8)) Error!?[]const u8 { + fn result(iter: *ShellIterator, start: usize, end: usize, list: *std.array_list.Managed(u8)) Error!?[]const u8 { const res = iter.str[start..end]; // If we already have something in `list` that means that we could not diff --git a/src/deps/zig-clap/clap/comptime.zig b/src/deps/zig-clap/clap/comptime.zig index e27d35bac3..aadeb66fd2 100644 --- a/src/deps/zig-clap/clap/comptime.zig +++ b/src/deps/zig-clap/clap/comptime.zig @@ -41,13 +41,13 @@ pub fn ComptimeClap( pub fn parse(iter: anytype, opt: clap.ParseOptions) !@This() { const allocator = opt.allocator; - var multis = [_]std.ArrayList([]const u8){undefined} ** multi_options; + var multis = [_]std.array_list.Managed([]const u8){undefined} ** multi_options; for (&multis) |*multi| { - multi.* = std.ArrayList([]const u8).init(allocator); + multi.* = std.array_list.Managed([]const u8).init(allocator); } - var pos = std.ArrayList([]const u8).init(allocator); - var passthrough_positionals = std.ArrayList([]const u8).init(allocator); + var pos = std.array_list.Managed([]const u8).init(allocator); + var passthrough_positionals = std.array_list.Managed([]const u8).init(allocator); var res = @This(){ .single_options = [_]?[]const u8{null} ** single_options, diff --git a/src/deps/zlib.posix.zig b/src/deps/zlib.posix.zig index d534131f88..233de0bba4 100644 --- a/src/deps/zlib.posix.zig +++ b/src/deps/zlib.posix.zig @@ -10,8 +10,8 @@ const voidpf = ?*anyopaque; // typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); // typedef void (*free_func) OF((voidpf opaque, voidpf address)); -pub const z_alloc_fn = ?*const fn (*anyopaque, uInt, uInt) callconv(.C) voidpf; -pub const z_free_fn = ?*const fn (*anyopaque, *anyopaque) callconv(.C) void; +pub const z_alloc_fn = ?*const fn (*anyopaque, uInt, uInt) callconv(.c) voidpf; +pub const z_free_fn = ?*const fn (*anyopaque, *anyopaque) callconv(.c) void; pub const zStream_struct = extern struct { /// next input byte diff --git a/src/deps/zlib.win32.zig b/src/deps/zlib.win32.zig index cd0f59a456..458a97ce53 100644 --- a/src/deps/zlib.win32.zig +++ b/src/deps/zlib.win32.zig @@ -14,8 +14,8 @@ const z_size_t = usize; const uLongf = uLong; const voidpc = ?*const anyopaque; const voidp = ?*anyopaque; -pub const alloc_func = ?*const fn (voidpf, uInt, uInt) callconv(.C) voidpf; -pub const free_func = ?*const fn (voidpf, voidpf) callconv(.C) void; +pub const alloc_func = ?*const fn (voidpf, uInt, uInt) callconv(.c) voidpf; +pub const free_func = ?*const fn (voidpf, voidpf) callconv(.c) void; pub const z_alloc_func = alloc_func; pub const z_free_func = free_func; pub const struct_internal_state = opaque {}; @@ -78,8 +78,8 @@ pub extern fn inflateReset2(strm: z_streamp, windowBits: c_int) ReturnCode; pub extern fn inflatePrime(strm: z_streamp, bits: c_int, value: c_int) ReturnCode; pub extern fn inflateMark(strm: z_streamp) c_long; pub extern fn inflateGetHeader(strm: z_streamp, head: gz_headerp) ReturnCode; -pub const in_func = ?*const fn (?*anyopaque, [*c][*c]u8) callconv(.C) c_uint; -pub const out_func = ?*const fn (?*anyopaque, [*c]u8, c_uint) callconv(.C) ReturnCode; +pub const in_func = ?*const fn (?*anyopaque, [*c][*c]u8) callconv(.c) c_uint; +pub const out_func = ?*const fn (?*anyopaque, [*c]u8, c_uint) callconv(.c) ReturnCode; pub extern fn inflateBack(strm: z_streamp, in: in_func, in_desc: ?*anyopaque, out: out_func, out_desc: ?*anyopaque) ReturnCode; pub extern fn inflateBackEnd(strm: z_streamp) ReturnCode; pub extern fn zlibCompileFlags() uLong; diff --git a/src/dns.zig b/src/dns.zig index 946b602c6b..a9c43a0e5c 100644 --- a/src/dns.zig +++ b/src/dns.zig @@ -317,7 +317,7 @@ pub const GetAddrInfo = struct { address: std.net.Address, ttl: i32 = 0, - pub const List = std.ArrayList(Result); + pub const List = std.array_list.Managed(Result); pub const Any = union(enum) { addrinfo: ?*std.c.addrinfo, @@ -401,7 +401,7 @@ pub fn addressToString(address: *const std.net.Address) bun.OOM!bun.String { std.posix.AF.INET6 => { var stack = std.heap.stackFallback(512, default_allocator); const allocator = stack.get(); - var out = try std.fmt.allocPrint(allocator, "{any}", .{address.*}); + var out = try std.fmt.allocPrint(allocator, "{f}", .{address.*}); defer allocator.free(out); // TODO: this is a hack, fix it // This removes [.*]:port diff --git a/src/env.zig b/src/env.zig index 3e2881a53f..be7e75dafd 100644 --- a/src/env.zig +++ b/src/env.zig @@ -21,8 +21,8 @@ pub const isAarch64 = builtin.target.cpu.arch.isAARCH64(); pub const isX86 = builtin.target.cpu.arch.isX86(); pub const isX64 = builtin.target.cpu.arch == .x86_64; pub const isMusl = builtin.target.abi.isMusl(); -pub const allow_assert = isDebug or isTest or std.builtin.Mode.ReleaseSafe == builtin.mode; -pub const ci_assert = isDebug or isTest or enable_asan or (std.builtin.Mode.ReleaseSafe == builtin.mode and is_canary); +pub const allow_assert = isDebug or isTest or std.builtin.OptimizeMode.ReleaseSafe == builtin.mode; +pub const ci_assert = isDebug or isTest or enable_asan or (std.builtin.OptimizeMode.ReleaseSafe == builtin.mode and is_canary); pub const show_crash_trace = isDebug or isTest or enable_asan; /// All calls to `@export` should be gated behind this check, so that code /// generators that compile Zig code know not to reference and compile a ton of diff --git a/src/env_loader.zig b/src/env_loader.zig index ef876173ec..dc729d1f40 100644 --- a/src/env_loader.zig +++ b/src/env_loader.zig @@ -380,20 +380,23 @@ pub const Loader = struct { if (key_buf_len > 0) { iter.reset(); key_buf = try allocator.alloc(u8, key_buf_len + key_count * "process.env.".len); + var key_writer = std.Io.Writer.fixed(key_buf); const js_ast = bun.ast; var e_strings = try allocator.alloc(js_ast.E.String, e_strings_to_allocate * 2); errdefer allocator.free(e_strings); errdefer allocator.free(key_buf); - var key_fixed_allocator = std.heap.FixedBufferAllocator.init(key_buf); - const key_allocator = key_fixed_allocator.allocator(); if (behavior == .prefix) { while (iter.next()) |entry| { const value: string = entry.value_ptr.value; if (strings.startsWith(entry.key_ptr.*, prefix)) { - const key_str = try std.fmt.allocPrint(key_allocator, "process.env.{s}", .{entry.key_ptr.*}); + key_writer.print("process.env.{s}", .{entry.key_ptr.*}) catch |err| switch (err) { + error.WriteFailed => unreachable, // miscalculated length of key_buf above + }; + const key_str = key_writer.buffered(); + key_writer = std.Io.Writer.fixed(key_writer.unusedCapacitySlice()); e_strings[0] = js_ast.E.String{ .data = if (value.len > 0) @@ -442,7 +445,12 @@ pub const Loader = struct { } else { while (iter.next()) |entry| { const value: string = entry.value_ptr.value; - const key = try std.fmt.allocPrint(key_allocator, "process.env.{s}", .{entry.key_ptr.*}); + + key_writer.print("process.env.{s}", .{entry.key_ptr.*}) catch |err| switch (err) { + error.WriteFailed => unreachable, // miscalculated length of key_buf above + }; + const key_str = key_writer.buffered(); + key_writer = std.Io.Writer.fixed(key_writer.unusedCapacitySlice()); e_strings[0] = js_ast.E.String{ .data = if (entry.value_ptr.value.len > 0) @@ -454,7 +462,7 @@ pub const Loader = struct { const expr_data = js_ast.Expr.Data{ .e_string = &e_strings[0] }; _ = try to_string.getOrPutValue( - key, + key_str, .init(.{ .can_be_removed_if_unused = true, .call_can_be_unwrapped_if_unused = .if_unused, @@ -508,7 +516,7 @@ pub const Loader = struct { // mostly for tests pub fn loadFromString(this: *Loader, str: string, comptime overwrite: bool, comptime expand: bool) OOM!void { const source = &logger.Source.initPathString("test", str); - var value_buffer = std.ArrayList(u8).init(this.allocator); + var value_buffer = std.array_list.Managed(u8).init(this.allocator); defer value_buffer.deinit(); try Parser.parse(source, this.allocator, this.map, &value_buffer, overwrite, false, expand); std.mem.doNotOptimizeAway(&source); @@ -525,7 +533,7 @@ pub const Loader = struct { // Create a reusable buffer with stack fallback for parsing multiple files var stack_fallback = std.heap.stackFallback(4096, this.allocator); - var value_buffer = std.ArrayList(u8).init(stack_fallback.get()); + var value_buffer = std.array_list.Managed(u8).init(stack_fallback.get()); defer value_buffer.deinit(); if (env_files.len > 0) { @@ -548,7 +556,7 @@ pub const Loader = struct { fn loadExplicitFiles( this: *Loader, env_files: []const []const u8, - value_buffer: *std.ArrayList(u8), + value_buffer: *std.array_list.Managed(u8), ) !void { // iterate backwards, so the latest entry in the latest arg instance assumes the highest priority var i: usize = env_files.len; @@ -574,7 +582,7 @@ pub const Loader = struct { this: *Loader, dir: *Fs.FileSystem.DirEntry, comptime suffix: DotEnvFileSuffix, - value_buffer: *std.ArrayList(u8), + value_buffer: *std.array_list.Managed(u8), ) !void { const dir_handle: std.fs.Dir = std.fs.cwd(); @@ -703,7 +711,7 @@ pub const Loader = struct { dir: std.fs.Dir, comptime base: string, comptime override: bool, - value_buffer: *std.ArrayList(u8), + value_buffer: *std.array_list.Managed(u8), ) !void { if (@field(this, base) != null) { return; @@ -792,7 +800,7 @@ pub const Loader = struct { this: *Loader, file_path: []const u8, comptime override: bool, - value_buffer: *std.ArrayList(u8), + value_buffer: *std.array_list.Managed(u8), ) !void { if (this.custom_files_loaded.contains(file_path)) { return; @@ -865,7 +873,7 @@ pub const Loader = struct { const Parser = struct { pos: usize = 0, src: string, - value_buffer: *std.ArrayList(u8), + value_buffer: *std.array_list.Managed(u8), const whitespace_chars = "\t\x0B\x0C \xA0\n\r"; @@ -1110,7 +1118,7 @@ const Parser = struct { source: *const logger.Source, allocator: std.mem.Allocator, map: *Map, - value_buffer: *std.ArrayList(u8), + value_buffer: *std.array_list.Managed(u8), comptime override: bool, comptime is_process: bool, comptime expand: bool, diff --git a/src/errno/windows_errno.zig b/src/errno/windows_errno.zig index 2ded890b74..3e729f77e7 100644 --- a/src/errno/windows_errno.zig +++ b/src/errno/windows_errno.zig @@ -981,7 +981,7 @@ pub const SystemErrno = enum(u16) { } } if (comptime bun.Environment.allow_assert) - bun.Output.debugWarn("Unknown error code: {any}\n", .{code}); + bun.Output.debugWarn("Unknown error code: {d}\n", .{code}); return null; } diff --git a/src/fallback-backend.html b/src/fallback-backend.html index e19b9611b2..baef3c5690 100644 --- a/src/fallback-backend.html +++ b/src/fallback-backend.html @@ -6,7 +6,7 @@