| @@ -1 +1 @@ | |||||
| Subproject commit dc98c61901fe01da4e3f1df4325d3f2d041f3700 | |||||
| Subproject commit be5e48b137c1d684bcfdd7acd86ad5fe34c9a04c | |||||
| @@ -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; | ||||
| @@ -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")) { | |||||
| s32 res = Slime::run_all_tests(); | |||||
| if (string_equal(argv[1], "--run-tests")) { | |||||
| s32 res = run_all_tests(); | |||||
| return res ? 0 : 1; | 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(); | |||||
| 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 if (string_equal(argv[1], "--generate-docs-file")) { | |||||
| if (Globals::error) return 1; | |||||
| built_in_load(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"); | ||||