diff --git a/lib/kc3/0.1/httpd.kc3 b/lib/kc3/0.1/httpd.kc3
index dd6f1e1..b314571 100644
--- a/lib/kc3/0.1/httpd.kc3
+++ b/lib/kc3/0.1/httpd.kc3
@@ -303,10 +303,12 @@ defmodule HTTPd do
def routes = []
def def_route = fn (path, controller) {
- tmp = List.append(HTTPd.routes,
- %HTTPd.Route{path: path,
- controller: controller})
- def HTTPd.routes = tmp
+ Facts.with_transaction(Facts.env_db(), do
+ tmp = List.append(HTTPd.routes,
+ %HTTPd.Route{path: path,
+ controller: controller})
+ def HTTPd.routes = tmp
+ end)
}
def route_and_render_request = fn {
diff --git a/libkc3/env_eval.c b/libkc3/env_eval.c
index b1a3b56..1d79191 100644
--- a/libkc3/env_eval.c
+++ b/libkc3/env_eval.c
@@ -666,7 +666,6 @@ bool env_eval_equal_tag (s_env *env, bool macro, s_tag *a,
bool is_var_b = false;
s_tag tmp_a;
s_tag tmp_b;
- const s_sym *type = NULL;
s_tag *var_a;
s_tag *var_b;
assert(env);
@@ -810,11 +809,9 @@ bool env_eval_equal_tag (s_env *env, bool macro, s_tag *a,
if (a->type != b->type) {
if (! env->silence_errors) {
err_write_1("env_eval_equal_tag: type mismatch: ");
- tag_type(a, &type);
- err_inspect_sym(&type);
+ err_inspect_tag(a);
err_write_1(" != ");
- tag_type(b, &type);
- err_inspect_sym(&type);
+ err_inspect_tag(b);
err_write_1("\n");
err_stacktrace();
}
diff --git a/libkc3/tag.c b/libkc3/tag.c
index 92710d8..db4ffe3 100644
--- a/libkc3/tag.c
+++ b/libkc3/tag.c
@@ -680,7 +680,7 @@ s_tag * tag_init_from_str (s_tag *tag, s_str *str)
buf_init_const(&buf, str->size, str->ptr.pchar);
buf.wpos = str->size;
r = buf_parse_tag(&buf, tag);
- if (r < 0 || (uw) r != str->size) {
+ if (r < 0) {
err_write_1("tag_init_str: invalid tag: ");
err_inspect_str(str);
err_write_1(", ");