diff --git a/README.md b/README.md index 98a135b..ee15b11 100644 --- a/README.md +++ b/README.md @@ -5,16 +5,10 @@ It provides windows, input and IME, clipboard, file dialogs, drag and drop, menu async file operations, file watching, and OpenGL context creation. The macOS backend uses AppKit, OpenGL, and FSEvents through a private Objective-C bridge. -This directory is a standalone source package. It does not depend on the parent -repository, its examples, fonts, skills, or development tools. macOS builds require -Xcode Command Line Tools. The Windows Win32/WGL backend cross-compiles for -`x86_64-windows-gnu`; runtime verification on Windows is pending. It requires +macOS builds require Xcode Command Line Tools. The Windows Win32/WGL backend +cross-compiles for `x86_64-windows-gnu`; runtime verification on Windows is pending. It requires Windows 10 version 1703 or later and an OpenGL 3.3-capable driver. -Private profiling hooks compile away in this standalone build. Tracy support -belongs to the parent repository's static demos; it adds no dependencies or -public ABI to this package. - ## Build ```sh @@ -28,8 +22,7 @@ zig build check -Dtarget=x86_64-windows-gnu # compile only ## Use from Zig -After cloning this directory's standalone mirror into `vendor/uhdk`, add it to -`build.zig.zon`: +To use a local checkout at `vendor/uhdk`, add it to `build.zig.zon`: ```zig .dependencies = .{ @@ -53,9 +46,6 @@ OpenGL headers, and links the library and required system frameworks. The or custom bindings. Set `.shared = true` to build a dynamic library; applications must arrange its runtime location/rpath. -Once a standalone mirror or archive is published, `zig fetch --save=uhdk ` -can replace the local path dependency. No release URL has been assigned yet. - ## C interface - [uhdk.h](include/uhdk.h): desktop API, lifecycle, ownership, and threading contracts. @@ -82,7 +72,6 @@ are not implemented. Native UTF-16 path bytes are kept separately from the WTF-8 paths passed to Zig I/O. If a native path cannot be exported losslessly as a shell URI, URI export returns `UNSUPPORTED`; native-path export still preserves it. - ## Optional profiling `uhdk.h` includes `uhdk_profile.h`: scope, frame, thread-name and named allocation/ @@ -96,13 +85,13 @@ Internal CPU and memory instrumentation is disabled by default. A static consume can pass `.tracy = true` to `b.dependency("uhdk", ...)` (or `-Dtracy=true` when building the archive) and link its own Tracy 0.14.1 client configured with `TRACY_ENABLE` and `TRACY_ON_DEMAND`. UHDK never fetches or links Tracy itself. -Shared instrumentation is unsupported. Run standalone unit tests with the default +Shared instrumentation is unsupported. Run unit tests with the default configuration; enabled instrumentation requires the consumer's linked client. -The full repository provides an example adapter under `examples/profiling`. The `UHDK` memory pool measures requested Zig backing allocations, including objects and arena blocks. Win32 explicit calloc/free blocks use a separate -`UHDK native` pool. OS/framework allocations and GPU memory are excluded. On-demand capture omits allocations made before connection, so it is not -a full live-heap snapshot. Failed allocations emit nothing; in-place resizes emit +`UHDK native` pool. OS/framework allocations and GPU memory are excluded. +On-demand capture omits allocations made before connection, so it is not a full +live-heap snapshot. Failed allocations emit nothing; in-place resizes emit free + alloc. Moving reallocations use alloc/copy/free to preserve event ordering. Disabled builds use the original allocator directly. diff --git a/build.zig b/build.zig index e1d12d2..640faa7 100644 --- a/build.zig +++ b/build.zig @@ -41,8 +41,8 @@ pub fn build(b: *std.Build) void { public_module.linkLibrary(lib); } -// The parent development build uses this to create a separate, uninstalled -// instrumented archive. Standalone consumers may opt in and supply their client. +// Create a library artifact without installing it. Instrumented static builds +// require the consumer to link a matching Tracy client. pub fn createLibrary(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode, shared: bool, instrumented: bool) *std.Build.Step.Compile { return createLibraryNamed(b, target, optimize, shared, instrumented, if (instrumented) "uhdk-instrumented" else "uhdk"); } diff --git a/src/Profile.zig b/src/Profile.zig index 4c6f185..94398a5 100644 --- a/src/Profile.zig +++ b/src/Profile.zig @@ -1,10 +1,10 @@ -//! Private, compile-time instrumentation. Standalone UHDK builds disable it. +//! Optional compile-time instrumentation, disabled by default. const std = @import("std"); const builtin = @import("builtin"); pub const enabled = @import("profile_options").enabled; const verify_stack_order = builtin.mode == .Debug or builtin.mode == .ReleaseSafe; -// Tracy 0.14.1 C ABI with TRACY_ON_DEMAND, linked only by the full repo's demos. +// Tracy 0.14.1 C ABI with TRACY_ON_DEMAND; the consumer supplies the client. // No C header translation or references to Tracy symbols in disabled builds. const SourceLocation = extern struct { name: [*:0]const u8,