aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2026-04-15 02:19:10 +0200
committerPaul Oliver <contact@pauloliver.dev>2026-04-15 02:19:10 +0200
commit8c56bc6ebf71ff94694ac456447acc2dc8b0ed72 (patch)
tree045fa0d267d935b0ff4a1845063253df1d62213e
parentc46d17b235d57dcbb2bb5455822420dc50ffac75 (diff)
Fixes building bugs on certain configurations
-rw-r--r--arch/dummy/arch.c4
-rw-r--r--arch/dummy/arch_vars.py1
-rw-r--r--arch/v1/arch.c4
-rw-r--r--arch/v1/arch_vars.py1
-rw-r--r--core/salis.c22
-rwxr-xr-xsalis.py12
-rw-r--r--ui/curses/ui.c26
-rw-r--r--ui/daemon/ui.c4
8 files changed, 33 insertions, 41 deletions
diff --git a/arch/dummy/arch.c b/arch/dummy/arch.c
index 843d43e..5f7b912 100644
--- a/arch/dummy/arch.c
+++ b/arch/dummy/arch.c
@@ -146,12 +146,12 @@ const char *arch_mnemonic(uint8_t inst) {
#if defined(DATA_PUSH_PATH)
#if defined(COMMAND_NEW)
-void arch_push_data_header() {
+void arch_push_data_header(void) {
assert(g_sim_data);
}
#endif
-void arch_push_data_line() {
+void arch_push_data_line(void) {
assert(g_sim_data);
}
#endif
diff --git a/arch/dummy/arch_vars.py b/arch/dummy/arch_vars.py
index c8d5e55..0516167 100644
--- a/arch/dummy/arch_vars.py
+++ b/arch/dummy/arch_vars.py
@@ -12,7 +12,6 @@ class ArchVars:
self.core_fields = []
self.core_data_fields = []
- self.data_is_compressed = False
self.mvec_loop = True
self.proc_fields = [
diff --git a/arch/v1/arch.c b/arch/v1/arch.c
index 6c01407..f336dd6 100644
--- a/arch/v1/arch.c
+++ b/arch/v1/arch.c
@@ -830,7 +830,7 @@ const char *arch_mnemonic(uint8_t inst) {
// ----------------------------------------------------------------------------
#if defined(DATA_PUSH_PATH)
#if defined(COMMAND_NEW)
-void arch_push_data_header() {
+void arch_push_data_header(void) {
assert(g_sim_data);
g_info("Creating 'arch_general' table in SQLite database");
@@ -895,7 +895,7 @@ void arch_push_data_header() {
}
#endif
-void arch_push_data_line() {
+void arch_push_data_line(void) {
assert(g_sim_data);
// Measure instruction population
diff --git a/arch/v1/arch_vars.py b/arch/v1/arch_vars.py
index b9d4c4f..c794a29 100644
--- a/arch/v1/arch_vars.py
+++ b/arch/v1/arch_vars.py
@@ -86,7 +86,6 @@ class ArchVars:
("uint64_t", "weva", f"[{2 ** args.mvec_pow}]"), # write events array
]
- self.data_is_compressed = True
self.mvec_loop = False
self.proc_fields = [
diff --git a/core/salis.c b/core/salis.c
index 3949059..5bccc15 100644
--- a/core/salis.c
+++ b/core/salis.c
@@ -118,9 +118,9 @@ const char *arch_mnemonic(uint8_t inst);
#if defined(DATA_PUSH_PATH)
#if defined(COMMAND_NEW)
-void arch_push_data_header();
+void arch_push_data_header(void);
#endif
-void arch_push_data_line();
+void arch_push_data_line(void);
#endif
// ----------------------------------------------------------------------------
@@ -662,7 +662,7 @@ void salis_save(const char *path) {
#endif
}
-void salis_auto_save() {
+void salis_auto_save(void) {
#if defined(NDEBUG)
snprintf(
#else
@@ -737,7 +737,7 @@ void salis_exec_sql(int blob_cnt, const void **blobs, const int *blob_sizes, con
#if defined(DATA_PUSH_PATH)
#if defined(COMMAND_NEW)
-void salis_push_data_header() {
+void salis_push_data_header(void) {
assert(g_sim_data);
g_info("Creating 'general' table in SQLite database");
@@ -788,7 +788,7 @@ void salis_push_data_header() {
}
#endif
-void salis_push_data_line() {
+void salis_push_data_line(void) {
assert(g_sim_data);
// Measure average membory block sizes
@@ -920,7 +920,7 @@ void salis_push_data_line() {
#endif
#if defined(COMMAND_BENCH) || defined(COMMAND_NEW)
-void salis_init() {
+void salis_init(void) {
assert(g_info);
assert(g_warn);
@@ -954,7 +954,7 @@ void salis_init() {
#endif
#if defined(COMMAND_LOAD)
-void salis_load() {
+void salis_load(void) {
#if defined(COMPRESS)
FILE *fx = fopen(SIM_PATH, "rb");
assert(fx);
@@ -1037,7 +1037,7 @@ void salis_run_thread(uint64_t ns) {
g_steps += ns;
}
-void salis_sync() {
+void salis_sync(void) {
uint8_t *iviv0 = g_cores[0].iviv;
uint64_t *ivav0 = g_cores[0].ivav;
@@ -1116,7 +1116,7 @@ void salis_validate_core(const struct Core *core) {
assert(core->ivpt == g_steps % SYNC_INTERVAL);
}
-void salis_validate() {
+void salis_validate(void) {
assert(g_steps / SYNC_INTERVAL == g_syncs);
for (int i = 0; i < CORES; ++i) {
@@ -1134,7 +1134,7 @@ void salis_step(uint64_t ns) {
#endif
}
-void salis_free() {
+void salis_free(void) {
#if defined(DATA_PUSH_PATH)
assert(g_sim_data);
sqlite3_close(g_sim_data);
@@ -1180,7 +1180,7 @@ void log_impl(const char *format, ...) {
va_end(args);
}
-int main() {
+int main(void) {
g_info = log_impl;
g_warn = log_impl;
diff --git a/salis.py b/salis.py
index 8a174ca..f56864c 100755
--- a/salis.py
+++ b/salis.py
@@ -71,7 +71,7 @@ option_list = [
["f", "force", None, "overwrite existing simulation of given name", False, False, bool, [new]],
["F", "muta-flip", None, "cosmic rays flip bits instead of randomizing whole bytes", False, False, bool, [bench, new]],
["g", "compiler", "CC", "C compiler to use", "gcc", False, str, [bench, load, new, serve]],
- ["G", "compiler-flags", "FLAGS", "base set of flags to pass to C compiler", "-Wall -Wextra -Werror", False, str, [bench, load, new, serve]],
+ ["G", "compiler-flags", "FLAGS", "base set of flags to pass to C compiler", "-Wall -Wextra -Werror -pedantic", False, str, [bench, load, new, serve]],
["M", "muta-pow", "POW", "mutator range exponent (range == 2^{POW})", 32, False, ipos, [bench, new]],
["m", "mvec-pow", "POW", "memory vector size exponent (size == 2^{POW})", 20, False, ipos, [bench, new]],
["n", "name", "NAME", "name of new or loaded simulation", "def.sim", False, str, [load, new, serve]],
@@ -491,23 +491,17 @@ if args.command in ["load", "new"]:
links.update(ui_vars.links)
if args.data_push_pow:
- includes.add("sqlite3.h")
+ includes.update({"sqlite3.h", "zlib.h"})
data_push_path = os.path.join(sim_dir, f"{args.name}.sqlite3")
defines.add(f"-DDATA_PUSH_INTERVAL={2 ** args.data_push_pow}ul")
defines.add(f"-DDATA_PUSH_PATH=\"{data_push_path}\"")
- links.add("-lsqlite3")
+ links.update({"-lsqlite3", "-lz"})
info("Data will be aggregated at:", data_push_path)
-
- if arch_vars.data_is_compressed:
- includes.add("zlib.h")
- links.add("-lz")
- info("Data aggregation requires compression")
else:
warn("Data aggregation disabled")
if not args.no_compress:
includes.add("zlib.h")
- defines.add("-D_POSIX_C_SOURCE=200809L")
defines.add("-DCOMPRESS")
links.add("-lz")
info("Save file compression enabled")
diff --git a/ui/curses/ui.c b/ui/curses/ui.c
index 4d633df..0f87c2d 100644
--- a/ui/curses/ui.c
+++ b/ui/curses/ui.c
@@ -112,7 +112,7 @@ void gfx_init(uint64_t vsiz) {
assert(g_gfx_spas);
}
-void gfx_free() {
+void gfx_free(void) {
if (g_gfx_vsiz == 0) {
return;
}
@@ -312,7 +312,7 @@ void gfx_render(const struct Core *core, uint64_t pos, uint64_t zoom, uint64_t p
// ----------------------------------------------------------------------------
// UI generic functions
// ----------------------------------------------------------------------------
-void ui_line_buff_free() {
+void ui_line_buff_free(void) {
if (g_line_buff) {
free(g_line_buff);
}
@@ -320,7 +320,7 @@ void ui_line_buff_free() {
g_line_buff = NULL;
}
-void ui_line_buff_resize() {
+void ui_line_buff_resize(void) {
ui_line_buff_free();
g_line_buff = calloc(COLS + 1, sizeof(char));
@@ -585,7 +585,7 @@ void ui_print_process(int l) {
// ----------------------------------------------------------------------------
// World page functions
// ----------------------------------------------------------------------------
-void ui_world_resize() {
+void ui_world_resize(void) {
assert(g_wrld_zoom);
g_vlin = 0;
@@ -648,7 +648,7 @@ void ui_print_cell(uint64_t i, uint64_t r, uint64_t x, uint64_t y, uint64_t a) {
mvadd_wch(y, x, &cchar);
}
-void ui_print_wcursor_bar() {
+void ui_print_wcursor_bar(void) {
ui_clear_line(LINES - 1);
const struct Core *core = &g_cores[g_core];
@@ -746,7 +746,7 @@ void ui_print_ipc_field(int l, uint64_t i, int color) {
ui_field(l, PANE_WIDTH, color, A_NORMAL, "%#18x : %#18x : %#18x", i, iinst, iaddr);
}
-void ui_print_ipc_data() {
+void ui_print_ipc_data(void) {
ui_field(0, PANE_WIDTH, PAIR_NORMAL, A_NORMAL, "%18s : %18s : %18s", "ipci", "inst", "addr");
int l = 1 - g_ivpt_scroll;
@@ -900,7 +900,7 @@ void ui_print_log(int l) {
// ----------------------------------------------------------------------------
// Main print function
// ----------------------------------------------------------------------------
-void ui_print() {
+void ui_print(void) {
int l = 1;
ui_line(false, l++, PAIR_HEADER, A_BOLD, "SALIS [%d:%d]", g_core, CORES);
@@ -1158,7 +1158,7 @@ void ev_sel_proc(int ev) {
}
}
-void ev_goto_sel_proc() {
+void ev_goto_sel_proc(void) {
switch (g_page) {
case PAGE_PROCESS:
g_proc_scroll = g_proc_selected;
@@ -1171,7 +1171,7 @@ void ev_goto_sel_proc() {
}
}
-void ev_handle() {
+void ev_handle(void) {
int ev = getch();
if (g_page == PAGE_WORLD && g_wcursor_mode) {
@@ -1300,7 +1300,7 @@ void ev_handle() {
// ----------------------------------------------------------------------------
// Main functions
// ----------------------------------------------------------------------------
-void init() {
+void init(void) {
setlocale(LC_ALL, "");
initscr();
@@ -1341,7 +1341,7 @@ void init() {
ui_world_resize();
}
-void exec() {
+void exec(void) {
while (!g_exit) {
if (g_running) {
clock_t beg = clock();
@@ -1365,7 +1365,7 @@ void exec() {
}
}
-void quit() {
+void quit(void) {
gfx_free();
ui_line_buff_free();
salis_save(SIM_PATH);
@@ -1373,7 +1373,7 @@ void quit() {
endwin();
}
-int main() {
+int main(void) {
init();
exec();
quit();
diff --git a/ui/daemon/ui.c b/ui/daemon/ui.c
index f5fe668..3a4f5c2 100644
--- a/ui/daemon/ui.c
+++ b/ui/daemon/ui.c
@@ -56,7 +56,7 @@ void sig_handler(int signo) {
}
}
-void step_block() {
+void step_block(void) {
clock_t beg = clock();
salis_step(g_step_block - (g_steps % g_step_block));
clock_t end = clock();
@@ -75,7 +75,7 @@ void step_block() {
g_info("Simulator running on step %#lx @%.1f steps/s", g_steps, steps_per_sec);
}
-int main() {
+int main(void) {
g_info = info_impl;
g_warn = warn_impl;