Down to to compilation errors. Had to reinstate individual size-class headers.

This commit is contained in:
Simon Brooke 2026-03-29 11:07:30 +01:00
parent cae27731b7
commit 00997d3c90
26 changed files with 733 additions and 246 deletions

View file

@ -11,7 +11,7 @@
#define __psse_payloads_function_h
#include "memory/pointer.h"
#include "memory/pso.h"
#include "memory/pso4.h"
/**
* @brief Tag for an ordinary Lisp function - one whose arguments are pre-evaluated.
@ -41,7 +41,7 @@ struct function_payload {
* a cons pointer (representing its result).
* \todo check this documentation is current!
*/
struct pso_pointer ( *executable ) ( struct pso4 *,
struct pso_pointer ( *executable ) ( struct pso4*,
struct pso_pointer,
struct pso_pointer );
};

View file

@ -45,11 +45,11 @@
* i.e. either an assoc list or a further hashtable.
*/
struct hashtable_payload {
struct cons_pointer hash_fn; /* function for hashing values in this hashtable, or `NIL` to use
struct pso_pointer hash_fn; /* function for hashing values in this hashtable, or `NIL` to use
the default hashing function */
uint32_t n_buckets; /* number of hash buckets */
struct cons_pointer buckets[]; /* actual hash buckets, which should be `NIL`
struct pso_pointer buckets[]; /* actual hash buckets, which should be `NIL`
* or assoc lists or (possibly) further hashtables. */
};
#endif
#endif

View file

@ -48,17 +48,17 @@
* i.e. either an assoc list or a further namespace.
*/
struct namespace_payload {
struct cons_pointer hash_fn; /* function for hashing values in this namespace, or
struct pso_pointer hash_fn; /* function for hashing values in this namespace, or
* `NIL` to use the default hashing function */
uint32_t n_buckets; /* number of hash buckets */
uint32_t unused; /* for word alignment and possible later expansion */
struct cons_pointer write_acl; /* it seems to me that it is likely that the
struct pso_pointer write_acl; /* it seems to me that it is likely that the
* principal difference between a hashtable and a
* namespace is that a hashtable has a write ACL
* of `NIL`, meaning not writeable by anyone */
struct cons_pointer mutex; /* the mutex to lock when modifying this namespace.*/
struct cons_pointer buckets[]; /* actual hash buckets, which should be `NIL`
struct pso_pointer mutex; /* the mutex to lock when modifying this namespace.*/
struct pso_pointer buckets[]; /* actual hash buckets, which should be `NIL`
* or assoc lists or (possibly) further hashtables. */
};
#endif
#endif

View file

@ -14,6 +14,7 @@
#include <curl/curl.h>
#include "io/fopen.h"
#include "memory/pointer.h"
/**
@ -31,7 +32,7 @@ struct stream_payload {
/** metadata on the stream (e.g. its file attributes if a file, its HTTP
* headers if a URL, etc). Expected to be an association, or nil. Not yet
* implemented. */
struct cons_pointer meta;
struct pso_pointer meta;
};
#endif

View file

@ -11,6 +11,7 @@
#define __psse_payloads_special_h
#include "memory/pointer.h"
#include "memory/pso4.h"
/**
* A special form - one whose arguments are not pre-evaluated but passed as
@ -20,25 +21,25 @@
#define SPECIALTAG "SFM"
#define SPECIALTV 5064275
/**
* @brief Payload of a special form cell.
*
* Currently identical to the payload of a function cell.
* \see function_payload
*/
struct special_payload {
/**
* pointer to the source from which the special form was compiled, or NIL
* if it is a primitive.
*/
struct pso_pointer meta;
/** pointer to a function which takes a cons pointer (representing
* its argument list) and a cons pointer (representing its environment) and a
* stack frame (representing the previous stack frame) as arguments and returns
* a cons pointer (representing its result). */
struct pso_pointer ( *executable ) ( struct pso4 *,
struct pso_pointer,
struct pso_pointer );
};
// /**
// * @brief Payload of a special form cell.
// *
// * Currently identical to the payload of a function cell.
// * \see function_payload
// */
// struct special_payload {
// /**
// * pointer to the source from which the special form was compiled, or NIL
// * if it is a primitive.
// */
// struct pso_pointer meta;
// /** pointer to a function which takes a cons pointer (representing
// * its argument list) and a cons pointer (representing its environment) and a
// * stack frame (representing the previous stack frame) as arguments and returns
// * a cons pointer (representing its result). */
// struct pso_pointer ( *executable ) ( struct pso4*,
// struct pso_pointer,
// struct pso_pointer );
// };
#endif

View file

@ -11,6 +11,9 @@
#include "memory/pso.h"
#include "payloads/stack.h"
#define STACKTAG "STK"
#define STACKTV 4936787
/**
* @brief The maximum depth of stack before we throw an exception.
*

View file

@ -13,6 +13,8 @@
#define __psse_payloads_stack_h
#include "memory/pointer.h"
#include "memory/pso2.h"
#include "memory/pso4.h"
/*
* number of arguments stored in a stack frame

View file

@ -10,6 +10,8 @@
#ifndef __psse_payloads_cons_h
#define __psse_payloads_cons_h
#include <stdint.h>
#include "memory/pointer.h"
/**

View file

@ -16,6 +16,7 @@
* A pointer to an object in vector space.
*/
#define VECTORPOINTTAG "VSP"
#define VECTORPOINTTV 5264214
/**
* @brief payload of a vector pointer cell.

View file

@ -10,6 +10,7 @@
#ifndef __psse_payloads_write_stream_h
#define __psse_payloads_write_stream_h
#include "io/fopen.h"
#include "memory/pointer.h"
/**