cleanup and deinit printer

This commit is contained in:
FelixBrendel
2020-05-20 23:42:21 +02:00
parent 7d96b75e05
commit 5f078be0a0
5 changed files with 21 additions and 43 deletions
+1 -1
Submodule 3rd/ftb updated: dc98c61901...be5e48b137
-18
View File
@@ -565,15 +565,6 @@ plot(sin(t))
}
proc interprete_file (char* file_name) -> Lisp_Object* {
try Memory::init();
try Memory::load_pre();
try Memory::push_user_environment();
defer {
if_debug {
Slime::Memory::free_everything();
}
};
Lisp_Object* result;
try result = built_in_load(Memory::create_string(file_name));
@@ -582,15 +573,6 @@ plot(sin(t))
}
proc interprete_stdin() -> void {
try_void Memory::init();
try_void Memory::load_pre();
try_void Memory::push_user_environment();
defer {
if_debug {
Slime::Memory::free_everything();
}
};
printf("Welcome to the lispy interpreter.\n%s\n", version_string);
char* line;
+17 -14
View File
@@ -1,5 +1,7 @@
#include "libslime.cpp"
using namespace Slime;
s32 main(s32 argc, char* argv[]) {
#ifdef SLIME_WINDOWS
// enable colored terminal output for windows
@@ -10,28 +12,29 @@ s32 main(s32 argc, char* argv[]) {
SetConsoleMode(hOut, dwMode);
#endif
if (argc > 1) {
if (Slime::string_equal(argv[1], "--run-tests")) {
s32 res = Slime::run_all_tests();
return res ? 0 : 1;
} else if (Slime::string_equal(argv[1], "--generate-docs-file")) {
Slime::Memory::init();
Slime::Memory::load_pre();
Slime::Memory::push_user_environment();
Memory::init();
Memory::load_pre();
Memory::push_user_environment();
defer {
if_debug {
Slime::Memory::free_everything();
Memory::free_everything();
}
};
if (Slime::Globals::error) return 1;
Slime::built_in_load(Slime::Memory::create_string("generate-docs-file.slime"));
if (argc > 1) {
if (string_equal(argv[1], "--run-tests")) {
s32 res = run_all_tests();
return res ? 0 : 1;
} else if (string_equal(argv[1], "--generate-docs-file")) {
if (Globals::error) return 1;
built_in_load(Memory::create_string("generate-docs-file.slime"));
} else {
Slime::interprete_file(argv[1]);
interprete_file(argv[1]);
}
} else {
Slime::interprete_stdin();
interprete_stdin();
return 0;
}
if (Slime::Globals::error) return 1;
if (Globals::error) return 1;
}
+1
View File
@@ -106,6 +106,7 @@ namespace Slime::Memory {
}
proc free_everything() -> void {
deinit_printer();
object_memory.for_each([](Lisp_Object* lo){
switch (lo->type) {
case Lisp_Object_Type::Continuation: {
-8
View File
@@ -551,14 +551,6 @@ namespace Slime {
profile_this();
bool result = true;
try Memory::init();
try Memory::load_pre();
try Memory::push_user_environment();
defer {
if_debug {
Slime::Memory::free_everything();
}
};
push_environment(Memory::create_child_environment(
get_current_environment()));
printf("-- Util --\n");