23#ifndef __vectorspace_h
24#define __vectorspace_h
30#define HASHTV 1213415752
32#define hashmapp(conspoint)((check_tag(conspoint,HASHTV)))
39#define NAMESPACETAG "NMSP"
40#define NAMESPACETV 1347636558
42#define namespacep(conspoint)(check_tag(conspoint,NAMESPACETV))
47#define VECTORTAG "VECT"
48#define VECTORTV 1413694806
50#define vectorp(conspoint)(check_tag(conspoint,VECTORTV))
55#define pointer_to_vso(pointer)((vectorpointp(pointer)? (struct vector_space_object *) pointer2cell(pointer).payload.vectorp.address : (struct vector_space_object *) NULL))
60#define vso_get_vecp(vso)((((vector_space_object)vso)->header.vecp))
#define TAGLENGTH
The length of a tag, in bytes.
An indirect pointer to a cons cell.
struct cons_pointer hash_fn
struct cons_pointer write_acl
union vector_space_object::@5 payload
we'll malloc size bytes for payload, payload is just the first of these.
void free_vso(struct cons_pointer pointer)
for vector space pointers, free the actual vector-space object.
struct vector_space_header header
the header of this object
struct cons_pointer vecp
back pointer to the vector pointer which uniquely points to this vso
union vector_space_header::@4 tag
the tag (type) of this vector-space object.
struct cons_pointer buckets[]
struct cons_pointer make_vso(uint32_t tag, uint64_t payload_size)
Allocate a vector space object with this payload_size and tag, and return a cons_pointer which points...
uint64_t size
the size of my payload, in bytes
The payload of a hashmap.
a vector_space_object is just a vector_space_header followed by a lump of bytes; what we deem to be i...