cleanup
This commit is contained in:
@@ -10,7 +10,7 @@ taskkill /F /IM %exeName% > NUL 2> NUL
|
|||||||
|
|
||||||
echo ---------- Compiling ----------
|
echo ---------- Compiling ----------
|
||||||
rem call ..\timecmd cl ../src/main.cpp /std:c++latest /Fe%exeName% /W3 /Zi /nologo /EHsc /link /NODEFAULTLIB:libucrt libucrtd.lib
|
rem call ..\timecmd cl ../src/main.cpp /std:c++latest /Fe%exeName% /W3 /Zi /nologo /EHsc /link /NODEFAULTLIB:libucrt libucrtd.lib
|
||||||
call ..\timecmd clang++ ../src/main.cpp -o %exeName% -O3 -std=c++17
|
call ..\timecmd clang-cl ../src/main.cpp -o %exeName% /O2 /std:c++latest /W3 /Zi /EHsc
|
||||||
|
|
||||||
popd
|
popd
|
||||||
if %errorlevel% == 0 (
|
if %errorlevel% == 0 (
|
||||||
|
|||||||
+3
-16
@@ -86,8 +86,8 @@ proc built_in_import(String* file_name, Environment* env) -> Lisp_Object* {
|
|||||||
}
|
}
|
||||||
|
|
||||||
proc load_built_ins_into_environment(Environment* env) -> void {
|
proc load_built_ins_into_environment(Environment* env) -> void {
|
||||||
int arguments_length;
|
int arguments_length = 0;
|
||||||
Lisp_Object* evaluated_arguments;
|
Lisp_Object* evaluated_arguments = nullptr;
|
||||||
String* file_name_built_ins = Memory::create_string(__FILE__);
|
String* file_name_built_ins = Memory::create_string(__FILE__);
|
||||||
|
|
||||||
#define cLambda [=](Lisp_Object* arguments, Environment* env) mutable -> Lisp_Object*
|
#define cLambda [=](Lisp_Object* arguments, Environment* env) mutable -> Lisp_Object*
|
||||||
@@ -156,7 +156,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
"Takes 0 or more arguments and returns =t= if all arguments are equal "
|
"Takes 0 or more arguments and returns =t= if all arguments are equal "
|
||||||
"and =()= otherwise.",
|
"and =()= otherwise.",
|
||||||
__LINE__, cLambda {
|
__LINE__, cLambda {
|
||||||
int arguments_length;
|
|
||||||
try arguments = eval_arguments(arguments, env, &arguments_length);
|
try arguments = eval_arguments(arguments, env, &arguments_length);
|
||||||
|
|
||||||
if (arguments == Memory::nil)
|
if (arguments == Memory::nil)
|
||||||
@@ -173,7 +172,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
return Memory::t;
|
return Memory::t;
|
||||||
});
|
});
|
||||||
defun(">", "TODO", __LINE__, cLambda {
|
defun(">", "TODO", __LINE__, cLambda {
|
||||||
int arguments_length;
|
|
||||||
try arguments = eval_arguments(arguments, env, &arguments_length);
|
try arguments = eval_arguments(arguments, env, &arguments_length);
|
||||||
|
|
||||||
double last_number = strtod("Inf", NULL);
|
double last_number = strtod("Inf", NULL);
|
||||||
@@ -191,7 +189,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
return Memory::t;
|
return Memory::t;
|
||||||
});
|
});
|
||||||
defun(">=", "TODO", __LINE__, cLambda {
|
defun(">=", "TODO", __LINE__, cLambda {
|
||||||
int arguments_length;
|
|
||||||
try arguments = eval_arguments(arguments, env, &arguments_length);
|
try arguments = eval_arguments(arguments, env, &arguments_length);
|
||||||
|
|
||||||
double last_number = strtod("Inf", NULL);
|
double last_number = strtod("Inf", NULL);
|
||||||
@@ -209,7 +206,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
return Memory::t;
|
return Memory::t;
|
||||||
});
|
});
|
||||||
defun("<", "TODO", __LINE__, cLambda {
|
defun("<", "TODO", __LINE__, cLambda {
|
||||||
int arguments_length;
|
|
||||||
try {
|
try {
|
||||||
arguments = eval_arguments(arguments, env, &arguments_length);
|
arguments = eval_arguments(arguments, env, &arguments_length);
|
||||||
}
|
}
|
||||||
@@ -229,7 +225,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
return Memory::t;
|
return Memory::t;
|
||||||
});
|
});
|
||||||
defun("<=", "TODO", __LINE__, cLambda {
|
defun("<=", "TODO", __LINE__, cLambda {
|
||||||
int arguments_length;
|
|
||||||
try arguments = eval_arguments(arguments, env, &arguments_length);
|
try arguments = eval_arguments(arguments, env, &arguments_length);
|
||||||
|
|
||||||
double last_number = strtod("-Inf", NULL);
|
double last_number = strtod("-Inf", NULL);
|
||||||
@@ -247,7 +242,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
return Memory::t;
|
return Memory::t;
|
||||||
});
|
});
|
||||||
defun("+", "TODO", __LINE__, cLambda {
|
defun("+", "TODO", __LINE__, cLambda {
|
||||||
int arguments_length;
|
|
||||||
try arguments = eval_arguments(arguments, env, &arguments_length);
|
try arguments = eval_arguments(arguments, env, &arguments_length);
|
||||||
|
|
||||||
double sum = 0;
|
double sum = 0;
|
||||||
@@ -260,7 +254,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
return Memory::create_lisp_object_number(sum);
|
return Memory::create_lisp_object_number(sum);
|
||||||
});
|
});
|
||||||
defun("-", "TODO", __LINE__, cLambda {
|
defun("-", "TODO", __LINE__, cLambda {
|
||||||
int arguments_length;
|
|
||||||
try arguments = eval_arguments(arguments, env, &arguments_length);
|
try arguments = eval_arguments(arguments, env, &arguments_length);
|
||||||
|
|
||||||
if (arguments_length == 0)
|
if (arguments_length == 0)
|
||||||
@@ -283,7 +276,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
return Memory::create_lisp_object_number(difference);
|
return Memory::create_lisp_object_number(difference);
|
||||||
});
|
});
|
||||||
defun("*", "TODO", __LINE__, cLambda {
|
defun("*", "TODO", __LINE__, cLambda {
|
||||||
int arguments_length;
|
|
||||||
try arguments = eval_arguments(arguments, env, &arguments_length);
|
try arguments = eval_arguments(arguments, env, &arguments_length);
|
||||||
|
|
||||||
if (arguments_length == 0) {
|
if (arguments_length == 0) {
|
||||||
@@ -304,7 +296,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
return Memory::create_lisp_object_number(product);
|
return Memory::create_lisp_object_number(product);
|
||||||
});
|
});
|
||||||
defun("/", "TODO", __LINE__, cLambda {
|
defun("/", "TODO", __LINE__, cLambda {
|
||||||
int arguments_length;
|
|
||||||
try arguments = eval_arguments(arguments, env, &arguments_length);
|
try arguments = eval_arguments(arguments, env, &arguments_length);
|
||||||
|
|
||||||
if (arguments_length == 0) {
|
if (arguments_length == 0) {
|
||||||
@@ -325,7 +316,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
return Memory::create_lisp_object_number(quotient);
|
return Memory::create_lisp_object_number(quotient);
|
||||||
});
|
});
|
||||||
defun("**", "TODO", __LINE__, cLambda {
|
defun("**", "TODO", __LINE__, cLambda {
|
||||||
int arguments_length;
|
|
||||||
try arguments = eval_arguments(arguments, env, &arguments_length);
|
try arguments = eval_arguments(arguments, env, &arguments_length);
|
||||||
try assert_arguments_length(2, arguments_length);
|
try assert_arguments_length(2, arguments_length);
|
||||||
try assert_type(arguments->value.pair.first, Lisp_Object_Type::Number);
|
try assert_type(arguments->value.pair.first, Lisp_Object_Type::Number);
|
||||||
@@ -341,7 +331,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
return Memory::create_lisp_object_number(pow(base, exponent));
|
return Memory::create_lisp_object_number(pow(base, exponent));
|
||||||
});
|
});
|
||||||
defun("%", "TODO", __LINE__, cLambda {
|
defun("%", "TODO", __LINE__, cLambda {
|
||||||
int arguments_length;
|
|
||||||
try arguments = eval_arguments(arguments, env, &arguments_length);
|
try arguments = eval_arguments(arguments, env, &arguments_length);
|
||||||
try assert_arguments_length(2, arguments_length);
|
try assert_arguments_length(2, arguments_length);
|
||||||
try assert_type(arguments->value.pair.first, Lisp_Object_Type::Number);
|
try assert_type(arguments->value.pair.first, Lisp_Object_Type::Number);
|
||||||
@@ -357,7 +346,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
return Memory::create_lisp_object_number((int)a % (int)b);
|
return Memory::create_lisp_object_number((int)a % (int)b);
|
||||||
});
|
});
|
||||||
defun("assert", "TODO", __LINE__, cLambda {
|
defun("assert", "TODO", __LINE__, cLambda {
|
||||||
int arguments_length;
|
|
||||||
|
|
||||||
try arguments = eval_arguments(arguments, env, &arguments_length);
|
try arguments = eval_arguments(arguments, env, &arguments_length);
|
||||||
try assert(arguments_length == 1);
|
try assert(arguments_length == 1);
|
||||||
@@ -573,7 +561,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Lisp_Object* ret = arguments->value.pair.first;
|
Lisp_Object* ret = arguments->value.pair.first;
|
||||||
Lisp_Object* head = ret;
|
|
||||||
|
|
||||||
ret = unquoteSomeExpressions(ret);
|
ret = unquoteSomeExpressions(ret);
|
||||||
return ret;
|
return ret;
|
||||||
@@ -946,7 +933,7 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
|
|
||||||
if (arguments_length == 1) {
|
if (arguments_length == 1) {
|
||||||
Lisp_Object* prompt = evaluated_arguments->value.pair.first;
|
Lisp_Object* prompt = evaluated_arguments->value.pair.first;
|
||||||
print(evaluated_arguments->value.pair.first);
|
print(prompt);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(Felix): make read_line return a String*
|
// TODO(Felix): make read_line return a String*
|
||||||
|
|||||||
+11
-9
@@ -284,15 +284,17 @@ struct {
|
|||||||
} \
|
} \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
// #define assert(cond) \
|
/*
|
||||||
// if_debug { \
|
#define assert(cond) \
|
||||||
// if (!cond) { \
|
if_debug { \
|
||||||
// if (log_level == Log_Level::Debug) { \
|
if (!cond) { \
|
||||||
// printf("Assertion failed: %s %d", __FILE__, __LINE__); \
|
if (log_level == Log_Level::Debug) { \
|
||||||
// } \
|
printf("Assertion failed: %s %d", __FILE__, __LINE__); \
|
||||||
// debug_break(); \
|
} \
|
||||||
// } \
|
debug_break(); \
|
||||||
// } else {} \
|
} \
|
||||||
|
} else {} \
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
#define console_normal "\x1B[0m"
|
#define console_normal "\x1B[0m"
|
||||||
|
|||||||
+3
-1
@@ -539,7 +539,9 @@ namespace Parser {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
int pos = index_in_text;
|
// TODO(Felix): What is going on, why do we not have to
|
||||||
|
// increase the index_in_text
|
||||||
|
|
||||||
int end_pos = index_in_text;
|
int end_pos = index_in_text;
|
||||||
while (text[end_pos] != '\n')
|
while (text[end_pos] != '\n')
|
||||||
++end_pos;
|
++end_pos;
|
||||||
|
|||||||
+1
-2
@@ -582,8 +582,7 @@ proc test_file(const char* file) -> testresult {
|
|||||||
|
|
||||||
Parser::environment_for_macros = user_env;
|
Parser::environment_for_macros = user_env;
|
||||||
|
|
||||||
|
built_in_load(Memory::create_string(file), user_env);
|
||||||
Lisp_Object* result = built_in_load(Memory::create_string(file), user_env);
|
|
||||||
assert_no_error();
|
assert_no_error();
|
||||||
|
|
||||||
return pass;
|
return pass;
|
||||||
|
|||||||
@@ -387,7 +387,6 @@ proc visualize_lisp_machine() -> void {
|
|||||||
|
|
||||||
// create the lists-list by filtering the pairs-list.
|
// create the lists-list by filtering the pairs-list.
|
||||||
Lisp_Object_Array_List* pairs_to_filter = create_Lisp_Object_array_list();
|
Lisp_Object_Array_List* pairs_to_filter = create_Lisp_Object_array_list();
|
||||||
Int_Array_List* indices_to_filter = create_Int_array_list();
|
|
||||||
|
|
||||||
// helper lambda:
|
// helper lambda:
|
||||||
proc remove_doubles_from_lisp_object_array_list = [&](Lisp_Object_Array_List* list) -> void {
|
proc remove_doubles_from_lisp_object_array_list = [&](Lisp_Object_Array_List* list) -> void {
|
||||||
|
|||||||
Reference in New Issue
Block a user