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

@ -14,234 +14,234 @@
#include "memory/header.h"
#include "memory/pointer.h"
#include "payloads/cons.h"
#include "payloads/exception.h"
#include "payloads/free.h"
#include "payloads/function.h"
#include "payloads/hashtable.h"
#include "payloads/integer.h"
#include "payloads/keyword.h"
#include "payloads/lambda.h"
#include "payloads/mutex.h"
#include "payloads/namespace.h"
#include "payloads/nlambda.h"
#include "payloads/read_stream.h"
#include "payloads/special.h"
#include "payloads/stack.h"
#include "payloads/string.h"
#include "payloads/symbol.h"
#include "payloads/time.h"
#include "payloads/vector_pointer.h"
#include "payloads/write_stream.h"
// #include "payloads/cons.h"
// #include "payloads/exception.h"
// #include "payloads/free.h"
// #include "payloads/function.h"
// #include "payloads/hashtable.h"
// #include "payloads/integer.h"
// #include "payloads/keyword.h"
// #include "payloads/lambda.h"
// #include "payloads/mutex.h"
// #include "payloads/namespace.h"
// #include "payloads/nlambda.h"
// #include "payloads/read_stream.h"
// #include "payloads/special.h"
// #include "payloads/stack.h"
// #include "payloads/string.h"
// #include "payloads/symbol.h"
// #include "payloads/time.h"
// #include "payloads/vector_pointer.h"
// #include "payloads/write_stream.h"
/**
* @brief A paged space object of size class 2, four words total, two words
* payload.
*
*/
struct pso2 {
struct pso_header header;
union {
char bytes[16];
uint64_t words[2];
struct cons_payload cons;
struct free_payload free;
struct function_payload function;
struct integer_payload integer;
struct lambda_payload lambda;
struct special_payload special;
struct stream_payload stream;
struct time_payload time;
struct vectorp_payload vectorp;
} payload;
};
// /**
// * @brief A paged space object of size class 2, four words total, two words
// * payload.
// *
// */
// struct pso2 {
// struct pso_header header;
// union {
// char bytes[16];
// uint64_t words[2];
// struct cons_payload cons;
// struct free_payload free;
// struct function_payload function;
// struct integer_payload integer;
// struct lambda_payload lambda;
// struct special_payload special;
// struct stream_payload stream;
// struct time_payload time;
// struct vectorp_payload vectorp;
// } payload;
// };
/**
* @brief A paged space object of size class 3, 8 words total, 6 words
* payload.
*
*/
struct pso3 {
struct pso_header header;
union {
char bytes[48];
uint64_t words[6];
struct exception_payload exception;
struct free_payload free;
struct mutex_payload mutex;
} payload;
};
// /**
// * @brief A paged space object of size class 3, 8 words total, 6 words
// * payload.
// *
// */
// struct pso3 {
// struct pso_header header;
// union {
// char bytes[48];
// uint64_t words[6];
// struct exception_payload exception;
// struct free_payload free;
// struct mutex_payload mutex;
// } payload;
// };
/**
* @brief A paged space object of size class 4, 16 words total, 14 words
* payload.
*
*/
struct pso4 {
struct pso_header header;
union {
char bytes[112];
uint64_t words[14];
struct free_payload free;
struct stack_frame_payload stack_frame;
} payload;
};
// /**
// * @brief A paged space object of size class 4, 16 words total, 14 words
// * payload.
// *
// */
// struct pso4 {
// struct pso_header header;
// union {
// char bytes[112];
// uint64_t words[14];
// struct free_payload free;
// struct stack_frame_payload stack_frame;
// } payload;
// };
/**
* @brief A paged space object of size class 5, 32 words total, 30 words
* payload.
*
*/
struct pso5 {
struct pso_header header;
union {
char bytes[240];
uint64_t words[30];
struct free_payload free;
} payload;
};
// /**
// * @brief A paged space object of size class 5, 32 words total, 30 words
// * payload.
// *
// */
// struct pso5 {
// struct pso_header header;
// union {
// char bytes[240];
// uint64_t words[30];
// struct free_payload free;
// } payload;
// };
/**
* @brief A paged space object of size class 6, 64 words total, 62 words
* payload.
*
*/
struct pso6 {
struct pso_header header;
union {
char bytes[496];
uint64_t words[62];
struct free_payload free;
struct hashtable_payload hashtable;
struct namespace_payload namespace;
} payload;
};
// /**
// * @brief A paged space object of size class 6, 64 words total, 62 words
// * payload.
// *
// */
// struct pso6 {
// struct pso_header header;
// union {
// char bytes[496];
// uint64_t words[62];
// struct free_payload free;
// struct hashtable_payload hashtable;
// struct namespace_payload namespace;
// } payload;
// };
/**
* @brief A paged space object of size class 7, 128 words total, 126 words
* payload.
*
*/
struct pso7 {
struct pso_header header;
union {
char bytes[1008];
uint64_t words[126];
struct free_payload free;
} payload;
};
// /**
// * @brief A paged space object of size class 7, 128 words total, 126 words
// * payload.
// *
// */
// struct pso7 {
// struct pso_header header;
// union {
// char bytes[1008];
// uint64_t words[126];
// struct free_payload free;
// } payload;
// };
/**
* @brief A paged space object of size class 8, 256 words total, 254 words
* payload.
*
*/
struct pso8 {
struct pso_header header;
union {
char bytes[2032];
uint64_t words[254];
struct free_payload free;
} payload;
};
// /**
// * @brief A paged space object of size class 8, 256 words total, 254 words
// * payload.
// *
// */
// struct pso8 {
// struct pso_header header;
// union {
// char bytes[2032];
// uint64_t words[254];
// struct free_payload free;
// } payload;
// };
/**
* @brief A paged space object of size class 9, 512 words total, 510 words
* payload.
*
*/
struct pso9 {
struct pso_header header;
union {
char bytes[4080];
uint64_t words[510];
struct free_payload free;
} payload;
};
// /**
// * @brief A paged space object of size class 9, 512 words total, 510 words
// * payload.
// *
// */
// struct pso9 {
// struct pso_header header;
// union {
// char bytes[4080];
// uint64_t words[510];
// struct free_payload free;
// } payload;
// };
/**
* @brief A paged space object of size class a, 1024 words total, 1022 words
* payload.
*
*/
struct psoa {
struct pso_header header;
union {
char bytes[8176];
uint64_t words[1022];
struct free_payload free;
} payload;
};
// /**
// * @brief A paged space object of size class a, 1024 words total, 1022 words
// * payload.
// *
// */
// struct psoa {
// struct pso_header header;
// union {
// char bytes[8176];
// uint64_t words[1022];
// struct free_payload free;
// } payload;
// };
/**
* @brief A paged space object of size class b, 2048 words total, 2046 words
* payload.
*
*/
struct psob {
struct pso_header header;
union {
char bytes[16368];
uint64_t words[2046];
struct free_payload free;
} payload;
};
// /**
// * @brief A paged space object of size class b, 2048 words total, 2046 words
// * payload.
// *
// */
// struct psob {
// struct pso_header header;
// union {
// char bytes[16368];
// uint64_t words[2046];
// struct free_payload free;
// } payload;
// };
/**
* @brief A paged space object of size class c, 4096 words total, 4094 words
* payload.
*
*/
struct psoc {
struct pso_header header;
union {
char bytes[32752];
uint64_t words[4094];
struct free_payload free;
} payload;
};
// /**
// * @brief A paged space object of size class c, 4096 words total, 4094 words
// * payload.
// *
// */
// struct psoc {
// struct pso_header header;
// union {
// char bytes[32752];
// uint64_t words[4094];
// struct free_payload free;
// } payload;
// };
/**
* @brief A paged space object of size class d, 8192 words total, 8190 words
* payload.
*
*/
struct psod {
struct pso_header header;
union {
char bytes[65520];
uint64_t words[8190];
struct free_payload free;
} payload;
};
// /**
// * @brief A paged space object of size class d, 8192 words total, 8190 words
// * payload.
// *
// */
// struct psod {
// struct pso_header header;
// union {
// char bytes[65520];
// uint64_t words[8190];
// struct free_payload free;
// } payload;
// };
/**
* @brief A paged space object of size class e, 16384 words total, 16382 words
* payload.
*
*/
struct psoe {
struct pso_header header;
union {
char bytes[131056];
uint64_t words[16382];
struct free_payload free;
} payload;
};
// /**
// * @brief A paged space object of size class e, 16384 words total, 16382 words
// * payload.
// *
// */
// struct psoe {
// struct pso_header header;
// union {
// char bytes[131056];
// uint64_t words[16382];
// struct free_payload free;
// } payload;
// };
/**
* @brief A paged space object of size class f, 32768 words total, 32766 words
* payload.
*
*/
struct psof {
struct pso_header header;
union {
char bytes[262128];
uint64_t words[32766];
struct free_payload free;
} payload;
};
// /**
// * @brief A paged space object of size class f, 32768 words total, 32766 words
// * payload.
// *
// */
// struct psof {
// struct pso_header header;
// union {
// char bytes[262128];
// uint64_t words[32766];
// struct free_payload free;
// } payload;
// };
struct pso_pointer allocate( char* tag, uint8_t size_class);