cleanup and deinit printer
This commit is contained in:
+1
-1
Submodule 3rd/ftb updated: dc98c61901...be5e48b137
@@ -565,15 +565,6 @@ plot(sin(t))
|
|||||||
}
|
}
|
||||||
|
|
||||||
proc interprete_file (char* file_name) -> Lisp_Object* {
|
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;
|
Lisp_Object* result;
|
||||||
|
|
||||||
try result = built_in_load(Memory::create_string(file_name));
|
try result = built_in_load(Memory::create_string(file_name));
|
||||||
@@ -582,15 +573,6 @@ plot(sin(t))
|
|||||||
}
|
}
|
||||||
|
|
||||||
proc interprete_stdin() -> void {
|
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);
|
printf("Welcome to the lispy interpreter.\n%s\n", version_string);
|
||||||
|
|
||||||
char* line;
|
char* line;
|
||||||
|
|||||||
+19
-16
@@ -1,5 +1,7 @@
|
|||||||
#include "libslime.cpp"
|
#include "libslime.cpp"
|
||||||
|
|
||||||
|
using namespace Slime;
|
||||||
|
|
||||||
s32 main(s32 argc, char* argv[]) {
|
s32 main(s32 argc, char* argv[]) {
|
||||||
#ifdef SLIME_WINDOWS
|
#ifdef SLIME_WINDOWS
|
||||||
// enable colored terminal output for windows
|
// enable colored terminal output for windows
|
||||||
@@ -10,28 +12,29 @@ s32 main(s32 argc, char* argv[]) {
|
|||||||
SetConsoleMode(hOut, dwMode);
|
SetConsoleMode(hOut, dwMode);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Memory::init();
|
||||||
|
Memory::load_pre();
|
||||||
|
Memory::push_user_environment();
|
||||||
|
defer {
|
||||||
|
if_debug {
|
||||||
|
Memory::free_everything();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
if (Slime::string_equal(argv[1], "--run-tests")) {
|
if (string_equal(argv[1], "--run-tests")) {
|
||||||
s32 res = Slime::run_all_tests();
|
s32 res = run_all_tests();
|
||||||
return res ? 0 : 1;
|
return res ? 0 : 1;
|
||||||
} else if (Slime::string_equal(argv[1], "--generate-docs-file")) {
|
} else if (string_equal(argv[1], "--generate-docs-file")) {
|
||||||
Slime::Memory::init();
|
if (Globals::error) return 1;
|
||||||
Slime::Memory::load_pre();
|
built_in_load(Memory::create_string("generate-docs-file.slime"));
|
||||||
Slime::Memory::push_user_environment();
|
|
||||||
defer {
|
|
||||||
if_debug {
|
|
||||||
Slime::Memory::free_everything();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if (Slime::Globals::error) return 1;
|
|
||||||
Slime::built_in_load(Slime::Memory::create_string("generate-docs-file.slime"));
|
|
||||||
} else {
|
} else {
|
||||||
Slime::interprete_file(argv[1]);
|
interprete_file(argv[1]);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Slime::interprete_stdin();
|
interprete_stdin();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Slime::Globals::error) return 1;
|
if (Globals::error) return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,6 +106,7 @@ namespace Slime::Memory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
proc free_everything() -> void {
|
proc free_everything() -> void {
|
||||||
|
deinit_printer();
|
||||||
object_memory.for_each([](Lisp_Object* lo){
|
object_memory.for_each([](Lisp_Object* lo){
|
||||||
switch (lo->type) {
|
switch (lo->type) {
|
||||||
case Lisp_Object_Type::Continuation: {
|
case Lisp_Object_Type::Continuation: {
|
||||||
|
|||||||
@@ -551,14 +551,6 @@ namespace Slime {
|
|||||||
profile_this();
|
profile_this();
|
||||||
|
|
||||||
bool result = true;
|
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(
|
push_environment(Memory::create_child_environment(
|
||||||
get_current_environment()));
|
get_current_environment()));
|
||||||
printf("-- Util --\n");
|
printf("-- Util --\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user