Major step forward: equal is now working, and consequently so is assoc.

This commit is contained in:
Simon Brooke 2026-05-06 16:42:18 +01:00
parent 271b7da46a
commit 5e64a33965
11 changed files with 168 additions and 137 deletions

View file

@ -28,8 +28,17 @@
*/
struct pso_pointer privileged_keyword_bootstrap;
/**
* documentation metadate for functions and special forms (and possibly other
* things)
*/
struct pso_pointer privileged_keyword_documentation;
/**
* key for layer metadata for functions and special forms
*/
struct pso_pointer privileged_keyword_layer;
/**
* location metadata for exceptions (and possibly location in other contexts).
*/
@ -40,6 +49,16 @@ struct pso_pointer privileged_keyword_location;
*/
struct pso_pointer privileged_keyword_name;
/**
* layer metadata for functions that users shouldn't be able to override.
*/
struct pso_pointer privileged_keyword_system;
/**
* layer metadata for functions written by users.
*/
struct pso_pointer privileged_keyword_user;
#define load_and_lock(var,val)(var = lock_object(c_string_to_lisp_keyword(frame_pointer, val)))
@ -47,6 +66,9 @@ struct pso_pointer privileged_keyword_name;
struct pso_pointer initialise_privileged_keywords(struct pso_pointer frame_pointer) {
load_and_lock(privileged_keyword_bootstrap, PK_BOOTSTRAP);
load_and_lock(privileged_keyword_documentation, PK_DOCUMENTATION);
load_and_lock(privileged_keyword_layer, PK_LAYER);
load_and_lock(privileged_keyword_location, PK_LOCATION);
load_and_lock( privileged_keyword_name, PK_NAME);
load_and_lock(privileged_keyword_system, PK_SYSTEM);
load_and_lock(privileged_keyword_user, PK_USER);
}