Add a build system

This commit is contained in:
2026-04-29 22:28:21 +01:00
parent 5cb47a17a2
commit fb83c3114f
22 changed files with 761 additions and 93 deletions

View File

@@ -77,14 +77,14 @@ int main(int argc, char **argv) {
// Detect hardware
// -------------------------------
// --- Windows: detect PHYSICAL cores (not logical threads) ---
uint32_t cpu_cores = platform_physical_cores();
uint8_t cpu_cores = platform_physical_cores();
// Logical threads = CPU cores * 2
uint32_t cpu_threads = cpu_cores * 2;
uint8_t cpu_threads = cpu_cores * 2;
#if MULTI_THREADING
uint32_t num_scan_threads = cpu_threads;
uint32_t num_hash_threads = cpu_threads;
uint8_t num_scan_threads = cpu_threads;
uint8_t num_hash_threads = cpu_threads;
printf("%d cores %d threads CPU detected with %s instruction set\n"
"Starting thread pool: %d scanning and %d hashing threads\n",
@@ -123,7 +123,7 @@ int main(int argc, char **argv) {
Thread *hash_threads =
arena_push(&gp_arena, sizeof(Thread) * num_hash_threads, true);
for (size_t i = 0; i < num_hash_threads; ++i) {
for (uint8_t i = 0; i < num_hash_threads; ++i) {
workers[i].arena = arena_create(&params);
workers[i].file_queue = &file_queue;
@@ -135,7 +135,7 @@ int main(int argc, char **argv) {
0)
#endif
{
fprintf(stderr, "Failed to create hash thread %zu\n", i);
fprintf(stderr, "Failed to create hash thread %d\n", i);
exit(1);
}
}
@@ -153,7 +153,7 @@ int main(int argc, char **argv) {
Thread *scan_threads =
arena_push(&gp_arena, sizeof(Thread) * num_scan_threads, true);
for (size_t i = 0; i < num_scan_threads; i++) {
for (uint8_t i = 0; i < num_scan_threads; i++) {
scanners[i].num_threads = num_scan_threads;
scanners[i].path_arena = arena_create(&params);
scanners[i].meta_arena = arena_create(&params);
@@ -162,7 +162,7 @@ int main(int argc, char **argv) {
if (thread_create(&scan_threads[i], (ThreadFunc)scan_worker,
&scanners[i]) != 0) {
fprintf(stderr, "Failed to create scan thread %zu\n", i);
fprintf(stderr, "Failed to create scan thread %d\n", i);
exit(1);
}
}
@@ -178,7 +178,7 @@ int main(int argc, char **argv) {
// Stop scan threads
thread_wait_multiple(scan_threads, num_scan_threads);
for (size_t i = 0; i < num_scan_threads; ++i) {
for (uint8_t i = 0; i < num_scan_threads; ++i) {
thread_close(&scan_threads[i]);
}
@@ -205,7 +205,7 @@ int main(int argc, char **argv) {
// Stop hashing threads
thread_wait_multiple(hash_threads, num_hash_threads);
for (size_t i = 0; i < num_hash_threads; ++i) {
for (uint8_t i = 0; i < num_hash_threads; ++i) {
thread_close(&hash_threads[i]);
}
@@ -222,7 +222,7 @@ int main(int argc, char **argv) {
FILE *f = fopen(FILE_HASHES_TXT, "wb");
for (int i = 0; i < num_hash_threads; i++) {
for (uint8_t i = 0; i < num_hash_threads; i++) {
mem_arena *arena = workers[i].arena;
u8 *arena_base =
(u8 *)arena + ALIGN_UP_POW2(sizeof(mem_arena), arena->align);