/home/briantrice/src/slate-language/src/vm/slate.hpp File Reference

#include <sys/types.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include <stdint.h>
#include <inttypes.h>
#include <fcntl.h>
#include <time.h>
#include <limits.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <sys/select.h>
#include <netinet/in.h>
#include <netdb.h>
#include <unistd.h>
#include <sys/time.h>
#include <sys/un.h>
#include <pthread.h>
#include <sys/stat.h>
#include <dirent.h>
#include <set>
#include <stack>
#include <vector>
#include <map>
#include <algorithm>
#include <sys/utsname.h>
#include "inline.hpp"

Include dependency graph for slate.hpp:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  slate_image_header
struct  Object
struct  MethodCacheEntry
struct  ForwardedObject
struct  ForwardPointerEntry
struct  Map
struct  BreakEntry
struct  PrimitiveMethod
struct  RoleEntry
struct  SlotEntry
struct  SlotTable
struct  Symbol
struct  CompiledMethod
struct  LexicalContext
struct  RoleTable
struct  OopArray
struct  MethodDefinition
struct  ByteArray
struct  Closure
struct  Interpreter
struct  slate_addrinfo_request
struct  object_heap
class  Pinned< T >

Defines

#define __STDC_FORMAT_MACROS   1
#define __STDC_LIMIT_MACROS   1
#define SLATE_BUILD_TYPE   "UNDEFINED"
#define WORDT_MAX   INTPTR_MAX
#define KB   1024
#define MB   1024 * 1024
#define GB   1024 * 1024 * 1024
#define ASSERT(x)   assert(x)
#define str(s)   #s
#define xstr(s)   str(s)
#define MAX(a, b)   (a > b ? a : b)
#define MIN(a, b)   (a < b ? a : b)
#define HEADER_SIZE   (sizeof(struct Object) - sizeof(struct Map*))
#define HEADER_SIZE_WORDS   (HEADER_SIZE/sizeof(word_t))
#define SLATE_IMAGE_MAGIC   (word_t)0xABCDEF43
#define SLATE_INLINE   inline
#define METHOD_CACHE_ARITY   6
#define SLATE_ERROR_RETURN   (-1)
#define SLATE_FILE_NAME_LENGTH   512
#define DELEGATION_STACK_SIZE   256
#define PROFILER_ENTRY_COUNT   4096
#define MARK_MASK   1
#define METHOD_CACHE_SIZE   1024*64
#define OLD_TO_NEW_CARD_SIZE   (sizeof(word_t) * 8)
#define SLATE_MEMS_MAXIMUM   1024
#define SLATE_NETTICKET_MAXIMUM   1024
#define SLATE_FILES_MAXIMUM   256
#define SLATE_DIRECTORIES_MAXIMUM   256
#define MAX_PLATFORM_STRING_LENGTH   256
#define SMALLINT_MASK   0x1
#define PINNED_MASK   0x3F
#define PINNED_OFFSET   24
#define ID_HASH_RESERVED   0x7FFFF0
#define ID_HASH_FORWARDED   ID_HASH_RESERVED
#define ID_HASH_FREE   0x7FFFFF
#define ID_HASH_MAX   ID_HASH_FREE
#define FLOAT_SIGNIFICAND   0x7FFFFF
#define FLOAT_EXPONENT_OFFSET   23
#define MAP_FLAG_RESTRICT_DELEGATION   2
#define MAP_FLAG_IMMUTABLE   4
#define WORD_BYTES_MINUS_ONE   (sizeof(word_t)-1)
#define ROLE_ENTRY_WORD_SIZE   ((sizeof(struct RoleEntry) + WORD_BYTES_MINUS_ONE) / sizeof(word_t))
#define SLOT_ENTRY_WORD_SIZE   ((sizeof(struct SlotEntry) + WORD_BYTES_MINUS_ONE) / sizeof(word_t))
#define FUNCTION_FRAME_SIZE   6
#define FRAME_OFFSET_BEFORE_CALL_STACK_POINTER   6
#define FRAME_OFFSET_RESULT_STACK_POINTER   5
#define FRAME_OFFSET_CODE_POINTER   4
#define FRAME_OFFSET_METHOD   3
#define FRAME_OFFSET_LEXICAL_CONTEXT   2
#define FRAME_OFFSET_PREVIOUS_FRAME_POINTER   1
#define FRAME_OFFSET_FIRST_REGISTER   0
#define TRUE   1
#define FALSE   0
#define TYPE_OBJECT   0
#define TYPE_OOP_ARRAY   1
#define TYPE_BYTE_ARRAY   2
#define INLINER_MAX_INLINE_SIZE   50
#define INLINER_MAX_METHOD_SIZE   200
#define CALLER_PIC_SETUP_AFTER   500
#define CALLER_PIC_MAX_CODE_SIZE   70
#define CALLEE_OPTIMIZE_AFTER   1000
#define CALLER_PIC_SIZE   16
#define CALLER_PIC_ENTRY_SIZE   4
#define PIC_CALLEE   0
#define PIC_CALLEE_ARITY   1
#define PIC_CALLEE_MAPS   2
#define PIC_CALLEE_COUNT   3
#define SPECIAL_OOP_LOBBY   0
#define SPECIAL_OOP_NO_ROLE   1
#define SPECIAL_OOP_NIL   2
#define SPECIAL_OOP_TRUE   3
#define SPECIAL_OOP_FALSE   4
#define SPECIAL_OOP_ARRAY_PROTO   5
#define SPECIAL_OOP_BYTE_ARRAY_PROTO   6
#define SPECIAL_OOP_ASCII_PROTO   7
#define SPECIAL_OOP_MAP_PROTO   8
#define SPECIAL_OOP_METHOD_DEF_PROTO   9
#define SPECIAL_OOP_SMALL_INT_PROTO   10
#define SPECIAL_OOP_FLOAT_PROTO   11
#define SPECIAL_OOP_CLOSURE_WINDOW   12
#define SPECIAL_OOP_COMPILED_METHOD_WINDOW   13
#define SPECIAL_OOP_PRIMITIVE_METHOD_WINDOW   14
#define SPECIAL_OOP_CLOSURE_PROTO   15
#define SPECIAL_OOP_LEXICAL_CONTEXT_PROTO   16
#define SPECIAL_OOP_INTERPRETER   17
#define SPECIAL_OOP_ENSURE_MARKER   18
#define SPECIAL_OOP_NOT_FOUND_ON   19
#define SPECIAL_OOP_NOT_FOUND_ON_AFTER   20
#define SPECIAL_OOP_WRONG_INPUTS_TO   21
#define SPECIAL_OOP_MAY_NOT_RETURN_TO   22
#define SPECIAL_OOP_SLOT_NOT_FOUND_NAMED   23
#define SPECIAL_OOP_KEY_NOT_FOUND_ON   24
#define SPECIAL_OOP_IMMUTABLE   25
#define SPECIAL_OOP_BIT_SHIFT_OVERFLOW   26
#define SPECIAL_OOP_ADD_OVERFLOW   27
#define SPECIAL_OOP_SUBTRACT_OVERFLOW   28
#define SPECIAL_OOP_MULTIPLY_OVERFLOW   29
#define SPECIAL_OOP_DIVIDE_BY_ZERO   30
#define SPECIAL_OOP_NOT_A_BOOLEAN   31
#define SPECIAL_OOP_APPLY_TO   32
#define SPECIAL_OOP_OPTIONALS   33
#define SPECIAL_OOP_TYPE_ERROR_ON   34
#define SPECIAL_OOP_COUNT   35
#define SF_READ   1
#define SF_WRITE   1 << 1
#define SF_CREATE   1 << 2
#define SF_CLEAR   1 << 3
#define SLATE_DOMAIN_LOCAL   1
#define SLATE_DOMAIN_IPV4   2
#define SLATE_DOMAIN_IPV6   3
#define SLATE_TYPE_STREAM   1
#define SLATE_PROTOCOL_DEFAULT   0
#define PRINTOP(X)
#define OP_SEND   ((0 << 1) | SMALLINT_MASK)
#define OP_LOAD_LITERAL   ((3 << 1) | SMALLINT_MASK)
#define OP_SEND_MESSAGE_WITH_OPTS   ((5 << 1) | SMALLINT_MASK)
#define OP_NEW_CLOSURE   ((7 << 1) | SMALLINT_MASK)
#define OP_NEW_ARRAY_WITH   ((8 << 1) | SMALLINT_MASK)
#define OP_RESEND_MESSAGE   ((9 << 1) | SMALLINT_MASK)
#define OP_RETURN_FROM   ((10 << 1) | SMALLINT_MASK)
#define OP_LOAD_ENVIRONMENT   ((11 << 1) | SMALLINT_MASK)
#define OP_LOAD_VARIABLE   ((12 << 1) | SMALLINT_MASK)
#define OP_STORE_VARIABLE   ((13 << 1) | SMALLINT_MASK)
#define OP_LOAD_FREE_VARIABLE   ((14 << 1) | SMALLINT_MASK)
#define OP_STORE_FREE_VARIABLE   ((15 << 1) | SMALLINT_MASK)
#define OP_IS_IDENTICAL_TO   ((16 << 1) | SMALLINT_MASK)
#define OP_BRANCH_KEYED   ((17 << 1) | SMALLINT_MASK)
#define OP_JUMP_TO   ((18 << 1) | SMALLINT_MASK)
#define OP_MOVE_REGISTER   ((19 << 1) | SMALLINT_MASK)
#define OP_BRANCH_IF_TRUE   ((20 << 1) | SMALLINT_MASK)
#define OP_BRANCH_IF_FALSE   ((21 << 1) | SMALLINT_MASK)
#define OP_RETURN_REGISTER   ((22 << 1) | SMALLINT_MASK)
#define OP_RETURN_VALUE   ((23 << 1) | SMALLINT_MASK)
#define OP_RESUME   ((24 << 1) | SMALLINT_MASK)
#define OP_PRIMITIVE_DO   ((25 << 1) | SMALLINT_MASK)
#define OP_APPLY_TO   ((26 << 1) | SMALLINT_MASK)
#define OP_IS_NIL   ((27 << 1) | SMALLINT_MASK)
#define OP_INLINE_PRIMITIVE_CHECK   ((28 << 1) | SMALLINT_MASK)
#define OP_INLINE_METHOD_CHECK   ((29 << 1) | SMALLINT_MASK)
#define OP_   ((30 << 1) | SMALLINT_MASK)
#define OP_INTERNAL_SEND   ((100 << 1) | SMALLINT_MASK)
#define OP_INTERNAL_   ((101 << 1) | SMALLINT_MASK)
#define OP_SEND_PARAMETER_0   4
#define SSA_REGISTER(X)   (i->stack->elements[i->framePointer + (X)])
#define REG_STACK_POINTER(X)   (i->framePointer + (X))
#define SSA_NEXT_PARAM_SMALLINT   ((word_t)i->method->code->elements[i->codePointer++]>>1)
#define SSA_NEXT_PARAM_OBJECT   (i->method->code->elements[i->codePointer++])
#define ASSERT_VALID_REGISTER(X)   (assert((X) < (word_t)i->method->registerCount>>1))
#define HEAP_READ_AND_PIN_ARGS(COUNTER, ARITY, ARGSARRAY, PINNEDARGS)
#define HEAP_UNPIN_ARGS(COUNTER, PINNEDARGS)   for (--COUNTER; COUNTER >= 0; COUNTER--) heap_unpin_object(oh, PINNEDARGS[COUNTER])
#define SOCKET_RETURN(x)   (smallint_to_object(socket_return((x < 0)? -errno : x)))
#define ASSURE_SMALLINT_ARG(XXX)
#define ASSURE_NOT_SMALLINT_ARG(XXX)
#define ASSURE_TYPE_ARG(XXX, TYPEXXX)

Typedefs

typedef uintptr_t uword_t
typedef intptr_t word_t
typedef uint8_t byte_t
typedef word_t bool_t
typedef float float_type

Functions

byte_tinc_ptr (struct Object *obj, word_t amt)
void heap_store_into (struct object_heap *oh, struct Object *src, struct Object *dest)
void heap_gc (struct object_heap *oh)
void heap_full_gc (struct object_heap *oh)
void interpreter_apply_to_arity_with_optionals (struct object_heap *oh, struct Interpreter *i, struct Closure *closure, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void send_to_through_arity_with_optionals (struct object_heap *oh, struct Symbol *selector, struct Object *args[], struct Object *dispatchers[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
word_t object_to_smallint (struct Object *xxx)
struct Objectsmallint_to_object (word_t xxx)
int64_t getTickCount ()
SLATE_INLINE volatile int64_t getRealTimeClock ()
bool_t oop_is_object (word_t xxx)
bool_t oop_is_smallint (word_t xxx)
bool_t object_is_smallint (struct Object *xxx)
bool_t object_is_special (struct object_heap *oh, struct Object *obj)
word_t object_markbit (struct Object *xxx)
word_t object_hash (struct Object *xxx)
word_t object_size (struct Object *xxx)
word_t payload_size (struct Object *xxx)
word_t object_type (struct Object *xxx)
word_t object_pin_count (struct Object *xxx)
void object_increment_pin_count (struct Object *xxx)
void object_decrement_pin_count (struct Object *xxx)
void object_zero_pin_count (struct Object *xxx)
void heap_zero_pin_counts_from (struct object_heap *oh, byte_t *memory, word_t memorySize)
void copy_bytes_into (byte_t *src, word_t n, byte_t *dst)
void copy_words_into (void *src, word_t n, void *dst)
void fill_words_with (word_t *dst, word_t n, word_t value)
void fill_bytes_with (byte_t *dst, word_t n, byte_t value)
void print_object (struct Object *oop)
void print_symbol (struct Symbol *name)
void print_byte_array (struct Object *o)
void print_object_with_depth (struct object_heap *oh, struct Object *o, word_t depth, word_t max_depth)
void print_detail (struct object_heap *oh, struct Object *o)
bool_t print_printname (struct object_heap *oh, struct Object *o)
void print_type (struct object_heap *oh, struct Object *o)
void print_stack (struct object_heap *oh)
void print_stack_types (struct object_heap *oh, word_t last_count)
void print_backtrace (struct object_heap *oh)
void heap_print_objects (struct object_heap *oh, byte_t *memory, word_t memorySize)
word_t heap_what_points_to_in (struct object_heap *oh, struct Object *x, byte_t *memory, word_t memorySize, bool_t print)
word_t heap_what_points_to (struct object_heap *oh, struct Object *x, bool_t print)
void heap_print_marks (struct object_heap *oh, byte_t *memory, word_t memorySize)
void assert_good_object (struct object_heap *oh, struct Object *obj)
void heap_integrity_check (struct object_heap *oh, byte_t *memory, word_t memorySize)
struct Objectheap_new_cstring (struct object_heap *oh, byte_t *input)
bool_t object_is_old (struct object_heap *oh, struct Object *oop)
bool_t object_is_young (struct object_heap *oh, struct Object *obj)
bool_t object_in_memory (struct object_heap *oh, struct Object *oop, byte_t *memory, word_t memorySize)
struct Objectobject_after (struct object_heap *heap, struct Object *o)
bool_t object_is_marked (struct object_heap *heap, struct Object *o)
bool_t object_is_free (struct Object *o)
void method_flush_cache (struct object_heap *oh, struct Symbol *selector)
struct Objectheap_make_free_space (struct object_heap *oh, struct Object *obj, word_t words)
struct Objectheap_make_used_space (struct object_heap *oh, struct Object *obj, word_t words)
bool_t heap_initialize (struct object_heap *oh, word_t size, word_t limit, word_t young_limit, word_t next_hash, word_t special_oop, word_t cdid)
void heap_close (struct object_heap *oh)
bool_t object_is_pinned (struct object_heap *oh, struct Object *x)
bool_t object_is_remembered (struct object_heap *oh, struct Object *x)
struct Objectheap_find_first_young_free (struct object_heap *oh, struct Object *obj, word_t bytes)
struct Objectheap_find_first_old_free (struct object_heap *oh, struct Object *obj, word_t bytes)
struct Objectgc_allocate_old (struct object_heap *oh, word_t bytes)
struct Objectgc_allocate (struct object_heap *oh, word_t bytes)
void object_forward_pointers_to (struct object_heap *oh, struct Object *o, struct Object *x, struct Object *y)
void heap_free_object (struct object_heap *oh, struct Object *obj)
void heap_finish_gc (struct object_heap *oh)
void heap_finish_full_gc (struct object_heap *oh)
void heap_start_gc (struct object_heap *oh)
void heap_remember_old_object (struct object_heap *oh, struct Object *x)
void heap_mark (struct object_heap *oh, struct Object *obj)
void heap_mark_specials (struct object_heap *oh, bool_t mark_old)
void heap_mark_fixed (struct object_heap *oh, bool_t mark_old)
void heap_mark_interpreter_stack (struct object_heap *oh, bool_t mark_old)
void heap_mark_fields (struct object_heap *oh, struct Object *o)
void heap_mark_recursively (struct object_heap *oh, bool_t mark_old)
void heap_free_and_coalesce_unmarked (struct object_heap *oh, byte_t *memory, word_t memorySize)
void heap_unmark_all (struct object_heap *oh, byte_t *memory, word_t memorySize)
void heap_update_forwarded_pointers (struct object_heap *oh, byte_t *memory, word_t memorySize)
void heap_tenure (struct object_heap *oh)
void heap_mark_remembered (struct object_heap *oh)
void heap_mark_pinned_young (struct object_heap *oh)
void heap_mark_pinned_old (struct object_heap *oh)
void heap_forward_from (struct object_heap *oh, struct Object *x, struct Object *y, byte_t *memory, word_t memorySize)
void heap_forward (struct object_heap *oh, struct Object *x, struct Object *y)
struct Objectheap_allocate_with_payload (struct object_heap *oh, word_t words, word_t payload_size)
struct Objectheap_allocate (struct object_heap *oh, word_t words)
struct Objectheap_clone (struct object_heap *oh, struct Object *proto)
struct Objectheap_clone_special (struct object_heap *oh, word_t special_index)
struct Mapheap_clone_map (struct object_heap *oh, struct Map *map)
struct ByteArrayheap_new_float (struct object_heap *oh)
struct OopArrayheap_clone_oop_array_sized (struct object_heap *oh, struct Object *proto, word_t size)
struct ByteArrayheap_clone_byte_array_sized (struct object_heap *oh, struct Object *proto, word_t bytes)
struct ByteArrayheap_new_byte_array_with (struct object_heap *oh, word_t byte_size, byte_t *bytes)
struct ByteArrayheap_new_string_with (struct object_heap *oh, word_t byte_size, byte_t *bytes)
void interpreter_grow_stack (struct object_heap *oh, struct Interpreter *i, word_t minimum)
void interpreter_stack_allocate (struct object_heap *oh, struct Interpreter *i, word_t n)
void interpreter_stack_push (struct object_heap *oh, struct Interpreter *i, struct Object *value)
struct Objectinterpreter_stack_pop (struct object_heap *oh, struct Interpreter *i)
void interpreter_stack_pop_amount (struct object_heap *oh, struct Interpreter *i, word_t amount)
void unhandled_signal (struct object_heap *oh, struct Symbol *selector, word_t n, struct Object *args[])
void interpreter_signal (struct object_heap *oh, struct Interpreter *i, struct Object *signal, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void interpreter_signal_with (struct object_heap *oh, struct Interpreter *i, struct Object *signal, struct Object *arg, struct OopArray *opts, word_t resultStackPointer)
void interpreter_signal_with_with (struct object_heap *oh, struct Interpreter *i, struct Object *signal, struct Object *arg, struct Object *arg2, struct OopArray *opts, word_t resultStackPointer)
void interpreter_signal_with_with_with (struct object_heap *oh, struct Interpreter *i, struct Object *signal, struct Object *arg, struct Object *arg2, struct Object *arg3, struct OopArray *opts, word_t resultStackPointer)
bool_t interpreter_dispatch_optional_keyword (struct object_heap *oh, struct Interpreter *i, struct Object *key, struct Object *value)
void interpreter_dispatch_optionals (struct object_heap *oh, struct Interpreter *i, struct OopArray *opts)
bool_t interpreter_return_result (struct object_heap *oh, struct Interpreter *i, word_t context_depth, struct Object *result, word_t prevCodePointer)
void interpreter_resend_message (struct object_heap *oh, struct Interpreter *i, word_t n, word_t resultStackPointer)
void interpreter_branch_keyed (struct object_heap *oh, struct Interpreter *i, struct OopArray *table, struct Object *oop)
void interpret (struct object_heap *oh)
void method_save_cache (struct object_heap *oh, struct MethodDefinition *md, struct Symbol *name, struct Object *arguments[], word_t n)
struct MethodDefinitionmethod_check_cache (struct object_heap *oh, struct Symbol *selector, struct Object *arguments[], word_t n)
void method_unoptimize (struct object_heap *oh, struct CompiledMethod *method)
void method_remove_optimized_sending (struct object_heap *oh, struct Symbol *symbol)
void method_optimize (struct object_heap *oh, struct CompiledMethod *method)
void method_pic_setup (struct object_heap *oh, struct CompiledMethod *caller)
void method_pic_flush_caller_pics (struct object_heap *oh, struct CompiledMethod *callee)
struct MethodDefinitionmethod_is_on_arity (struct object_heap *oh, struct Object *method, struct Symbol *selector, struct Object *args[], word_t n)
struct MethodDefinitionmethod_define (struct object_heap *oh, struct Object *method, struct Symbol *selector, struct Object *args[], word_t n)
void error (const char *str)
void cache_specials (struct object_heap *heap)
word_t max (word_t x, word_t y)
word_t write_args_into (struct object_heap *oh, char *buffer, word_t limit)
word_t hash_selector (struct object_heap *oh, struct Symbol *name, struct Object *arguments[], word_t n)
void object_set_mark (struct object_heap *oh, struct Object *xxx)
void object_unmark (struct object_heap *oh, struct Object *xxx)
void object_set_format (struct Object *xxx, word_t type)
void object_set_size (struct Object *xxx, word_t size)
void object_set_idhash (struct Object *xxx, word_t hash)
void payload_set_size (struct Object *xxx, word_t size)
word_t heap_new_hash (struct object_heap *oh)
struct Objectget_special (struct object_heap *oh, word_t special_index)
struct Mapobject_get_map (struct object_heap *oh, struct Object *o)
word_t object_word_size (struct Object *o)
word_t object_array_offset (struct Object *o)
struct Objectobject_array_get_element (struct Object *o, word_t i)
struct Objectobject_array_set_element (struct object_heap *oh, struct Object *o, word_t i, struct Object *val)
struct Object ** object_array_elements (struct Object *o)
struct Object ** array_elements (struct OopArray *o)
word_t object_array_size (struct Object *o)
word_t byte_array_size (struct ByteArray *o)
word_t array_size (struct OopArray *x)
word_t slot_table_capacity (struct SlotTable *roles)
word_t role_table_capacity (struct RoleTable *roles)
word_t object_byte_size (struct Object *o)
word_t object_total_size (struct Object *o)
word_t object_first_slot_offset (struct Object *o)
word_t object_last_slot_offset (struct Object *o)
word_t object_last_oop_offset (struct Object *o)
struct Objectobject_slot_value_at_offset (struct Object *o, word_t offset)
struct Objectobject_slot_value_at_offset_put (struct object_heap *oh, struct Object *o, word_t offset, struct Object *value)
struct RoleEntryrole_table_entry_for_name (struct object_heap *oh, struct RoleTable *roles, struct Symbol *name)
struct RoleEntryrole_table_entry_for_inserting_name (struct object_heap *oh, struct RoleTable *roles, struct Symbol *name)
struct RoleEntryrole_table_insert (struct object_heap *oh, struct RoleTable *roles, struct Symbol *name)
struct SlotEntryslot_table_entry_for_name (struct object_heap *oh, struct SlotTable *slots, struct Symbol *name)
struct SlotEntryslot_table_entry_for_inserting_name (struct object_heap *oh, struct SlotTable *slots, struct Symbol *name)
word_t role_table_accommodate (struct RoleTable *roles, word_t n)
word_t slot_table_accommodate (struct SlotTable *roles, word_t n)
word_t role_table_empty_space (struct object_heap *oh, struct RoleTable *roles)
word_t slot_table_empty_space (struct object_heap *oh, struct SlotTable *slots)
struct RoleTablerole_table_grow_excluding (struct object_heap *oh, struct RoleTable *roles, word_t n, struct MethodDefinition *method)
struct SlotTableslot_table_grow_excluding (struct object_heap *oh, struct SlotTable *slots, word_t n, struct Symbol *excluding)
void slot_table_relocate_by (struct object_heap *oh, struct SlotTable *slots, word_t offset, word_t amount)
struct MethodDefinitionobject_has_role_named_at (struct Object *obj, struct Symbol *selector, word_t position, struct Object *method)
void object_change_map (struct object_heap *oh, struct Object *obj, struct Map *map)
void object_represent (struct object_heap *oh, struct Object *obj, struct Map *map)
word_t object_add_role_at (struct object_heap *oh, struct Object *obj, struct Symbol *selector, word_t position, struct MethodDefinition *method)
word_t object_remove_role (struct object_heap *oh, struct Object *obj, struct Symbol *selector, struct MethodDefinition *method)
struct Objectobject_add_slot_named_at (struct object_heap *oh, struct Object *obj, struct Symbol *name, struct Object *value, word_t offset)
struct Objectobject_add_slot_named (struct object_heap *oh, struct Object *obj, struct Symbol *name, struct Object *value)
struct Objectobject_remove_slot (struct object_heap *oh, struct Object *obj, struct Symbol *name)
void adjust_fields_by (struct object_heap *oh, struct Object *o, word_t shift_amount)
void adjust_oop_pointers_from (struct object_heap *oh, word_t shift_amount, byte_t *memory, word_t memorySize)
void prim_fixme (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_closePipe (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_readFromPipe (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_writeToPipe (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_selectOnWritePipesFor (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_cloneSystem (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_socketCreate (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_socketListen (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_socketAccept (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_socketBind (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_socketConnect (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_socketGetError (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_getAddrInfo (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_getAddrInfoResult (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_freeAddrInfoResult (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_socketCreateIP (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_write_to_starting_at (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_close (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_readConsole_from_into_starting_at (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_read_from_into_starting_at (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_write_to_from_starting_at (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_reposition_to (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_positionOf (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_bytesPerWord (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_timeSinceEpoch (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_atEndOf (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_sizeOf (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_flush_output (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_handle_for (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_handleForNew (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_handle_for_input (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_addressOf (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_library_open (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_library_close (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_procAddressOf (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_extlibError (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_applyExternal (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_memory_new (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_memory_close (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_memory_size (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_memory_addRef (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_memory_read (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_memory_write (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_memory_resizeTo (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
void prim_smallint_at_slot_named (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_bytesize (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_findon (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_ensure (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_frame_pointer_of (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_bytearray_newsize (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_byteat_put (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_byteat (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_map (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_set_map (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_run_args_into (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_exit (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_isIdenticalTo (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_identity_hash (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_identity_hash_univ (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_clone (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_applyto (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *optionals, word_t resultStackPointer)
void prim_at (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_at_put (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_ooparray_newsize (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_equals (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_less_than (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_size (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_bitand (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_bitor (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_bitxor (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_bitnot (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_smallIntegerMinimum (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_smallIntegerMaximum (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_plus (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_removefrom (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_exponent (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_significand (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_getcwd (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_setcwd (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_float_equals (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_float_less_than (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_float_plus (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_float_minus (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_float_times (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_float_divide (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_float_raisedTo (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_float_ln (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_float_exp (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_float_sin (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_withSignificand_exponent (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_bitshift (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_minus (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_times (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_quo (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_forward_to (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_clone_setting_slots (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_as_method_on (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_at_slot_named (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_at_slot_named_put (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_clone_with_slot_valued (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_clone_without_slot (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_send_to (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *optionals, word_t resultStackPointer)
void prim_send_to_through (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *optionals, word_t resultStackPointer)
void prim_as_accessor (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void prim_save_image (struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)
void socket_module_init (struct object_heap *oh)
word_t socket_return (word_t ret)
int socket_select_setup (struct OopArray *selectOn, fd_set *fdList, int *maxFD)
void socket_select_find_available (struct OopArray *selectOn, fd_set *fdList, struct OopArray *readyPipes, word_t readyCount)
void prim_selectOnReadPipesFor (struct object_heap *oh, struct Object *args[], word_t arity, struct OopArray *opts, word_t resultStackPointer)
int socket_lookup_domain (word_t domain)
int socket_reverse_lookup_domain (word_t domain)
int socket_lookup_type (word_t type)
int socket_reverse_lookup_type (word_t type)
int socket_lookup_protocol (word_t protocol)
int socket_reverse_lookup_protocol (word_t protocol)
int socket_getaddrinfo (struct object_heap *oh, struct ByteArray *hostname, word_t hostnameSize, struct ByteArray *service, word_t serviceSize, word_t family, word_t type, word_t protocol, word_t flags)
word_t memory_string_to_bytes (char *str)
byte_tbyte_array_elements (struct ByteArray *o)
byte_t byte_array_get_element (struct Object *o, word_t i)
byte_t byte_array_set_element (struct ByteArray *o, word_t i, byte_t val)
int fork2 ()
word_t calculateMethodCallDepth (struct object_heap *oh)
void file_module_init (struct object_heap *oh)
bool_t file_handle_isvalid (struct object_heap *oh, word_t file)
word_t file_allocate (struct object_heap *oh)
void file_close (struct object_heap *oh, word_t file)
word_t file_open (struct object_heap *oh, struct ByteArray *name, word_t flags)
word_t file_write (struct object_heap *oh, word_t file, word_t n, char *bytes)
word_t file_read (struct object_heap *oh, word_t file, word_t n, char *bytes)
word_t file_sizeof (struct object_heap *oh, word_t file)
word_t file_seek (struct object_heap *oh, word_t file, word_t offset)
word_t file_tell (struct object_heap *oh, word_t file)
bool_t file_isatend (struct object_heap *oh, word_t file)
bool_t file_delete (struct object_heap *oh, char *filename)
struct Objectfile_information (struct object_heap *oh, char *filename)
bool_t file_rename_to (struct object_heap *oh, char *src, char *dest)
void dir_module_init (struct object_heap *oh)
int dir_open (struct object_heap *oh, struct ByteArray *dirName)
int dir_close (struct object_heap *oh, int dirHandle)
int dir_read (struct object_heap *oh, int dirHandle, struct ByteArray *entNameBuffer)
int dir_getcwd (struct ByteArray *wdBuffer)
int dir_setcwd (struct ByteArray *newWd)
bool_t dir_make (struct object_heap *oh, char *dir)
bool_t dir_delete (struct object_heap *oh, char *dir)
bool_t dir_rename_to (struct object_heap *oh, char *src, char *dest)
void memarea_module_init (struct object_heap *oh)
int memarea_handle_isvalid (struct object_heap *oh, int memory)
void memarea_close (struct object_heap *oh, int memory)
void memarea_addref (struct object_heap *oh, int memory)
int memarea_open (struct object_heap *oh, int size)
int memarea_write (struct object_heap *oh, int memory, int memStart, int n, byte_t *bytes)
int memarea_read (struct object_heap *oh, int memory, int memStart, int n, byte_t *bytes)
int memarea_sizeof (struct object_heap *oh, int memory)
int memarea_resize (struct object_heap *oh, int memory, int size)
int memarea_addressof (struct object_heap *oh, int memory, int offset, byte_t *addressBuffer)
void profiler_start (struct object_heap *oh)
void profiler_stop (struct object_heap *oh)
void profiler_enter_method (struct object_heap *oh, struct Object *fromMethod, struct Object *toMethod, bool_t push)
void profiler_delete_method (struct object_heap *oh, struct Object *method)
void heap_notice_forwarded_object (struct object_heap *oh, struct Object *from, struct Object *to)
void profiler_notice_forwarded_object (struct object_heap *oh, struct Object *from, struct Object *to)
bool_t openExternalLibrary (struct object_heap *oh, struct ByteArray *libname, struct ByteArray *handle)
bool_t closeExternalLibrary (struct object_heap *oh, struct ByteArray *handle)
bool_t lookupExternalLibraryPrimitive (struct object_heap *oh, struct ByteArray *handle, struct ByteArray *symname, struct ByteArray *ptr)
int readExternalLibraryError (struct ByteArray *messageBuffer)
word_t extractBigInteger (struct ByteArray *bigInt)
struct ObjectinjectBigInteger (struct object_heap *oh, word_t value)
struct ObjectapplyExternalLibraryPrimitive (struct object_heap *oh, struct ByteArray *fnHandle, struct OopArray *argsFormat, struct Object *callFormat, struct Object *resultFormat, struct OopArray *argsArr)
struct MethodDefinitionmethod_dispatch_on (struct object_heap *oh, struct Symbol *name, struct Object *arguments[], word_t arity, struct Object *resendMethod)
word_t object_is_immutable (struct Object *o)
word_t smallint_fits_object (word_t i)
float_typefloat_part (struct ByteArray *o)
void copy_used_objects (struct object_heap *oh, struct Object **writeObject, byte_t *memoryStart, word_t memorySize, struct ForwardPointerEntry *table, word_t forwardPointerEntryCount)
void adjust_object_fields_with_table (struct object_heap *oh, byte_t *memory, word_t memorySize, struct ForwardPointerEntry *table, word_t forwardPointerEntryCount)
struct ForwardPointerEntryforward_pointer_hash_add (struct ForwardPointerEntry *table, word_t forwardPointerEntryCount, struct Object *fromObj, struct Object *toObj)
struct ForwardPointerEntryforward_pointer_hash_get (struct ForwardPointerEntry *table, word_t forwardPointerEntryCount, struct Object *fromObj)
int socket_set_nonblocking (int fd)
word_t extractCString (struct ByteArray *array, byte_t *buffer, word_t bufferSize)
struct MethodDefinitionmethod_pic_find_callee (struct object_heap *oh, struct CompiledMethod *callerMethod, struct Symbol *selector, word_t arity, struct Object *args[])
void method_pic_add_callee (struct object_heap *oh, struct CompiledMethod *callerMethod, struct MethodDefinition *def, word_t arity, struct Object *args[])
void method_pic_add_callee_backreference (struct object_heap *oh, struct CompiledMethod *caller, struct CompiledMethod *callee)
void print_code_disassembled (struct object_heap *oh, struct OopArray *code)
void print_pic_entries (struct object_heap *oh, struct CompiledMethod *method)
word_t opcode_length (std::vector< struct Object * > &code, word_t start)
word_t opcode_base_length (word_t rawop)
word_t opcode_arg_length (std::vector< struct Object * > &code, word_t start)
word_t opcode_register_locations (word_t rawop)
void optimizer_offset_registers (std::vector< struct Object * > &code, int offset)
void optimizer_append_code_to_vector (struct OopArray *code, std::vector< struct Object * > &vector)
void optimizer_insert_code (std::vector< struct Object * > &code, size_t offset, std::vector< struct Object * > &newCode)
void optimizer_delete_code (std::vector< struct Object * > &code, size_t offset, word_t amount)
void optimizer_inline_callees (struct object_heap *oh, struct CompiledMethod *method)
bool optimizer_method_can_be_optimized (struct object_heap *oh, struct CompiledMethod *method)
bool optimizer_method_can_be_inlined (struct object_heap *oh, struct CompiledMethod *method)
void print_code (struct object_heap *oh, std::vector< struct Object * > code)
void heap_pin_object (struct object_heap *oh, struct Object *x)
void heap_unpin_object (struct object_heap *oh, struct Object *x)

Variables

int globalInterrupt
void(* primitives [])(struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)


Define Documentation

#define __STDC_FORMAT_MACROS   1

Definition at line 11 of file slate.hpp.

#define __STDC_LIMIT_MACROS   1

Definition at line 14 of file slate.hpp.

#define ASSERT (  )     assert(x)

Definition at line 74 of file slate.hpp.

#define ASSERT_VALID_REGISTER (  )     (assert((X) < (word_t)i->method->registerCount>>1))

Definition at line 598 of file slate.hpp.

#define ASSURE_NOT_SMALLINT_ARG ( XXX   ) 

Value:

if (object_is_smallint(args[XXX])) { \
    interpreter_signal_with(oh, oh->cached.interpreter, get_special(oh, SPECIAL_OOP_TYPE_ERROR_ON), args[XXX], NULL, resultStackPointer); \
    return; \
  }

Definition at line 625 of file slate.hpp.

#define ASSURE_SMALLINT_ARG ( XXX   ) 

Value:

if (!object_is_smallint(args[XXX])) { \
    interpreter_signal_with(oh, oh->cached.interpreter, get_special(oh, SPECIAL_OOP_TYPE_ERROR_ON), args[XXX], NULL, resultStackPointer); \
    return; \
  }

Definition at line 619 of file slate.hpp.

#define ASSURE_TYPE_ARG ( XXX,
TYPEXXX   ) 

Value:

if (object_type(args[XXX]) != TYPEXXX) { \
    interpreter_signal_with(oh, oh->cached.interpreter, get_special(oh, SPECIAL_OOP_TYPE_ERROR_ON), args[XXX], NULL, resultStackPointer); \
    return; \
  }

Definition at line 631 of file slate.hpp.

#define CALLEE_OPTIMIZE_AFTER   1000

Definition at line 483 of file slate.hpp.

#define CALLER_PIC_ENTRY_SIZE   4

Definition at line 485 of file slate.hpp.

#define CALLER_PIC_MAX_CODE_SIZE   70

Definition at line 482 of file slate.hpp.

#define CALLER_PIC_SETUP_AFTER   500

Definition at line 481 of file slate.hpp.

#define CALLER_PIC_SIZE   16

Definition at line 484 of file slate.hpp.

#define DELEGATION_STACK_SIZE   256

Definition at line 282 of file slate.hpp.

#define FALSE   0

Definition at line 472 of file slate.hpp.

#define FLOAT_EXPONENT_OFFSET   23

Definition at line 448 of file slate.hpp.

#define FLOAT_SIGNIFICAND   0x7FFFFF

Definition at line 447 of file slate.hpp.

#define FRAME_OFFSET_BEFORE_CALL_STACK_POINTER   6

Definition at line 462 of file slate.hpp.

#define FRAME_OFFSET_CODE_POINTER   4

Definition at line 464 of file slate.hpp.

#define FRAME_OFFSET_FIRST_REGISTER   0

Definition at line 468 of file slate.hpp.

#define FRAME_OFFSET_LEXICAL_CONTEXT   2

Definition at line 466 of file slate.hpp.

#define FRAME_OFFSET_METHOD   3

Definition at line 465 of file slate.hpp.

#define FRAME_OFFSET_PREVIOUS_FRAME_POINTER   1

Definition at line 467 of file slate.hpp.

#define FRAME_OFFSET_RESULT_STACK_POINTER   5

Definition at line 463 of file slate.hpp.

#define FUNCTION_FRAME_SIZE   6

Definition at line 460 of file slate.hpp.

#define GB   1024 * 1024 * 1024

Definition at line 72 of file slate.hpp.

#define HEADER_SIZE   (sizeof(struct Object) - sizeof(struct Map*))

Definition at line 118 of file slate.hpp.

#define HEADER_SIZE_WORDS   (HEADER_SIZE/sizeof(word_t))

Definition at line 119 of file slate.hpp.

#define HEAP_READ_AND_PIN_ARGS ( COUNTER,
ARITY,
ARGSARRAY,
PINNEDARGS   ) 

Value:

for (COUNTER=0; COUNTER < ARITY; COUNTER++) { \
            word_t argReg = SSA_NEXT_PARAM_SMALLINT; \
            ARGSARRAY[COUNTER] = SSA_REGISTER(argReg); \
            PINNEDARGS[COUNTER] = ARGSARRAY[COUNTER]; \
            heap_pin_object(oh, PINNEDARGS[COUNTER]); \
          }

Definition at line 602 of file slate.hpp.

#define HEAP_UNPIN_ARGS ( COUNTER,
PINNEDARGS   )     for (--COUNTER; COUNTER >= 0; COUNTER--) heap_unpin_object(oh, PINNEDARGS[COUNTER])

Definition at line 609 of file slate.hpp.

#define ID_HASH_FORWARDED   ID_HASH_RESERVED

Definition at line 442 of file slate.hpp.

#define ID_HASH_FREE   0x7FFFFF

Definition at line 443 of file slate.hpp.

#define ID_HASH_MAX   ID_HASH_FREE

Definition at line 444 of file slate.hpp.

#define ID_HASH_RESERVED   0x7FFFF0

Definition at line 441 of file slate.hpp.

#define INLINER_MAX_INLINE_SIZE   50

Definition at line 478 of file slate.hpp.

#define INLINER_MAX_METHOD_SIZE   200

Definition at line 479 of file slate.hpp.

#define KB   1024

Definition at line 70 of file slate.hpp.

#define MAP_FLAG_IMMUTABLE   4

Definition at line 454 of file slate.hpp.

#define MAP_FLAG_RESTRICT_DELEGATION   2

Definition at line 453 of file slate.hpp.

#define MARK_MASK   1

Definition at line 284 of file slate.hpp.

#define MAX ( a,
 )     (a > b ? a : b)

Definition at line 77 of file slate.hpp.

#define MAX_PLATFORM_STRING_LENGTH   256

Definition at line 291 of file slate.hpp.

#define MB   1024 * 1024

Definition at line 71 of file slate.hpp.

#define METHOD_CACHE_ARITY   6

Definition at line 131 of file slate.hpp.

#define METHOD_CACHE_SIZE   1024*64

Definition at line 285 of file slate.hpp.

#define MIN ( a,
 )     (a < b ? a : b)

Definition at line 78 of file slate.hpp.

#define OLD_TO_NEW_CARD_SIZE   (sizeof(word_t) * 8)

Definition at line 286 of file slate.hpp.

#define OP_   ((30 << 1) | SMALLINT_MASK)

Definition at line 583 of file slate.hpp.

#define OP_APPLY_TO   ((26 << 1) | SMALLINT_MASK)

Definition at line 579 of file slate.hpp.

#define OP_BRANCH_IF_FALSE   ((21 << 1) | SMALLINT_MASK)

Definition at line 574 of file slate.hpp.

#define OP_BRANCH_IF_TRUE   ((20 << 1) | SMALLINT_MASK)

Definition at line 573 of file slate.hpp.

#define OP_BRANCH_KEYED   ((17 << 1) | SMALLINT_MASK)

Definition at line 570 of file slate.hpp.

#define OP_INLINE_METHOD_CHECK   ((29 << 1) | SMALLINT_MASK)

Definition at line 582 of file slate.hpp.

#define OP_INLINE_PRIMITIVE_CHECK   ((28 << 1) | SMALLINT_MASK)

Definition at line 581 of file slate.hpp.

#define OP_INTERNAL_   ((101 << 1) | SMALLINT_MASK)

Definition at line 588 of file slate.hpp.

#define OP_INTERNAL_SEND   ((100 << 1) | SMALLINT_MASK)

Definition at line 587 of file slate.hpp.

#define OP_IS_IDENTICAL_TO   ((16 << 1) | SMALLINT_MASK)

Definition at line 569 of file slate.hpp.

#define OP_IS_NIL   ((27 << 1) | SMALLINT_MASK)

Definition at line 580 of file slate.hpp.

#define OP_JUMP_TO   ((18 << 1) | SMALLINT_MASK)

Definition at line 571 of file slate.hpp.

#define OP_LOAD_ENVIRONMENT   ((11 << 1) | SMALLINT_MASK)

Definition at line 564 of file slate.hpp.

#define OP_LOAD_FREE_VARIABLE   ((14 << 1) | SMALLINT_MASK)

Definition at line 567 of file slate.hpp.

#define OP_LOAD_LITERAL   ((3 << 1) | SMALLINT_MASK)

Definition at line 556 of file slate.hpp.

#define OP_LOAD_VARIABLE   ((12 << 1) | SMALLINT_MASK)

Definition at line 565 of file slate.hpp.

#define OP_MOVE_REGISTER   ((19 << 1) | SMALLINT_MASK)

Definition at line 572 of file slate.hpp.

#define OP_NEW_ARRAY_WITH   ((8 << 1) | SMALLINT_MASK)

Definition at line 561 of file slate.hpp.

#define OP_NEW_CLOSURE   ((7 << 1) | SMALLINT_MASK)

Definition at line 560 of file slate.hpp.

#define OP_PRIMITIVE_DO   ((25 << 1) | SMALLINT_MASK)

Definition at line 578 of file slate.hpp.

#define OP_RESEND_MESSAGE   ((9 << 1) | SMALLINT_MASK)

Definition at line 562 of file slate.hpp.

#define OP_RESUME   ((24 << 1) | SMALLINT_MASK)

Definition at line 577 of file slate.hpp.

#define OP_RETURN_FROM   ((10 << 1) | SMALLINT_MASK)

Definition at line 563 of file slate.hpp.

#define OP_RETURN_REGISTER   ((22 << 1) | SMALLINT_MASK)

Definition at line 575 of file slate.hpp.

#define OP_RETURN_VALUE   ((23 << 1) | SMALLINT_MASK)

Definition at line 576 of file slate.hpp.

#define OP_SEND   ((0 << 1) | SMALLINT_MASK)

Definition at line 553 of file slate.hpp.

#define OP_SEND_MESSAGE_WITH_OPTS   ((5 << 1) | SMALLINT_MASK)

Definition at line 558 of file slate.hpp.

#define OP_SEND_PARAMETER_0   4

Definition at line 590 of file slate.hpp.

#define OP_STORE_FREE_VARIABLE   ((15 << 1) | SMALLINT_MASK)

Definition at line 568 of file slate.hpp.

#define OP_STORE_VARIABLE   ((13 << 1) | SMALLINT_MASK)

Definition at line 566 of file slate.hpp.

#define PIC_CALLEE   0

Definition at line 486 of file slate.hpp.

#define PIC_CALLEE_ARITY   1

Definition at line 487 of file slate.hpp.

#define PIC_CALLEE_COUNT   3

Definition at line 489 of file slate.hpp.

#define PIC_CALLEE_MAPS   2

Definition at line 488 of file slate.hpp.

#define PINNED_MASK   0x3F

Definition at line 439 of file slate.hpp.

#define PINNED_OFFSET   24

Definition at line 440 of file slate.hpp.

#define PRINTOP (  ) 

Definition at line 547 of file slate.hpp.

#define PROFILER_ENTRY_COUNT   4096

Definition at line 283 of file slate.hpp.

#define REG_STACK_POINTER (  )     (i->framePointer + (X))

Definition at line 595 of file slate.hpp.

#define ROLE_ENTRY_WORD_SIZE   ((sizeof(struct RoleEntry) + WORD_BYTES_MINUS_ONE) / sizeof(word_t))

Definition at line 458 of file slate.hpp.

#define SF_CLEAR   1 << 3

Definition at line 531 of file slate.hpp.

#define SF_CREATE   1 << 2

Definition at line 530 of file slate.hpp.

#define SF_READ   1

Definition at line 528 of file slate.hpp.

#define SF_WRITE   1 << 1

Definition at line 529 of file slate.hpp.

#define SLATE_BUILD_TYPE   "UNDEFINED"

Definition at line 59 of file slate.hpp.

#define SLATE_DIRECTORIES_MAXIMUM   256

Definition at line 290 of file slate.hpp.

#define SLATE_DOMAIN_IPV4   2

Definition at line 535 of file slate.hpp.

#define SLATE_DOMAIN_IPV6   3

Definition at line 536 of file slate.hpp.

#define SLATE_DOMAIN_LOCAL   1

Definition at line 534 of file slate.hpp.

#define SLATE_ERROR_RETURN   (-1)

Definition at line 280 of file slate.hpp.

#define SLATE_FILE_NAME_LENGTH   512

Definition at line 281 of file slate.hpp.

#define SLATE_FILES_MAXIMUM   256

Definition at line 289 of file slate.hpp.

#define SLATE_IMAGE_MAGIC   (word_t)0xABCDEF43

Definition at line 120 of file slate.hpp.

#define SLATE_INLINE   inline

Definition at line 126 of file slate.hpp.

#define SLATE_MEMS_MAXIMUM   1024

Definition at line 287 of file slate.hpp.

#define SLATE_NETTICKET_MAXIMUM   1024

Definition at line 288 of file slate.hpp.

#define SLATE_PROTOCOL_DEFAULT   0

Definition at line 540 of file slate.hpp.

#define SLATE_TYPE_STREAM   1

Definition at line 538 of file slate.hpp.

#define SLOT_ENTRY_WORD_SIZE   ((sizeof(struct SlotEntry) + WORD_BYTES_MINUS_ONE) / sizeof(word_t))

Definition at line 459 of file slate.hpp.

#define SMALLINT_MASK   0x1

Definition at line 438 of file slate.hpp.

#define SOCKET_RETURN (  )     (smallint_to_object(socket_return((x < 0)? -errno : x)))

Definition at line 614 of file slate.hpp.

#define SPECIAL_OOP_ADD_OVERFLOW   27

Definition at line 518 of file slate.hpp.

#define SPECIAL_OOP_APPLY_TO   32

Definition at line 523 of file slate.hpp.

#define SPECIAL_OOP_ARRAY_PROTO   5

Definition at line 496 of file slate.hpp.

#define SPECIAL_OOP_ASCII_PROTO   7

Definition at line 498 of file slate.hpp.

#define SPECIAL_OOP_BIT_SHIFT_OVERFLOW   26

Definition at line 517 of file slate.hpp.

#define SPECIAL_OOP_BYTE_ARRAY_PROTO   6

Definition at line 497 of file slate.hpp.

#define SPECIAL_OOP_CLOSURE_PROTO   15

Definition at line 506 of file slate.hpp.

#define SPECIAL_OOP_CLOSURE_WINDOW   12

Definition at line 503 of file slate.hpp.

#define SPECIAL_OOP_COMPILED_METHOD_WINDOW   13

Definition at line 504 of file slate.hpp.

#define SPECIAL_OOP_COUNT   35

Definition at line 526 of file slate.hpp.

#define SPECIAL_OOP_DIVIDE_BY_ZERO   30

Definition at line 521 of file slate.hpp.

#define SPECIAL_OOP_ENSURE_MARKER   18

Definition at line 509 of file slate.hpp.

#define SPECIAL_OOP_FALSE   4

Definition at line 495 of file slate.hpp.

#define SPECIAL_OOP_FLOAT_PROTO   11

Definition at line 502 of file slate.hpp.

#define SPECIAL_OOP_IMMUTABLE   25

Definition at line 516 of file slate.hpp.

#define SPECIAL_OOP_INTERPRETER   17

Definition at line 508 of file slate.hpp.

#define SPECIAL_OOP_KEY_NOT_FOUND_ON   24

Definition at line 515 of file slate.hpp.

#define SPECIAL_OOP_LEXICAL_CONTEXT_PROTO   16

Definition at line 507 of file slate.hpp.

#define SPECIAL_OOP_LOBBY   0

Definition at line 491 of file slate.hpp.

#define SPECIAL_OOP_MAP_PROTO   8

Definition at line 499 of file slate.hpp.

#define SPECIAL_OOP_MAY_NOT_RETURN_TO   22

Definition at line 513 of file slate.hpp.

#define SPECIAL_OOP_METHOD_DEF_PROTO   9

Definition at line 500 of file slate.hpp.

#define SPECIAL_OOP_MULTIPLY_OVERFLOW   29

Definition at line 520 of file slate.hpp.

#define SPECIAL_OOP_NIL   2

Definition at line 493 of file slate.hpp.

#define SPECIAL_OOP_NO_ROLE   1

Definition at line 492 of file slate.hpp.

#define SPECIAL_OOP_NOT_A_BOOLEAN   31

Definition at line 522 of file slate.hpp.

#define SPECIAL_OOP_NOT_FOUND_ON   19

Definition at line 510 of file slate.hpp.

#define SPECIAL_OOP_NOT_FOUND_ON_AFTER   20

Definition at line 511 of file slate.hpp.

#define SPECIAL_OOP_OPTIONALS   33

Definition at line 524 of file slate.hpp.

#define SPECIAL_OOP_PRIMITIVE_METHOD_WINDOW   14

Definition at line 505 of file slate.hpp.

#define SPECIAL_OOP_SLOT_NOT_FOUND_NAMED   23

Definition at line 514 of file slate.hpp.

#define SPECIAL_OOP_SMALL_INT_PROTO   10

Definition at line 501 of file slate.hpp.

#define SPECIAL_OOP_SUBTRACT_OVERFLOW   28

Definition at line 519 of file slate.hpp.

#define SPECIAL_OOP_TRUE   3

Definition at line 494 of file slate.hpp.

#define SPECIAL_OOP_TYPE_ERROR_ON   34

Definition at line 525 of file slate.hpp.

#define SPECIAL_OOP_WRONG_INPUTS_TO   21

Definition at line 512 of file slate.hpp.

#define SSA_NEXT_PARAM_OBJECT   (i->method->code->elements[i->codePointer++])

Definition at line 597 of file slate.hpp.

#define SSA_NEXT_PARAM_SMALLINT   ((word_t)i->method->code->elements[i->codePointer++]>>1)

Definition at line 596 of file slate.hpp.

#define SSA_REGISTER (  )     (i->stack->elements[i->framePointer + (X)])

Definition at line 594 of file slate.hpp.

#define str (  )     #s

Definition at line 75 of file slate.hpp.

#define TRUE   1

Definition at line 471 of file slate.hpp.

#define TYPE_BYTE_ARRAY   2

Definition at line 476 of file slate.hpp.

#define TYPE_OBJECT   0

Definition at line 474 of file slate.hpp.

#define TYPE_OOP_ARRAY   1

Definition at line 475 of file slate.hpp.

#define WORD_BYTES_MINUS_ONE   (sizeof(word_t)-1)

Definition at line 457 of file slate.hpp.

#define WORDT_MAX   INTPTR_MAX

Definition at line 68 of file slate.hpp.

#define xstr (  )     str(s)

Definition at line 76 of file slate.hpp.


Typedef Documentation

typedef word_t bool_t

Definition at line 65 of file slate.hpp.

typedef uint8_t byte_t

Definition at line 64 of file slate.hpp.

typedef float float_type

Definition at line 66 of file slate.hpp.

typedef uintptr_t uword_t

Definition at line 62 of file slate.hpp.

typedef word_t

Definition at line 63 of file slate.hpp.


Function Documentation

void adjust_fields_by ( struct object_heap oh,
struct Object o,
word_t  shift_amount 
)

Definition at line 675 of file object.cpp.

void adjust_object_fields_with_table ( struct object_heap oh,
byte_t memory,
word_t  memorySize,
struct ForwardPointerEntry table,
word_t  forwardPointerEntryCount 
)

Definition at line 652 of file object.cpp.

void adjust_oop_pointers_from ( struct object_heap oh,
word_t  shift_amount,
byte_t memory,
word_t  memorySize 
)

Definition at line 693 of file object.cpp.

struct Object* applyExternalLibraryPrimitive ( struct object_heap oh,
struct ByteArray fnHandle,
struct OopArray argsFormat,
struct Object callFormat,
struct Object resultFormat,
struct OopArray argsArr 
) [read]

Definition at line 236 of file external-library.cpp.

struct Object** array_elements ( struct OopArray o  )  [read]

Definition at line 107 of file object.cpp.

word_t array_size ( struct OopArray x  ) 

Definition at line 54 of file inline.hpp.

void assert_good_object ( struct object_heap oh,
struct Object obj 
)

Definition at line 7 of file gc.cpp.

byte_t* byte_array_elements ( struct ByteArray o  ) 

Definition at line 78 of file object.cpp.

byte_t byte_array_get_element ( struct Object o,
word_t  i 
)

Definition at line 83 of file object.cpp.

byte_t byte_array_set_element ( struct ByteArray o,
word_t  i,
byte_t  val 
)

Definition at line 87 of file object.cpp.

word_t byte_array_size ( struct ByteArray o  ) 

Definition at line 49 of file inline.hpp.

void cache_specials ( struct object_heap heap  ) 

Definition at line 146 of file misc.cpp.

word_t calculateMethodCallDepth ( struct object_heap oh  ) 

Definition at line 192 of file misc.cpp.

bool_t closeExternalLibrary ( struct object_heap oh,
struct ByteArray handle 
)

Definition at line 56 of file external-library.cpp.

void copy_bytes_into ( byte_t src,
word_t  n,
byte_t dst 
)

Definition at line 71 of file misc.cpp.

void copy_used_objects ( struct object_heap oh,
struct Object **  writeObject,
byte_t memoryStart,
word_t  memorySize,
struct ForwardPointerEntry table,
word_t  forwardPointerEntryCount 
)

Definition at line 638 of file object.cpp.

void copy_words_into ( void *  src,
word_t  n,
void *  dst 
)

Definition at line 40 of file misc.cpp.

int dir_close ( struct object_heap oh,
int  dirHandle 
)

Definition at line 51 of file external-directory.cpp.

bool_t dir_delete ( struct object_heap oh,
char *  dir 
)

Definition at line 143 of file external-directory.cpp.

int dir_getcwd ( struct ByteArray wdBuffer  ) 

Definition at line 97 of file external-directory.cpp.

bool_t dir_make ( struct object_heap oh,
char *  dir 
)

Definition at line 135 of file external-directory.cpp.

void dir_module_init ( struct object_heap oh  ) 

Definition at line 8 of file external-directory.cpp.

int dir_open ( struct object_heap oh,
struct ByteArray dirName 
)

Definition at line 26 of file external-directory.cpp.

int dir_read ( struct object_heap oh,
int  dirHandle,
struct ByteArray entNameBuffer 
)

Definition at line 61 of file external-directory.cpp.

bool_t dir_rename_to ( struct object_heap oh,
char *  src,
char *  dest 
)

Definition at line 201 of file external-directory.cpp.

int dir_setcwd ( struct ByteArray newWd  ) 

Definition at line 106 of file external-directory.cpp.

void error ( const char *  str  ) 

Definition at line 3 of file misc.cpp.

word_t extractBigInteger ( struct ByteArray bigInt  ) 

Definition at line 186 of file external-library.cpp.

word_t extractCString ( struct ByteArray array,
byte_t buffer,
word_t  bufferSize 
)

Definition at line 207 of file misc.cpp.

word_t file_allocate ( struct object_heap oh  ) 

Definition at line 15 of file external-files.cpp.

void file_close ( struct object_heap oh,
word_t  file 
)

Definition at line 33 of file external-files.cpp.

bool_t file_delete ( struct object_heap oh,
char *  filename 
)

Definition at line 236 of file external-files.cpp.

bool_t file_handle_isvalid ( struct object_heap oh,
word_t  file 
)

Definition at line 11 of file external-files.cpp.

struct Object* file_information ( struct object_heap oh,
char *  filename 
) [read]

Definition at line 249 of file external-files.cpp.

bool_t file_isatend ( struct object_heap oh,
word_t  file 
)

Definition at line 209 of file external-files.cpp.

void file_module_init ( struct object_heap oh  ) 

Definition at line 6 of file external-files.cpp.

word_t file_open ( struct object_heap oh,
struct ByteArray name,
word_t  flags 
)

Definition at line 44 of file external-files.cpp.

word_t file_read ( struct object_heap oh,
word_t  file,
word_t  n,
char *  bytes 
)

Definition at line 149 of file external-files.cpp.

bool_t file_rename_to ( struct object_heap oh,
char *  src,
char *  dest 
)

Definition at line 267 of file external-files.cpp.

word_t file_seek ( struct object_heap oh,
word_t  file,
word_t  offset 
)

Definition at line 180 of file external-files.cpp.

word_t file_sizeof ( struct object_heap oh,
word_t  file 
)

Definition at line 160 of file external-files.cpp.

word_t file_tell ( struct object_heap oh,
word_t  file 
)

Definition at line 194 of file external-files.cpp.

word_t file_write ( struct object_heap oh,
word_t  file,
word_t  n,
char *  bytes 
)

Definition at line 138 of file external-files.cpp.

void fill_bytes_with ( byte_t dst,
word_t  n,
byte_t  value 
)

Definition at line 8 of file misc.cpp.

void fill_words_with ( word_t *  dst,
word_t  n,
word_t  value 
)

Definition at line 21 of file misc.cpp.

float_type* float_part ( struct ByteArray o  ) 

Definition at line 111 of file object.cpp.

int fork2 (  ) 

Definition at line 220 of file misc.cpp.

struct ForwardPointerEntry* forward_pointer_hash_add ( struct ForwardPointerEntry table,
word_t  forwardPointerEntryCount,
struct Object fromObj,
struct Object toObj 
) [read]

Definition at line 624 of file object.cpp.

struct ForwardPointerEntry* forward_pointer_hash_get ( struct ForwardPointerEntry table,
word_t  forwardPointerEntryCount,
struct Object fromObj 
) [read]

Definition at line 603 of file object.cpp.

struct Object* gc_allocate ( struct object_heap oh,
word_t  bytes 
) [read]

Definition at line 229 of file gc.cpp.

struct Object* gc_allocate_old ( struct object_heap oh,
word_t  bytes 
) [read]

Definition at line 199 of file gc.cpp.

struct Object* get_special ( struct object_heap oh,
word_t  special_index 
) [read]

Definition at line 33 of file inline.hpp.

SLATE_INLINE volatile int64_t getRealTimeClock (  ) 

Definition at line 189 of file inline.hpp.

int64_t getTickCount (  ) 

Definition at line 139 of file misc.cpp.

word_t hash_selector ( struct object_heap oh,
struct Symbol name,
struct Object arguments[],
word_t  n 
)

Definition at line 172 of file inline.hpp.

struct Object* heap_allocate ( struct object_heap oh,
word_t  words 
) [read]

Definition at line 795 of file gc.cpp.

struct Object* heap_allocate_with_payload ( struct object_heap oh,
word_t  words,
word_t  payload_size 
) [read]

Definition at line 779 of file gc.cpp.

struct Object* heap_clone ( struct object_heap oh,
struct Object proto 
) [read]

Definition at line 799 of file gc.cpp.

struct ByteArray* heap_clone_byte_array_sized ( struct object_heap oh,
struct Object proto,
word_t  bytes 
) [read]

Definition at line 852 of file gc.cpp.

struct Map* heap_clone_map ( struct object_heap oh,
struct Map map 
) [read]

Definition at line 827 of file gc.cpp.

struct OopArray* heap_clone_oop_array_sized ( struct object_heap oh,
struct Object proto,
word_t  size 
) [read]

Definition at line 835 of file gc.cpp.

struct Object* heap_clone_special ( struct object_heap oh,
word_t  special_index 
) [read]

Definition at line 823 of file gc.cpp.

void heap_close ( struct object_heap oh  ) 

Definition at line 161 of file gc.cpp.

struct Object* heap_find_first_old_free ( struct object_heap oh,
struct Object obj,
word_t  bytes 
) [read]

Definition at line 190 of file gc.cpp.

struct Object* heap_find_first_young_free ( struct object_heap oh,
struct Object obj,
word_t  bytes 
) [read]

Definition at line 182 of file gc.cpp.

void heap_finish_full_gc ( struct object_heap oh  ) 

Definition at line 328 of file gc.cpp.

void heap_finish_gc ( struct object_heap oh  ) 

Definition at line 322 of file gc.cpp.

void heap_forward ( struct object_heap oh,
struct Object x,
struct Object y 
)

Definition at line 768 of file gc.cpp.

void heap_forward_from ( struct object_heap oh,
struct Object x,
struct Object y,
byte_t memory,
word_t  memorySize 
)

Definition at line 753 of file gc.cpp.

void heap_free_and_coalesce_unmarked ( struct object_heap oh,
byte_t memory,
word_t  memorySize 
)

Definition at line 426 of file gc.cpp.

void heap_free_object ( struct object_heap oh,
struct Object obj 
)

Definition at line 297 of file gc.cpp.

void heap_full_gc ( struct object_heap oh  ) 

Definition at line 699 of file gc.cpp.

void heap_gc ( struct object_heap oh  ) 

Definition at line 724 of file gc.cpp.

bool_t heap_initialize ( struct object_heap oh,
word_t  size,
word_t  limit,
word_t  young_limit,
word_t  next_hash,
word_t  special_oop,
word_t  cdid 
)

Definition at line 114 of file gc.cpp.

void heap_integrity_check ( struct object_heap oh,
byte_t memory,
word_t  memorySize 
)

struct Object* heap_make_free_space ( struct object_heap oh,
struct Object obj,
word_t  words 
) [read]

Definition at line 71 of file gc.cpp.

struct Object* heap_make_used_space ( struct object_heap oh,
struct Object obj,
word_t  words 
) [read]

Definition at line 92 of file gc.cpp.

void heap_mark ( struct object_heap oh,
struct Object obj 
)

Definition at line 354 of file gc.cpp.

void heap_mark_fields ( struct object_heap oh,
struct Object o 
)

Definition at line 399 of file gc.cpp.

void heap_mark_fixed ( struct object_heap oh,
bool_t  mark_old 
)

void heap_mark_interpreter_stack ( struct object_heap oh,
bool_t  mark_old 
)

Definition at line 388 of file gc.cpp.

void heap_mark_pinned_old ( struct object_heap oh  ) 

Definition at line 673 of file gc.cpp.

void heap_mark_pinned_young ( struct object_heap oh  ) 

Definition at line 665 of file gc.cpp.

void heap_mark_recursively ( struct object_heap oh,
bool_t  mark_old 
)

Definition at line 414 of file gc.cpp.

void heap_mark_remembered ( struct object_heap oh  ) 

Definition at line 609 of file gc.cpp.

void heap_mark_specials ( struct object_heap oh,
bool_t  mark_old 
)

Definition at line 377 of file gc.cpp.

struct ByteArray* heap_new_byte_array_with ( struct object_heap oh,
word_t  byte_size,
byte_t bytes 
) [read]

Definition at line 871 of file gc.cpp.

struct Object* heap_new_cstring ( struct object_heap oh,
byte_t input 
) [read]

Definition at line 232 of file external-library.cpp.

struct ByteArray* heap_new_float ( struct object_heap oh  )  [read]

Definition at line 831 of file gc.cpp.

word_t heap_new_hash ( struct object_heap oh  ) 

Definition at line 40 of file object.cpp.

struct ByteArray* heap_new_string_with ( struct object_heap oh,
word_t  byte_size,
byte_t bytes 
) [read]

Definition at line 881 of file gc.cpp.

void heap_notice_forwarded_object ( struct object_heap oh,
struct Object from,
struct Object to 
)

Definition at line 504 of file gc.cpp.

void heap_pin_object ( struct object_heap oh,
struct Object x 
)

Definition at line 75 of file inline.hpp.

void heap_print_marks ( struct object_heap oh,
byte_t memory,
word_t  memorySize 
)

Definition at line 386 of file debug.cpp.

void heap_print_objects ( struct object_heap oh,
byte_t memory,
word_t  memorySize 
)

Definition at line 332 of file debug.cpp.

void heap_remember_old_object ( struct object_heap oh,
struct Object x 
)

Definition at line 341 of file gc.cpp.

void heap_start_gc ( struct object_heap oh  ) 

Definition at line 335 of file gc.cpp.

void heap_store_into ( struct object_heap oh,
struct Object src,
struct Object dest 
)

Definition at line 7 of file inline.hpp.

void heap_tenure ( struct object_heap oh  ) 

Definition at line 512 of file gc.cpp.

void heap_unmark_all ( struct object_heap oh,
byte_t memory,
word_t  memorySize 
)

Definition at line 461 of file gc.cpp.

void heap_unpin_object ( struct object_heap oh,
struct Object x 
)

Definition at line 84 of file inline.hpp.

void heap_update_forwarded_pointers ( struct object_heap oh,
byte_t memory,
word_t  memorySize 
)

Definition at line 477 of file gc.cpp.

word_t heap_what_points_to ( struct object_heap oh,
struct Object x,
bool_t  print 
)

Definition at line 379 of file debug.cpp.

word_t heap_what_points_to_in ( struct object_heap oh,
struct Object x,
byte_t memory,
word_t  memorySize,
bool_t  print 
)

Definition at line 358 of file debug.cpp.

void heap_zero_pin_counts_from ( struct object_heap oh,
byte_t memory,
word_t  memorySize 
)

Definition at line 99 of file gc.cpp.

byte_t* inc_ptr ( struct Object obj,
word_t  amt 
)

Definition at line 153 of file inline.hpp.

struct Object* injectBigInteger ( struct object_heap oh,
word_t  value 
) [read]

Definition at line 208 of file external-library.cpp.

void interpret ( struct object_heap oh  ) 

Definition at line 677 of file interpreter.cpp.

void interpreter_apply_to_arity_with_optionals ( struct object_heap oh,
struct Interpreter i,
struct Closure closure,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 168 of file interpreter.cpp.

void interpreter_branch_keyed ( struct object_heap oh,
struct Interpreter i,
struct OopArray table,
struct Object oop 
)

Definition at line 618 of file interpreter.cpp.

bool_t interpreter_dispatch_optional_keyword ( struct object_heap oh,
struct Interpreter i,
struct Object key,
struct Object value 
)

Definition at line 135 of file interpreter.cpp.

void interpreter_dispatch_optionals ( struct object_heap oh,
struct Interpreter i,
struct OopArray opts 
)

Definition at line 158 of file interpreter.cpp.

void interpreter_grow_stack ( struct object_heap oh,
struct Interpreter i,
word_t  minimum 
)

Definition at line 4 of file interpreter.cpp.

void interpreter_resend_message ( struct object_heap oh,
struct Interpreter i,
word_t  n,
word_t  resultStackPointer 
)

Definition at line 516 of file interpreter.cpp.

bool_t interpreter_return_result ( struct object_heap oh,
struct Interpreter i,
word_t  context_depth,
struct Object result,
word_t  prevCodePointer 
)

Definition at line 395 of file interpreter.cpp.

void interpreter_signal ( struct object_heap oh,
struct Interpreter i,
struct Object signal,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 97 of file interpreter.cpp.

void interpreter_signal_with ( struct object_heap oh,
struct Interpreter i,
struct Object signal,
struct Object arg,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 112 of file interpreter.cpp.

void interpreter_signal_with_with ( struct object_heap oh,
struct Interpreter i,
struct Object signal,
struct Object arg,
struct Object arg2,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 120 of file interpreter.cpp.

void interpreter_signal_with_with_with ( struct object_heap oh,
struct Interpreter i,
struct Object signal,
struct Object arg,
struct Object arg2,
struct Object arg3,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 127 of file interpreter.cpp.

void interpreter_stack_allocate ( struct object_heap oh,
struct Interpreter i,
word_t  n 
)

Definition at line 19 of file interpreter.cpp.

struct Object* interpreter_stack_pop ( struct object_heap oh,
struct Interpreter i 
) [read]

Definition at line 49 of file interpreter.cpp.

void interpreter_stack_pop_amount ( struct object_heap oh,
struct Interpreter i,
word_t  amount 
)

Definition at line 69 of file interpreter.cpp.

void interpreter_stack_push ( struct object_heap oh,
struct Interpreter i,
struct Object value 
)

Definition at line 33 of file interpreter.cpp.

bool_t lookupExternalLibraryPrimitive ( struct object_heap oh,
struct ByteArray handle,
struct ByteArray symname,
struct ByteArray ptr 
)

Definition at line 69 of file external-library.cpp.

word_t max ( word_t  x,
word_t  y 
)

Definition at line 159 of file misc.cpp.

void memarea_addref ( struct object_heap oh,
int  memory 
)

Definition at line 36 of file external-memory.cpp.

int memarea_addressof ( struct object_heap oh,
int  memory,
int  offset,
byte_t addressBuffer 
)

Definition at line 107 of file external-memory.cpp.

void memarea_close ( struct object_heap oh,
int  memory 
)

Definition at line 26 of file external-memory.cpp.

int memarea_handle_isvalid ( struct object_heap oh,
int  memory 
)

Definition at line 12 of file external-memory.cpp.

void memarea_module_init ( struct object_heap oh  ) 

Definition at line 6 of file external-memory.cpp.

int memarea_open ( struct object_heap oh,
int  size 
)

Definition at line 41 of file external-memory.cpp.

int memarea_read ( struct object_heap oh,
int  memory,
int  memStart,
int  n,
byte_t bytes 
)

Definition at line 73 of file external-memory.cpp.

int memarea_resize ( struct object_heap oh,
int  memory,
int  size 
)

Definition at line 91 of file external-memory.cpp.

int memarea_sizeof ( struct object_heap oh,
int  memory 
)

Definition at line 87 of file external-memory.cpp.

int memarea_write ( struct object_heap oh,
int  memory,
int  memStart,
int  n,
byte_t bytes 
)

Definition at line 59 of file external-memory.cpp.

word_t memory_string_to_bytes ( char *  str  ) 

Definition at line 31 of file vm.cpp.

struct MethodDefinition* method_check_cache ( struct object_heap oh,
struct Symbol selector,
struct Object arguments[],
word_t  n 
) [read]

Definition at line 26 of file method.cpp.

struct MethodDefinition* method_define ( struct object_heap oh,
struct Object method,
struct Symbol selector,
struct Object args[],
word_t  n 
) [read]

Definition at line 592 of file method.cpp.

struct MethodDefinition* method_dispatch_on ( struct object_heap oh,
struct Symbol name,
struct Object arguments[],
word_t  arity,
struct Object resendMethod 
) [read]

Definition at line 64 of file method.cpp.

void method_flush_cache ( struct object_heap oh,
struct Symbol selector 
)

Definition at line 43 of file gc.cpp.

struct MethodDefinition* method_is_on_arity ( struct object_heap oh,
struct Object method,
struct Symbol selector,
struct Object args[],
word_t  n 
) [read]

Definition at line 567 of file method.cpp.

void method_optimize ( struct object_heap oh,
struct CompiledMethod method 
)

Definition at line 325 of file method.cpp.

void method_pic_add_callee ( struct object_heap oh,
struct CompiledMethod callerMethod,
struct MethodDefinition def,
word_t  arity,
struct Object args[] 
)

Definition at line 486 of file method.cpp.

void method_pic_add_callee_backreference ( struct object_heap oh,
struct CompiledMethod caller,
struct CompiledMethod callee 
)

Definition at line 459 of file method.cpp.

struct MethodDefinition* method_pic_find_callee ( struct object_heap oh,
struct CompiledMethod callerMethod,
struct Symbol selector,
word_t  arity,
struct Object args[] 
) [read]

Definition at line 532 of file method.cpp.

void method_pic_flush_caller_pics ( struct object_heap oh,
struct CompiledMethod callee 
)

Definition at line 443 of file method.cpp.

void method_pic_setup ( struct object_heap oh,
struct CompiledMethod caller 
)

Definition at line 382 of file method.cpp.

void method_remove_optimized_sending ( struct object_heap oh,
struct Symbol symbol 
)

Definition at line 289 of file method.cpp.

void method_save_cache ( struct object_heap oh,
struct MethodDefinition md,
struct Symbol name,
struct Object arguments[],
word_t  n 
)

Definition at line 12 of file method.cpp.

void method_unoptimize ( struct object_heap oh,
struct CompiledMethod method 
)

Definition at line 275 of file method.cpp.

word_t object_add_role_at ( struct object_heap oh,
struct Object obj,
struct Symbol selector,
word_t  position,
struct MethodDefinition method 
)

Definition at line 415 of file object.cpp.

struct Object* object_add_slot_named ( struct object_heap oh,
struct Object obj,
struct Symbol name,
struct Object value 
) [read]

Definition at line 547 of file object.cpp.

struct Object* object_add_slot_named_at ( struct object_heap oh,
struct Object obj,
struct Symbol name,
struct Object value,
word_t  offset 
) [read]

Definition at line 505 of file object.cpp.

struct Object* object_after ( struct object_heap heap,
struct Object o 
) [read]

Definition at line 141 of file inline.hpp.

struct Object** object_array_elements ( struct Object o  )  [read]

Definition at line 103 of file object.cpp.

struct Object* object_array_get_element ( struct Object o,
word_t  i 
) [read]

Definition at line 92 of file object.cpp.

word_t object_array_offset ( struct Object o  ) 

Definition at line 74 of file object.cpp.

struct Object* object_array_set_element ( struct object_heap oh,
struct Object o,
word_t  i,
struct Object val 
) [read]

Definition at line 97 of file object.cpp.

word_t object_array_size ( struct Object o  ) 

Definition at line 42 of file inline.hpp.

word_t object_byte_size ( struct Object o  ) 

Definition at line 59 of file inline.hpp.

void object_change_map ( struct object_heap oh,
struct Object obj,
struct Map map 
)

Definition at line 403 of file object.cpp.

void object_decrement_pin_count ( struct Object xxx  ) 

Definition at line 110 of file inline.hpp.

word_t object_first_slot_offset ( struct Object o  ) 

Definition at line 125 of file object.cpp.

void object_forward_pointers_to ( struct object_heap oh,
struct Object o,
struct Object x,
struct Object y 
)

Definition at line 275 of file gc.cpp.

struct Map* object_get_map ( struct object_heap oh,
struct Object o 
) [read]

Definition at line 37 of file inline.hpp.

struct MethodDefinition* object_has_role_named_at ( struct Object obj,
struct Symbol selector,
word_t  position,
struct Object method 
) [read]

Definition at line 385 of file object.cpp.

word_t object_hash ( struct Object xxx  ) 

Definition at line 27 of file inline.hpp.

bool_t object_in_memory ( struct object_heap oh,
struct Object oop,
byte_t memory,
word_t  memorySize 
)

Definition at line 136 of file inline.hpp.

void object_increment_pin_count ( struct Object xxx  ) 

Definition at line 93 of file inline.hpp.

bool_t object_is_free ( struct Object o  ) 

Definition at line 148 of file inline.hpp.

word_t object_is_immutable ( struct Object o  ) 

Definition at line 62 of file object.cpp.

bool_t object_is_marked ( struct object_heap heap,
struct Object o 
)

Definition at line 37 of file gc.cpp.

bool_t object_is_old ( struct object_heap oh,
struct Object oop 
)

Definition at line 126 of file inline.hpp.

bool_t object_is_pinned ( struct object_heap oh,
struct Object x 
)

Definition at line 170 of file gc.cpp.

bool_t object_is_remembered ( struct object_heap oh,
struct Object x 
)

Definition at line 174 of file gc.cpp.

bool_t object_is_smallint ( struct Object xxx  ) 

Definition at line 19 of file inline.hpp.

bool_t object_is_special ( struct object_heap oh,
struct Object obj 
)

Definition at line 64 of file object.cpp.

bool_t object_is_young ( struct object_heap oh,
struct Object obj 
)

Definition at line 131 of file inline.hpp.

word_t object_last_oop_offset ( struct Object o  ) 

Definition at line 136 of file object.cpp.

word_t object_last_slot_offset ( struct Object o  ) 

Definition at line 131 of file object.cpp.

word_t object_markbit ( struct Object xxx  ) 

Definition at line 26 of file inline.hpp.

word_t object_pin_count ( struct Object xxx  ) 

Definition at line 31 of file inline.hpp.

word_t object_remove_role ( struct object_heap oh,
struct Object obj,
struct Symbol selector,
struct MethodDefinition method 
)

Definition at line 477 of file object.cpp.

struct Object* object_remove_slot ( struct object_heap oh,
struct Object obj,
struct Symbol name 
) [read]

Definition at line 561 of file object.cpp.

void object_represent ( struct object_heap oh,
struct Object obj,
struct Map map 
)

Definition at line 409 of file object.cpp.

void object_set_format ( struct Object xxx,
word_t  type 
)

Definition at line 22 of file object.cpp.

void object_set_idhash ( struct Object xxx,
word_t  hash 
)

Definition at line 30 of file object.cpp.

void object_set_mark ( struct object_heap oh,
struct Object xxx 
)

Definition at line 13 of file object.cpp.

void object_set_size ( struct Object xxx,
word_t  size 
)

Definition at line 26 of file object.cpp.

word_t object_size ( struct Object xxx  ) 

Definition at line 28 of file inline.hpp.

struct Object* object_slot_value_at_offset ( struct Object o,
word_t  offset 
) [read]

Definition at line 166 of file inline.hpp.

struct Object* object_slot_value_at_offset_put ( struct object_heap oh,
struct Object o,
word_t  offset,
struct Object value 
) [read]

Definition at line 145 of file object.cpp.

word_t object_to_smallint ( struct Object xxx  ) 

Definition at line 20 of file inline.hpp.

word_t object_total_size ( struct Object o  ) 

Definition at line 67 of file inline.hpp.

word_t object_type ( struct Object xxx  ) 

Definition at line 30 of file inline.hpp.

void object_unmark ( struct object_heap oh,
struct Object xxx 
)

Definition at line 17 of file object.cpp.

word_t object_word_size ( struct Object o  ) 

Definition at line 157 of file inline.hpp.

void object_zero_pin_count ( struct Object xxx  ) 

Definition at line 8 of file object.cpp.

bool_t oop_is_object ( word_t  xxx  ) 

Definition at line 24 of file inline.hpp.

bool_t oop_is_smallint ( word_t  xxx  ) 

Definition at line 25 of file inline.hpp.

word_t opcode_arg_length ( std::vector< struct Object * > &  code,
word_t  start 
)

Definition at line 66 of file optimizer.cpp.

word_t opcode_base_length ( word_t  rawop  ) 

Definition at line 107 of file optimizer.cpp.

word_t opcode_length ( std::vector< struct Object * > &  code,
word_t  start 
)

Definition at line 61 of file optimizer.cpp.

word_t opcode_register_locations ( word_t  rawop  ) 

Definition at line 187 of file optimizer.cpp.

bool_t openExternalLibrary ( struct object_heap oh,
struct ByteArray libname,
struct ByteArray handle 
)

Definition at line 26 of file external-library.cpp.

void optimizer_append_code_to_vector ( struct OopArray code,
std::vector< struct Object * > &  vector 
)

Definition at line 222 of file optimizer.cpp.

void optimizer_delete_code ( std::vector< struct Object * > &  code,
size_t  offset,
word_t  amount 
)

Definition at line 295 of file optimizer.cpp.

void optimizer_inline_callees ( struct object_heap oh,
struct CompiledMethod method 
)

Definition at line 483 of file optimizer.cpp.

void optimizer_insert_code ( std::vector< struct Object * > &  code,
size_t  offset,
std::vector< struct Object * > &  newCode 
)

Definition at line 259 of file optimizer.cpp.

bool optimizer_method_can_be_inlined ( struct object_heap oh,
struct CompiledMethod method 
)

Definition at line 358 of file optimizer.cpp.

bool optimizer_method_can_be_optimized ( struct object_heap oh,
struct CompiledMethod method 
)

Definition at line 336 of file optimizer.cpp.

void optimizer_offset_registers ( std::vector< struct Object * > &  code,
int  offset 
)

Definition at line 233 of file optimizer.cpp.

void payload_set_size ( struct Object xxx,
word_t  size 
)

Definition at line 34 of file object.cpp.

word_t payload_size ( struct Object xxx  ) 

Definition at line 29 of file inline.hpp.

void prim_addressOf ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1393 of file primitives.cpp.

void prim_applyExternal ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1452 of file primitives.cpp.

void prim_applyto ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray optionals,
word_t  resultStackPointer 
)

Definition at line 211 of file primitives.cpp.

void prim_as_accessor ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 402 of file primitives.cpp.

void prim_as_method_on ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 315 of file primitives.cpp.

void prim_at ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 457 of file primitives.cpp.

void prim_at_put ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 471 of file primitives.cpp.

void prim_at_slot_named ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 69 of file primitives.cpp.

void prim_at_slot_named_put ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 91 of file primitives.cpp.

void prim_atEndOf ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 567 of file primitives.cpp.

void prim_bitand ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2052 of file primitives.cpp.

void prim_bitnot ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2067 of file primitives.cpp.

void prim_bitor ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2057 of file primitives.cpp.

void prim_bitshift ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2120 of file primitives.cpp.

void prim_bitxor ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2062 of file primitives.cpp.

void prim_bytearray_newsize ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 507 of file primitives.cpp.

void prim_byteat ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 547 of file primitives.cpp.

void prim_byteat_put ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 525 of file primitives.cpp.

void prim_bytesize ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 521 of file primitives.cpp.

void prim_bytesPerWord ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1196 of file primitives.cpp.

void prim_clone ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 121 of file primitives.cpp.

void prim_clone_setting_slots ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 130 of file primitives.cpp.

void prim_clone_with_slot_valued ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 156 of file primitives.cpp.

void prim_clone_without_slot ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 167 of file primitives.cpp.

void prim_cloneSystem ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1617 of file primitives.cpp.

void prim_close ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1050 of file primitives.cpp.

void prim_closePipe ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 630 of file primitives.cpp.

void prim_ensure ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 268 of file primitives.cpp.

void prim_equals ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2040 of file primitives.cpp.

void prim_exit ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2028 of file primitives.cpp.

void prim_exponent ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2097 of file primitives.cpp.

void prim_extlibError ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1446 of file primitives.cpp.

void prim_findon ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 255 of file primitives.cpp.

void prim_fixme ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 13 of file primitives.cpp.

void prim_float_divide ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2242 of file primitives.cpp.

void prim_float_equals ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2202 of file primitives.cpp.

void prim_float_exp ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2263 of file primitives.cpp.

void prim_float_less_than ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2211 of file primitives.cpp.

void prim_float_ln ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2256 of file primitives.cpp.

void prim_float_minus ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2227 of file primitives.cpp.

void prim_float_plus ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2220 of file primitives.cpp.

void prim_float_raisedTo ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2249 of file primitives.cpp.

void prim_float_sin ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2270 of file primitives.cpp.

void prim_float_times ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2235 of file primitives.cpp.

void prim_flush_output ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 584 of file primitives.cpp.

void prim_forward_to ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 44 of file primitives.cpp.

void prim_frame_pointer_of ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1592 of file primitives.cpp.

void prim_freeAddrInfoResult ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 940 of file primitives.cpp.

void prim_getAddrInfo ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 850 of file primitives.cpp.

void prim_getAddrInfoResult ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 884 of file primitives.cpp.

void prim_getcwd ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

void prim_handle_for ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

file=args[0],

Definition at line 591 of file primitives.cpp.

void prim_handle_for_input ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

file=args[0],

Definition at line 617 of file primitives.cpp.

void prim_handleForNew ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

file=args[0],

Definition at line 604 of file primitives.cpp.

void prim_identity_hash ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 25 of file primitives.cpp.

void prim_identity_hash_univ ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 32 of file primitives.cpp.

void prim_isIdenticalTo ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 21 of file primitives.cpp.

void prim_less_than ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2044 of file primitives.cpp.

void prim_library_close ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1423 of file primitives.cpp.

void prim_library_open ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1412 of file primitives.cpp.

void prim_map ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 180 of file primitives.cpp.

void prim_memory_addRef ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1504 of file primitives.cpp.

void prim_memory_close ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1483 of file primitives.cpp.

void prim_memory_new ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1465 of file primitives.cpp.

void prim_memory_read ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1515 of file primitives.cpp.

void prim_memory_resizeTo ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1559 of file primitives.cpp.

void prim_memory_size ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1493 of file primitives.cpp.

void prim_memory_write ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1537 of file primitives.cpp.

void prim_minus ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2152 of file primitives.cpp.

void prim_ooparray_newsize ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 489 of file primitives.cpp.

void prim_plus ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2080 of file primitives.cpp.

void prim_positionOf ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1150 of file primitives.cpp.

void prim_procAddressOf ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1434 of file primitives.cpp.

void prim_quo ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2186 of file primitives.cpp.

void prim_read_from_into_starting_at ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1122 of file primitives.cpp.

void prim_readConsole_from_into_starting_at ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1109 of file primitives.cpp.

void prim_readFromPipe ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 644 of file primitives.cpp.

void prim_removefrom ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 368 of file primitives.cpp.

void prim_reposition_to ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1142 of file primitives.cpp.

void prim_run_args_into ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1780 of file primitives.cpp.

void prim_save_image ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1956 of file primitives.cpp.

void prim_selectOnReadPipesFor ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 81 of file socket.cpp.

void prim_selectOnWritePipesFor ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 701 of file primitives.cpp.

void prim_send_to ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray optionals,
word_t  resultStackPointer 
)

Definition at line 287 of file primitives.cpp.

void prim_send_to_through ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray optionals,
word_t  resultStackPointer 
)

Definition at line 300 of file primitives.cpp.

void prim_set_map ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 193 of file primitives.cpp.

void prim_setcwd ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

void prim_significand ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2103 of file primitives.cpp.

void prim_size ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 501 of file primitives.cpp.

void prim_sizeOf ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 577 of file primitives.cpp.

void prim_smallint_at_slot_named ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1572 of file primitives.cpp.

void prim_smallIntegerMaximum ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2076 of file primitives.cpp.

void prim_smallIntegerMinimum ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2072 of file primitives.cpp.

void prim_socketAccept ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 778 of file primitives.cpp.

void prim_socketBind ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 807 of file primitives.cpp.

void prim_socketConnect ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 819 of file primitives.cpp.

void prim_socketCreate ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 739 of file primitives.cpp.

void prim_socketCreateIP ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 959 of file primitives.cpp.

void prim_socketGetError ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 832 of file primitives.cpp.

void prim_socketListen ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 764 of file primitives.cpp.

void prim_times ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2168 of file primitives.cpp.

void prim_timeSinceEpoch ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1375 of file primitives.cpp.

void prim_withSignificand_exponent ( struct object_heap oh,
struct Object args[],
word_t  n,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 2109 of file primitives.cpp.

void prim_write_to_from_starting_at ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1132 of file primitives.cpp.

void prim_write_to_starting_at ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 1034 of file primitives.cpp.

void prim_writeToPipe ( struct object_heap oh,
struct Object args[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 673 of file primitives.cpp.

void print_backtrace ( struct object_heap oh  ) 

Definition at line 262 of file debug.cpp.

void print_byte_array ( struct Object o  ) 

Definition at line 36 of file debug.cpp.

void print_code ( struct object_heap oh,
std::vector< struct Object * >  code 
)

Definition at line 44 of file optimizer.cpp.

void print_code_disassembled ( struct object_heap oh,
struct OopArray code 
)

Definition at line 433 of file debug.cpp.

void print_detail ( struct object_heap oh,
struct Object o 
)

Definition at line 165 of file debug.cpp.

void print_object ( struct Object oop  ) 

Definition at line 7 of file debug.cpp.

void print_object_with_depth ( struct object_heap oh,
struct Object o,
word_t  depth,
word_t  max_depth 
)

Definition at line 57 of file debug.cpp.

void print_pic_entries ( struct object_heap oh,
struct CompiledMethod method 
)

Definition at line 416 of file debug.cpp.

bool_t print_printname ( struct object_heap oh,
struct Object o 
)

Definition at line 169 of file debug.cpp.

void print_stack ( struct object_heap oh  ) 

Definition at line 240 of file debug.cpp.

void print_stack_types ( struct object_heap oh,
word_t  last_count 
)

Definition at line 250 of file debug.cpp.

void print_symbol ( struct Symbol name  ) 

Definition at line 27 of file debug.cpp.

void print_type ( struct object_heap oh,
struct Object o 
)

Definition at line 190 of file debug.cpp.

void profiler_delete_method ( struct object_heap oh,
struct Object method 
)

Definition at line 123 of file profiler.cpp.

void profiler_enter_method ( struct object_heap oh,
struct Object fromMethod,
struct Object toMethod,
bool_t  push 
)

Definition at line 28 of file profiler.cpp.

void profiler_notice_forwarded_object ( struct object_heap oh,
struct Object from,
struct Object to 
)

Definition at line 85 of file profiler.cpp.

void profiler_start ( struct object_heap oh  ) 

Definition at line 3 of file profiler.cpp.

void profiler_stop ( struct object_heap oh  ) 

Definition at line 22 of file profiler.cpp.

int readExternalLibraryError ( struct ByteArray messageBuffer  ) 

Definition at line 97 of file external-library.cpp.

word_t role_table_accommodate ( struct RoleTable roles,
word_t  n 
)

Definition at line 268 of file object.cpp.

word_t role_table_capacity ( struct RoleTable roles  ) 

Definition at line 120 of file object.cpp.

word_t role_table_empty_space ( struct object_heap oh,
struct RoleTable roles 
)

Definition at line 303 of file object.cpp.

struct RoleEntry* role_table_entry_for_inserting_name ( struct object_heap oh,
struct RoleTable roles,
struct Symbol name 
) [read]

Definition at line 179 of file object.cpp.

struct RoleEntry* role_table_entry_for_name ( struct object_heap oh,
struct RoleTable roles,
struct Symbol name 
) [read]

Definition at line 153 of file object.cpp.

struct RoleTable* role_table_grow_excluding ( struct object_heap oh,
struct RoleTable roles,
word_t  n,
struct MethodDefinition method 
) [read]

Definition at line 326 of file object.cpp.

struct RoleEntry* role_table_insert ( struct object_heap oh,
struct RoleTable roles,
struct Symbol name 
) [read]

Definition at line 203 of file object.cpp.

void send_to_through_arity_with_optionals ( struct object_heap oh,
struct Symbol selector,
struct Object args[],
struct Object dispatchers[],
word_t  arity,
struct OopArray opts,
word_t  resultStackPointer 
)

Definition at line 290 of file interpreter.cpp.

word_t slot_table_accommodate ( struct SlotTable roles,
word_t  n 
)

Definition at line 285 of file object.cpp.

word_t slot_table_capacity ( struct SlotTable roles  ) 

Definition at line 116 of file object.cpp.

word_t slot_table_empty_space ( struct object_heap oh,
struct SlotTable slots 
)

Definition at line 314 of file object.cpp.

struct SlotEntry* slot_table_entry_for_inserting_name ( struct object_heap oh,
struct SlotTable slots,
struct Symbol name 
) [read]

Definition at line 244 of file object.cpp.

struct SlotEntry* slot_table_entry_for_name ( struct object_heap oh,
struct SlotTable slots,
struct Symbol name 
) [read]

Definition at line 218 of file object.cpp.

struct SlotTable* slot_table_grow_excluding ( struct object_heap oh,
struct SlotTable slots,
word_t  n,
struct Symbol excluding 
) [read]

Definition at line 349 of file object.cpp.

void slot_table_relocate_by ( struct object_heap oh,
struct SlotTable slots,
word_t  offset,
word_t  amount 
)

Definition at line 370 of file object.cpp.

word_t smallint_fits_object ( word_t  i  ) 

Definition at line 56 of file object.cpp.

struct Object* smallint_to_object ( word_t  xxx  )  [read]

Definition at line 21 of file inline.hpp.

int socket_getaddrinfo ( struct object_heap oh,
struct ByteArray hostname,
word_t  hostnameSize,
struct ByteArray service,
word_t  serviceSize,
word_t  family,
word_t  type,
word_t  protocol,
word_t  flags 
)

Definition at line 196 of file socket.cpp.

int socket_lookup_domain ( word_t  domain  ) 

Definition at line 116 of file socket.cpp.

int socket_lookup_protocol ( word_t  protocol  ) 

Definition at line 148 of file socket.cpp.

int socket_lookup_type ( word_t  type  ) 

Definition at line 134 of file socket.cpp.

void socket_module_init ( struct object_heap oh  ) 

Definition at line 3 of file socket.cpp.

word_t socket_return ( word_t  ret  ) 

Definition at line 12 of file socket.cpp.

int socket_reverse_lookup_domain ( word_t  domain  ) 

Definition at line 125 of file socket.cpp.

int socket_reverse_lookup_protocol ( word_t  protocol  ) 

Definition at line 154 of file socket.cpp.

int socket_reverse_lookup_type ( word_t  type  ) 

Definition at line 141 of file socket.cpp.

void socket_select_find_available ( struct OopArray selectOn,
fd_set *  fdList,
struct OopArray readyPipes,
word_t  readyCount 
)

Definition at line 70 of file socket.cpp.

int socket_select_setup ( struct OopArray selectOn,
fd_set *  fdList,
int *  maxFD 
)

Definition at line 50 of file socket.cpp.

int socket_set_nonblocking ( int  fd  ) 

Definition at line 160 of file socket.cpp.

void unhandled_signal ( struct object_heap oh,
struct Symbol selector,
word_t  n,
struct Object args[] 
)

Definition at line 81 of file interpreter.cpp.

word_t write_args_into ( struct object_heap oh,
char *  buffer,
word_t  limit 
)

Definition at line 166 of file misc.cpp.


Variable Documentation

Definition at line 50 of file vm.cpp.

void(* primitives[])(struct object_heap *oh, struct Object *args[], word_t n, struct OopArray *opts, word_t resultStackPointer)


Generated on Fri Feb 5 09:54:13 2010 for Slate VM by  doxygen 1.5.8