Investigating why symbols created by read are not equal to those created in C.

This commit is contained in:
Simon Brooke 2026-05-06 09:16:46 +01:00
parent 1cfd333e26
commit cf655e8020
6 changed files with 67 additions and 123 deletions

View file

@ -177,13 +177,13 @@ struct function_data function_initialisers[] = {
U"return that expression unevaluated.",
&read},
{U"read-character",
U"(read_character stream): read a single character from `stream` and "
U"(read-character stream): read a single character from `stream` and "
U"return it.",
&read_character},
{U"read_number",
{U"read-number",
U"(read-number stream): read a number from `stream` and return it.",
&read_number},
{U"read_symbol",
{U"read-symbol",
U"(read-symbol stream): read a symbol from `stream` and return it.",
&read_symbol},
#endif
@ -318,16 +318,18 @@ initialise_function_bindings(struct pso_pointer frame_pointer) {
struct pso_pointer result = fetch_env(frame_pointer);
for (int i = 0; function_initialisers[i].executable != NULL; i++) {
result = bind_function(push_local(frame_pointer, make_frame_with_env(0, frame_pointer, result)),
struct pso_pointer b = c_car( bind_function( frame_pointer,
function_initialisers[i].name,
function_initialisers[i].documentation,
function_initialisers[i].executable);
function_initialisers[i].executable));
result = make_cons( frame_pointer, b, result);
}
for (int i = 0; special_initialisers[i].executable != NULL; i++) {
result = bind_function(push_local( frame_pointer, make_frame_with_env(0, frame_pointer, result)),
struct pso_pointer b = c_car( bind_special( frame_pointer,
special_initialisers[i].name,
special_initialisers[i].documentation,
special_initialisers[i].executable);
special_initialisers[i].executable));
result = make_cons( frame_pointer, b, result);
}
return result;