Explorar el Código

cleanup

master
Felix Brendel hace 6 años
padre
commit
688cc02a54
Se han modificado 6 ficheros con 19 adiciones y 30 borrados
  1. +1
    -1
      build.bat
  2. +3
    -16
      src/built_ins.cpp
  3. +11
    -9
      src/defines.cpp
  4. +3
    -1
      src/parse.cpp
  5. +1
    -2
      src/testing.cpp
  6. +0
    -1
      src/visualization.cpp

+ 1
- 1
build.bat Ver fichero

@@ -10,7 +10,7 @@ taskkill /F /IM %exeName% > NUL 2> NUL

echo ---------- Compiling ----------
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
if %errorlevel% == 0 (


+ 3
- 16
src/built_ins.cpp Ver fichero

@@ -86,8 +86,8 @@ proc built_in_import(String* file_name, Environment* env) -> Lisp_Object* {
}

proc load_built_ins_into_environment(Environment* env) -> void {
int arguments_length;
Lisp_Object* evaluated_arguments;
int arguments_length = 0;
Lisp_Object* evaluated_arguments = nullptr;
String* file_name_built_ins = Memory::create_string(__FILE__);

#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 "
"and =()= otherwise.",
__LINE__, cLambda {
int arguments_length;
try arguments = eval_arguments(arguments, env, &arguments_length);

if (arguments == Memory::nil)
@@ -173,7 +172,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
return Memory::t;
});
defun(">", "TODO", __LINE__, cLambda {
int arguments_length;
try arguments = eval_arguments(arguments, env, &arguments_length);

double last_number = strtod("Inf", NULL);
@@ -191,7 +189,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
return Memory::t;
});
defun(">=", "TODO", __LINE__, cLambda {
int arguments_length;
try arguments = eval_arguments(arguments, env, &arguments_length);

double last_number = strtod("Inf", NULL);
@@ -209,7 +206,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
return Memory::t;
});
defun("<", "TODO", __LINE__, cLambda {
int arguments_length;
try {
arguments = eval_arguments(arguments, env, &arguments_length);
}
@@ -229,7 +225,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
return Memory::t;
});
defun("<=", "TODO", __LINE__, cLambda {
int arguments_length;
try arguments = eval_arguments(arguments, env, &arguments_length);

double last_number = strtod("-Inf", NULL);
@@ -247,7 +242,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
return Memory::t;
});
defun("+", "TODO", __LINE__, cLambda {
int arguments_length;
try arguments = eval_arguments(arguments, env, &arguments_length);

double sum = 0;
@@ -260,7 +254,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
return Memory::create_lisp_object_number(sum);
});
defun("-", "TODO", __LINE__, cLambda {
int arguments_length;
try arguments = eval_arguments(arguments, env, &arguments_length);

if (arguments_length == 0)
@@ -283,7 +276,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
return Memory::create_lisp_object_number(difference);
});
defun("*", "TODO", __LINE__, cLambda {
int arguments_length;
try arguments = eval_arguments(arguments, env, &arguments_length);

if (arguments_length == 0) {
@@ -304,7 +296,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
return Memory::create_lisp_object_number(product);
});
defun("/", "TODO", __LINE__, cLambda {
int arguments_length;
try arguments = eval_arguments(arguments, env, &arguments_length);

if (arguments_length == 0) {
@@ -325,7 +316,6 @@ proc load_built_ins_into_environment(Environment* env) -> void {
return Memory::create_lisp_object_number(quotient);
});
defun("**", "TODO", __LINE__, cLambda {
int arguments_length;
try arguments = eval_arguments(arguments, env, &arguments_length);
try assert_arguments_length(2, arguments_length);
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));
});
defun("%", "TODO", __LINE__, cLambda {
int arguments_length;
try arguments = eval_arguments(arguments, env, &arguments_length);
try assert_arguments_length(2, arguments_length);
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);
});
defun("assert", "TODO", __LINE__, cLambda {
int arguments_length;

try arguments = eval_arguments(arguments, env, &arguments_length);
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* head = ret;

ret = unquoteSomeExpressions(ret);
return ret;
@@ -946,7 +933,7 @@ proc load_built_ins_into_environment(Environment* env) -> void {

if (arguments_length == 1) {
Lisp_Object* prompt = evaluated_arguments->value.pair.first;
print(evaluated_arguments->value.pair.first);
print(prompt);
}

// TODO(Felix): make read_line return a String*


+ 11
- 9
src/defines.cpp Ver fichero

@@ -284,15 +284,17 @@ struct {
} \
} while(0)

// #define assert(cond) \
// if_debug { \
// if (!cond) { \
// if (log_level == Log_Level::Debug) { \
// printf("Assertion failed: %s %d", __FILE__, __LINE__); \
// } \
// debug_break(); \
// } \
// } else {} \
/*
#define assert(cond) \
if_debug { \
if (!cond) { \
if (log_level == Log_Level::Debug) { \
printf("Assertion failed: %s %d", __FILE__, __LINE__); \
} \
debug_break(); \
} \
} else {} \
*/


#define console_normal "\x1B[0m"


+ 3
- 1
src/parse.cpp Ver fichero

@@ -539,7 +539,9 @@ namespace Parser {
return result;
}
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;
while (text[end_pos] != '\n')
++end_pos;


+ 1
- 2
src/testing.cpp Ver fichero

@@ -582,8 +582,7 @@ proc test_file(const char* file) -> testresult {

Parser::environment_for_macros = user_env;


Lisp_Object* result = built_in_load(Memory::create_string(file), user_env);
built_in_load(Memory::create_string(file), user_env);
assert_no_error();

return pass;


+ 0
- 1
src/visualization.cpp Ver fichero

@@ -387,7 +387,6 @@ proc visualize_lisp_machine() -> void {

// create the lists-list by filtering the pairs-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:
proc remove_doubles_from_lisp_object_array_list = [&](Lisp_Object_Array_List* list) -> void {


Cargando…
Cancelar
Guardar