Add allocation pools, release memory in GC
diff --git a/src/lisp/compiler.dasc b/src/lisp/compiler.dasc
index b3cdb9a..bc5aec8 100644
--- a/src/lisp/compiler.dasc
+++ b/src/lisp/compiler.dasc
@@ -195,6 +195,9 @@
 
 struct environment compile_all(struct istream *is)
 {
+	unsigned char pool = make_pool();
+	unsigned char pop = push_pool(pool);
+
 	value_t val;
 	struct environment env;
 	env.first = NULL;
@@ -205,6 +208,8 @@
 		compile_tl(val, &env);
 	}
 
+	pop_pool(pop);
+
 	return env;
 }