Bladeren bron

cleanup and deinit printer

master
FelixBrendel 6 jaren geleden
bovenliggende
commit
5f078be0a0
5 gewijzigde bestanden met toevoegingen van 21 en 43 verwijderingen
  1. +1
    -1
      3rd/ftb
  2. +0
    -18
      src/eval.cpp
  3. +19
    -16
      src/main.cpp
  4. +1
    -0
      src/memory.cpp
  5. +0
    -8
      src/testing.cpp

+ 1
- 1
3rd/ftb

@@ -1 +1 @@
Subproject commit dc98c61901fe01da4e3f1df4325d3f2d041f3700
Subproject commit be5e48b137c1d684bcfdd7acd86ad5fe34c9a04c

+ 0
- 18
src/eval.cpp Bestand weergeven

@@ -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;


+ 19
- 16
src/main.cpp Bestand weergeven

@@ -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

Memory::init();
Memory::load_pre();
Memory::push_user_environment();
defer {
if_debug {
Memory::free_everything();
}
};

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;
} 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 {
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
- 0
src/memory.cpp Bestand weergeven

@@ -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: {


+ 0
- 8
src/testing.cpp Bestand weergeven

@@ -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");


Laden…
Annuleren
Opslaan