From 7559646ada9556fbd62c583401a4ca753543f1c1 Mon Sep 17 00:00:00 2001 From: FelixBrendel Date: Tue, 10 Mar 2020 13:57:38 +0100 Subject: [PATCH 1/2] preven slime from exiting on repl error --- src/eval.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/eval.cpp b/src/eval.cpp index 7e630fd..7ca18bc 100644 --- a/src/eval.cpp +++ b/src/eval.cpp @@ -584,13 +584,21 @@ namespace Slime { Lisp_Object* parsed, * evaluated; while (true) { - delete_error(); + if (Globals::error) { + log_error(); + delete_error(); + } fputs("> ", stdout); line = read_expression(); - try_void parsed = Parser::parse_single_expression(line); + parsed = Parser::parse_single_expression(line); + if (Globals::error) { + continue; + } free(line); - try_void evaluated = eval_expr(parsed); - // try_void evaluated = eval_expr(parsed); + evaluated = eval_expr(parsed); + if (Globals::error) { + continue; + } if (evaluated && evaluated != Memory::nil) { print(evaluated); } From 73739eecaba98eeabd3614eb8564b68104c48a78 Mon Sep 17 00:00:00 2001 From: fumfar hiwi Date: Wed, 11 Mar 2020 14:33:10 +0100 Subject: [PATCH 2/2] remoed assert --- src/eval.cpp | 4 ++-- src/memory.cpp | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/eval.cpp b/src/eval.cpp index 7e630fd..c7f7f20 100644 --- a/src/eval.cpp +++ b/src/eval.cpp @@ -65,8 +65,8 @@ namespace Slime { sym, Memory::copy_lisp_object_except_pairs(next_arg)); } - assert("cs access index out of range", - arg_pos+1 < cs->next_index); + //assert("cs access index out of range", + // arg_pos+1 < cs->next_index); next_arg = cs->data[++arg_pos]; } }; diff --git a/src/memory.cpp b/src/memory.cpp index fd104d5..c6101c3 100644 --- a/src/memory.cpp +++ b/src/memory.cpp @@ -210,8 +210,7 @@ namespace Slime::Memory { } }; char* exe_path = get_exe_dir(); - // don't free exe path because it will be used until end of time - Globals::load_path.alloc(); + global_symbol_table.alloc(); global_keyword_table.alloc();