27 Commits
Author SHA1 Message Date
owen 187c902b7a Remove CPU telemetry (background temperature/clock speed sampling)
The background thread that sampled CPU temperature and clock speed
during a run relied on undocumented, OS-specific interfaces: raw
AppleSMC keys on macOS, WMI ACPI thermal zones on Windows, and
/sys/class/thermal or /sys/class/hwmon on Linux. Testing on Apple
Silicon showed the SMC key scan can silently switch between different
physical sensors mid-run, producing discontinuous jumps in reported
temperature, and live per-core clock speed was never obtainable on
macOS through any public API. Disable the feature entirely rather
than ship unreliable data: drop the telemetry monitor thread, its
platform-specific sensor backends, and the telemetry field from
upload payloads. The pre-run background system-activity check
(--no-system-check) is unrelated and untouched.

Bump FB_VERSION to 0.4.2.
2026-07-21 13:53:28 -05:00
owenandClaude Sonnet 5 ec7e75e105 Fix CPU telemetry temperature/clock speed on Windows and macOS
sample_cpu_temperature() only ever had a Linux implementation, so
Windows and macOS runs recorded empty temperature data points for
every sample. sample_cpu_clock_mhz() on both platforms read a static
nominal frequency once (Windows: the ~MHz registry value; macOS: the
hw.cpufrequency sysctl) instead of a live reading, so clock speed
showed as a constant throughout the benchmark.

Windows: temperature now queries the ACPI thermal zone over WMI
(MSAcpi_ThermalZoneTemperature), and clock speed reads live per-core
frequency via CallNtPowerInformation(ProcessorInformation). Both are
XP-compatible (verified via mingw cross-compile with the existing
windows-i386 XP toolchain/PE checks).

macOS: temperature reads the SMC directly (AppleSMC user client),
checking known CPU sensor keys across Intel and Apple Silicon
(M1-M5). There is no live-frequency API on macOS at all (Apple
Silicon has none, and hw.cpufrequency was always a fixed nominal
value even on Intel), so clock speed now reports as unavailable
instead of a misleading constant.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcL8rcwwBeD6W3fZFCRLss
2026-07-21 01:13:33 -05:00
owen 6e21ee3574 package non-Linux releases as zip 2026-07-20 13:29:52 -05:00
owen 7a4ca7eca7 fixes 2026-07-20 13:19:11 -05:00
owen fead8446b2 Use HTTP for result uploads 2026-07-19 17:59:35 -05:00
owen 5768958fbb Restore macOS background sampling declarations 2026-07-19 17:06:52 -05:00
owen d574960655 Publish temporary macOS build diagnostics 2026-07-19 17:04:39 -05:00
owen a358c8e8f5 Harden cross-platform release packaging 2026-07-19 17:02:36 -05:00
owen 4dba40e8d3 Expose macOS release build diagnostics 2026-07-19 17:00:28 -05:00
owen 2dc8244057 Fix macOS ARM64 release detection 2026-07-19 16:58:46 -05:00
owen e8f701a43b Forgot that static linking breaks OpenSSL and therefore uploads, back to dynamic until I can think of a fix. Will work on it later 2026-07-19 11:17:39 -05:00
owen 25bb0e3591 Limit release smoke checks to native runners 2026-07-18 23:39:04 -05:00
owen 6f45323f7d Fix Linux ARM64 release upload crash 2026-07-18 23:22:56 -05:00
owen 9271c9417b static linux builds 2026-07-18 23:02:49 -05:00
owen 72043eb956 Add Windows support and windows-amd64/windows-i386 release binaries
The x86-64 kernels were written to the System V ABI only; on Windows's
different calling convention they silently read garbage args and ran in
near-constant time regardless of iteration count. Each public kernel now
gets a small ABI-translating thunk (WIN64_THUNK) on Windows so the kernel
bodies stay single-source. i386 also needed underscore-prefixed symbol
names to match Windows's cdecl convention. Verified end-to-end under Wine,
including determinism across repeated runs.

Also fixes CPU-core detection (sysconf isn't available under MinGW) and
adds memory/CPU-brand detection for the Windows system-info banner.
2026-07-18 06:48:40 -05:00
owen ad5791bbb7 Add authenticated uploads and rename fossmark to fossbench
Uploads can now be attributed to a fossbench.net profile: set
FOSSBENCH_TOKEN and the client sends it as a Bearer token, which the
server auto-approves and links to the account. Anonymous, pending-review
upload stays the default when no token is set. New --upload/--noupload
flags skip the interactive prompt for scripted runs, and the client
reports HTTP 401/422 distinctly from other failures. The token is never
printed or logged.

Also renames the project and its internal identifiers (FM_/fm_ macros
and symbols, source filenames, binary output names) from fossmark to
fossbench, matching the actual product name. The "fossmark_version"
field in the upload payload is left as-is, since it's the server API's
fixed contract field, not this client's own name.
2026-07-18 06:02:24 -05:00
owen 357e6f0d6d Rewrite i386 backend as hand-written assembly
Replaces the C fallback (borrowed from PowerPC) with dedicated i386
assembly for all nine kernels, matching the amd64/arm64 convention.
Fixes two real bugs found and verified on physical Pentium 4 hardware:
scalar FP silently running on x87 instead of SSE2, and fm_int_math
calling __udivdi3 on every iteration of the highest-weighted test
because the C compiler didn't know its 0xdeadbeef divisor fits in 32
bits. Real-hardware SINGLECORE/MULTICORE scores go from 425/448 to
539/581.
2026-07-18 04:35:03 -05:00
owen 136b417cf8 Add Pentium 4 Linux support 2026-07-17 19:43:26 -05:00
owen 7f33d448c7 Fix DNS uploads in Linux release builds 2026-07-17 19:32:03 -05:00
owen 28b3ac266b Support legacy Intel macOS loaders 2026-07-17 18:51:31 -05:00
owen 0662bfe52d Stop publishing incompatible PPC64 binaries 2026-07-17 18:30:21 -05:00
owen 438cc58b02 Add PPC64 iMac G5 build support 2026-07-17 18:21:31 -05:00
owen 7e2360c104 remove API token requirement from uploads 2026-07-17 17:30:21 -05:00
owen aaae64e97c link libatomic in static PPC32 release 2026-07-17 17:22:49 -05:00
owen 03a51d9456 add HTTPS uploads and static release builds 2026-07-17 17:19:31 -05:00
owen ec7e7c3a27 add ppc32be, and other fixes 2026-07-17 15:16:30 -05:00
owen 78fd561c74 add ci, almost ready 2026-07-17 14:10:37 -05:00