diff --git a/src/init.c b/src/init.c index 12187fd..ff8c190 100644 --- a/src/init.c +++ b/src/init.c @@ -238,7 +238,7 @@ int main( int argc, char *argv[] ) { bind_function( L"hashmap", lisp_make_hashmap ); bind_function( L"inspect", &lisp_inspect ); bind_function( L"keys", &lisp_keys ); - bind_function( L"list", &lisp_list); + bind_function( L"list", &lisp_list ); bind_function( L"mapcar", &lisp_mapcar ); bind_function( L"meta", &lisp_metadata ); bind_function( L"metadata", &lisp_metadata ); @@ -272,7 +272,7 @@ int main( int argc, char *argv[] ) { bind_special( L"cond", &lisp_cond ); bind_special( L"lambda", &lisp_lambda ); bind_special( L"\u03bb", &lisp_lambda ); // λ - bind_special(L"let", &lisp_let); + bind_special( L"let", &lisp_let ); bind_special( L"nlambda", &lisp_nlambda ); bind_special( L"n\u03bb", &lisp_nlambda ); bind_special( L"progn", &lisp_progn ); @@ -290,7 +290,7 @@ int main( int argc, char *argv[] ) { dump_pages( file_to_url_file( stdout ) ); } - summarise_allocation(); + summarise_allocation( ); curl_global_cleanup( ); return ( 0 ); } diff --git a/src/io/io.c b/src/io/io.c index 0125488..d01f788 100644 --- a/src/io/io.c +++ b/src/io/io.c @@ -502,8 +502,8 @@ lisp_read_char( struct stack_frame *frame, struct cons_pointer frame_pointer, if ( readp( frame->arg[0] ) ) { result = make_string( url_fgetwc - ( pointer2cell( frame->arg[0] ).payload. - stream.stream ), NIL ); + ( pointer2cell( frame->arg[0] ).payload.stream. + stream ), NIL ); } return result; diff --git a/src/memory/conspage.c b/src/memory/conspage.c index 6cc4814..f8802cc 100644 --- a/src/memory/conspage.c +++ b/src/memory/conspage.c @@ -193,7 +193,7 @@ void free_cell( struct cons_pointer pointer ) { cell->payload.free.car = NIL; cell->payload.free.cdr = freelist; freelist = pointer; - total_cells_freed ++; + total_cells_freed++; } else { debug_printf( DEBUG_ALLOC, L"ERROR: Attempt to free cell with %d dangling references at page %d, offset %d\n", @@ -235,7 +235,7 @@ struct cons_pointer allocate_cell( uint32_t tag ) { cell->payload.cons.car = NIL; cell->payload.cons.cdr = NIL; - total_cells_allocated ++; + total_cells_allocated++; debug_printf( DEBUG_ALLOC, L"Allocated cell of type '%4.4s' at %d, %d \n", tag, @@ -265,6 +265,8 @@ void initialise_cons_pages( ) { } } -void summarise_allocation() { - fwprintf(stderr, L"Allocation summary: allocated %lld; deallocated %lld.\n", total_cells_allocated, total_cells_freed ); +void summarise_allocation( ) { + fwprintf( stderr, + L"Allocation summary: allocated %lld; deallocated %lld.\n", + total_cells_allocated, total_cells_freed ); } diff --git a/src/memory/conspage.h b/src/memory/conspage.h index 18eda3b..589f6bf 100644 --- a/src/memory/conspage.h +++ b/src/memory/conspage.h @@ -61,6 +61,6 @@ void initialise_cons_pages( ); void dump_pages( URL_FILE * output ); -void summarise_allocation(); +void summarise_allocation( ); #endif diff --git a/src/memory/dump.c b/src/memory/dump.c index 3148ac1..2bc5bb0 100644 --- a/src/memory/dump.c +++ b/src/memory/dump.c @@ -114,10 +114,10 @@ void dump_object( URL_FILE * output, struct cons_pointer pointer ) { case RATIOTV: url_fwprintf( output, L"\t\tRational cell: value %ld/%ld, count %u\n", - pointer2cell( cell.payload.ratio.dividend ). - payload.integer.value, - pointer2cell( cell.payload.ratio.divisor ). - payload.integer.value, cell.count ); + pointer2cell( cell.payload.ratio.dividend ).payload. + integer.value, + pointer2cell( cell.payload.ratio.divisor ).payload. + integer.value, cell.count ); break; case READTV: url_fputws( L"\t\tInput stream; metadata: ", output ); diff --git a/src/memory/hashmap.c b/src/memory/hashmap.c index a9bc336..5e1db0a 100644 --- a/src/memory/hashmap.c +++ b/src/memory/hashmap.c @@ -180,8 +180,8 @@ struct cons_pointer lisp_make_hashmap( struct stack_frame *frame, map->payload.hashmap.buckets[bucket_no] = inc_ref( make_cons( make_cons( key, val ), - map->payload. - hashmap.buckets[bucket_no] ) ); + map->payload.hashmap. + buckets[bucket_no] ) ); } } } diff --git a/src/ops/lispops.c b/src/ops/lispops.c index 4ff14a1..c4ca4f3 100644 --- a/src/ops/lispops.c +++ b/src/ops/lispops.c @@ -61,7 +61,7 @@ struct cons_pointer eval_form( struct stack_frame *parent, struct cons_pointer env ) { debug_print( L"eval_form: ", DEBUG_EVAL ); debug_print_object( form, DEBUG_EVAL ); - debug_println(DEBUG_EVAL); + debug_println( DEBUG_EVAL ); struct cons_pointer result = NIL; struct cons_pointer next_pointer = make_empty_frame( parent_pointer ); @@ -82,7 +82,7 @@ struct cons_pointer eval_form( struct stack_frame *parent, debug_print( L"eval_form returning: ", DEBUG_EVAL ); debug_print_object( result, DEBUG_EVAL ); - debug_println(DEBUG_EVAL); + debug_println( DEBUG_EVAL ); return result; } @@ -416,9 +416,10 @@ c_apply( struct stack_frame *frame, struct cons_pointer frame_pointer, result = next_pointer; } else { result = - ( *fn_cell.payload.special. - executable ) ( get_stack_frame( next_pointer ), - next_pointer, env ); + ( *fn_cell.payload. + special.executable ) ( get_stack_frame + ( next_pointer ), + next_pointer, env ); debug_print( L"Special form returning: ", DEBUG_EVAL ); debug_print_object( result, DEBUG_EVAL ); debug_println( DEBUG_EVAL ); @@ -594,10 +595,10 @@ lisp_set( struct stack_frame *frame, struct cons_pointer frame_pointer, } else { result = throw_exception( make_cons - ( c_string_to_lisp_string - ( L"The first argument to `set` is not a symbol: " ), - make_cons( frame->arg[0], NIL ) ), - frame_pointer ); + ( c_string_to_lisp_string + ( L"The first argument to `set` is not a symbol: " ), + make_cons( frame->arg[0], NIL ) ), + frame_pointer ); } return result; @@ -633,10 +634,10 @@ lisp_set_shriek( struct stack_frame *frame, struct cons_pointer frame_pointer, } else { result = throw_exception( make_cons - ( c_string_to_lisp_string - ( L"The first argument to `set!` is not a symbol: " ), - make_cons( frame->arg[0], NIL ) ), - frame_pointer ); + ( c_string_to_lisp_string + ( L"The first argument to `set!` is not a symbol: " ), + make_cons( frame->arg[0], NIL ) ), + frame_pointer ); } return result; @@ -1213,7 +1214,8 @@ lisp_exception( struct stack_frame *frame, struct cons_pointer frame_pointer, struct cons_pointer env ) { struct cons_pointer message = frame->arg[0]; return exceptionp( message ) ? message : throw_exception( message, - frame->previous ); + frame-> + previous ); } /** @@ -1380,13 +1382,14 @@ struct cons_pointer c_append( struct cons_pointer l1, struct cons_pointer l2 ) { if ( pointer2cell( l1 ).tag.value == pointer2cell( l2 ).tag.value ) { if ( nilp( c_cdr( l1 ) ) ) { return - make_string_like_thing( ( pointer2cell( l1 ).payload. - string.character ), l2, + make_string_like_thing( ( pointer2cell( l1 ). + payload.string.character ), + l2, pointer2cell( l1 ).tag.value ); } else { return - make_string_like_thing( ( pointer2cell( l1 ).payload. - string.character ), + make_string_like_thing( ( pointer2cell( l1 ). + payload.string.character ), c_append( c_cdr( l1 ), l2 ), pointer2cell( l1 ).tag.value ); } @@ -1408,13 +1411,13 @@ struct cons_pointer c_append( struct cons_pointer l1, struct cons_pointer l2 ) { struct cons_pointer lisp_append( struct stack_frame *frame, struct cons_pointer frame_pointer, struct cons_pointer env ) { - struct cons_pointer result = fetch_arg(frame, (frame->args - 1)); + struct cons_pointer result = fetch_arg( frame, ( frame->args - 1 ) ); - for (int a = frame->args - 2; a >= 0; a--) { - result = c_append(fetch_arg(frame, a), result); - } + for ( int a = frame->args - 2; a >= 0; a-- ) { + result = c_append( fetch_arg( frame, a ), result ); + } - return result; + return result; } struct cons_pointer lisp_mapcar( struct stack_frame *frame, @@ -1426,34 +1429,35 @@ struct cons_pointer lisp_mapcar( struct stack_frame *frame, int i = 0; for ( struct cons_pointer c = frame->arg[1]; truep( c ); c = c_cdr( c ) ) { - struct cons_pointer expr = make_cons(frame->arg[0], make_cons(c_car(c), NIL)); - inc_ref(expr); + struct cons_pointer expr = + make_cons( frame->arg[0], make_cons( c_car( c ), NIL ) ); + inc_ref( expr ); - debug_printf(DEBUG_EVAL, L"Mapcar %d, evaluating ", i); - debug_print_object( expr, DEBUG_EVAL); - debug_println(DEBUG_EVAL); + debug_printf( DEBUG_EVAL, L"Mapcar %d, evaluating ", i ); + debug_print_object( expr, DEBUG_EVAL ); + debug_println( DEBUG_EVAL ); - struct cons_pointer r = eval_form(frame, frame_pointer, expr, env); + struct cons_pointer r = eval_form( frame, frame_pointer, expr, env ); if ( exceptionp( r ) ) { result = r; - inc_ref( expr ); // to protect exception from the later dec_ref + inc_ref( expr ); // to protect exception from the later dec_ref break; } else { result = make_cons( r, result ); } - debug_printf(DEBUG_EVAL, L"Mapcar %d, result is ", i++); - debug_print_object( result, DEBUG_EVAL); - debug_println(DEBUG_EVAL); + debug_printf( DEBUG_EVAL, L"Mapcar %d, result is ", i++ ); + debug_print_object( result, DEBUG_EVAL ); + debug_println( DEBUG_EVAL ); dec_ref( expr ); } - result = consp(result) ? c_reverse( result ) : result; + result = consp( result ) ? c_reverse( result ) : result; debug_print( L"Mapcar returning: ", DEBUG_EVAL ); debug_print_object( result, DEBUG_EVAL ); - debug_println(DEBUG_EVAL); + debug_println( DEBUG_EVAL ); return result; } @@ -1461,14 +1465,14 @@ struct cons_pointer lisp_mapcar( struct stack_frame *frame, struct cons_pointer lisp_list( struct stack_frame *frame, struct cons_pointer frame_pointer, struct cons_pointer env ) { - struct cons_pointer result = frame->more; + struct cons_pointer result = frame->more; - for ( int a = nilp(result) ? frame->args - 1: args_in_frame - 1; - a >= 0; a-- ) { - result = make_cons(fetch_arg(frame, a), result); - } + for ( int a = nilp( result ) ? frame->args - 1 : args_in_frame - 1; + a >= 0; a-- ) { + result = make_cons( fetch_arg( frame, a ), result ); + } - return result; + return result; } /** @@ -1477,38 +1481,42 @@ struct cons_pointer lisp_list( struct stack_frame *frame, * This is `let*` in Common Lisp parlance; `let` in Clojure parlance. */ struct cons_pointer lisp_let( struct stack_frame *frame, - struct cons_pointer frame_pointer, - struct cons_pointer env) { - struct cons_pointer bindings = env; - struct cons_pointer result = NIL; + struct cons_pointer frame_pointer, + struct cons_pointer env ) { + struct cons_pointer bindings = env; + struct cons_pointer result = NIL; - for (struct cons_pointer cursor = frame->arg[0]; - truep(cursor); - cursor = c_cdr(cursor)) { - struct cons_pointer pair = c_car(cursor); - struct cons_pointer symbol = c_car(pair); + for ( struct cons_pointer cursor = frame->arg[0]; + truep( cursor ); cursor = c_cdr( cursor ) ) { + struct cons_pointer pair = c_car( cursor ); + struct cons_pointer symbol = c_car( pair ); - if (symbolp(symbol)) { - bindings = make_cons( - make_cons(symbol, eval_form(frame, frame_pointer, c_cdr(pair), bindings)), - bindings); - - } else { - result = throw_exception( - c_string_to_lisp_string(L"Let: cannot bind, not a symbol"), - frame_pointer); - break; - } - } + if ( symbolp( symbol ) ) { + bindings = + make_cons( make_cons + ( symbol, + eval_form( frame, frame_pointer, c_cdr( pair ), + bindings ) ), bindings ); - /* i.e., no exception yet */ - for (int form = 1; !exceptionp(result) && form < frame->args; form++) { - result = eval_form(frame, frame_pointer, fetch_arg(frame, form), bindings); - } + } else { + result = + throw_exception( c_string_to_lisp_string + ( L"Let: cannot bind, not a symbol" ), + frame_pointer ); + break; + } + } - return result; + /* i.e., no exception yet */ + for ( int form = 1; !exceptionp( result ) && form < frame->args; form++ ) { + result = + eval_form( frame, frame_pointer, fetch_arg( frame, form ), + bindings ); + } - } + return result; + +} // /** // * Function; print the internal representation of the object indicated by `frame->arg[0]` to the diff --git a/src/ops/lispops.h b/src/ops/lispops.h index 3d1c4f7..ba1e999 100644 --- a/src/ops/lispops.h +++ b/src/ops/lispops.h @@ -212,11 +212,11 @@ struct cons_pointer lisp_mapcar( struct stack_frame *frame, struct cons_pointer frame_pointer, struct cons_pointer env ); - struct cons_pointer lisp_list( struct stack_frame *frame, +struct cons_pointer lisp_list( struct stack_frame *frame, struct cons_pointer frame_pointer, struct cons_pointer env ); struct cons_pointer lisp_let( struct stack_frame *frame, - struct cons_pointer frame_pointer, - struct cons_pointer env); + struct cons_pointer frame_pointer, + struct cons_pointer env ); #endif