Commit 17d2781674bd64c9e6d3ee02936680f67fc9efad

Thomas de Grivel 2024-10-29T12:12:26

remove config.kc3

diff --git a/lib/kc3/0.1/config.kc3 b/lib/kc3/0.1/config.kc3
deleted file mode 100644
index f15bf48..0000000
--- a/lib/kc3/0.1/config.kc3
+++ /dev/null
@@ -1,10 +0,0 @@
-defmodule Config do
-
-  def db = Facts.database()
-
-  def get = fn (module, key) {
-    Facts.first_with(db, [[module, :config, config = ?],
-                          [config, key, value = ?]],
-      value)
-  def set = fn (module, assoc) {
-    Facts.add_tags(
diff --git a/libkc3/buf_inspect.c b/libkc3/buf_inspect.c
index 0a8362c..94900c9 100644
--- a/libkc3/buf_inspect.c
+++ b/libkc3/buf_inspect.c
@@ -2215,6 +2215,8 @@ sw buf_inspect_ident_size (s_pretty *pretty, const s_ident *ident)
 
 sw buf_inspect_ident_sym (s_buf *buf, const s_sym *sym)
 {
+  if (! sym)
+    return buf_write_1(buf, "void");
   if (sym->str.size == 0)
     return buf_write_1(buf, "_\"\"");
   if (sym_has_ident_reserved_characters(sym))
diff --git a/libkc3/env.c b/libkc3/env.c
index 73e7f73..f9b658e 100644
--- a/libkc3/env.c
+++ b/libkc3/env.c
@@ -759,7 +759,10 @@ bool env_eval_call_fn_args (s_env *env, const s_fn *fn,
     frame_clean(&frame);
     return false;
   }
-  tag_init_ident(&trace->tag, &fn->ident);
+  tag_init_list(&trace->tag, list_new_ident
+                (&fn->ident, list_new_copy
+                 (args)));
+  env->stacktrace = trace;
   if (! env_eval_block(env, &clause->algo, &tag)) {
     list_delete_all(args);
     list_delete_all(tmp);
@@ -769,6 +772,8 @@ bool env_eval_call_fn_args (s_env *env, const s_fn *fn,
     frame_clean(&frame);
     return false;
   }
+  assert(env->stacktrace == trace);
+  env->stacktrace = list_delete(env->stacktrace);
   list_delete_all(args);
   list_delete_all(tmp);
   list_delete_all(env->search_modules);