remove unintended copy of include files

This commit is contained in:
Matthew Flatt 2020-10-08 14:45:00 -06:00
parent 2174a2d5c0
commit 274bce975a
18 changed files with 0 additions and 9534 deletions

View File

@ -1,33 +0,0 @@
/* This file should be included by Racket dynamically-loaded
extenstion files */
#ifndef E_SCHEME_H
#define E_SCHEME_H
#define SCHEME_DIRECT_EMBEDDED 0
#include "scheme.h"
#ifdef CODEFRAGMENT_DYNAMIC_LOAD
#pragma export on
#endif
#ifdef __cplusplus
extern "C"
{
#endif
extern Scheme_Object *scheme_initialize(Scheme_Env *global_env);
extern Scheme_Object *scheme_reload(Scheme_Env *global_env);
extern Scheme_Object *scheme_module_name(void);
#ifdef __cplusplus
}
#endif
#ifdef CODEFRAGMENT_DYNAMIC_LOAD
#pragma export off
#endif
#endif /* ! E_SCHEME_H */

View File

@ -1,5 +0,0 @@
#! ..
scheme_initialize_internal
scheme_initialize
scheme_reload
scheme_module_name

View File

@ -1,105 +0,0 @@
/* mzconfig.h. Generated from mzconfig.h.in by configure. */
/* This file contains information that was gathered by the configure script. */
#ifndef __MZSCHEME_CONFIGURATION_INFO__
#define __MZSCHEME_CONFIGURATION_INFO__
/* The size of a `int', as computed by sizeof. */
#define SIZEOF_INT 4
/* The size of a `short', as computed by sizeof. */
#define SIZEOF_SHORT 2
/* The size of a `long', as computed by sizeof. */
#define SIZEOF_LONG 8
/* The size of a `long long', as computed by sizeof. */
#define SIZEOF_LONG_LONG 8
/* The size of a `void *', as computed by sizeof. */
#define SIZEOF_VOID_P 8
/* The size of a `bool' with <stdbool.h>, as computed by sizeof. */
#define SIZEOF_BOOL 1
/* Whether `intptr_t' is available. */
#define HAVE_INTPTR_T 1
/* Whether `uintptr_t' is available. */
#define HAVE_UINTPTR_T 1
#ifdef HAVE_INTPTR_T
# include <inttypes.h>
#endif
#ifndef HAVE_INTPTR_T
typedef long intptr_t;
#endif
#ifndef HAVE_UINTPTR_T
typedef unsigned long uintptr_t;
#endif
/* Endianness. */
/* #undef SCHEME_BIG_ENDIAN */
/* Direction of stack growth: 1 = up, -1 = down, 0 = unknown. */
#define STACK_DIRECTION -1
/* Whether __attribute__ ((noinline)) works. */
#define MZ_USE_NOINLINE 1
/* Whether pthread_rwlock is available. */
#define HAVE_PTHREAD_RWLOCK 1
/* When mmap() and mprotect() are available: */
#define HAVE_MMAP_MPROTECT 1
/* To enable 2^16 page size instead of 2^14: */
/* #undef MZ_USE_LARGE_PAGE_SIZE */
/* When __builtin_popcount() is available: */
#define MZ_HAS_BUILTIN_POPCOUNT 1
/* When __builtin_clz() is available: */
#define MZ_HAS_BUILTIN_CLZ 1
/* Enable futures: */
#define MZ_USE_FUTURES 1
/* Enable places --- 3m only: */
#ifdef MZ_PRECISE_GC
#define MZ_USE_PLACES 1
#endif
/* Enable FFI polling: */
/* #undef MZ_USE_FFIPOLL */
/* Whether __sync_bool_compare_and_swap() works: */
#define MZ_CAS_AVAILABLE 1
/* Configure use of pthreads for the user-thread timer. */
#define USE_PTHREAD_INSTEAD_OF_ITIMER 1
/* Enable single-precision floats [as default]: */
#define USE_SINGLE_FLOATS 1
/* #undef USE_SINGLE_FLOATS_AS_DEFAULT */
/* To disable extflonums when they would otherwise work: */
/* #undef MZ_NO_EXTFLONUMS */
/* Extflonums are specifically requested (so complain if not supported): */
/* #undef MZ_INSIST_EXTFLONUMS */
/* Library subpath */
/* #undef SPLS_SUFFIX */
/* Use Generations with the GC */
#define USE_GC_GENS 1
/* For platforms like Linux, where context info may not be available: */
/* #undef MZ_NO_UNWIND_SUPPORT */
/* Initialize the compiled directory path "compiled/bc": */
/* #undef COMPILED_PATH_AS_BC */
#endif

View File

@ -1,592 +0,0 @@
#!..
scheme_init_jmpup_buf
scheme_setjmpup_relative
scheme_longjmpup
scheme_reset_jmpup_buf
scheme_clear_escape
scheme_new_jmpupbuf_holder
scheme_current_config
scheme_extend_config
scheme_install_config
scheme_get_param
scheme_set_param
scheme_get_thread_param
scheme_set_thread_param
scheme_get_env
scheme_inherit_cells
scheme_current_break_cell
scheme_current_thread
scheme_fuel_counter
scheme_current_thread_ptr
scheme_fuel_counter_ptr
scheme_get_current_thread
scheme_start_atomic
scheme_end_atomic
scheme_end_atomic_no_swap
scheme_start_in_scheduler
scheme_end_in_scheduler
scheme_out_of_fuel
scheme_thread
scheme_thread_w_details
scheme_kill_thread
scheme_break_thread
scheme_break_main_thread
scheme_set_break_main_target
scheme_thread_block
scheme_thread_block_enable_break
scheme_swap_thread
scheme_making_progress
scheme_weak_suspend_thread
scheme_weak_resume_thread
scheme_block_until
scheme_block_until_enable_break
scheme_block_until_unless
scheme_wait_input_allowed
scheme_unless_ready
scheme_in_main_thread
scheme_cancel_sleep
scheme_start_sleeper_thread
scheme_end_sleeper_thread
scheme_notify_sleep_progress
scheme_make_thread_cell
scheme_thread_cell_get
scheme_thread_cell_set
scheme_tls_allocate
scheme_tls_set
scheme_tls_get
scheme_make_custodian
scheme_add_managed
scheme_custodian_check_available
scheme_custodian_is_available
scheme_remove_managed
scheme_close_managed
scheme_schedule_custodian_close
scheme_add_custodian_extractor
scheme_add_atexit_closer
scheme_add_atexit
scheme_add_evt
scheme_add_evt_through_sema
scheme_is_evt
scheme_sync
scheme_sync_enable_break
scheme_sync_timeout
scheme_make_evt_set
scheme_add_swap_callback
scheme_add_swap_out_callback
scheme_call_enable_break
scheme_close_should_force_port_closed
scheme_push_kill_action
scheme_pop_kill_action
scheme_set_can_break
scheme_push_break_enable
scheme_pop_break_enable
scheme_with_stack_freeze
scheme_frozen_run_some
scheme_is_in_frozen_stack
scheme_signal_error
scheme_raise_exn
scheme_warning
scheme_raise
scheme_log_level_p
scheme_log
scheme_log_message
scheme_log_abort
scheme_out_of_memory_abort
scheme_wrong_count
scheme_wrong_count_m
scheme_case_lambda_wrong_count
scheme_wrong_type
scheme_wrong_field_type
scheme_arg_mismatch
scheme_wrong_return_arity
scheme_unbound_global
scheme_dynamic_wind
scheme_make_type
scheme_get_type_name
scheme_eof
scheme_make_eof
scheme_null
scheme_make_null
scheme_true
scheme_make_true
scheme_false
scheme_make_false
scheme_void
scheme_make_void
scheme_undefined
scheme_tail_call_waiting
scheme_multiple_values
scheme_uchar_table
scheme_uchar_cases_table
scheme_uchar_cats_table
scheme_uchar_ups
scheme_uchar_downs
scheme_uchar_titles
scheme_uchar_folds
scheme_uchar_combining_classes
scheme_eval
scheme_eval_multi
scheme_eval_with_prompt
scheme_eval_multi_with_prompt
scheme_eval_compiled
scheme_eval_compiled_multi
_scheme_eval_compiled
_scheme_eval_compiled_multi
scheme_apply
scheme_apply_multi
scheme_apply_no_eb
scheme_apply_multi_no_eb
scheme_apply_to_list
scheme_apply_with_prompt
scheme_apply_multi_with_prompt
_scheme_apply_with_prompt
_scheme_apply_multi_with_prompt
scheme_eval_string
scheme_eval_string_multi
scheme_eval_string_all
scheme_eval_string_with_prompt
scheme_eval_string_multi_with_prompt
scheme_eval_string_all_with_prompt
scheme_eval_module_string
_scheme_apply_known_prim_closure
_scheme_apply_known_prim_closure_multi
_scheme_apply_prim_closure
_scheme_apply_prim_closure_multi
scheme_current_argument_stack
scheme_call_with_prompt
scheme_call_with_prompt_multi
_scheme_call_with_prompt
_scheme_call_with_prompt_multi
scheme_values
scheme_check_one_value
scheme_tail_apply
scheme_tail_apply_no_copy
scheme_tail_apply_to_list
scheme_tail_eval_expr
scheme_set_tail_buffer_size
scheme_force_value
scheme_force_one_value
scheme_set_cont_mark
scheme_push_continuation_frame
scheme_pop_continuation_frame
scheme_temp_dec_mark_depth
scheme_temp_inc_mark_depth
scheme_current_continuation_marks
scheme_extract_one_cc_mark
scheme_extract_one_cc_mark_to_tag
scheme_do_eval
scheme_eval_compiled_stx_string
scheme_load_compiled_stx_string
scheme_compiled_stx_symbol
scheme_eval_compiled_sized_string
scheme_eval_compiled_sized_string_with_magic
scheme_detach_multple_array
GC_malloc
GC_malloc_atomic
GC_malloc_stubborn
GC_malloc_uncollectable
scheme_malloc_code
scheme_free_code
scheme_malloc_gcable_code
scheme_malloc_eternal
scheme_end_stubborn_change
scheme_calloc
scheme_strdup
scheme_strdup_eternal
scheme_malloc_fail_ok
scheme_weak_reference
scheme_weak_reference_indirect
scheme_unweak_reference
scheme_add_finalizer
scheme_add_finalizer_once
scheme_subtract_finalizer
scheme_add_scheme_finalizer
scheme_add_scheme_finalizer_once
scheme_register_finalizer
scheme_remove_all_finalization
scheme_dont_gc_ptr
scheme_gc_ptr_ok
scheme_collect_garbage
GC_register_traversers
GC_resolve
GC_mark
GC_fixup
GC_fixup_self
scheme_malloc_immobile_box
scheme_free_immobile_box
scheme_make_bucket_table
scheme_add_to_table
scheme_change_in_table
scheme_lookup_in_table
scheme_bucket_from_table
scheme_bucket_table_equal
scheme_clone_bucket_table
scheme_make_hash_table
scheme_make_hash_table_equal
scheme_make_hash_table_eqv
scheme_hash_set
scheme_hash_get
scheme_eq_hash_get
scheme_hash_set_atomic
scheme_hash_get_atomic
scheme_hash_table_equal
scheme_is_hash_table_equal
scheme_is_hash_table_eqv
scheme_clone_hash_table
scheme_make_hash_tree
scheme_hash_tree_set
scheme_hash_tree_get
scheme_hash_tree_next
scheme_hash_tree_index
scheme_hash_tree_equal
scheme_is_hash_tree_equal
scheme_is_hash_tree_eqv
scheme_make_prim
scheme_make_noneternal_prim
scheme_make_prim_w_arity
scheme_make_folding_prim
scheme_make_immed_prim
scheme_make_noncm_prim
scheme_make_noneternal_prim_w_arity
scheme_make_prim_w_everything
scheme_make_prim_closure_w_arity
scheme_make_folding_prim_closure
scheme_make_closed_prim
scheme_make_closed_prim_w_arity
scheme_make_folding_closed_prim
scheme_make_closed_prim_w_everything
scheme_prim_is_method
scheme_make_pair
scheme_make_mutable_pair
scheme_make_raw_pair
scheme_make_byte_string
scheme_make_sized_byte_string
scheme_make_sized_offset_byte_string
scheme_make_immutable_sized_byte_string
scheme_make_byte_string_without_copying
scheme_alloc_byte_string
scheme_append_byte_string
scheme_make_utf8_string
scheme_make_sized_utf8_string
scheme_make_sized_offset_utf8_string
scheme_make_immutable_sized_utf8_string
scheme_make_locale_string
scheme_char_string_to_byte_string
scheme_byte_string_to_char_string
scheme_char_string_to_byte_string_locale
scheme_byte_string_to_char_string_locale
scheme_char_string_to_path
scheme_path_to_char_string
scheme_make_char_string
scheme_make_sized_char_string
scheme_make_sized_offset_char_string
scheme_make_immutable_sized_char_string
scheme_make_char_string_without_copying
scheme_alloc_char_string
scheme_append_char_string
scheme_string_recase
scheme_make_vector
scheme_make_integer_value
scheme_make_integer_value_from_unsigned
scheme_make_integer_value_from_long_long
scheme_make_integer_value_from_unsigned_long_long
scheme_make_integer_value_from_long_halves
scheme_make_integer_value_from_unsigned_long_halves
scheme_make_double
scheme_make_char
scheme_make_char_or_nul
scheme_make_sema
scheme_post_sema
scheme_post_sema_all
scheme_wait_sema
scheme_try_plain_sema
scheme_char_constants
scheme_make_channel
scheme_make_channel_put_evt
scheme_get_int_val
scheme_get_unsigned_int_val
scheme_get_long_long_val
scheme_get_unsigned_long_long_val
scheme_real_to_double
scheme_make_cptr
scheme_make_offset_cptr
scheme_make_external_cptr
scheme_make_offset_external_cptr
scheme_get_proc_name
scheme_utf8_decode
scheme_utf8_decode_as_prefix
scheme_utf8_decode_all
scheme_utf8_decode_prefix
scheme_utf8_decode_to_buffer
scheme_utf8_decode_to_buffer_len
scheme_utf8_decode_count
scheme_utf8_encode
scheme_utf8_encode_all
scheme_utf8_encode_to_buffer
scheme_utf8_encode_to_buffer_len
scheme_ucs4_to_utf16
scheme_utf16_to_ucs4
scheme_open_converter
scheme_close_converter
scheme_make_bignum
scheme_make_bignum_from_unsigned
scheme_make_bignum_from_long_long
scheme_make_bignum_from_unsigned_long_long
scheme_bignum_to_double
scheme_bignum_from_double
scheme_bignum_to_string
scheme_bignum_to_allocated_string
scheme_read_bignum
scheme_read_bignum_bytes
scheme_bignum_normalize
scheme_make_rational
scheme_rational_to_double
scheme_rational_from_double
scheme_rational_normalize
scheme_rational_numerator
scheme_rational_denominator
scheme_make_complex
scheme_complex_normalize
scheme_complex_real_part
scheme_complex_imaginary_part
scheme_is_exact
scheme_is_inexact
scheme_expand
scheme_compile
scheme_read
scheme_read_syntax
scheme_write
scheme_print
scheme_display
scheme_write_w_max
scheme_display_w_max
scheme_print_w_max
scheme_write_byte_string
scheme_write_char_string
scheme_put_byte_string
scheme_put_char_string
scheme_write_to_string
scheme_display_to_string
scheme_print_to_string
scheme_write_to_string_w_max
scheme_display_to_string_w_max
scheme_print_to_string_w_max
scheme_debug_print
scheme_flush_output
scheme_format
scheme_printf
scheme_format_utf8
scheme_printf_utf8
scheme_getc
scheme_get_byte
scheme_peekc
scheme_peek_byte
scheme_peekc_skip
scheme_peek_byte_skip
scheme_getc_special_ok
scheme_get_byte_special_ok
scheme_peekc_special_ok
scheme_peek_byte_special_ok_skip
scheme_peekc_special_ok_skip
scheme_ungetc
scheme_byte_ready
scheme_char_ready
scheme_peekc_is_ungetc
scheme_need_wakeup
scheme_get_byte_string
scheme_get_byte_string_unless
scheme_get_byte_string_special_ok_unless
scheme_progress_evt
scheme_peeked_read
scheme_get_char_string
scheme_get_bytes
scheme_get_ready_special
scheme_tell
scheme_output_tell
scheme_tell_line
scheme_tell_column
scheme_tell_all
scheme_count_lines
scheme_close_input_port
scheme_close_output_port
scheme_write_special
scheme_write_special_nonblock
scheme_make_write_evt
scheme_port_record
scheme_input_port_record
scheme_output_port_record
scheme_is_input_port
scheme_is_output_port
scheme_make_port_type
scheme_make_input_port
scheme_make_output_port
scheme_set_next_port_custodian
scheme_set_port_location_fun
scheme_set_port_count_lines_fun
scheme_progress_evt_via_get
scheme_peeked_read_via_get
scheme_write_evt_via_write
scheme_write_special_evt_via_write_special
scheme_open_input_file
scheme_open_output_file
scheme_open_input_output_file
scheme_open_output_file_with_mode
scheme_make_file_input_port
scheme_make_named_file_input_port
scheme_make_file_output_port
scheme_make_fd_input_port
scheme_make_fd_output_port
scheme_make_byte_string_input_port
scheme_make_sized_byte_string_input_port
scheme_make_byte_string_output_port
scheme_get_sized_byte_string_output
scheme_get_reset_sized_byte_string_output
scheme_pipe
scheme_pipe_with_limit
scheme_make_null_output_port
scheme_make_redirect_output_port
scheme_set_file_position
scheme_file_exists
scheme_directory_exists
scheme_expand_filename
scheme_expand_user_filename
scheme_expand_string_filename
scheme_os_getcwd
scheme_os_setcwd
scheme_getdrive
scheme_split_path
scheme_build_path
scheme_path_to_directory_path
scheme_path_to_complete_path
scheme_make_path
scheme_make_sized_path
scheme_make_sized_offset_path
scheme_make_sized_offset_kind_path
scheme_make_path_without_copying
scheme_alloc_fdset_array
scheme_init_fdset_array
scheme_get_fdset
scheme_fdzero
scheme_fdset
scheme_fdclr
scheme_fdisset
scheme_add_fd_handle
scheme_add_fd_eventmask
scheme_collapse_win_fd
scheme_security_check_file
scheme_security_check_file_link
scheme_security_check_network
scheme_get_host_address
scheme_free_host_address
scheme_host_address_strerror
scheme_getnameinfo
scheme_get_port_file_descriptor
scheme_get_port_fd
scheme_get_port_socket
scheme_socket_to_ports
scheme_set_type_printer
scheme_print_bytes
scheme_print_utf8
scheme_print_string
scheme_read_byte_string
scheme_make_namespace
scheme_add_global
scheme_add_global_symbol
scheme_make_envunbox
scheme_lookup_global
scheme_global_bucket
scheme_global_keyword_bucket
scheme_module_bucket
scheme_builtin_value
scheme_set_global_bucket
scheme_install_macro
scheme_save_initial_module_set
scheme_primitive_module
scheme_finish_primitive_module
scheme_protect_primitive_provide
scheme_make_modidx
scheme_apply_for_syntax_in_env
scheme_dynamic_require
scheme_namespace_require
scheme_is_module_path
scheme_datum_to_kernel_stx
scheme_intern_symbol
scheme_intern_exact_symbol
scheme_intern_exact_char_symbol
scheme_make_symbol
scheme_make_exact_symbol
scheme_make_exact_char_symbol
scheme_symbol_name
scheme_symbol_name_and_size
scheme_symbol_val
scheme_intern_exact_keyword
scheme_intern_exact_char_keyword
scheme_make_struct_values
scheme_make_struct_names
scheme_make_struct_type
scheme_make_struct_type2
scheme_make_struct_instance
scheme_is_struct_instance
scheme_struct_ref
scheme_struct_set
scheme_make_struct_type_property
scheme_make_struct_type_property_w_guard
scheme_struct_type_property_ref
scheme_chaperone_struct_type_property_ref
scheme_make_location
scheme_is_location
scheme_make_inspector
scheme_is_subinspector
scheme_eq
scheme_eqv
scheme_equal
scheme_chaperone_of
scheme_equal_hash_key
scheme_equal_hash_key2
scheme_recur_equal_hash_key
scheme_recur_equal_hash_key2
scheme_eqv_hash_key
scheme_eqv_hash_key2
scheme_set_type_equality
scheme_recur_equal
scheme_build_list
scheme_build_list_offset
scheme_is_list
scheme_list_length
scheme_proper_list_length
scheme_alloc_list
scheme_map_1
scheme_car
scheme_cdr
scheme_cadr
scheme_caddr
scheme_vector_to_list
scheme_list_to_vector
scheme_append
scheme_reverse
scheme_box
scheme_unbox
scheme_set_box
scheme_make_weak_box
scheme_make_ephemeron
scheme_ephemeron_value
scheme_ephemeron_key
scheme_load
scheme_load_extension
scheme_register_extension_global
scheme_get_seconds
scheme_get_milliseconds
scheme_get_inexact_milliseconds
scheme_get_process_milliseconds
scheme_get_thread_milliseconds
scheme_banner
scheme_version
scheme_check_proc_arity
scheme_check_proc_arity2
scheme_make_provided_string
scheme_make_args_string
scheme_system_library_subpath
scheme_signal_received
scheme_signal_received_at
scheme_get_signal_handle
scheme_char_strlen

View File

@ -1,599 +0,0 @@
#!..
scheme_init_jmpup_buf
scheme_setjmpup_relative
scheme_longjmpup
scheme_reset_jmpup_buf
scheme_clear_escape
scheme_new_jmpupbuf_holder
scheme_current_config
scheme_extend_config
scheme_install_config
scheme_get_param
scheme_set_param
scheme_get_thread_param
scheme_set_thread_param
scheme_get_env
scheme_inherit_cells
scheme_current_break_cell
scheme_current_thread
scheme_fuel_counter
scheme_current_thread_ptr
scheme_fuel_counter_ptr
scheme_get_current_thread
scheme_start_atomic
scheme_end_atomic
scheme_end_atomic_no_swap
scheme_start_in_scheduler
scheme_end_in_scheduler
scheme_out_of_fuel
scheme_thread
scheme_thread_w_details
scheme_kill_thread
scheme_break_thread
scheme_break_main_thread
scheme_set_break_main_target
scheme_thread_block
scheme_thread_block_enable_break
scheme_swap_thread
scheme_making_progress
scheme_weak_suspend_thread
scheme_weak_resume_thread
scheme_block_until
scheme_block_until_enable_break
scheme_block_until_unless
scheme_wait_input_allowed
scheme_unless_ready
scheme_in_main_thread
scheme_cancel_sleep
scheme_start_sleeper_thread
scheme_end_sleeper_thread
scheme_notify_sleep_progress
scheme_make_thread_cell
scheme_thread_cell_get
scheme_thread_cell_set
scheme_tls_allocate
scheme_tls_set
scheme_tls_get
scheme_make_custodian
scheme_add_managed
scheme_custodian_check_available
scheme_custodian_is_available
scheme_remove_managed
scheme_close_managed
scheme_schedule_custodian_close
scheme_add_custodian_extractor
scheme_add_atexit_closer
scheme_atexit
scheme_add_evt
scheme_add_evt_through_sema
scheme_is_evt
scheme_sync
scheme_sync_enable_break
scheme_sync_timeout
scheme_make_evt_set
scheme_add_swap_callback
scheme_add_swap_out_callback
scheme_call_enable_break
scheme_close_should_force_port_closed
scheme_push_kill_action
scheme_pop_kill_action
scheme_set_can_break
scheme_push_break_enable
scheme_pop_break_enable
scheme_with_stack_freeze
scheme_frozen_run_some
scheme_is_in_frozen_stack
scheme_signal_error
scheme_raise_exn
scheme_warning
scheme_raise
scheme_log_level_p
scheme_log
scheme_log_message
scheme_log_abort
scheme_out_of_memory_abort
scheme_wrong_count
scheme_wrong_count_m
scheme_case_lambda_wrong_count
scheme_wrong_type
scheme_wrong_field_type
scheme_arg_mismatch
scheme_wrong_return_arity
scheme_unbound_global
scheme_dynamic_wind
scheme_make_type
scheme_get_type_name
scheme_eof
scheme_make_eof
scheme_null
scheme_make_null
scheme_true
scheme_make_true
scheme_false
scheme_make_false
scheme_void
scheme_make_void
scheme_undefined
scheme_tail_call_waiting
scheme_multiple_values
scheme_uchar_table
scheme_uchar_cases_table
scheme_uchar_cats_table
scheme_uchar_ups
scheme_uchar_downs
scheme_uchar_titles
scheme_uchar_folds
scheme_uchar_combining_classes
scheme_eval
scheme_eval_multi
scheme_eval_with_prompt
scheme_eval_multi_with_prompt
scheme_eval_compiled
scheme_eval_compiled_multi
_scheme_eval_compiled
_scheme_eval_compiled_multi
scheme_apply
scheme_apply_multi
scheme_apply_no_eb
scheme_apply_multi_no_eb
scheme_apply_to_list
scheme_apply_with_prompt
scheme_apply_multi_with_prompt
_scheme_apply_with_prompt
_scheme_apply_multi_with_prompt
scheme_eval_string
scheme_eval_string_multi
scheme_eval_string_all
scheme_eval_string_with_prompt
scheme_eval_string_multi_with_prompt
scheme_eval_string_all_with_prompt
scheme_eval_module_string
_scheme_apply_known_prim_closure
_scheme_apply_known_prim_closure_multi
_scheme_apply_prim_closure
_scheme_apply_prim_closure_multi
scheme_current_argument_stack
scheme_call_with_prompt
scheme_call_with_prompt_multi
_scheme_call_with_prompt
_scheme_call_with_prompt_multi
scheme_values
scheme_check_one_value
scheme_tail_apply
scheme_tail_apply_no_copy
scheme_tail_apply_to_list
scheme_tail_eval_expr
scheme_set_tail_buffer_size
scheme_force_value
scheme_force_one_value
scheme_set_cont_mark
scheme_push_continuation_frame
scheme_pop_continuation_frame
scheme_temp_dec_mark_depth
scheme_temp_inc_mark_depth
scheme_current_continuation_marks
scheme_extract_one_cc_mark
scheme_extract_one_cc_mark_to_tag
scheme_do_eval
scheme_eval_compiled_stx_string
scheme_load_compiled_stx_string
scheme_compiled_stx_symbol
scheme_eval_compiled_sized_string
scheme_eval_compiled_sized_string_with_magic
scheme_detach_multple_array
GC_malloc
GC_malloc_atomic
GC_malloc_one_tagged
GC_malloc_atomic_uncollectable
scheme_malloc_uncollectable
GC_malloc_array_tagged
GC_malloc_allow_interior
GC_malloc_atomic_allow_interior
GC_malloc_tagged_allow_interior
scheme_malloc_code
scheme_free_code
scheme_malloc_gcable_code
scheme_malloc_eternal
scheme_end_stubborn_change
scheme_calloc
scheme_strdup
scheme_strdup_eternal
scheme_malloc_fail_ok
scheme_weak_reference
scheme_weak_reference_indirect
scheme_unweak_reference
scheme_add_finalizer
scheme_add_finalizer_once
scheme_subtract_finalizer
scheme_add_scheme_finalizer
scheme_add_scheme_finalizer_once
scheme_register_finalizer
scheme_remove_all_finalization
scheme_dont_gc_ptr
scheme_gc_ptr_ok
scheme_collect_garbage
GC_variable_stack
GC_register_traversers
GC_resolve
GC_mark
GC_fixup
GC_fixup_self
scheme_malloc_immobile_box
scheme_free_immobile_box
scheme_make_bucket_table
scheme_add_to_table
scheme_change_in_table
scheme_lookup_in_table
scheme_bucket_from_table
scheme_bucket_table_equal
scheme_clone_bucket_table
scheme_make_hash_table
scheme_make_hash_table_equal
scheme_make_hash_table_eqv
scheme_hash_set
scheme_hash_get
scheme_eq_hash_get
scheme_hash_set_atomic
scheme_hash_get_atomic
scheme_hash_table_equal
scheme_is_hash_table_equal
scheme_is_hash_table_eqv
scheme_clone_hash_table
scheme_make_hash_tree
scheme_hash_tree_set
scheme_hash_tree_get
scheme_hash_tree_next
scheme_hash_tree_index
scheme_hash_tree_equal
scheme_is_hash_tree_equal
scheme_is_hash_tree_eqv
scheme_make_prim
scheme_make_noneternal_prim
scheme_make_prim_w_arity
scheme_make_folding_prim
scheme_make_immed_prim
scheme_make_noncm_prim
scheme_make_noneternal_prim_w_arity
scheme_make_prim_w_everything
scheme_make_prim_closure_w_arity
scheme_make_folding_prim_closure
scheme_make_closed_prim
scheme_make_closed_prim_w_arity
scheme_make_folding_closed_prim
scheme_make_closed_prim_w_everything
scheme_prim_is_method
scheme_make_pair
scheme_make_mutable_pair
scheme_make_raw_pair
scheme_make_byte_string
scheme_make_sized_byte_string
scheme_make_sized_offset_byte_string
scheme_make_immutable_sized_byte_string
scheme_make_byte_string_without_copying
scheme_alloc_byte_string
scheme_append_byte_string
scheme_make_utf8_string
scheme_make_sized_utf8_string
scheme_make_sized_offset_utf8_string
scheme_make_immutable_sized_utf8_string
scheme_make_locale_string
scheme_char_string_to_byte_string
scheme_byte_string_to_char_string
scheme_char_string_to_byte_string_locale
scheme_byte_string_to_char_string_locale
scheme_char_string_to_path
scheme_path_to_char_string
scheme_make_char_string
scheme_make_sized_char_string
scheme_make_sized_offset_char_string
scheme_make_immutable_sized_char_string
scheme_make_char_string_without_copying
scheme_alloc_char_string
scheme_append_char_string
scheme_string_recase
scheme_make_vector
scheme_make_integer_value
scheme_make_integer_value_from_unsigned
scheme_make_integer_value_from_long_long
scheme_make_integer_value_from_unsigned_long_long
scheme_make_integer_value_from_long_halves
scheme_make_integer_value_from_unsigned_long_halves
scheme_make_double
scheme_make_char
scheme_make_char_or_nul
scheme_make_sema
scheme_post_sema
scheme_post_sema_all
scheme_wait_sema
scheme_try_plain_sema
scheme_char_constants
scheme_make_channel
scheme_make_channel_put_evt
scheme_get_int_val
scheme_get_unsigned_int_val
scheme_get_long_long_val
scheme_get_unsigned_long_long_val
scheme_real_to_double
scheme_make_cptr
scheme_make_offset_cptr
scheme_make_external_cptr
scheme_make_offset_external_cptr
scheme_get_proc_name
scheme_utf8_decode
scheme_utf8_decode_as_prefix
scheme_utf8_decode_all
scheme_utf8_decode_prefix
scheme_utf8_decode_to_buffer
scheme_utf8_decode_to_buffer_len
scheme_utf8_decode_count
scheme_utf8_encode
scheme_utf8_encode_all
scheme_utf8_encode_to_buffer
scheme_utf8_encode_to_buffer_len
scheme_ucs4_to_utf16
scheme_utf16_to_ucs4
scheme_open_converter
scheme_close_converter
scheme_make_bignum
scheme_make_bignum_from_unsigned
scheme_make_bignum_from_long_long
scheme_make_bignum_from_unsigned_long_long
scheme_bignum_to_double
scheme_bignum_from_double
scheme_bignum_to_string
scheme_bignum_to_allocated_string
scheme_read_bignum
scheme_read_bignum_bytes
scheme_bignum_normalize
scheme_make_rational
scheme_rational_to_double
scheme_rational_from_double
scheme_rational_normalize
scheme_rational_numerator
scheme_rational_denominator
scheme_make_complex
scheme_complex_normalize
scheme_complex_real_part
scheme_complex_imaginary_part
scheme_is_exact
scheme_is_inexact
scheme_expand
scheme_compile
scheme_read
scheme_read_syntax
scheme_write
scheme_print
scheme_display
scheme_write_w_max
scheme_display_w_max
scheme_print_w_max
scheme_write_byte_string
scheme_write_char_string
scheme_put_byte_string
scheme_put_char_string
scheme_write_to_string
scheme_display_to_string
scheme_print_to_string
scheme_write_to_string_w_max
scheme_display_to_string_w_max
scheme_print_to_string_w_max
scheme_debug_print
scheme_flush_output
scheme_format
scheme_printf
scheme_format_utf8
scheme_printf_utf8
scheme_getc
scheme_get_byte
scheme_peekc
scheme_peek_byte
scheme_peekc_skip
scheme_peek_byte_skip
scheme_getc_special_ok
scheme_get_byte_special_ok
scheme_peekc_special_ok
scheme_peek_byte_special_ok_skip
scheme_peekc_special_ok_skip
scheme_ungetc
scheme_byte_ready
scheme_char_ready
scheme_peekc_is_ungetc
scheme_need_wakeup
scheme_get_byte_string
scheme_get_byte_string_unless
scheme_get_byte_string_special_ok_unless
scheme_progress_evt
scheme_peeked_read
scheme_get_char_string
scheme_get_bytes
scheme_get_ready_special
scheme_tell
scheme_output_tell
scheme_tell_line
scheme_tell_column
scheme_tell_all
scheme_count_lines
scheme_close_input_port
scheme_close_output_port
scheme_write_special
scheme_write_special_nonblock
scheme_make_write_evt
scheme_port_record
scheme_input_port_record
scheme_output_port_record
scheme_is_input_port
scheme_is_output_port
scheme_make_port_type
scheme_make_input_port
scheme_make_output_port
scheme_set_next_port_custodian
scheme_set_port_location_fun
scheme_set_port_count_lines_fun
scheme_progress_evt_via_get
scheme_peeked_read_via_get
scheme_write_evt_via_write
scheme_write_special_evt_via_write_special
scheme_open_input_file
scheme_open_output_file
scheme_open_input_output_file
scheme_open_output_file_with_mode
scheme_make_file_input_port
scheme_make_named_file_input_port
scheme_make_file_output_port
scheme_make_fd_input_port
scheme_make_fd_output_port
scheme_make_byte_string_input_port
scheme_make_sized_byte_string_input_port
scheme_make_byte_string_output_port
scheme_get_sized_byte_string_output
scheme_get_reset_sized_byte_string_output
scheme_pipe
scheme_pipe_with_limit
scheme_make_null_output_port
scheme_make_redirect_output_port
scheme_set_file_position
scheme_file_exists
scheme_directory_exists
scheme_expand_filename
scheme_expand_user_filename
scheme_expand_string_filename
scheme_os_getcwd
scheme_os_setcwd
scheme_getdrive
scheme_split_path
scheme_build_path
scheme_path_to_directory_path
scheme_path_to_complete_path
scheme_make_path
scheme_make_sized_path
scheme_make_sized_offset_path
scheme_make_sized_offset_kind_path
scheme_make_path_without_copying
scheme_alloc_fdset_array
scheme_init_fdset_array
scheme_get_fdset
scheme_fdzero
scheme_fdset
scheme_fdclr
scheme_fdisset
scheme_add_fd_handle
scheme_add_fd_eventmask
scheme_collapse_win_fd
scheme_security_check_file
scheme_security_check_file_link
scheme_security_check_network
scheme_get_host_address
scheme_free_host_address
scheme_host_address_strerror
scheme_getnameinfo
scheme_get_port_file_descriptor
scheme_get_port_fd
scheme_get_port_socket
scheme_socket_to_ports
scheme_set_type_printer
scheme_print_bytes
scheme_print_utf8
scheme_print_string
scheme_read_byte_string
scheme_make_namespace
scheme_add_global
scheme_add_global_symbol
scheme_make_envunbox
scheme_lookup_global
scheme_global_bucket
scheme_global_keyword_bucket
scheme_module_bucket
scheme_builtin_value
scheme_set_global_bucket
scheme_install_macro
scheme_save_initial_module_set
scheme_primitive_module
scheme_finish_primitive_module
scheme_protect_primitive_provide
scheme_make_modidx
scheme_apply_for_syntax_in_env
scheme_dynamic_require
scheme_namespace_require
scheme_is_module_path
scheme_datum_to_kernel_stx
scheme_intern_symbol
scheme_intern_exact_symbol
scheme_intern_exact_char_symbol
scheme_make_symbol
scheme_make_exact_symbol
scheme_make_exact_char_symbol
scheme_symbol_name
scheme_symbol_name_and_size
scheme_symbol_val
scheme_intern_exact_keyword
scheme_intern_exact_char_keyword
scheme_make_struct_values
scheme_make_struct_names
scheme_make_struct_type
scheme_make_struct_type2
scheme_make_struct_instance
scheme_is_struct_instance
scheme_struct_ref
scheme_struct_set
scheme_make_struct_type_property
scheme_make_struct_type_property_w_guard
scheme_struct_type_property_ref
scheme_chaperone_struct_type_property_ref
scheme_make_location
scheme_is_location
scheme_make_inspector
scheme_is_subinspector
scheme_eq
scheme_eqv
scheme_equal
scheme_chaperone_of
scheme_hash_key
scheme_equal_hash_key
scheme_equal_hash_key2
scheme_recur_equal_hash_key
scheme_recur_equal_hash_key2
scheme_eqv_hash_key
scheme_eqv_hash_key2
scheme_set_type_equality
scheme_recur_equal
scheme_build_list
scheme_build_list_offset
scheme_is_list
scheme_list_length
scheme_proper_list_length
scheme_alloc_list
scheme_map_1
scheme_car
scheme_cdr
scheme_cadr
scheme_caddr
scheme_vector_to_list
scheme_list_to_vector
scheme_append
scheme_reverse
scheme_box
scheme_unbox
scheme_set_box
scheme_make_weak_box
scheme_make_ephemeron
scheme_ephemeron_value
scheme_ephemeron_key
scheme_load
scheme_load_extension
scheme_register_extension_global
scheme_get_seconds
scheme_get_milliseconds
scheme_get_inexact_milliseconds
scheme_get_process_milliseconds
scheme_get_thread_milliseconds
scheme_banner
scheme_version
scheme_check_proc_arity
scheme_check_proc_arity2
scheme_make_provided_string
scheme_make_args_string
scheme_system_library_subpath
scheme_signal_received
scheme_signal_received_at
scheme_get_signal_handle
scheme_char_strlen

View File

@ -1,36 +0,0 @@
/* The version string has one of the forms:
X.Y
X.Y.Z Z != 0
X.Y.Z.W W != 0
where each X, Y, Z, W is a non-negative exact integer, Y must not
exceed 99, and Z or W must not exceed 999. Y>=90 means that this is
working towards {X+1}.0, and X.Y (Z=0, W=0) is an alpha version for
{X+1}.0; Z>=900 means working towards X.{Y+1}, and X.Y.Z as an
alpha release.
Note that the version number in the "base" package's "info.rkt"
needs to be updated separately.
*/
#define MZSCHEME_VERSION_X 7
#define MZSCHEME_VERSION_Y 8
#define MZSCHEME_VERSION_Z 0
#define MZSCHEME_VERSION_W 6
/* A level of indirection makes `#` work as needed: */
#define AS_a_STR_HELPER(x) #x
#define AS_a_STR(x) AS_a_STR_HELPER(x)
#if MZSCHEME_VERSION_W != 0
# define MZSCHEME_VERSION AS_a_STR(MZSCHEME_VERSION_X) "." AS_a_STR(MZSCHEME_VERSION_Y) "." AS_a_STR(MZSCHEME_VERSION_Z) "." AS_a_STR(MZSCHEME_VERSION_W)
#elif MZSCHEME_VERSION_Z != 0
# define MZSCHEME_VERSION AS_a_STR(MZSCHEME_VERSION_X) "." AS_a_STR(MZSCHEME_VERSION_Y) "." AS_a_STR(MZSCHEME_VERSION_Z)
#else
# define MZSCHEME_VERSION AS_a_STR(MZSCHEME_VERSION_X) "." AS_a_STR(MZSCHEME_VERSION_Y)
#endif
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)
#define MZSCHEME_VM "racket"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,666 +0,0 @@
#ifndef __mzscheme_gc_2__
#define __mzscheme_gc_2__
#ifndef GC2_JUST_MACROS
# ifdef INCLUDE_WITHOUT_PATHS
# include "schthread.h"
# else
# include "../include/schthread.h"
# endif
#endif
# ifdef __GNUC__
# define MAYBE_UNUSED __attribute__((unused))
# else
# define MAYBE_UNUSED
# endif
/***************************************************************************/
/*** See README for a general overview of the interface architecture. ***/
/***************************************************************************/
#ifndef GC2_JUST_MACROS
struct NewGC;
typedef int (*Size_Proc)(void *obj);
typedef int (*Size2_Proc)(void *obj, struct NewGC *);
typedef int (*Mark_Proc)(void *obj);
typedef int (*Mark2_Proc)(void *obj, struct NewGC *);
typedef int (*Fixup_Proc)(void *obj);
typedef int (*Fixup2_Proc)(void *obj, struct NewGC *);
typedef void (*GC_collect_start_callback_Proc)(void);
typedef void (*GC_collect_end_callback_Proc)(void);
typedef void (*GC_collect_inform_callback_Proc)(int master_gc, int major_gc, int inc_gc,
intptr_t pre_used, intptr_t post_used,
intptr_t pre_admin, intptr_t post_admin,
intptr_t post_child_places_used);
typedef uintptr_t (*GC_get_thread_stack_base_Proc)(void);
typedef void (*GC_Post_Propagate_Hook_Proc)(struct NewGC *);
typedef int (*GC_Treat_As_Incremental_Mark_Proc)(void *p);
/*
Types of the traversal procs (supplied by Racket); see overview in README
for information about traversals. The return value is the size of
the object in words. */
# ifdef GC2_JUST_MACROS_AND_TYPEDEFS
# define GC2_JUST_MACROS
# endif
#endif
#ifndef GC2_JUST_MACROS
#include <stddef.h>
#ifndef GC2_EXTERN
# ifdef GC2_AS_EXPORT
# define GC2_EXTERN __declspec(dllexport)
# endif
# ifdef GC2_AS_IMPORT
# define GC2_EXTERN __declspec(dllimport)
# endif
# ifndef GC2_EXTERN
# define GC2_EXTERN extern
# endif
#endif
# ifdef __cplusplus
extern "C" {
# endif
/***************************************************************************/
/* Administration */
/***************************************************************************/
GC2_EXTERN void GC_set_get_thread_stack_base(uintptr_t (*)(void));
/*
Sets callback called by GC to get the base for stack traversal in the current
thread (see README). The returned address must not be in the middle
of a variable-stack record. */
GC2_EXTERN void GC_set_stack_base(void *base);
GC2_EXTERN uintptr_t GC_get_stack_base(void);
/*
Called by Racket to set/get value used for stack base when
GC_get_thread_stack_base is null. This is mainly useful for getting
Racket started, before it has multiple threads. */
GC2_EXTERN void GC_add_roots(void *start, void *end);
/*
Called by Racket to install roots. The memory between
`start' (inclusive) and `end' (exclusive) contains pointers. */
GC2_EXTERN void GC_init_type_tags(int count, int pair, int mutable_pair, int weakbox,
int ephemeron, int weakarray, int custbox,
int phantom);
/*
Called by Racket to indicate the number of different type tags it
uses, starting from 0. `count' is always less than 256. The weakbox
argument is the value to be used for tagging weak box, the
ephemeron is the value to tagging an ephemeron, etc. (The GC has some
freedom in the layout of a weak box or ephemeron, so it performs weak
box traversals itself, but Racket gets to choose the tag.) */
GC2_EXTERN void GC_register_root_custodian(void *);
/*
Registers the root custodian. */
GC2_EXTERN void GC_register_new_thread(void *, void *);
/*
Indicates that a just-allocated point is for a thread
or place owned by a particular custodian. */
GC2_EXTERN void GC_register_thread(void *, void *);
/*
Indicates that a a thread or place is now owned by a
particular custodian. */
GC2_EXTERN GC_collect_start_callback_Proc GC_set_collect_start_callback(GC_collect_start_callback_Proc);
GC2_EXTERN GC_collect_end_callback_Proc GC_set_collect_end_callback(GC_collect_end_callback_Proc);
GC2_EXTERN void GC_set_collect_inform_callback(GC_collect_inform_callback_Proc);
GC2_EXTERN void GC_set_post_propagate_hook(GC_Post_Propagate_Hook_Proc);
GC2_EXTERN void GC_set_treat_as_incremental_mark(short tag, GC_Treat_As_Incremental_Mark_Proc);
/*
Sets callbacks called by GC before/after performing a collection. Used by
Racket to zero out some data and record collection times. The end
procedure should be called before finalizations are performed. */
typedef void (*GC_Out_Of_Memory_Proc)(void);
GC2_EXTERN GC_Out_Of_Memory_Proc GC_out_of_memory;
GC2_EXTERN GC_Out_Of_Memory_Proc GC_get_out_of_memory(void);
GC2_EXTERN void GC_set_out_of_memory(GC_Out_Of_Memory_Proc GC_out_of_memory);
/*
Called by GC when it can't satify a memory request. GC_out_of_memory()
might perform a longjmp. The get/set variant sets a thread-local procedure. */
GC2_EXTERN void (*GC_report_out_of_memory)(void);
/*
Called by GC when it has to give up, maybe due to running out of memory
during a collection. */
GC2_EXTERN void GC_dump(void);
/*
Dumps memory state info to stderr. */
GC2_EXTERN intptr_t GC_get_memory_use(void *c);
/*
Returns the number of currently-allocated bytes (specifically for
custodian c, as much as the GC's accounting makes possible). */
GC2_EXTERN intptr_t GC_get_memory_ever_used();
/*
Returns the total number of allocated bytes, including
bytes that have since been reclaimed. */
GC2_EXTERN intptr_t GC_get_memory_max_allocated();
/*
Returns the maximum number of bytes allocated at once, including
GC overhead but not including phantom bytes. */
GC2_EXTERN int GC_accouting_enabled();
/*
Reports whether memory accounting is enabled. */
#define MZACCT_REQUIRE 0
#define MZACCT_LIMIT 1
GC2_EXTERN int GC_set_account_hook(int type, void *c1, uintptr_t b, void *c2);
/*
Set a memory-accounting property. Returns 0 for failure (i.e., not
supported). */
GC2_EXTERN uintptr_t GC_get_account_memory_limit(void *c1);
/*
Returns a memory accounting limit for c1 (or any ancestor),
or 0 if none is set. */
GC2_EXTERN void GC_set_accounting_custodian(void *c);
/*
Sets a custodian for checking memory limits for the next allocation.
This custodian should be cleared when allocation returns, but it
will be reset to NULL if a GC is triggered. */
GC2_EXTERN void GC_gcollect(void);
GC2_EXTERN void GC_gcollect_minor(void);
/*
Performs an immediate [full] collection. */
GC2_EXTERN void GC_enable_collection(int on);
/*
Performs an immediate (full) collection. */
GC2_EXTERN void GC_request_incremental_mode(void);
/*
Requests incremental mode; lasts until the next major collection. */
GC2_EXTERN void GC_set_incremental_mode(int on);
/*
Sets whether incremental mode is the default (1), always disabled (0),
or available on demand (-1). */
GC2_EXTERN void GC_free_all(void);
/*
Releases all memory, removes all signal handlers, etc.
This is mainly useful for unloading a DLL within an embedding
program tht will keep running. */
/***************************************************************************/
/* Allocation */
/***************************************************************************/
GC2_EXTERN void *GC_malloc(size_t size_in_bytes);
/*
Alloc an array of pointers, initially zeroed. */
GC2_EXTERN void *GC_malloc_one_tagged(size_t);
/*
Alloc a tagged item, initially zeroed. Racket sets the tag
before a collection. */
GC2_EXTERN void *GC_malloc_one_small_tagged(size_t);
/*
Like GC_malloc_one_tagged, but the size must be less than 1kb,
it must not be zero, and it must be a multiple of the word size. */
GC2_EXTERN void *GC_malloc_one_small_dirty_tagged(size_t);
/*
Like GC_malloc_one_small_tagged, but the memory is not
zeroed. The client must set all words in the allocated
object before a GC can occur. */
GC2_EXTERN void *GC_malloc_pair(void *car, void *cdr);
/*
Like GC_malloc_one_tagged, but even more streamlined.
The main potential advantage is that `car' and `cdr' don't
have to be retained by the callee in the case of a GC. */
GC2_EXTERN void *GC_malloc_atomic(size_t size_in_bytes);
/*
Alloc pointerless memory (not necessarily zeroed). */
#define GC_malloc_atomic_tagged GC_malloc_one_tagged
#define GC_malloc_small_atomic_tagged GC_malloc_one_small_dirty_tagged
/*
Alloc pointer-free tagged memory (not necessarily zeroed).
Racket sets the tag before a collection. */
GC2_EXTERN void *GC_malloc_atomic_uncollectable(size_t size_in_bytes);
/*
Like plain malloc: pointer-free, never collected. */
GC2_EXTERN void *GC_malloc_allow_interior(size_t size_in_bytes);
/*
Alloc an array of pointers (typically large), and recognize
pointers into the middle of the array, or just past the end of the
array. */
GC2_EXTERN void *GC_malloc_atomic_allow_interior(size_t size_in_bytes);
/*
Like GC_malloc_allow_interior(), but for an atomic object. */
GC2_EXTERN void *GC_malloc_tagged_allow_interior(size_t size_in_bytes);
/*
Like GC_malloc_allow_interior(), but for a tagged object. */
GC2_EXTERN void *GC_malloc_weak_array(size_t size_in_bytes, void *replace_val);
/*
Alloc an array of weak pointers, initially zeroed. When a value in
the array is collected, it's replaced by `replace-val'. The
presence of a pointer in the array doesn't keep the referenced
memory from being collected. See also README for information about
the structure of the array. */
GC2_EXTERN void GC_free(void *);
/*
Lets the collector optionally reverse an allocation immediately.
[Generally a no-op.] */
GC2_EXTERN void *GC_malloc_weak_box(void *p, void **secondary, int soffset, int is_late);
/*
Allocate a weak box. See README for details. */
GC2_EXTERN void *GC_malloc_ephemeron(void *p, void *p2);
/*
Allocate an ephemeron. See README for details. */
GC2_EXTERN void **GC_malloc_immobile_box(void *p);
GC2_EXTERN void GC_free_immobile_box(void **b);
/*
Allocate (or free) a non-GCed box containing a pointer to a GCed
value. The pointer is stored as the first longword of the box. */
GC2_EXTERN intptr_t GC_malloc_stays_put_threshold();
/*
Returns a minimum size for which allocations generate
objects that never move, and where pointers are allowed
into the object's interior. */
GC2_EXTERN int GC_is_on_allocated_page(void *p);
/*
Returns 1 if p refers to a page of memory on which
the GC allocates objects (although p may or may not
be a valid pointer to the start of an alloctaed object). */
GC2_EXTERN int GC_allocate_phantom_bytes(void *pb, intptr_t);
/*
Returns 0 if allocation should fail due to a memory limit,
1 otherwise. The representative `pb` determines who is charged. */
GC2_EXTERN intptr_t GC_max_nursery_object_size();
/*
Returns a lower bound on the maximum size allowed for allocation
in the nursery. */
/***************************************************************************/
/* Memory tracing */
/***************************************************************************/
GC2_EXTERN int GC_mtrace_new_id(void *f);
GC2_EXTERN int GC_mtrace_union_current_with(int newval);
/***************************************************************************/
/* Finalization */
/***************************************************************************/
typedef void (*GC_finalization_proc)(void *p, void *data);
/*
Type of a finalization procedure. */
GC2_EXTERN void GC_set_finalizer(void *p, int tagged, int level,
GC_finalization_proc f, void *data,
GC_finalization_proc *oldf, void **olddata);
/*
See README for details. */
/***************************************************************************/
/* Cooperative GC */
/***************************************************************************/
THREAD_LOCAL_DECL(GC2_EXTERN void **GC_variable_stack);
/*
See the general overview in README. */
GC2_EXTERN void **GC_get_variable_stack();
GC2_EXTERN void GC_set_variable_stack(void **p);
GC2_EXTERN void GC_register_traversers(short tag, Size_Proc size, Mark_Proc mark, Fixup_Proc fixup,
int is_constant_size, int is_atomic);
GC2_EXTERN void GC_register_traversers2(short tag, Size2_Proc size, Mark2_Proc mark, Fixup2_Proc fixup,
int is_constant_size, int is_atomic);
/*
Registers a traversal procedure for a tag. Obviously, a traversal
procedure must be installed for each tag before a collection
happens where an instance of the tag as been allocated. If objects
using the tag are always of the same size, is_constant_size can be
non-zero, and `size' must return the right size given a null
pointer. If objects using the tag are atomic, is_atomic can be
non-zero. */
/* #define gcMARK(x) ... see below ... */
/* #define gcMARK_TYPED(t, x) ... see below ... */
/* #define gcMARK_TYPED_NOW(t, x) ... see below ... */
/* #define gcFIXUP(x) ... see below ... */
/* #define gcFIXUP_TYPED(t, x) ... see below ... */
/* #define gcFIXUP_TYPED_NOW(t, x) ... see below ... */
/* Macros that, given an l-value and optional type, marks the
referenced memory as live and updates the pointer as necessary
(i.e., if it's GCable memory that is moving). The `x' argument can
appear in the macro's output multiple times, and the output can be
a statement rather than a expression.
The NOW versions force the mark or fixup to happen immediately. The
other forms can queue the mark or fixup to happen later. */
/* #define gcBYTES_TO_WORDS(x) ((x + 3) >> 2) */
/*
Helpful macro for computing the return value in a traversal proc,
which must be in words. */
GC2_EXTERN void *GC_resolve(void *p);
GC2_EXTERN void *GC_resolve2(void *p, struct NewGC *gc);
/*
Can be called by a traversal proc to get the current address of a
object that might have been moved already. This is necessary, for
example, if the size or structure of an object depends on the
content of an object it references. For example, the size of a
class instance usually depends on a field count that is stored in
the class. In fixup mode, call this before fixing up. */
GC2_EXTERN void *GC_fixup_self(void *p);
/*
Can be called by a fixup proc to get the final address of the
pointer passed to the fixup proc. This is the identity function
only when objects are moved before fixup, but objects might
be moved after fixup. */
/* INTERNAL for the current implementation (used by macros): */
GC2_EXTERN void GC_mark(void *p);
GC2_EXTERN void GC_fixup(void *p);
GC2_EXTERN void GC_mark2(void *p, struct NewGC *gc);
GC2_EXTERN void GC_fixup2(void *p, struct NewGC *gc);
/*
Used in the expansion of gcMARK and gcFIXUP.
These procedures and variables are internal to the current
implementation, and are *not* part of the "official" interface. */
GC2_EXTERN int GC_is_marked2(const void *p, struct NewGC *gc);
/*
Reports whether p has been marked. */
GC2_EXTERN int GC_current_mode(struct NewGC *gc);
# define GC_CURRENT_MODE_MINOR 0
# define GC_CURRENT_MODE_MAJOR 1
# define GC_CURRENT_MODE_INCREMENTAL 2
# define GC_CURRENT_MODE_INCREMENTAL_FINAL 3
# define GC_CURRENT_MODE_BACKPOINTER_REMARK 4
# define GC_CURRENT_MODE_ACCOUNTING 5
/*
The mode during a mark or fixup function callback.
The GC_CURRENT_MODE_BACKPOINTER_REMARK mode corresponds
to re-traversing an old-generation object that was
formerly marked but has been mutated. */
GC2_EXTERN int GC_is_partial(struct NewGC *gc);
/*
Reports whether the current GC is a non-full collection
or accounting pass. GC_current_mode() is better. */
GC2_EXTERN int GC_started_incremental(struct NewGC *gc);
/*
Reports whether the current GC uses incremental collection. */
GC2_EXTERN void *GC_malloc_for_incremental(size_t amt);
/*
Use only when GC_started_incremental(); allocates
atomic memory that will be released at the end of the
next full collection, which ends the current
incremental pass. */
GC2_EXTERN void GC_mark_no_recur(struct NewGC *gc, int enable);
GC2_EXTERN void GC_retract_only_mark_stack_entry(void *pf, struct NewGC *gc);
/*
Used for very special collaboration with GC. */
GC2_EXTERN void GC_mark_variable_stack(void **var_stack,
intptr_t delta,
void *limit,
void *stack_mem);
GC2_EXTERN void GC_fixup_variable_stack(void **var_stack,
intptr_t delta,
void *limit,
void *stack_mem);
GC2_EXTERN void GC_mark2_variable_stack(void **var_stack,
intptr_t delta,
void *limit,
void *stack_mem,
struct NewGC *gc);
GC2_EXTERN void GC_fixup2_variable_stack(void **var_stack,
intptr_t delta,
void *limit,
void *stack_mem,
struct NewGC *gc);
/*
Can be called by a mark or fixup traversal proc to traverse and
update a chunk of (atomically-allocated) memory containing an image
of the stack.
The `var_stack' argument corresponds to the value of GC_var_stack
for the copied stack (see the overview at the top of this
file). The `var_stack' pointer refers to the address of the chain
in the original stack, not in the heap copy. The `delta' argument
specifies the difference heap_copy_address - stack_address (where
stack_address is the numerically lower bound for the copied stack
region, regardless of which direction the stack grows). The `limit'
argument corresponds to the value that would have been returned by
GC_get_thread_stack_base() at the time the stack was copied.
The `stack_mem' argument indicates the start of the allocated memory
that contains `var_stack'. It is used for backtraces. */
GC2_EXTERN int GC_merely_accounting();
/*
Can be called by a mark or fixup traversal proc to determine whether
the traversal is merely for accounting, in which case some marking
can be skipped if the corresponding data should be charged to a
different object. */
GC2_EXTERN void GC_write_barrier(void *p);
/*
Explicit write barrier to ensure that a write-barrier signal is not
triggered by a memory write.
*/
GC2_EXTERN void GC_switch_out_master_gc();
/*
Makes the current GC the master GC.
Creates a new place specific GC and links it to the master GC.
*/
GC2_EXTERN struct NewGC *GC_get_current_instance();
/*
Returns a representation of the current GC.
*/
GC2_EXTERN void GC_construct_child_gc(struct NewGC *parent_gc, intptr_t limit);
/*
Creates a new place-specific GC that is a child for memory-accounting
purposes of the give parent GC. If `limit' is not 0, set the maximum
amount of memory the new GC is supposed to use.
*/
GC2_EXTERN intptr_t GC_propagate_hierarchy_memory_use();
/*
Notifies the parent GC (if any) of memory use by the current GC
and its children. The result is total memory use. */
GC2_EXTERN void GC_destruct_child_gc();
/*
Destroys a place-specific GC once the place has finished.
*/
GC2_EXTERN void *GC_switch_to_master_gc();
/*
Switches to the master GC.
*/
GC2_EXTERN void GC_switch_back_from_master(void *gc);
/*
Switches to back to gc from the master GC.
*/
GC2_EXTERN int GC_is_using_master();
/*
Reports whether the master GC is in use after a non-master GC
has been created.
*/
GC2_EXTERN intptr_t GC_alloc_alignment();
/*
Guaranteeed alignment for nusery pages. Returns a constant, and
can be called from any thread.
*/
GC2_EXTERN uintptr_t GC_make_jit_nursery_page(int count, uintptr_t *sz);
/*
Obtains nursery pages from the GC for thread local allocation;
resulting space is count times the allocation alignment.
The result is an uintptr_t because it's not a valid
pointer to a GCable object. The result becomes invalid (i.e. it's collected)
with the next GC. If non-NULL, the `sz' argument is filled
with the length of the allocation area after the result.
*/
GC2_EXTERN void GC_check_master_gc_request();
/*
Checks to see if the master has requested a places major GC run
and executes a GC if requested
*/
GC2_EXTERN void GC_set_put_external_event_fd(void *fd);
/*
Sets the fd that can be passed to scheme_signal_received_at to wake up the place for GC
*/
GC2_EXTERN void GC_allow_master_gc_check();
/*
Signals the GC after spawning a place that the places is sufficiently set up to participate
in master gc collections
*/
GC2_EXTERN void GC_create_message_allocator();
/*
Saves off the gc->gen0 to gc->saved_allocator.
Captures all memory allocations until GC_finish_message_allocator i
is called so they can be sent to another place.
*/
GC2_EXTERN void *GC_finish_message_allocator();
/*
Stops memory allocation capture.
Restores gc->saved_allocator to gc->gen0.
Returns a void* that represents the message memory captured.
*/
GC2_EXTERN void GC_adopt_message_allocator(void *msg_memory);
/*
Adopts the message memory captured by the sending place into
the current receiving place's gc
*/
GC2_EXTERN intptr_t GC_is_place();
/*
Returns 1 if current GC is a place gc.
Otherwise returns 0;
*/
GC2_EXTERN int GC_message_small_objects_size(void *msg_memory, intptr_t up_to);
/*
Determines whether the message qualifies as short and whether the
total size of all objects allocated by the message allocator is less
than `up_to'
*/
GC2_EXTERN intptr_t GC_message_allocator_size(void *msg_memory);
/*
Returns the total size of all memory pages allocated by the message allocator
*/
GC2_EXTERN void GC_dispose_short_message_allocator(void *msg_memory);
/*
Disposes of small message allocators that were copied by the receiving place
*/
GC2_EXTERN void GC_destroy_orphan_msg_memory(void *msg_memory);
/*
Used to destroys a message allocators that is still in the place channel queue when
the place channels finalizer is called.
*/
GC2_EXTERN void GC_report_unsent_message_delta(intptr_t amt);
/*
Report message-in-flight size changes to the GC. This functionality is exposed,
rather than built into GC_finish_message_allocator(), GC_adpot_message_allocator(),
GC_dispose_short_message_allocator(), and GC_destroy_orphan_msg_memory(), so that
meesages to the master GC can be limited as long as the unsent message tracking
is within a factor of 2 or so.
*/
GC2_EXTERN void GC_set_backpointer_object(void *p);
/*
Registers the current object for backpointers, which is used when backtrace
support is enabled.
*/
# ifdef __cplusplus
};
# endif
#endif
/* Macros (implementation-specific): */
#ifdef SIXTY_FOUR_BIT_INTEGERS
# define gcLOG_WORD_SIZE 3
#else
# define gcLOG_WORD_SIZE 2
#endif
#define gcMARK(x) GC_mark(&(x))
#define gcMARK2(x, gc) GC_mark2(&(x), gc)
#define gcMARK_TYPED(t, x) gcMARK(&(x))
#define gcMARK2_TYPED(t, x, gc) gcMARK2(&(x), gc)
#define gcMARK_TYPED_NOW(t, x) gcMARK(&(x))
#define gcMARK2_TYPED_NOW(t, x, gc) gcMARK(&(x), gc)
#define gcFIXUP_TYPED_NOW(t, x) GC_fixup(&(x))
#define gcFIXUP2_TYPED_NOW(t, x, gc) GC_fixup2(&(x), gc)
#define gcFIXUP_TYPED(t, x) gcFIXUP_TYPED_NOW(void*, x)
#define gcFIXUP2_TYPED(t, x, gc) gcFIXUP2_TYPED_NOW(void*, x, gc)
#define gcFIXUP(x) gcFIXUP_TYPED(void*, x)
#define gcFIXUP2(x, gc) gcFIXUP2_TYPED(void*, x, gc)
#define gcBYTES_TO_WORDS(x) ((x + (1 << gcLOG_WORD_SIZE) - 1) >> gcLOG_WORD_SIZE)
#define gcWORDS_TO_BYTES(x) (x << gcLOG_WORD_SIZE)
#define GC_NO_SIZE_NEEDED_FROM_PROCS 1
#define GC_INTERIORABLES_NEVER_MOVE 1
#endif /* __mzscheme_gc_2__ */

View File

@ -1,974 +0,0 @@
typedef struct {
/*========================================================================*/
/* setjmpup (continuations) */
/*========================================================================*/
void (*scheme_init_jmpup_buf)(Scheme_Jumpup_Buf *b);
int (*scheme_setjmpup_relative)(Scheme_Jumpup_Buf *b, void *base,
void * volatile start, struct Scheme_Cont *cont);
void (*scheme_longjmpup)(Scheme_Jumpup_Buf *b);
void (*scheme_reset_jmpup_buf)(Scheme_Jumpup_Buf *b);
#ifdef USE_MZ_SETJMP
Scheme_Setjmp_Proc (*scheme_get_mz_setjmp)(void);
int (*scheme_mz_setjmp)(mz_pre_jmp_buf b);
void (*scheme_mz_longjmp)(mz_pre_jmp_buf b, int v);
#endif
void (*scheme_clear_escape)(void);
Scheme_Jumpup_Buf_Holder *(*scheme_new_jmpupbuf_holder)(void);
/*========================================================================*/
/* parameters */
/*========================================================================*/
Scheme_Config *(*scheme_current_config)(void);
Scheme_Config *(*scheme_minimal_config)(void);
Scheme_Config *(*scheme_extend_config)(Scheme_Config *c, int pos, Scheme_Object *init_val);
void (*scheme_install_config)(Scheme_Config *);
Scheme_Object *(*scheme_get_param)(Scheme_Config *c, int pos);
void (*scheme_set_param)(Scheme_Config *c, int pos, Scheme_Object *o);
Scheme_Object *(*scheme_get_thread_param)(Scheme_Config *c, Scheme_Thread_Cell_Table *cells, int pos);
void (*scheme_set_thread_param)(Scheme_Config *c, Scheme_Thread_Cell_Table *cells, int pos, Scheme_Object *o);
Scheme_Env *(*scheme_get_env)(Scheme_Config *config);
Scheme_Thread_Cell_Table *(*scheme_empty_cell_table)();
Scheme_Thread_Cell_Table *(*scheme_inherit_cells)(Scheme_Thread_Cell_Table *cells);
Scheme_Object *(*scheme_current_break_cell)();
/*========================================================================*/
/* threads */
/*========================================================================*/
#ifndef USE_THREAD_LOCAL
# ifndef LINK_EXTENSIONS_BY_TABLE
Scheme_Thread *scheme_current_thread;
volatile int scheme_fuel_counter;
# else
Scheme_Thread **scheme_current_thread_ptr;
volatile int *scheme_fuel_counter_ptr;
# endif
#endif
Scheme_Thread *(*scheme_get_current_thread)();
int (*scheme_is_atomic)(void);
void (*scheme_start_atomic)(void);
void (*scheme_end_atomic)(void);
void (*scheme_end_atomic_no_swap)(void);
void (*scheme_start_in_scheduler)(void);
void (*scheme_end_in_scheduler)(void);
void (*scheme_start_atomic_no_break)(void);
void (*scheme_end_atomic_can_break)(void);
void (*scheme_out_of_fuel)(void);
Scheme_Object *(*scheme_thread)(Scheme_Object *thunk);
Scheme_Object *(*scheme_thread_w_details)(Scheme_Object *thunk,
Scheme_Config *init_config,
Scheme_Thread_Cell_Table *copy_from,
Scheme_Object *break_cell,
Scheme_Custodian *owning_custodian,
int suspend_to_kill);
void (*scheme_kill_thread)(Scheme_Thread *p);
void (*scheme_break_thread)(Scheme_Thread *p);
void (*scheme_break_kind_thread)(Scheme_Thread *p, int kind);
void (*scheme_break_main_thread)();
void (*scheme_break_main_thread_at)(void *);
void (*scheme_break_kind_main_thread_at)(void *, int kind);
void *(*scheme_get_main_thread_break_handle)();
void (*scheme_set_break_main_target)(Scheme_Thread *p);
void (*scheme_thread_block)(float sleep_time);
void (*scheme_thread_block_enable_break)(float sleep_time, int enable);
void (*scheme_swap_thread)(Scheme_Thread *process);
void (*scheme_making_progress)();
void (*scheme_weak_suspend_thread)(Scheme_Thread *p);
void (*scheme_weak_resume_thread)(Scheme_Thread *p);
int (*scheme_block_until)(Scheme_Ready_Fun f, Scheme_Needs_Wakeup_Fun, Scheme_Object *, float);
int (*scheme_block_until_enable_break)(Scheme_Ready_Fun f, Scheme_Needs_Wakeup_Fun, Scheme_Object *,
float, int enable);
int (*scheme_block_until_unless)(Scheme_Ready_Fun f, Scheme_Needs_Wakeup_Fun fdf,
Scheme_Object *data, float delay,
Scheme_Object *unless,
int enable_break);
void (*scheme_wait_input_allowed)(Scheme_Input_Port *port, int nonblock);
int (*scheme_unless_ready)(Scheme_Object *unless);
int (*scheme_in_main_thread)(void);
void (*scheme_cancel_sleep)(void);
void (*scheme_start_sleeper_thread)(void (*mzsleep)(float seconds, void *fds), float secs, void *fds, int hit_fd);
void (*scheme_end_sleeper_thread)();
void (*scheme_set_place_sleep)(Scheme_Sleep_Proc slp);
void (*scheme_notify_sleep_progress)();
Scheme_Object *(*scheme_make_thread_cell)(Scheme_Object *def_val, int inherited);
Scheme_Object *(*scheme_thread_cell_get)(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells);
void (*scheme_thread_cell_set)(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells, Scheme_Object *v);
int (*scheme_tls_allocate)();
void (*scheme_tls_set)(int pos, void *v);
void *(*scheme_tls_get)(int pos);
Scheme_Custodian *(*scheme_make_custodian)(Scheme_Custodian *);
Scheme_Custodian_Reference *(*scheme_add_managed)(Scheme_Custodian *m, Scheme_Object *o,
Scheme_Close_Custodian_Client *f, void *data,
int strong);
Scheme_Custodian_Reference *(*scheme_add_managed_close_on_exit)(Scheme_Custodian *m, Scheme_Object *o,
Scheme_Close_Custodian_Client *f, void *data);
void (*scheme_custodian_check_available)(Scheme_Custodian *m, const char *who, const char *what);
int (*scheme_custodian_is_available)(Scheme_Custodian *m);
void (*scheme_remove_managed)(Scheme_Custodian_Reference *m, Scheme_Object *o);
void (*scheme_close_managed)(Scheme_Custodian *m);
void (*scheme_schedule_custodian_close)(Scheme_Custodian *c);
void (*scheme_add_custodian_extractor)(Scheme_Type t, Scheme_Custodian_Extractor e);
int (*scheme_flush_managed)(Scheme_Plumber *p, int catch_errors);
Scheme_Object *(*scheme_add_flush)(Scheme_Plumber *p, Scheme_Object *proc_or_port, int weak_flush);
void (*scheme_remove_flush)(Scheme_Object *h);
void (*scheme_add_atexit_closer)(Scheme_Exit_Closer_Func f);
int (*scheme_atexit)(void (*func)(void));
void (*scheme_add_evt)(Scheme_Type type,
Scheme_Ready_Fun ready,
Scheme_Needs_Wakeup_Fun wakeup,
Scheme_Sync_Filter_Fun filter,
int can_redirect);
void (*scheme_add_evt_through_sema)(Scheme_Type type,
Scheme_Sync_Sema_Fun sema,
Scheme_Sync_Filter_Fun filter);
int (*scheme_is_evt)(Scheme_Object *o);
Scheme_Object *(*scheme_sync)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_sync_enable_break)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_sync_timeout)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_make_evt_set)(int argc, Scheme_Object **argv);
void (*scheme_add_swap_callback)(Scheme_Closure_Func f, Scheme_Object *data);
void (*scheme_add_swap_out_callback)(Scheme_Closure_Func f, Scheme_Object *data);
Scheme_Object *(*scheme_call_enable_break)(Scheme_Prim *prim, int argc, Scheme_Object *argv[]);
int (*scheme_close_should_force_port_closed)();
void (*scheme_push_kill_action)(Scheme_Kill_Action_Func f, void *d);
void (*scheme_pop_kill_action)();
void (*scheme_set_can_break)(int on);
void (*scheme_push_break_enable)(Scheme_Cont_Frame_Data *cframe, int on, int pre_check);
void (*scheme_pop_break_enable)(Scheme_Cont_Frame_Data *cframe, int post_check);
Scheme_Object *(*scheme_abort_continuation_no_dws)(Scheme_Object *pt, Scheme_Object *v);
Scheme_Object *(*scheme_call_with_composable_no_dws)(Scheme_Object *proc, Scheme_Object *pt);
Scheme_On_Atomic_Timeout_Proc (*scheme_set_on_atomic_timeout)(Scheme_On_Atomic_Timeout_Proc p, void *data);
/*========================================================================*/
/* error handling */
/*========================================================================*/
void (*scheme_signal_error)(const char *msg, ...);
void (*scheme_raise_exn)(int exnid, ...);
void (*scheme_warning)(char *msg, ...);
void (*scheme_raise)(Scheme_Object *exn);
int (*scheme_log_level_p)(Scheme_Logger *logger, int level);
int (*scheme_log_level_topic_p)(Scheme_Logger *logger, int level, Scheme_Object *name);
void (*scheme_log)(Scheme_Logger *logger, int level, int flags,
const char *msg, ...);
void (*scheme_log_w_data)(Scheme_Logger *logger, int level, int flags,
Scheme_Object *data,
const char *msg, ...);
void (*scheme_log_message)(Scheme_Logger *logger, int level, char *buffer, intptr_t len, Scheme_Object *data);
void (*scheme_log_name_message)(Scheme_Logger *logger, int level, Scheme_Object *name,
char *buffer, intptr_t len, Scheme_Object *data);
void (*scheme_log_name_pfx_message)(Scheme_Logger *logger, int level, Scheme_Object *name,
char *buffer, intptr_t len, Scheme_Object *data,
int prefix_message);
void (*scheme_log_abort)(char *buffer);
void (*scheme_log_warning)(char *buffer);
void (*scheme_glib_log_message)(const char *log_domain, int log_level, const char *message, void *user_data);
void *(*scheme_glib_log_message_test)(char *str);
void (*scheme_out_of_memory_abort)();
void (*scheme_wrong_count)(const char *name, int minc, int maxc, int argc, Scheme_Object **argv);
void (*scheme_wrong_count_m)(const char *name, int minc, int maxc, int argc, Scheme_Object **argv, int is_method);
void (*scheme_case_lambda_wrong_count)(const char *name, int argc, Scheme_Object **argv, int is_method, int count, ...);
void (*scheme_wrong_type)(const char *name, const char *expected, int which, int argc, Scheme_Object **argv);
void (*scheme_wrong_contract)(const char *name, const char *expected, int which, int argc, Scheme_Object **argv);
void (*scheme_wrong_field_type)(Scheme_Object *c_name, const char *expected, Scheme_Object *o);
void (*scheme_wrong_field_contract)(Scheme_Object *c_name, const char *expected, Scheme_Object *o);
void (*scheme_arg_mismatch)(const char *name, const char *msg, Scheme_Object *o);
void (*scheme_contract_error)(const char *name, const char *msg, ...);
void (*scheme_wrong_return_arity)(const char *where, int expected, int got, Scheme_Object **argv, const char *context_detail, ...);
void (*scheme_unbound_global)(Scheme_Bucket *b);
Scheme_Object *(*scheme_dynamic_wind)(void (*pre)(void *),
Scheme_Object *(* volatile act)(void *),
void (* volatile post)(void *),
Scheme_Object *(*jmp_handler)(void *),
void * volatile data);
/*========================================================================*/
/* types */
/*========================================================================*/
Scheme_Type (*scheme_make_type)(const char *name);
char *(*scheme_get_type_name)(Scheme_Type type);
char *(*scheme_get_type_name_or_null)(Scheme_Type type);
/*========================================================================*/
/* constants */
/*========================================================================*/
Scheme_Object *scheme_eof;
Scheme_Object *(*scheme_make_eof)(void);
Scheme_Object *scheme_null;
Scheme_Object *(*scheme_make_null)(void);
Scheme_Object *scheme_true;
Scheme_Object *(*scheme_make_true)(void);
Scheme_Object *scheme_false;
Scheme_Object *(*scheme_make_false)(void);
Scheme_Object *scheme_void;
Scheme_Object *(*scheme_make_void)(void);
Scheme_Object *scheme_undefined;
Scheme_Object *scheme_tail_call_waiting;
Scheme_Object *scheme_multiple_values;
unsigned short **scheme_uchar_table;
unsigned char **scheme_uchar_cases_table;
unsigned char **scheme_uchar_cats_table;
int *scheme_uchar_ups;
int *scheme_uchar_downs;
int *scheme_uchar_titles;
int *scheme_uchar_folds;
unsigned char *scheme_uchar_combining_classes;
void *scheme_on_demand_jit_code;
/*========================================================================*/
/* evaluation */
/*========================================================================*/
Scheme_Object *(*scheme_eval)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*scheme_eval_multi)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*scheme_eval_with_prompt)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*scheme_eval_multi_with_prompt)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*scheme_eval_compiled)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*scheme_eval_compiled_multi)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*_scheme_eval_compiled)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*_scheme_eval_compiled_multi)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*scheme_apply)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*scheme_apply_multi)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*scheme_apply_no_eb)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*scheme_apply_multi_no_eb)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*scheme_apply_to_list)(Scheme_Object *rator, Scheme_Object *argss);
Scheme_Object *(*scheme_apply_with_prompt)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*scheme_apply_multi_with_prompt)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*_scheme_apply_with_prompt)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*_scheme_apply_multi_with_prompt)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*scheme_eval_string)(const char *str, Scheme_Env *env);
Scheme_Object *(*scheme_eval_string_multi)(const char *str, Scheme_Env *env);
Scheme_Object *(*scheme_eval_string_all)(const char *str, Scheme_Env *env, int all);
Scheme_Object *(*scheme_eval_string_with_prompt)(const char *str, Scheme_Env *env);
Scheme_Object *(*scheme_eval_string_multi_with_prompt)(const char *str, Scheme_Env *env);
Scheme_Object *(*scheme_eval_string_all_with_prompt)(const char *str, Scheme_Env *env, int all);
Scheme_Object *(*scheme_eval_all_with_prompt)(Scheme_Object *port, Scheme_Env *env, int all);
Scheme_Object *(*scheme_eval_module_string)(const char *str, Scheme_Env *env);
Scheme_Object *(*_scheme_apply_known_prim_closure)(Scheme_Object *rator, int argc,
Scheme_Object **argv);
Scheme_Object *(*_scheme_apply_known_prim_closure_multi)(Scheme_Object *rator, int argc,
Scheme_Object **argv);
Scheme_Object *(*_scheme_apply_prim_closure)(Scheme_Object *rator, int argc,
Scheme_Object **argv);
Scheme_Object *(*_scheme_apply_prim_closure_multi)(Scheme_Object *rator, int argc,
Scheme_Object **argv);
Scheme_Object **(*scheme_current_argument_stack)();
Scheme_Object *(*scheme_call_with_prompt)(Scheme_Closed_Prim f, void *data);
Scheme_Object *(*scheme_call_with_prompt_multi)(Scheme_Closed_Prim f, void *data);
Scheme_Object *(*_scheme_call_with_prompt)(Scheme_Closed_Prim f, void *data);
Scheme_Object *(*_scheme_call_with_prompt_multi)(Scheme_Closed_Prim f, void *data);
Scheme_Object *(*scheme_values)(int c, Scheme_Object **v);
Scheme_Object *(*scheme_check_one_value)(Scheme_Object *v);
/* Tail calls - only use these when you're writing new functions/syntax */
Scheme_Object *(*scheme_tail_apply)(Scheme_Object *f, int n, Scheme_Object **arg);
Scheme_Object *(*scheme_tail_apply_no_copy)(Scheme_Object *f, int n, Scheme_Object **arg);
Scheme_Object *(*scheme_tail_apply_to_list)(Scheme_Object *f, Scheme_Object *l);
Scheme_Object *(*scheme_tail_eval_expr)(Scheme_Object *obj);
void (*scheme_set_tail_buffer_size)(int s);
Scheme_Object *(*scheme_force_value)(Scheme_Object *);
Scheme_Object *(*scheme_force_one_value)(Scheme_Object *);
void (*scheme_ignore_result)(Scheme_Object *);
MZ_MARK_STACK_TYPE (*scheme_set_cont_mark)(Scheme_Object *key, Scheme_Object *val);
void (*scheme_push_continuation_frame)(Scheme_Cont_Frame_Data *);
void (*scheme_pop_continuation_frame)(Scheme_Cont_Frame_Data *);
void (*scheme_temp_dec_mark_depth)();
void (*scheme_temp_inc_mark_depth)();
Scheme_Object *(*scheme_current_continuation_marks)(Scheme_Object *prompt_tag);
Scheme_Object *(*scheme_extract_one_cc_mark)(Scheme_Object *mark_set,
Scheme_Object *key);
Scheme_Object *(*scheme_extract_one_cc_mark_to_tag)(Scheme_Object *mark_set,
Scheme_Object *key,
Scheme_Object *prompt_tag);
/* Internal */
Scheme_Object *(*scheme_do_eval)(Scheme_Object *obj, int _num_rands, Scheme_Object **rands, int val);
void (*scheme_detach_multple_array)(Scheme_Object **a);
/*========================================================================*/
/* memory management */
/*========================================================================*/
/* The core allocator functions depend on the GC. Macros in scheme.h */
/* map to the apporpriate core allocation function. */
#ifndef SCHEME_NO_GC
# ifndef SCHEME_NO_GC_PROTO
void *(*GC_malloc)(size_t size_in_bytes);
void *(*GC_malloc_atomic)(size_t size_in_bytes);
# ifdef MZ_PRECISE_GC
void *(*GC_malloc_one_tagged)(size_t size_in_bytes);
void *(*GC_malloc_atomic_uncollectable)(size_t size_in_bytes);
void *(*scheme_malloc_uncollectable)(size_t size_in_bytes);
void *(*GC_malloc_allow_interior)(size_t size_in_bytes);
void *(*GC_malloc_atomic_allow_interior)(size_t size_in_bytes);
void *(*GC_malloc_tagged_allow_interior)(size_t size_in_bytes);
# else
void *(*GC_malloc_stubborn)(size_t size_in_bytes);
void *(*GC_malloc_uncollectable)(size_t size_in_bytes);
# endif
# endif
#endif
void *(*scheme_malloc_code)(intptr_t size);
void *(*scheme_malloc_permanent_code)(intptr_t size);
void (*scheme_free_code)(void *p);
#ifndef MZ_PRECISE_GC
void *(*scheme_malloc_gcable_code)(intptr_t size);
#endif
void *(*scheme_malloc_eternal)(size_t n);
void (*scheme_end_stubborn_change)(void *p);
void *(*scheme_calloc)(size_t num, size_t size);
char *(*scheme_strdup)(const char *str);
char *(*scheme_strdup_eternal)(const char *str);
void *(*scheme_malloc_fail_ok)(void *(*f)(size_t), size_t);
#ifndef MZ_PRECISE_GC
void (*scheme_late_weak_reference)(void **p);
void (*scheme_late_weak_reference_indirect)(void **p, void *v);
void (*scheme_weak_reference)(void **p);
void (*scheme_weak_reference_indirect)(void **p, void *v);
void (*scheme_unweak_reference)(void **p);
#endif
void (*scheme_add_finalizer)(void *p, void (*f)(void *p, void *data), void *data);
void (*scheme_add_finalizer_once)(void *p, void (*f)(void *p, void *data), void *data);
void (*scheme_subtract_finalizer)(void *p, void (*f)(void *p, void *data), void *data);
void (*scheme_add_scheme_finalizer)(void *p, void (*f)(void *p, void *data), void *data);
void (*scheme_add_scheme_finalizer_once)(void *p, void (*f)(void *p, void *data), void *data);
void (*scheme_register_finalizer)(void *p,
void (*f)(void *p, void *data), void *data,
void (**oldf)(void *p, void *data),
void **olddata);
void (*scheme_remove_all_finalization)(void *p);
void (*scheme_dont_gc_ptr)(void *p);
void (*scheme_gc_ptr_ok)(void *p);
void (*scheme_collect_garbage)(void);
void (*scheme_collect_garbage_minor)(void);
void (*scheme_enable_garbage_collection)(int on);
void (*scheme_incremental_garbage_collection)(int on);
#ifdef MZ_PRECISE_GC
# ifndef USE_THREAD_LOCAL
void **GC_variable_stack;
# endif
void (*GC_register_traversers)(short tag, Size_Proc size, Mark_Proc mark, Fixup_Proc fixup,
int is_constant_size, int is_atomic);
void *(*GC_resolve)(void *p);
void (*GC_mark)(void *p);
void (*GC_fixup)(void *p);
void *(*GC_fixup_self)(void *p);
#endif
void **(*scheme_malloc_immobile_box)(void *p);
void (*scheme_free_immobile_box)(void **b);
Scheme_Object *(*scheme_add_gc_callback)(Scheme_Object *pre, Scheme_Object *post);
void (*scheme_remove_gc_callback)(Scheme_Object *key);
void (*scheme_register_type_gc_shape)(Scheme_Type type, intptr_t *shape_str);
/*========================================================================*/
/* hash tables */
/*========================================================================*/
Scheme_Bucket_Table *(*scheme_make_bucket_table)(intptr_t size_hint, int type);
void (*scheme_add_to_table)(Scheme_Bucket_Table *table, const char *key, void *val, int);
void (*scheme_change_in_table)(Scheme_Bucket_Table *table, const char *key, void *new_val);
void *(*scheme_lookup_in_table)(Scheme_Bucket_Table *table, const char *key);
Scheme_Bucket *(*scheme_bucket_from_table)(Scheme_Bucket_Table *table, const char *key);
int (*scheme_bucket_table_equal)(Scheme_Bucket_Table *t1, Scheme_Bucket_Table *t2);
Scheme_Bucket_Table *(*scheme_clone_bucket_table)(Scheme_Bucket_Table *bt);
void (*scheme_clear_bucket_table)(Scheme_Bucket_Table *bt);
int (*scheme_bucket_table_index)(Scheme_Bucket_Table *hash, mzlonglong pos, Scheme_Object **_key, Scheme_Object **_val);
Scheme_Object *(*scheme_bucket_table_next)(Scheme_Bucket_Table *hash, mzlonglong start);
Scheme_Hash_Table *(*scheme_make_hash_table)(int type);
Scheme_Hash_Table *(*scheme_make_hash_table_equal)();
Scheme_Hash_Table *(*scheme_make_hash_table_eqv)();
void (*scheme_hash_set)(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val);
Scheme_Object *(*scheme_hash_get)(Scheme_Hash_Table *table, Scheme_Object *key);
Scheme_Object *(*scheme_eq_hash_get)(Scheme_Hash_Table *table, Scheme_Object *key);
void (*scheme_hash_set_atomic)(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val);
Scheme_Object *(*scheme_hash_get_atomic)(Scheme_Hash_Table *table, Scheme_Object *key);
int (*scheme_hash_table_equal)(Scheme_Hash_Table *t1, Scheme_Hash_Table *t2);
int (*scheme_is_hash_table_equal)(Scheme_Object *o);
int (*scheme_is_hash_table_eqv)(Scheme_Object *o);
Scheme_Hash_Table *(*scheme_clone_hash_table)(Scheme_Hash_Table *ht);
void (*scheme_clear_hash_table)(Scheme_Hash_Table *ht);
int (*scheme_hash_table_index)(Scheme_Hash_Table *hash, mzlonglong pos, Scheme_Object **_key, Scheme_Object **_val);
Scheme_Object *(*scheme_hash_table_next)(Scheme_Hash_Table *hash, mzlonglong start);
Scheme_Hash_Tree *(*scheme_make_hash_tree)(int kind);
Scheme_Hash_Tree *(*scheme_hash_tree_set)(Scheme_Hash_Tree *tree, Scheme_Object *key, Scheme_Object *val);
Scheme_Object *(*scheme_hash_tree_get)(Scheme_Hash_Tree *tree, Scheme_Object *key);
Scheme_Object *(*scheme_eq_hash_tree_get)(Scheme_Hash_Tree *tree, Scheme_Object *key);
mzlonglong (*scheme_hash_tree_next)(Scheme_Hash_Tree *tree, mzlonglong pos);
int (*scheme_hash_tree_index)(Scheme_Hash_Tree *tree, mzlonglong pos, Scheme_Object **_key, Scheme_Object **_val);
int (*scheme_hash_tree_equal)(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2);
int (*scheme_is_hash_tree_equal)(Scheme_Object *o);
int (*scheme_is_hash_tree_eqv)(Scheme_Object *o);
/*========================================================================*/
/* basic Scheme value constructors */
/*========================================================================*/
Scheme_Object *(*scheme_make_prim)(Scheme_Prim *prim);
Scheme_Object *(*scheme_make_noneternal_prim)(Scheme_Prim *prim);
Scheme_Object *(*scheme_make_prim_w_arity)(Scheme_Prim *prim, const char *name,
mzshort mina, mzshort maxa);
Scheme_Object *(*scheme_make_folding_prim)(Scheme_Prim *prim,
const char *name,
mzshort mina, mzshort maxa,
short functional);
Scheme_Object *(*scheme_make_immed_prim)(Scheme_Prim *prim,
const char *name,
mzshort mina, mzshort maxa);
Scheme_Object *(*scheme_make_noncm_prim)(Scheme_Prim *prim,
const char *name,
mzshort mina, mzshort maxa);
Scheme_Object *(*scheme_make_noneternal_prim_w_arity)(Scheme_Prim *prim,
const char *name,
mzshort mina, mzshort maxa);
Scheme_Object *(*scheme_make_prim_w_everything)(Scheme_Prim *fun, int eternal,
const char *name,
mzshort mina, mzshort maxa,
int folding,
mzshort minr, mzshort maxr);
Scheme_Object *(*scheme_make_prim_closure_w_arity)(Scheme_Primitive_Closure_Proc *prim,
int size, Scheme_Object **vals,
const char *name,
mzshort mina, mzshort maxa);
Scheme_Object *(*scheme_make_folding_prim_closure)(Scheme_Primitive_Closure_Proc *prim,
int size, Scheme_Object **vals,
const char *name,
mzshort mina, mzshort maxa,
short functional);
Scheme_Object *(*scheme_make_closed_prim)(Scheme_Closed_Prim *prim, void *data);
Scheme_Object *(*scheme_make_closed_prim_w_arity)(Scheme_Closed_Prim *prim,
void *data, const char *name,
mzshort mina, mzshort maxa);
Scheme_Object *(*scheme_make_folding_closed_prim)(Scheme_Closed_Prim *prim,
void *data, const char *name,
mzshort mina, mzshort maxa,
short functional);
Scheme_Object *(*scheme_make_closed_prim_w_everything)(Scheme_Closed_Prim *fun,
void *data,
const char *name,
mzshort mina, mzshort maxa,
short folding,
mzshort minr, mzshort maxr);
void (*scheme_prim_is_method)(Scheme_Object *o);
Scheme_Object *(*scheme_make_pair)(Scheme_Object *car, Scheme_Object *cdr);
Scheme_Object *(*scheme_make_mutable_pair)(Scheme_Object *car, Scheme_Object *cdr);
Scheme_Object *(*scheme_make_list_pair)(Scheme_Object *car, Scheme_Object *cdr);
Scheme_Object *(*scheme_make_raw_pair)(Scheme_Object *, Scheme_Object *);
Scheme_Object *(*scheme_make_byte_string)(const char *chars);
Scheme_Object *(*scheme_make_sized_byte_string)(char *chars, intptr_t len, int copy);
Scheme_Object *(*scheme_make_sized_offset_byte_string)(char *chars, intptr_t d, intptr_t len, int copy);
Scheme_Object *(*scheme_make_immutable_sized_byte_string)(char *chars, intptr_t len, int copy);
Scheme_Object *(*scheme_make_byte_string_without_copying)(char *chars);
Scheme_Object *(*scheme_alloc_byte_string)(intptr_t size, char fill);
Scheme_Object *(*scheme_append_byte_string)(Scheme_Object *, Scheme_Object *);
Scheme_Object *(*scheme_make_utf8_string)(const char *chars);
Scheme_Object *(*scheme_make_sized_utf8_string)(char *chars, intptr_t len);
Scheme_Object *(*scheme_make_sized_offset_utf8_string)(char *chars, intptr_t d, intptr_t len);
Scheme_Object *(*scheme_make_immutable_sized_utf8_string)(char *chars, intptr_t len);
Scheme_Object *(*scheme_make_locale_string)(const char *chars);
Scheme_Object *(*scheme_char_string_to_byte_string)(Scheme_Object *s);
Scheme_Object *(*scheme_byte_string_to_char_string)(Scheme_Object *s);
Scheme_Object *(*scheme_char_string_to_byte_string_locale)(Scheme_Object *s);
Scheme_Object *(*scheme_byte_string_to_char_string_locale)(Scheme_Object *s);
Scheme_Object *(*scheme_char_string_to_path)(Scheme_Object *p);
Scheme_Object *(*scheme_path_to_char_string)(Scheme_Object *p);
Scheme_Object *(*scheme_make_char_string)(const mzchar *chars);
Scheme_Object *(*scheme_make_sized_char_string)(mzchar *chars, intptr_t len, int copy);
Scheme_Object *(*scheme_make_sized_offset_char_string)(mzchar *chars, intptr_t d, intptr_t len, int copy);
Scheme_Object *(*scheme_make_immutable_sized_char_string)(mzchar *chars, intptr_t len, int copy);
Scheme_Object *(*scheme_make_char_string_without_copying)(mzchar *chars);
Scheme_Object *(*scheme_alloc_char_string)(intptr_t size, mzchar fill);
Scheme_Object *(*scheme_append_char_string)(Scheme_Object *, Scheme_Object *);
mzchar *(*scheme_string_recase)(mzchar *s, int d, int len, int mode, int inplace, int *_len);
Scheme_Object *(*scheme_make_vector)(intptr_t size, Scheme_Object *fill);
Scheme_Double_Vector *(*scheme_alloc_flvector)(intptr_t size);
#ifdef MZ_LONG_DOUBLE
Scheme_Long_Double_Vector *(*scheme_alloc_extflvector)(intptr_t size);
#endif
Scheme_Vector *(*scheme_alloc_fxvector)(intptr_t size);
Scheme_Object *(*scheme_make_integer_value)(intptr_t i);
Scheme_Object *(*scheme_make_integer_value_from_unsigned)(uintptr_t i);
Scheme_Object *(*scheme_make_integer_value_from_long_long)(mzlonglong i);
Scheme_Object *(*scheme_make_integer_value_from_unsigned_long_long)(umzlonglong i);
Scheme_Object *(*scheme_make_integer_value_from_long_halves)(uintptr_t lowhalf, uintptr_t hihalf);
Scheme_Object *(*scheme_make_integer_value_from_unsigned_long_halves)(uintptr_t lowhalf, uintptr_t hihalf);
Scheme_Object *(*scheme_make_double)(double d);
#ifdef MZ_LONG_DOUBLE
Scheme_Object *(*scheme_make_long_double)(mz_long_double d);
#endif
#ifdef MZ_USE_SINGLE_FLOATS
Scheme_Object *(*scheme_make_float)(float f) ;
#endif
Scheme_Object *(*scheme_make_char)(mzchar ch);
Scheme_Object *(*scheme_make_char_or_nul)(mzchar ch);
Scheme_Object *(*scheme_make_sema)(intptr_t v);
void (*scheme_post_sema)(Scheme_Object *o);
void (*scheme_post_sema_all)(Scheme_Object *o);
int (*scheme_wait_sema)(Scheme_Object *o, int just_try);
int (*scheme_try_plain_sema)(Scheme_Object *o);
Scheme_Object **scheme_char_constants;
Scheme_Object *(*scheme_make_channel)();
Scheme_Object *(*scheme_make_channel_put_evt)(Scheme_Object *ch, Scheme_Object *v);
int (*scheme_get_int_val)(Scheme_Object *o, intptr_t *v);
int (*scheme_get_unsigned_int_val)(Scheme_Object *o, uintptr_t *v);
int (*scheme_get_long_long_val)(Scheme_Object *o, mzlonglong *v);
int (*scheme_get_unsigned_long_long_val)(Scheme_Object *o, umzlonglong *v);
double (*scheme_real_to_double)(Scheme_Object *r);
#ifdef MZ_LONG_DOUBLE
mz_long_double (*scheme_real_to_long_double)(Scheme_Object *r);
#endif
Scheme_Object *(*scheme_make_cptr)(void *cptr, Scheme_Object *typetag);
Scheme_Object *(*scheme_make_offset_cptr)(void *cptr, intptr_t offset, Scheme_Object *typetag);
Scheme_Object *(*scheme_make_external_cptr)(void *cptr, Scheme_Object *typetag);
Scheme_Object *(*scheme_make_offset_external_cptr)(void *cptr, intptr_t offset, Scheme_Object *typetag);
int (*scheme_is_cpointer)(Scheme_Object *cp);
const char *(*scheme_get_proc_name)(Scheme_Object *p, int *len, int for_error);
/*========================================================================*/
/* strings */
/*========================================================================*/
intptr_t (*scheme_utf8_decode)(const unsigned char *s, intptr_t start, intptr_t end,
unsigned int *us, intptr_t dstart, intptr_t dend,
intptr_t *ipos, char utf16, int permissive);
intptr_t (*scheme_utf8_decode_offset_prefix)(const unsigned char *s, intptr_t start, intptr_t end,
unsigned int *us, intptr_t dstart, intptr_t dend,
intptr_t *ipos, char utf16, int permissive);
intptr_t (*scheme_utf8_decode_as_prefix)(const unsigned char *s, intptr_t start, intptr_t end,
unsigned int *us, intptr_t dstart, intptr_t dend,
intptr_t *ipos, char utf16, int permissive);
intptr_t (*scheme_utf8_decode_all)(const unsigned char *s, intptr_t len, unsigned int *us,
int permissive);
intptr_t (*scheme_utf8_decode_prefix)(const unsigned char *s, intptr_t len, unsigned int *us,
int permissive);
mzchar *(*scheme_utf8_decode_to_buffer)(const unsigned char *s, intptr_t len,
mzchar *buf, intptr_t blen);
mzchar *(*scheme_utf8_decode_to_buffer_len)(const unsigned char *s, intptr_t len,
mzchar *buf, intptr_t blen, intptr_t *rlen);
intptr_t (*scheme_utf8_decode_count)(const unsigned char *s, intptr_t start, intptr_t end,
int *_state, int might_continue, int permissive);
intptr_t (*scheme_utf8_encode)(const unsigned int *us, intptr_t start, intptr_t end,
unsigned char *s, intptr_t dstart,
char utf16);
intptr_t (*scheme_utf8_encode_all)(const unsigned int *us, intptr_t len, unsigned char *s);
char *(*scheme_utf8_encode_to_buffer)(const mzchar *s, intptr_t len,
char *buf, intptr_t blen);
char *(*scheme_utf8_encode_to_buffer_len)(const mzchar *s, intptr_t len,
char *buf, intptr_t blen, intptr_t *rlen);
unsigned short *(*scheme_ucs4_to_utf16)(const mzchar *text, intptr_t start, intptr_t end,
unsigned short *buf, intptr_t bufsize,
intptr_t *ulen, intptr_t term_size);
mzchar *(*scheme_utf16_to_ucs4)(const unsigned short *text, intptr_t start, intptr_t end,
mzchar *buf, intptr_t bufsize,
intptr_t *ulen, intptr_t term_size);
Scheme_Object *(*scheme_open_converter)(const char *from_e, const char *to_e);
void (*scheme_close_converter)(Scheme_Object *conv);
char *(*scheme_getenv)(char *name);
/*========================================================================*/
/* bignums */
/*========================================================================*/
Scheme_Object *(*scheme_make_bignum)(intptr_t v);
Scheme_Object *(*scheme_make_bignum_from_unsigned)(uintptr_t v);
Scheme_Object *(*scheme_make_bignum_from_long_long)(mzlonglong v);
Scheme_Object *(*scheme_make_bignum_from_unsigned_long_long)(umzlonglong v);
double (*scheme_bignum_to_double)(const Scheme_Object *n);
Scheme_Object *(*scheme_bignum_from_double)(double d);
#ifdef MZ_LONG_DOUBLE
mz_long_double (*scheme_bignum_to_long_double)(const Scheme_Object *n);
Scheme_Object *(*scheme_bignum_from_long_double)(mz_long_double d);
#endif
#ifdef MZ_USE_SINGLE_FLOATS
float (*scheme_bignum_to_float)(const Scheme_Object *n);
Scheme_Object *(*scheme_bignum_from_float)(float d);
#else
# define scheme_bignum_to_float scheme_bignum_to_double
# define scheme_bignum_from_float scheme_bignum_from_double
#endif
char *(*scheme_bignum_to_string)(const Scheme_Object *n, int radix);
char *(*scheme_bignum_to_allocated_string)(const Scheme_Object *n, int radix, int alloc);
Scheme_Object *(*scheme_read_bignum)(const mzchar *str, int offset, int radix);
Scheme_Object *(*scheme_read_bignum_bytes)(const char *str, int offset, int radix);
Scheme_Object *(*scheme_bignum_normalize)(const Scheme_Object *n);
/*========================================================================*/
/* rationals */
/*========================================================================*/
Scheme_Object *(*scheme_make_rational)(const Scheme_Object *r, const Scheme_Object *d);
double (*scheme_rational_to_double)(const Scheme_Object *n);
Scheme_Object *(*scheme_rational_from_double)(double d);
#ifdef MZ_LONG_DOUBLE
mz_long_double (*scheme_rational_to_long_double)(const Scheme_Object *n);
Scheme_Object *(*scheme_rational_from_long_double)(mz_long_double d);
#endif
#ifdef MZ_USE_SINGLE_FLOATS
float (*scheme_rational_to_float)(const Scheme_Object *n);
Scheme_Object *(*scheme_rational_from_float)(float d);
#else
# define scheme_rational_to_float scheme_rational_to_double
# define scheme_rational_from_float scheme_rational_from_double
#endif
Scheme_Object *(*scheme_rational_normalize)(const Scheme_Object *n);
Scheme_Object *(*scheme_rational_numerator)(const Scheme_Object *n);
Scheme_Object *(*scheme_rational_denominator)(const Scheme_Object *n);
/*========================================================================*/
/* complexes */
/*========================================================================*/
Scheme_Object *(*scheme_make_complex)(const Scheme_Object *r, const Scheme_Object *i);
Scheme_Object *(*scheme_complex_normalize)(const Scheme_Object *n);
Scheme_Object *(*scheme_complex_real_part)(const Scheme_Object *n);
Scheme_Object *(*scheme_complex_imaginary_part)(const Scheme_Object *n);
/* Exact/inexact: */
int (*scheme_is_exact)(const Scheme_Object *n);
int (*scheme_is_inexact)(const Scheme_Object *n);
/*========================================================================*/
/* macros, syntax, and compilation */
/*========================================================================*/
Scheme_Object *(*scheme_expand)(Scheme_Object *form, Scheme_Env *env);
Scheme_Object *(*scheme_compile)(Scheme_Object *form, Scheme_Env *env, int writeable);
/*========================================================================*/
/* ports */
/*========================================================================*/
Scheme_Object *(*scheme_read)(Scheme_Object *port);
Scheme_Object *(*scheme_read_syntax)(Scheme_Object *port, Scheme_Object *stxsrc);
void (*scheme_write)(Scheme_Object *obj, Scheme_Object *port);
void (*scheme_print)(Scheme_Object *obj, Scheme_Object *port);
void (*scheme_display)(Scheme_Object *obj, Scheme_Object *port);
void (*scheme_write_w_max)(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl);
void (*scheme_display_w_max)(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl);
void (*scheme_print_w_max)(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl);
void (*scheme_write_byte_string)(const char *str, intptr_t len, Scheme_Object *port);
void (*scheme_write_char_string)(const mzchar *str, intptr_t len, Scheme_Object *port);
intptr_t (*scheme_put_byte_string)(const char *who, Scheme_Object *port,
const char *str, intptr_t d, intptr_t len,
int rarely_block);
intptr_t (*scheme_put_char_string)(const char *who, Scheme_Object *port,
const mzchar *str, intptr_t d, intptr_t len);
char *(*scheme_write_to_string)(Scheme_Object *obj, intptr_t *len);
char *(*scheme_display_to_string)(Scheme_Object *obj, intptr_t *len);
char *(*scheme_print_to_string)(Scheme_Object *obj, intptr_t *len);
char *(*scheme_write_to_string_w_max)(Scheme_Object *obj, intptr_t *len, intptr_t maxl);
char *(*scheme_display_to_string_w_max)(Scheme_Object *obj, intptr_t *len, intptr_t maxl);
char *(*scheme_print_to_string_w_max)(Scheme_Object *obj, intptr_t *len, intptr_t maxl);
void (*scheme_debug_print)(Scheme_Object *obj);
void (*scheme_flush_output)(Scheme_Object *port);
char *(*scheme_format)(mzchar *format, int flen, int argc, Scheme_Object **argv, intptr_t *rlen);
void (*scheme_printf)(mzchar *format, int flen, int argc, Scheme_Object **argv);
char *(*scheme_format_utf8)(char *format, int flen, int argc, Scheme_Object **argv, intptr_t *rlen);
void (*scheme_printf_utf8)(char *format, int flen, int argc, Scheme_Object **argv);
int (*scheme_getc)(Scheme_Object *port);
int (*scheme_get_byte)(Scheme_Object *port);
int (*scheme_peekc)(Scheme_Object *port);
int (*scheme_peek_byte)(Scheme_Object *port);
int (*scheme_peekc_skip)(Scheme_Object *port, Scheme_Object *skip);
int (*scheme_peek_byte_skip)(Scheme_Object *port, Scheme_Object *skip, Scheme_Object *unless_evt);
int (*scheme_getc_special_ok)(Scheme_Object *port);
int (*scheme_get_byte_special_ok)(Scheme_Object *port);
int (*scheme_peekc_special_ok)(Scheme_Object *port);
int (*scheme_peek_byte_special_ok_skip)(Scheme_Object *port, Scheme_Object *skip, Scheme_Object *unless_evt);
int (*scheme_peekc_special_ok_skip)(Scheme_Object *port, Scheme_Object *skip);
void (*scheme_ungetc)(int ch, Scheme_Object *port);
int (*scheme_byte_ready)(Scheme_Object *port);
int (*scheme_char_ready)(Scheme_Object *port);
int (*scheme_peekc_is_ungetc)(Scheme_Object *port);
void (*scheme_need_wakeup)(Scheme_Object *port, void *fds);
intptr_t (*scheme_get_byte_string)(const char *who,
Scheme_Object *port,
char *buffer, intptr_t offset, intptr_t size,
int only_avail,
int peek, Scheme_Object *peek_skip);
intptr_t (*scheme_get_byte_string_unless)(const char *who,
Scheme_Object *port,
char *buffer, intptr_t offset, intptr_t size,
int only_avail,
int peek, Scheme_Object *peek_skip,
Scheme_Object *unless_evt);
intptr_t (*scheme_get_byte_string_special_ok_unless)(const char *who,
Scheme_Object *port,
char *buffer, intptr_t offset, intptr_t size,
int only_avail,
int peek, Scheme_Object *peek_skip,
Scheme_Object *unless_evt);
Scheme_Object *(*scheme_progress_evt)(Scheme_Object *port);
int (*scheme_peeked_read)(Scheme_Object *port,
intptr_t size,
Scheme_Object *unless_evt,
Scheme_Object *target_evt);
intptr_t (*scheme_get_char_string)(const char *who,
Scheme_Object *port,
mzchar *buffer, intptr_t offset, intptr_t size,
int peek, Scheme_Object *peek_skip);
intptr_t (*scheme_get_bytes)(Scheme_Object *port, intptr_t size, char *buffer, int offset);
Scheme_Object *(*scheme_get_ready_special)(Scheme_Object *port, Scheme_Object *stxsrc, int peek);
intptr_t (*scheme_tell)(Scheme_Object *port);
intptr_t (*scheme_tell_can_redirect)(Scheme_Object *port, int not_via_loc);
intptr_t (*scheme_output_tell)(Scheme_Object *port);
intptr_t (*scheme_tell_line)(Scheme_Object *port);
intptr_t (*scheme_tell_column)(Scheme_Object *port);
void (*scheme_tell_all)(Scheme_Object *port, intptr_t *line, intptr_t *col, intptr_t *pos);
void (*scheme_set_port_location)(int argc, Scheme_Object **argv);
void (*scheme_count_lines)(Scheme_Object *port);
void (*scheme_close_input_port)(Scheme_Object *port);
void (*scheme_close_output_port)(Scheme_Object *port);
Scheme_Object *(*scheme_write_special)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_write_special_nonblock)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_make_write_evt)(const char *who, Scheme_Object *port,
Scheme_Object *special, char *str, intptr_t start, intptr_t size);
Scheme_Port *(*scheme_port_record)(Scheme_Object *port);
Scheme_Input_Port *(*scheme_input_port_record)(Scheme_Object *port);
Scheme_Output_Port *(*scheme_output_port_record)(Scheme_Object *port);
int (*scheme_is_input_port)(Scheme_Object *port);
int (*scheme_is_output_port)(Scheme_Object *port);
Scheme_Object *(*scheme_make_port_type)(const char *name);
Scheme_Input_Port *(*scheme_make_input_port)(Scheme_Object *subtype, void *data,
Scheme_Object *name,
Scheme_Get_String_Fun get_byte_string_fun,
Scheme_Peek_String_Fun peek_string_fun,
Scheme_Progress_Evt_Fun progress_evt_fun,
Scheme_Peeked_Read_Fun peeked_read_fun,
Scheme_In_Ready_Fun byte_ready_fun,
Scheme_Close_Input_Fun close_fun,
Scheme_Need_Wakeup_Input_Fun need_wakeup_fun,
int must_close);
Scheme_Output_Port *(*scheme_make_output_port)(Scheme_Object *subtype, void *data,
Scheme_Object *name,
Scheme_Write_String_Evt_Fun write_byte_string_evt_fun,
Scheme_Write_String_Fun write_byte_string_fun,
Scheme_Out_Ready_Fun ready_fun,
Scheme_Close_Output_Fun close_fun,
Scheme_Need_Wakeup_Output_Fun need_wakeup_fun,
Scheme_Write_Special_Evt_Fun write_special_evt_fun,
Scheme_Write_Special_Fun write_special_fun,
int must_close);
void (*scheme_set_next_port_custodian)(Scheme_Custodian *c);
void (*scheme_set_port_location_fun)(Scheme_Port *port,
Scheme_Location_Fun location_fun);
void (*scheme_set_port_count_lines_fun)(Scheme_Port *port,
Scheme_Count_Lines_Fun count_lines_fun);
void (*scheme_port_count_lines)(Scheme_Port *ip, const char *buffer,
intptr_t offset, intptr_t got);
Scheme_Object *(*scheme_progress_evt_via_get)(Scheme_Input_Port *port);
int (*scheme_peeked_read_via_get)(Scheme_Input_Port *port,
intptr_t size,
Scheme_Object *unless_evt,
Scheme_Object *target_ch);
Scheme_Object *(*scheme_write_evt_via_write)(Scheme_Output_Port *port,
const char *str, intptr_t offset, intptr_t size);
Scheme_Object *(*scheme_write_special_evt_via_write_special)(Scheme_Output_Port *port,
Scheme_Object *special);
Scheme_Object *(*scheme_open_input_file)(const char *name, const char *who);
Scheme_Object *(*scheme_open_output_file)(const char *name, const char *who);
Scheme_Object *(*scheme_open_input_output_file)(const char *name, const char *who, Scheme_Object **oport);
Scheme_Object *(*scheme_open_output_file_with_mode)(const char *name, const char *who, int text);
Scheme_Object *(*scheme_make_file_input_port)(FILE *fp);
Scheme_Object *(*scheme_make_named_file_input_port)(FILE *fp, Scheme_Object *name);
Scheme_Object *(*scheme_make_file_output_port)(FILE *fp);
Scheme_Object *(*scheme_make_fd_input_port)(int fd, Scheme_Object *name, int regfile, int win_textmode);
Scheme_Object *(*scheme_make_fd_output_port)(int fd, Scheme_Object *name, int regfile, int win_textmode, int read_too);
Scheme_Object *(*scheme_make_byte_string_input_port)(const char *str);
Scheme_Object *(*scheme_make_sized_byte_string_input_port)(const char *str, intptr_t len);
Scheme_Object *(*scheme_make_byte_string_output_port)();
char *(*scheme_get_sized_byte_string_output)(Scheme_Object *port, intptr_t *len);
char *(*scheme_get_reset_sized_byte_string_output)(Scheme_Object *port, intptr_t *len, int reset, intptr_t startpos, intptr_t endpos);
void (*scheme_pipe)(Scheme_Object **read, Scheme_Object **write);
void (*scheme_pipe_with_limit)(Scheme_Object **write, Scheme_Object **read, int maxsize);
Scheme_Object *(*scheme_make_null_output_port)(int can_write_special);
Scheme_Object *(*scheme_make_redirect_output_port)(Scheme_Object *port);
intptr_t (*scheme_set_file_position)(Scheme_Object *port, intptr_t pos);
int (*scheme_file_exists)(char *filename);
int (*scheme_directory_exists)(char *dirname);
char *(*scheme_expand_filename)(char* filename, int ilen, const char *errorin, int *ex, int guards);
char *(*scheme_expand_user_filename)(char* filename, int ilen, const char *errorin, int *ex, int guards);
char *(*scheme_expand_string_filename)(Scheme_Object *f, const char *errorin, int *ex, int guards);
char *(*scheme_os_getcwd)(char *buf, size_t buflen, int *actlen, int noexn);
int (*scheme_os_setcwd)(char *buf, int noexn);
char *(*scheme_getdrive)(void);
Scheme_Object *(*scheme_split_path)(const char *path, int len, Scheme_Object **base, int *isdir, int kind);
Scheme_Object *(*scheme_build_path)(int argc, Scheme_Object **argv);
Scheme_Object *(*scheme_path_to_directory_path)(Scheme_Object *p);
Scheme_Object *(*scheme_path_to_complete_path)(Scheme_Object *path, Scheme_Object *relto_path);
Scheme_Object *(*scheme_simplify_path)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_make_path)(const char *chars);
Scheme_Object *(*scheme_make_sized_path)(char *chars, intptr_t len, int copy);
Scheme_Object *(*scheme_make_sized_offset_path)(char *chars, intptr_t d, intptr_t len, int copy);
Scheme_Object *(*scheme_make_sized_offset_kind_path)(char *chars, intptr_t d, intptr_t len, int copy, int kind);
Scheme_Object *(*scheme_make_path_without_copying)(char *chars);
void *(*scheme_alloc_fdset_array)(int count, int permanent);
void *(*scheme_init_fdset_array)(void *fdarray, int count);
void *(*scheme_get_fdset)(void *fdarray, int pos);
void (*scheme_fdzero)(void *fd);
void (*scheme_fdset)(void *fd, int pos);
void (*scheme_fdclr)(void *fd, int pos);
int (*scheme_fdisset)(void *fd, int pos);
void (*scheme_add_fd_handle)(void *h, void *fds, int repost);
void (*scheme_add_fd_eventmask)(void *fds, int mask);
void (*scheme_collapse_win_fd)(void *fds);
void (*scheme_set_wakeup_time)(void *fds, double end_time);
void (*scheme_security_check_file)(const char *who, const char *filename, int guards);
void (*scheme_security_check_file_link)(const char *who, const char *filename, const char *content);
void (*scheme_security_check_network)(const char *who, const char *host, int port, int client);
struct mz_addrinfo *(*scheme_get_host_address)(const char *address, int id, int *err,
int family, int passive, int tcp);
void (*scheme_free_host_address)(struct mz_addrinfo *a);
const char *(*scheme_host_address_strerror)(int errnum);
void (*scheme_getnameinfo)(void *sa, int salen,
char *host, int hostlen,
char *serv, int servlen);
int (*scheme_get_port_file_descriptor)(Scheme_Object *p, intptr_t *_fd);
intptr_t (*scheme_get_port_fd)(Scheme_Object *p);
int (*scheme_get_port_socket)(Scheme_Object *p, intptr_t *_s);
void (*scheme_socket_to_ports)(intptr_t s, const char *name, int takeover,
Scheme_Object **_inp, Scheme_Object **_outp);
Scheme_Object *(*scheme_fd_to_semaphore)(intptr_t fd, int mode, int is_socket);
void (*scheme_set_type_printer)(Scheme_Type stype, Scheme_Type_Printer printer);
void (*scheme_print_bytes)(Scheme_Print_Params *pp, const char *str, int offset, int len);
void (*scheme_print_utf8)(Scheme_Print_Params *pp, const char *str, int offset, int len);
void (*scheme_print_string)(Scheme_Print_Params *pp, const mzchar *str, int offset, int len);
Scheme_Object *(*scheme_read_byte_string)(Scheme_Object *port);
/*========================================================================*/
/* namespace/environment */
/*========================================================================*/
Scheme_Object *(*scheme_make_namespace)(int argc, Scheme_Object *argv[]);
void (*scheme_add_global)(const char *name, Scheme_Object *val, Scheme_Env *env);
void (*scheme_add_global_symbol)(Scheme_Object *name, Scheme_Object *val,
Scheme_Env *env);
Scheme_Object *(*scheme_make_envunbox)(Scheme_Object *value);
Scheme_Object *(*scheme_lookup_global)(Scheme_Object *symbol, Scheme_Env *env);
Scheme_Bucket *(*scheme_global_bucket)(Scheme_Object *symbol, Scheme_Env *env);
Scheme_Bucket *(*scheme_module_bucket)(Scheme_Object *mod, Scheme_Object *var, int pos, Scheme_Env *env);
Scheme_Object *(*scheme_builtin_value)(const char *name); /* convenience */
void (*scheme_set_global_bucket)(char *proc, Scheme_Bucket *var, Scheme_Object *val,
int set_undef);
Scheme_Env *(*scheme_primitive_module)(Scheme_Object *name, Scheme_Env *for_env);
void (*scheme_finish_primitive_module)(Scheme_Env *env);
void (*scheme_set_primitive_module_phaseless)(Scheme_Env *env, int phaseless);
void (*scheme_protect_primitive_provide)(Scheme_Env *env, Scheme_Object *name);
Scheme_Object *(*scheme_make_modidx)(Scheme_Object *path,
Scheme_Object *base,
Scheme_Object *resolved);
Scheme_Object *(*scheme_dynamic_require)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_dynamic_require_reader)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_namespace_require)(Scheme_Object *);
int (*scheme_is_module_path)(Scheme_Object *);
int (*scheme_is_module_path_index)(Scheme_Object *);
int (*scheme_is_resolved_module_path)(Scheme_Object *);
Scheme_Object *(*scheme_datum_to_kernel_stx)(Scheme_Object *e);
int (*scheme_module_is_declared)(Scheme_Object *name, int try_load);
/*========================================================================*/
/* symbols */
/*========================================================================*/
Scheme_Object *(*scheme_intern_symbol)(const char *name);
Scheme_Object *(*scheme_intern_exact_symbol)(const char *name, uintptr_t len);
Scheme_Object *(*scheme_intern_exact_char_symbol)(const mzchar *name, uintptr_t len);
Scheme_Object *(*scheme_make_symbol)(const char *name); /* Make uninterned */
Scheme_Object *(*scheme_make_exact_symbol)(const char *name, uintptr_t len); /* Exact case */
Scheme_Object *(*scheme_make_exact_char_symbol)(const mzchar *name, uintptr_t len); /* Exact case */
const char *(*scheme_symbol_name)(Scheme_Object *sym);
const char *(*scheme_symbol_name_and_size)(Scheme_Object *sym, uintptr_t *l, int flags);
char *(*scheme_symbol_val)(Scheme_Object *sym);
Scheme_Object *(*scheme_intern_exact_keyword)(const char *name, uintptr_t len);
Scheme_Object *(*scheme_intern_exact_char_keyword)(const mzchar *name, uintptr_t len);
/*========================================================================*/
/* structs */
/*========================================================================*/
Scheme_Object **(*scheme_make_struct_values)(Scheme_Object *struct_type,
Scheme_Object **names,
int count, int flags);
Scheme_Object **(*scheme_make_struct_names)(Scheme_Object *base,
Scheme_Object *field_names,
int flags, int *count_out);
Scheme_Object *(*scheme_make_struct_type)(Scheme_Object *base,
Scheme_Object *parent,
Scheme_Object *inspector,
int num_fields, int num_uninit_fields,
Scheme_Object *uninit_val,
Scheme_Object *properties,
Scheme_Object *guard);
Scheme_Object *(*scheme_make_struct_type2)(Scheme_Object *base,
Scheme_Object *parent,
Scheme_Object *inspector,
int num_fields, int num_uninit_fields,
Scheme_Object *uninit_val,
Scheme_Object *proc_attr,
Scheme_Object *properties,
char *immutable_array,
Scheme_Object *guard);
Scheme_Object *(*scheme_make_struct_instance)(Scheme_Object *stype,
int argc,
Scheme_Object **argv);
int (*scheme_is_struct_instance)(Scheme_Object *type, Scheme_Object *v);
Scheme_Object *(*scheme_struct_ref)(Scheme_Object *s, int pos);
void (*scheme_struct_set)(Scheme_Object *s, int pos, Scheme_Object *v);
Scheme_Object *(*scheme_make_struct_type_property)(Scheme_Object *name);
Scheme_Object *(*scheme_make_struct_type_property_w_guard)(Scheme_Object *name, Scheme_Object *guard);
Scheme_Object *(*scheme_struct_type_property_ref)(Scheme_Object *prop, Scheme_Object *s);
Scheme_Object *(*scheme_chaperone_struct_type_property_ref)(Scheme_Object *prop, Scheme_Object *s);
Scheme_Object *(*scheme_make_location)(Scheme_Object *src,
Scheme_Object *line,
Scheme_Object *col,
Scheme_Object *pos,
Scheme_Object *span);
int (*scheme_is_location)(Scheme_Object *o);
Scheme_Object *(*scheme_make_inspector)(Scheme_Object *superior);
int (*scheme_is_subinspector)(Scheme_Object *i, Scheme_Object *sup);
/*========================================================================*/
/* utilities */
/*========================================================================*/
int (*scheme_eq)(Scheme_Object *obj1, Scheme_Object *obj2);
int (*scheme_eqv)(Scheme_Object *obj1, Scheme_Object *obj2);
int (*scheme_equal)(Scheme_Object *obj1, Scheme_Object *obj2);
int (*scheme_chaperone_of)(Scheme_Object *obj1, Scheme_Object *obj2);
int (*scheme_impersonator_of)(Scheme_Object *obj1, Scheme_Object *obj2);
#ifdef MZ_PRECISE_GC
intptr_t (*scheme_hash_key)(Scheme_Object *o);
#endif
intptr_t (*scheme_equal_hash_key)(Scheme_Object *o);
intptr_t (*scheme_equal_hash_key2)(Scheme_Object *o);
intptr_t (*scheme_recur_equal_hash_key)(Scheme_Object *o, void *cycle_data);
intptr_t (*scheme_recur_equal_hash_key2)(Scheme_Object *o, void *cycle_data);
intptr_t (*scheme_eqv_hash_key)(Scheme_Object *o);
intptr_t (*scheme_eqv_hash_key2)(Scheme_Object *o);
void (*scheme_set_type_equality)(Scheme_Type type,
Scheme_Equal_Proc f,
Scheme_Primary_Hash_Proc hash1,
Scheme_Secondary_Hash_Proc hash2);
int (*scheme_recur_equal)(Scheme_Object *obj1, Scheme_Object *obj2, void *cycle_info);
Scheme_Object *(*scheme_build_list)(int argc, Scheme_Object **argv);
Scheme_Object *(*scheme_build_list_offset)(int argc, Scheme_Object **argv, int delta);
int (*scheme_is_list)(Scheme_Object *obj1);
int (*scheme_list_length)(Scheme_Object *list);
int (*scheme_proper_list_length)(Scheme_Object *list);
Scheme_Object *(*scheme_alloc_list)(int size);
Scheme_Object *(*scheme_map_1)(Scheme_Object *(*f)(Scheme_Object*), Scheme_Object *l);
Scheme_Object *(*scheme_car)(Scheme_Object *pair);
Scheme_Object *(*scheme_cdr)(Scheme_Object *pair);
Scheme_Object *(*scheme_cadr)(Scheme_Object *pair);
Scheme_Object *(*scheme_caddr)(Scheme_Object *pair);
Scheme_Object *(*scheme_vector_to_list)(Scheme_Object *vec);
Scheme_Object *(*scheme_list_to_vector)(Scheme_Object *list);
Scheme_Object *(*scheme_append)(Scheme_Object *lstx, Scheme_Object *lsty);
Scheme_Object *(*scheme_reverse)(Scheme_Object *l);
Scheme_Object *(*scheme_box)(Scheme_Object *v);
Scheme_Object *(*scheme_unbox)(Scheme_Object *obj);
void (*scheme_set_box)(Scheme_Object *b, Scheme_Object *v);
Scheme_Object *(*scheme_make_weak_box)(Scheme_Object *v);
Scheme_Object *(*scheme_make_late_weak_box)(Scheme_Object *v);
Scheme_Object *(*scheme_make_ephemeron)(Scheme_Object *key, Scheme_Object *val);
Scheme_Object *(*scheme_ephemeron_value)(Scheme_Object *o);
Scheme_Object *(*scheme_ephemeron_key)(Scheme_Object *o);
Scheme_Object *(*scheme_make_late_will_executor)();
Scheme_Object *(*scheme_load)(const char *file);
Scheme_Object *(*scheme_load_extension)(const char *filename, Scheme_Env *env);
void (*scheme_register_extension_global)(void *ptr, intptr_t size);
intptr_t (*scheme_get_seconds)(void);
uintptr_t (*scheme_get_milliseconds)(void);
double (*scheme_get_inexact_milliseconds)(void);
intptr_t (*scheme_get_process_milliseconds)(void);
intptr_t (*scheme_get_process_children_milliseconds)(void);
intptr_t (*scheme_get_thread_milliseconds)(Scheme_Object *thrd);
char *(*scheme_banner)(void);
char *(*scheme_version)(void);
int (*scheme_check_proc_arity)(const char *where, int a,
int which, int argc, Scheme_Object **argv);
int (*scheme_check_proc_arity2)(const char *where, int a,
int which, int argc, Scheme_Object **argv,
int false_ok);
char *(*scheme_make_provided_string)(Scheme_Object *o, int count, intptr_t *len);
char *(*scheme_make_args_string)(const char *s, int which, int argc, Scheme_Object **argv, intptr_t *len);
char *(*scheme_make_arg_lines_string)(const char *s, int which, int argc, Scheme_Object **argv, intptr_t *len);
const char *(*scheme_system_library_subpath)();
void (*scheme_signal_received)(void);
void (*scheme_signal_received_at)(void *);
void *(*scheme_get_signal_handle)();
void (*scheme_wait_until_signal_received)(void);
intptr_t (*scheme_char_strlen)(const mzchar *s);
Scheme_Object *(*scheme_stx_extract_marks)(Scheme_Object *stx);
int (*scheme_get_place_id)(void);
Scheme_Hash_Table *(*scheme_get_place_table)(void);
void *(*scheme_register_process_global)(const char *key, void *val);
Scheme_Object *(*scheme_malloc_key)(void);
void (*scheme_free_key)(Scheme_Object *k);
void *(*scheme_jit_find_code_end)(void *p);
void (*scheme_jit_now)(Scheme_Object *f);
void (*scheme_set_signal_handler)(int sig_id, Scheme_Signal_Handler_Proc proc);
#ifndef SCHEME_EX_INLINE
} Scheme_Extension_Table;
#endif

View File

@ -1,730 +0,0 @@
#define scheme_init_jmpup_buf (scheme_extension_table->scheme_init_jmpup_buf)
#define scheme_setjmpup_relative (scheme_extension_table->scheme_setjmpup_relative)
#define scheme_longjmpup (scheme_extension_table->scheme_longjmpup)
#define scheme_reset_jmpup_buf (scheme_extension_table->scheme_reset_jmpup_buf)
#ifdef USE_MZ_SETJMP
#define scheme_get_mz_setjmp (scheme_extension_table->scheme_get_mz_setjmp)
#define scheme_mz_setjmp (scheme_extension_table->scheme_mz_setjmp)
#define scheme_mz_longjmp (scheme_extension_table->scheme_mz_longjmp)
#endif
#define scheme_clear_escape (scheme_extension_table->scheme_clear_escape)
#define scheme_new_jmpupbuf_holder (scheme_extension_table->scheme_new_jmpupbuf_holder)
#define scheme_current_config (scheme_extension_table->scheme_current_config)
#define scheme_minimal_config (scheme_extension_table->scheme_minimal_config)
#define scheme_extend_config (scheme_extension_table->scheme_extend_config)
#define scheme_install_config (scheme_extension_table->scheme_install_config)
#define scheme_get_param (scheme_extension_table->scheme_get_param)
#define scheme_set_param (scheme_extension_table->scheme_set_param)
#define scheme_get_thread_param (scheme_extension_table->scheme_get_thread_param)
#define scheme_set_thread_param (scheme_extension_table->scheme_set_thread_param)
#define scheme_get_env (scheme_extension_table->scheme_get_env)
#define scheme_empty_cell_table (scheme_extension_table->scheme_empty_cell_table)
#define scheme_inherit_cells (scheme_extension_table->scheme_inherit_cells)
#define scheme_current_break_cell (scheme_extension_table->scheme_current_break_cell)
#ifndef USE_THREAD_LOCAL
# ifndef LINK_EXTENSIONS_BY_TABLE
#define scheme_current_thread (scheme_extension_table->scheme_current_thread)
#define scheme_fuel_counter (scheme_extension_table->scheme_fuel_counter)
# else
#define scheme_current_thread_ptr (scheme_extension_table->scheme_current_thread_ptr)
#define scheme_fuel_counter_ptr (scheme_extension_table->scheme_fuel_counter_ptr)
# endif
#endif
#define scheme_get_current_thread (scheme_extension_table->scheme_get_current_thread)
#define scheme_is_atomic (scheme_extension_table->scheme_is_atomic)
#define scheme_start_atomic (scheme_extension_table->scheme_start_atomic)
#define scheme_end_atomic (scheme_extension_table->scheme_end_atomic)
#define scheme_end_atomic_no_swap (scheme_extension_table->scheme_end_atomic_no_swap)
#define scheme_start_in_scheduler (scheme_extension_table->scheme_start_in_scheduler)
#define scheme_end_in_scheduler (scheme_extension_table->scheme_end_in_scheduler)
#define scheme_start_atomic_no_break (scheme_extension_table->scheme_start_atomic_no_break)
#define scheme_end_atomic_can_break (scheme_extension_table->scheme_end_atomic_can_break)
#define scheme_out_of_fuel (scheme_extension_table->scheme_out_of_fuel)
#define scheme_thread (scheme_extension_table->scheme_thread)
#define scheme_thread_w_details (scheme_extension_table->scheme_thread_w_details)
#define scheme_kill_thread (scheme_extension_table->scheme_kill_thread)
#define scheme_break_thread (scheme_extension_table->scheme_break_thread)
#define scheme_break_kind_thread (scheme_extension_table->scheme_break_kind_thread)
#define scheme_break_main_thread (scheme_extension_table->scheme_break_main_thread)
#define scheme_break_main_thread_at (scheme_extension_table->scheme_break_main_thread_at)
#define scheme_break_kind_main_thread_at (scheme_extension_table->scheme_break_kind_main_thread_at)
#define scheme_get_main_thread_break_handle (scheme_extension_table->scheme_get_main_thread_break_handle)
#define scheme_set_break_main_target (scheme_extension_table->scheme_set_break_main_target)
#define scheme_thread_block (scheme_extension_table->scheme_thread_block)
#define scheme_thread_block_enable_break (scheme_extension_table->scheme_thread_block_enable_break)
#define scheme_swap_thread (scheme_extension_table->scheme_swap_thread)
#define scheme_making_progress (scheme_extension_table->scheme_making_progress)
#define scheme_weak_suspend_thread (scheme_extension_table->scheme_weak_suspend_thread)
#define scheme_weak_resume_thread (scheme_extension_table->scheme_weak_resume_thread)
#define scheme_block_until (scheme_extension_table->scheme_block_until)
#define scheme_block_until_enable_break (scheme_extension_table->scheme_block_until_enable_break)
#define scheme_block_until_unless (scheme_extension_table->scheme_block_until_unless)
#define scheme_wait_input_allowed (scheme_extension_table->scheme_wait_input_allowed)
#define scheme_unless_ready (scheme_extension_table->scheme_unless_ready)
#define scheme_in_main_thread (scheme_extension_table->scheme_in_main_thread)
#define scheme_cancel_sleep (scheme_extension_table->scheme_cancel_sleep)
#define scheme_start_sleeper_thread (scheme_extension_table->scheme_start_sleeper_thread)
#define scheme_end_sleeper_thread (scheme_extension_table->scheme_end_sleeper_thread)
#define scheme_set_place_sleep (scheme_extension_table->scheme_set_place_sleep)
#define scheme_notify_sleep_progress (scheme_extension_table->scheme_notify_sleep_progress)
#define scheme_make_thread_cell (scheme_extension_table->scheme_make_thread_cell)
#define scheme_thread_cell_get (scheme_extension_table->scheme_thread_cell_get)
#define scheme_thread_cell_set (scheme_extension_table->scheme_thread_cell_set)
#define scheme_tls_allocate (scheme_extension_table->scheme_tls_allocate)
#define scheme_tls_set (scheme_extension_table->scheme_tls_set)
#define scheme_tls_get (scheme_extension_table->scheme_tls_get)
#define scheme_make_custodian (scheme_extension_table->scheme_make_custodian)
#define scheme_add_managed (scheme_extension_table->scheme_add_managed)
#define scheme_add_managed_close_on_exit (scheme_extension_table->scheme_add_managed_close_on_exit)
#define scheme_custodian_check_available (scheme_extension_table->scheme_custodian_check_available)
#define scheme_custodian_is_available (scheme_extension_table->scheme_custodian_is_available)
#define scheme_remove_managed (scheme_extension_table->scheme_remove_managed)
#define scheme_close_managed (scheme_extension_table->scheme_close_managed)
#define scheme_schedule_custodian_close (scheme_extension_table->scheme_schedule_custodian_close)
#define scheme_add_custodian_extractor (scheme_extension_table->scheme_add_custodian_extractor)
#define scheme_flush_managed (scheme_extension_table->scheme_flush_managed)
#define scheme_add_flush (scheme_extension_table->scheme_add_flush)
#define scheme_remove_flush (scheme_extension_table->scheme_remove_flush)
#define scheme_add_atexit_closer (scheme_extension_table->scheme_add_atexit_closer)
#define scheme_atexit (scheme_extension_table->scheme_atexit)
#define scheme_add_evt (scheme_extension_table->scheme_add_evt)
#define scheme_add_evt_through_sema (scheme_extension_table->scheme_add_evt_through_sema)
#define scheme_is_evt (scheme_extension_table->scheme_is_evt)
#define scheme_sync (scheme_extension_table->scheme_sync)
#define scheme_sync_enable_break (scheme_extension_table->scheme_sync_enable_break)
#define scheme_sync_timeout (scheme_extension_table->scheme_sync_timeout)
#define scheme_make_evt_set (scheme_extension_table->scheme_make_evt_set)
#define scheme_add_swap_callback (scheme_extension_table->scheme_add_swap_callback)
#define scheme_add_swap_out_callback (scheme_extension_table->scheme_add_swap_out_callback)
#define scheme_call_enable_break (scheme_extension_table->scheme_call_enable_break)
#define scheme_close_should_force_port_closed (scheme_extension_table->scheme_close_should_force_port_closed)
#define scheme_push_kill_action (scheme_extension_table->scheme_push_kill_action)
#define scheme_pop_kill_action (scheme_extension_table->scheme_pop_kill_action)
#define scheme_set_can_break (scheme_extension_table->scheme_set_can_break)
#define scheme_push_break_enable (scheme_extension_table->scheme_push_break_enable)
#define scheme_pop_break_enable (scheme_extension_table->scheme_pop_break_enable)
#define scheme_abort_continuation_no_dws (scheme_extension_table->scheme_abort_continuation_no_dws)
#define scheme_call_with_composable_no_dws (scheme_extension_table->scheme_call_with_composable_no_dws)
#define scheme_set_on_atomic_timeout (scheme_extension_table->scheme_set_on_atomic_timeout)
#define scheme_signal_error (scheme_extension_table->scheme_signal_error)
#define scheme_raise_exn (scheme_extension_table->scheme_raise_exn)
#define scheme_warning (scheme_extension_table->scheme_warning)
#define scheme_raise (scheme_extension_table->scheme_raise)
#define scheme_log_level_p (scheme_extension_table->scheme_log_level_p)
#define scheme_log_level_topic_p (scheme_extension_table->scheme_log_level_topic_p)
#define scheme_log (scheme_extension_table->scheme_log)
#define scheme_log_w_data (scheme_extension_table->scheme_log_w_data)
#define scheme_log_message (scheme_extension_table->scheme_log_message)
#define scheme_log_name_message (scheme_extension_table->scheme_log_name_message)
#define scheme_log_name_pfx_message (scheme_extension_table->scheme_log_name_pfx_message)
#define scheme_log_abort (scheme_extension_table->scheme_log_abort)
#define scheme_log_warning (scheme_extension_table->scheme_log_warning)
#define scheme_glib_log_message (scheme_extension_table->scheme_glib_log_message)
#define scheme_glib_log_message_test (scheme_extension_table->scheme_glib_log_message_test)
#define scheme_out_of_memory_abort (scheme_extension_table->scheme_out_of_memory_abort)
#define scheme_wrong_count (scheme_extension_table->scheme_wrong_count)
#define scheme_wrong_count_m (scheme_extension_table->scheme_wrong_count_m)
#define scheme_case_lambda_wrong_count (scheme_extension_table->scheme_case_lambda_wrong_count)
#define scheme_wrong_type (scheme_extension_table->scheme_wrong_type)
#define scheme_wrong_contract (scheme_extension_table->scheme_wrong_contract)
#define scheme_wrong_field_type (scheme_extension_table->scheme_wrong_field_type)
#define scheme_wrong_field_contract (scheme_extension_table->scheme_wrong_field_contract)
#define scheme_arg_mismatch (scheme_extension_table->scheme_arg_mismatch)
#define scheme_contract_error (scheme_extension_table->scheme_contract_error)
#define scheme_wrong_return_arity (scheme_extension_table->scheme_wrong_return_arity)
#define scheme_unbound_global (scheme_extension_table->scheme_unbound_global)
#define scheme_dynamic_wind (scheme_extension_table->scheme_dynamic_wind)
#define scheme_make_type (scheme_extension_table->scheme_make_type)
#define scheme_get_type_name (scheme_extension_table->scheme_get_type_name)
#define scheme_get_type_name_or_null (scheme_extension_table->scheme_get_type_name_or_null)
#define scheme_eof (scheme_extension_table->scheme_eof)
#define scheme_make_eof (scheme_extension_table->scheme_make_eof)
#define scheme_null (scheme_extension_table->scheme_null)
#define scheme_make_null (scheme_extension_table->scheme_make_null)
#define scheme_true (scheme_extension_table->scheme_true)
#define scheme_make_true (scheme_extension_table->scheme_make_true)
#define scheme_false (scheme_extension_table->scheme_false)
#define scheme_make_false (scheme_extension_table->scheme_make_false)
#define scheme_void (scheme_extension_table->scheme_void)
#define scheme_make_void (scheme_extension_table->scheme_make_void)
#define scheme_undefined (scheme_extension_table->scheme_undefined)
#define scheme_tail_call_waiting (scheme_extension_table->scheme_tail_call_waiting)
#define scheme_multiple_values (scheme_extension_table->scheme_multiple_values)
#define scheme_uchar_table (scheme_extension_table->scheme_uchar_table)
#define scheme_uchar_cases_table (scheme_extension_table->scheme_uchar_cases_table)
#define scheme_uchar_cats_table (scheme_extension_table->scheme_uchar_cats_table)
#define scheme_uchar_ups (scheme_extension_table->scheme_uchar_ups)
#define scheme_uchar_downs (scheme_extension_table->scheme_uchar_downs)
#define scheme_uchar_titles (scheme_extension_table->scheme_uchar_titles)
#define scheme_uchar_folds (scheme_extension_table->scheme_uchar_folds)
#define scheme_uchar_combining_classes (scheme_extension_table->scheme_uchar_combining_classes)
#define scheme_on_demand_jit_code (scheme_extension_table->scheme_on_demand_jit_code)
#define scheme_eval (scheme_extension_table->scheme_eval)
#define scheme_eval_multi (scheme_extension_table->scheme_eval_multi)
#define scheme_eval_with_prompt (scheme_extension_table->scheme_eval_with_prompt)
#define scheme_eval_multi_with_prompt (scheme_extension_table->scheme_eval_multi_with_prompt)
#define scheme_eval_compiled (scheme_extension_table->scheme_eval_compiled)
#define scheme_eval_compiled_multi (scheme_extension_table->scheme_eval_compiled_multi)
#define _scheme_eval_compiled (scheme_extension_table->_scheme_eval_compiled)
#define _scheme_eval_compiled_multi (scheme_extension_table->_scheme_eval_compiled_multi)
#define scheme_apply (scheme_extension_table->scheme_apply)
#define scheme_apply_multi (scheme_extension_table->scheme_apply_multi)
#define scheme_apply_no_eb (scheme_extension_table->scheme_apply_no_eb)
#define scheme_apply_multi_no_eb (scheme_extension_table->scheme_apply_multi_no_eb)
#define scheme_apply_to_list (scheme_extension_table->scheme_apply_to_list)
#define scheme_apply_with_prompt (scheme_extension_table->scheme_apply_with_prompt)
#define scheme_apply_multi_with_prompt (scheme_extension_table->scheme_apply_multi_with_prompt)
#define _scheme_apply_with_prompt (scheme_extension_table->_scheme_apply_with_prompt)
#define _scheme_apply_multi_with_prompt (scheme_extension_table->_scheme_apply_multi_with_prompt)
#define scheme_eval_string (scheme_extension_table->scheme_eval_string)
#define scheme_eval_string_multi (scheme_extension_table->scheme_eval_string_multi)
#define scheme_eval_string_all (scheme_extension_table->scheme_eval_string_all)
#define scheme_eval_string_with_prompt (scheme_extension_table->scheme_eval_string_with_prompt)
#define scheme_eval_string_multi_with_prompt (scheme_extension_table->scheme_eval_string_multi_with_prompt)
#define scheme_eval_string_all_with_prompt (scheme_extension_table->scheme_eval_string_all_with_prompt)
#define scheme_eval_all_with_prompt (scheme_extension_table->scheme_eval_all_with_prompt)
#define scheme_eval_module_string (scheme_extension_table->scheme_eval_module_string)
#define _scheme_apply_known_prim_closure (scheme_extension_table->_scheme_apply_known_prim_closure)
#define _scheme_apply_known_prim_closure_multi (scheme_extension_table->_scheme_apply_known_prim_closure_multi)
#define _scheme_apply_prim_closure (scheme_extension_table->_scheme_apply_prim_closure)
#define _scheme_apply_prim_closure_multi (scheme_extension_table->_scheme_apply_prim_closure_multi)
#define scheme_current_argument_stack (scheme_extension_table->scheme_current_argument_stack)
#define scheme_call_with_prompt (scheme_extension_table->scheme_call_with_prompt)
#define scheme_call_with_prompt_multi (scheme_extension_table->scheme_call_with_prompt_multi)
#define _scheme_call_with_prompt (scheme_extension_table->_scheme_call_with_prompt)
#define _scheme_call_with_prompt_multi (scheme_extension_table->_scheme_call_with_prompt_multi)
#define scheme_values (scheme_extension_table->scheme_values)
#define scheme_check_one_value (scheme_extension_table->scheme_check_one_value)
#define scheme_tail_apply (scheme_extension_table->scheme_tail_apply)
#define scheme_tail_apply_no_copy (scheme_extension_table->scheme_tail_apply_no_copy)
#define scheme_tail_apply_to_list (scheme_extension_table->scheme_tail_apply_to_list)
#define scheme_tail_eval_expr (scheme_extension_table->scheme_tail_eval_expr)
#define scheme_set_tail_buffer_size (scheme_extension_table->scheme_set_tail_buffer_size)
#define scheme_force_value (scheme_extension_table->scheme_force_value)
#define scheme_force_one_value (scheme_extension_table->scheme_force_one_value)
#define scheme_ignore_result (scheme_extension_table->scheme_ignore_result)
#define scheme_set_cont_mark (scheme_extension_table->scheme_set_cont_mark)
#define scheme_push_continuation_frame (scheme_extension_table->scheme_push_continuation_frame)
#define scheme_pop_continuation_frame (scheme_extension_table->scheme_pop_continuation_frame)
#define scheme_temp_dec_mark_depth (scheme_extension_table->scheme_temp_dec_mark_depth)
#define scheme_temp_inc_mark_depth (scheme_extension_table->scheme_temp_inc_mark_depth)
#define scheme_current_continuation_marks (scheme_extension_table->scheme_current_continuation_marks)
#define scheme_extract_one_cc_mark (scheme_extension_table->scheme_extract_one_cc_mark)
#define scheme_extract_one_cc_mark_to_tag (scheme_extension_table->scheme_extract_one_cc_mark_to_tag)
#define scheme_do_eval (scheme_extension_table->scheme_do_eval)
#define scheme_detach_multple_array (scheme_extension_table->scheme_detach_multple_array)
#ifndef SCHEME_NO_GC
# ifndef SCHEME_NO_GC_PROTO
#define GC_malloc (scheme_extension_table->GC_malloc)
#define GC_malloc_atomic (scheme_extension_table->GC_malloc_atomic)
# ifdef MZ_PRECISE_GC
#define GC_malloc_one_tagged (scheme_extension_table->GC_malloc_one_tagged)
#define GC_malloc_atomic_uncollectable (scheme_extension_table->GC_malloc_atomic_uncollectable)
#define scheme_malloc_uncollectable (scheme_extension_table->scheme_malloc_uncollectable)
#define GC_malloc_allow_interior (scheme_extension_table->GC_malloc_allow_interior)
#define GC_malloc_atomic_allow_interior (scheme_extension_table->GC_malloc_atomic_allow_interior)
#define GC_malloc_tagged_allow_interior (scheme_extension_table->GC_malloc_tagged_allow_interior)
# else
#define GC_malloc_stubborn (scheme_extension_table->GC_malloc_stubborn)
#define GC_malloc_uncollectable (scheme_extension_table->GC_malloc_uncollectable)
# endif
# endif
#endif
#define scheme_malloc_code (scheme_extension_table->scheme_malloc_code)
#define scheme_malloc_permanent_code (scheme_extension_table->scheme_malloc_permanent_code)
#define scheme_free_code (scheme_extension_table->scheme_free_code)
#ifndef MZ_PRECISE_GC
#define scheme_malloc_gcable_code (scheme_extension_table->scheme_malloc_gcable_code)
#endif
#define scheme_malloc_eternal (scheme_extension_table->scheme_malloc_eternal)
#define scheme_end_stubborn_change (scheme_extension_table->scheme_end_stubborn_change)
#define scheme_calloc (scheme_extension_table->scheme_calloc)
#define scheme_strdup (scheme_extension_table->scheme_strdup)
#define scheme_strdup_eternal (scheme_extension_table->scheme_strdup_eternal)
#define scheme_malloc_fail_ok (scheme_extension_table->scheme_malloc_fail_ok)
#ifndef MZ_PRECISE_GC
#define scheme_late_weak_reference (scheme_extension_table->scheme_late_weak_reference)
#define scheme_late_weak_reference_indirect (scheme_extension_table->scheme_late_weak_reference_indirect)
#define scheme_weak_reference (scheme_extension_table->scheme_weak_reference)
#define scheme_weak_reference_indirect (scheme_extension_table->scheme_weak_reference_indirect)
#define scheme_unweak_reference (scheme_extension_table->scheme_unweak_reference)
#endif
#define scheme_add_finalizer (scheme_extension_table->scheme_add_finalizer)
#define scheme_add_finalizer_once (scheme_extension_table->scheme_add_finalizer_once)
#define scheme_subtract_finalizer (scheme_extension_table->scheme_subtract_finalizer)
#define scheme_add_scheme_finalizer (scheme_extension_table->scheme_add_scheme_finalizer)
#define scheme_add_scheme_finalizer_once (scheme_extension_table->scheme_add_scheme_finalizer_once)
#define scheme_register_finalizer (scheme_extension_table->scheme_register_finalizer)
#define scheme_remove_all_finalization (scheme_extension_table->scheme_remove_all_finalization)
#define scheme_dont_gc_ptr (scheme_extension_table->scheme_dont_gc_ptr)
#define scheme_gc_ptr_ok (scheme_extension_table->scheme_gc_ptr_ok)
#define scheme_collect_garbage (scheme_extension_table->scheme_collect_garbage)
#define scheme_collect_garbage_minor (scheme_extension_table->scheme_collect_garbage_minor)
#define scheme_enable_garbage_collection (scheme_extension_table->scheme_enable_garbage_collection)
#define scheme_incremental_garbage_collection (scheme_extension_table->scheme_incremental_garbage_collection)
#ifdef MZ_PRECISE_GC
# ifndef USE_THREAD_LOCAL
#define GC_variable_stack (scheme_extension_table->GC_variable_stack)
# endif
#define GC_register_traversers (scheme_extension_table->GC_register_traversers)
#define GC_resolve (scheme_extension_table->GC_resolve)
#define GC_mark (scheme_extension_table->GC_mark)
#define GC_fixup (scheme_extension_table->GC_fixup)
#define GC_fixup_self (scheme_extension_table->GC_fixup_self)
#endif
#define scheme_malloc_immobile_box (scheme_extension_table->scheme_malloc_immobile_box)
#define scheme_free_immobile_box (scheme_extension_table->scheme_free_immobile_box)
#define scheme_add_gc_callback (scheme_extension_table->scheme_add_gc_callback)
#define scheme_remove_gc_callback (scheme_extension_table->scheme_remove_gc_callback)
#define scheme_register_type_gc_shape (scheme_extension_table->scheme_register_type_gc_shape)
#define scheme_make_bucket_table (scheme_extension_table->scheme_make_bucket_table)
#define scheme_add_to_table (scheme_extension_table->scheme_add_to_table)
#define scheme_change_in_table (scheme_extension_table->scheme_change_in_table)
#define scheme_lookup_in_table (scheme_extension_table->scheme_lookup_in_table)
#define scheme_bucket_from_table (scheme_extension_table->scheme_bucket_from_table)
#define scheme_bucket_table_equal (scheme_extension_table->scheme_bucket_table_equal)
#define scheme_clone_bucket_table (scheme_extension_table->scheme_clone_bucket_table)
#define scheme_clear_bucket_table (scheme_extension_table->scheme_clear_bucket_table)
#define scheme_bucket_table_index (scheme_extension_table->scheme_bucket_table_index)
#define scheme_bucket_table_next (scheme_extension_table->scheme_bucket_table_next)
#define scheme_make_hash_table (scheme_extension_table->scheme_make_hash_table)
#define scheme_make_hash_table_equal (scheme_extension_table->scheme_make_hash_table_equal)
#define scheme_make_hash_table_eqv (scheme_extension_table->scheme_make_hash_table_eqv)
#define scheme_hash_set (scheme_extension_table->scheme_hash_set)
#define scheme_hash_get (scheme_extension_table->scheme_hash_get)
#define scheme_eq_hash_get (scheme_extension_table->scheme_eq_hash_get)
#define scheme_hash_set_atomic (scheme_extension_table->scheme_hash_set_atomic)
#define scheme_hash_get_atomic (scheme_extension_table->scheme_hash_get_atomic)
#define scheme_hash_table_equal (scheme_extension_table->scheme_hash_table_equal)
#define scheme_is_hash_table_equal (scheme_extension_table->scheme_is_hash_table_equal)
#define scheme_is_hash_table_eqv (scheme_extension_table->scheme_is_hash_table_eqv)
#define scheme_clone_hash_table (scheme_extension_table->scheme_clone_hash_table)
#define scheme_clear_hash_table (scheme_extension_table->scheme_clear_hash_table)
#define scheme_hash_table_index (scheme_extension_table->scheme_hash_table_index)
#define scheme_hash_table_next (scheme_extension_table->scheme_hash_table_next)
#define scheme_make_hash_tree (scheme_extension_table->scheme_make_hash_tree)
#define scheme_hash_tree_set (scheme_extension_table->scheme_hash_tree_set)
#define scheme_hash_tree_get (scheme_extension_table->scheme_hash_tree_get)
#define scheme_eq_hash_tree_get (scheme_extension_table->scheme_eq_hash_tree_get)
#define scheme_hash_tree_next (scheme_extension_table->scheme_hash_tree_next)
#define scheme_hash_tree_index (scheme_extension_table->scheme_hash_tree_index)
#define scheme_hash_tree_equal (scheme_extension_table->scheme_hash_tree_equal)
#define scheme_is_hash_tree_equal (scheme_extension_table->scheme_is_hash_tree_equal)
#define scheme_is_hash_tree_eqv (scheme_extension_table->scheme_is_hash_tree_eqv)
#define scheme_make_prim (scheme_extension_table->scheme_make_prim)
#define scheme_make_noneternal_prim (scheme_extension_table->scheme_make_noneternal_prim)
#define scheme_make_prim_w_arity (scheme_extension_table->scheme_make_prim_w_arity)
#define scheme_make_folding_prim (scheme_extension_table->scheme_make_folding_prim)
#define scheme_make_immed_prim (scheme_extension_table->scheme_make_immed_prim)
#define scheme_make_noncm_prim (scheme_extension_table->scheme_make_noncm_prim)
#define scheme_make_noneternal_prim_w_arity (scheme_extension_table->scheme_make_noneternal_prim_w_arity)
#define scheme_make_prim_w_everything (scheme_extension_table->scheme_make_prim_w_everything)
#define scheme_make_prim_closure_w_arity (scheme_extension_table->scheme_make_prim_closure_w_arity)
#define scheme_make_folding_prim_closure (scheme_extension_table->scheme_make_folding_prim_closure)
#define scheme_make_closed_prim (scheme_extension_table->scheme_make_closed_prim)
#define scheme_make_closed_prim_w_arity (scheme_extension_table->scheme_make_closed_prim_w_arity)
#define scheme_make_folding_closed_prim (scheme_extension_table->scheme_make_folding_closed_prim)
#define scheme_make_closed_prim_w_everything (scheme_extension_table->scheme_make_closed_prim_w_everything)
#define scheme_prim_is_method (scheme_extension_table->scheme_prim_is_method)
#define scheme_make_pair (scheme_extension_table->scheme_make_pair)
#define scheme_make_mutable_pair (scheme_extension_table->scheme_make_mutable_pair)
#define scheme_make_list_pair (scheme_extension_table->scheme_make_list_pair)
#define scheme_make_raw_pair (scheme_extension_table->scheme_make_raw_pair)
#define scheme_make_byte_string (scheme_extension_table->scheme_make_byte_string)
#define scheme_make_sized_byte_string (scheme_extension_table->scheme_make_sized_byte_string)
#define scheme_make_sized_offset_byte_string (scheme_extension_table->scheme_make_sized_offset_byte_string)
#define scheme_make_immutable_sized_byte_string (scheme_extension_table->scheme_make_immutable_sized_byte_string)
#define scheme_make_byte_string_without_copying (scheme_extension_table->scheme_make_byte_string_without_copying)
#define scheme_alloc_byte_string (scheme_extension_table->scheme_alloc_byte_string)
#define scheme_append_byte_string (scheme_extension_table->scheme_append_byte_string)
#define scheme_make_utf8_string (scheme_extension_table->scheme_make_utf8_string)
#define scheme_make_sized_utf8_string (scheme_extension_table->scheme_make_sized_utf8_string)
#define scheme_make_sized_offset_utf8_string (scheme_extension_table->scheme_make_sized_offset_utf8_string)
#define scheme_make_immutable_sized_utf8_string (scheme_extension_table->scheme_make_immutable_sized_utf8_string)
#define scheme_make_locale_string (scheme_extension_table->scheme_make_locale_string)
#define scheme_char_string_to_byte_string (scheme_extension_table->scheme_char_string_to_byte_string)
#define scheme_byte_string_to_char_string (scheme_extension_table->scheme_byte_string_to_char_string)
#define scheme_char_string_to_byte_string_locale (scheme_extension_table->scheme_char_string_to_byte_string_locale)
#define scheme_byte_string_to_char_string_locale (scheme_extension_table->scheme_byte_string_to_char_string_locale)
#define scheme_char_string_to_path (scheme_extension_table->scheme_char_string_to_path)
#define scheme_path_to_char_string (scheme_extension_table->scheme_path_to_char_string)
#define scheme_make_char_string (scheme_extension_table->scheme_make_char_string)
#define scheme_make_sized_char_string (scheme_extension_table->scheme_make_sized_char_string)
#define scheme_make_sized_offset_char_string (scheme_extension_table->scheme_make_sized_offset_char_string)
#define scheme_make_immutable_sized_char_string (scheme_extension_table->scheme_make_immutable_sized_char_string)
#define scheme_make_char_string_without_copying (scheme_extension_table->scheme_make_char_string_without_copying)
#define scheme_alloc_char_string (scheme_extension_table->scheme_alloc_char_string)
#define scheme_append_char_string (scheme_extension_table->scheme_append_char_string)
#define scheme_string_recase (scheme_extension_table->scheme_string_recase)
#define scheme_make_vector (scheme_extension_table->scheme_make_vector)
#define scheme_alloc_flvector (scheme_extension_table->scheme_alloc_flvector)
#ifdef MZ_LONG_DOUBLE
#define scheme_alloc_extflvector (scheme_extension_table->scheme_alloc_extflvector)
#endif
#define scheme_alloc_fxvector (scheme_extension_table->scheme_alloc_fxvector)
#define scheme_make_integer_value (scheme_extension_table->scheme_make_integer_value)
#define scheme_make_integer_value_from_unsigned (scheme_extension_table->scheme_make_integer_value_from_unsigned)
#define scheme_make_integer_value_from_long_long (scheme_extension_table->scheme_make_integer_value_from_long_long)
#define scheme_make_integer_value_from_unsigned_long_long (scheme_extension_table->scheme_make_integer_value_from_unsigned_long_long)
#define scheme_make_integer_value_from_long_halves (scheme_extension_table->scheme_make_integer_value_from_long_halves)
#define scheme_make_integer_value_from_unsigned_long_halves (scheme_extension_table->scheme_make_integer_value_from_unsigned_long_halves)
#define scheme_make_double (scheme_extension_table->scheme_make_double)
#ifdef MZ_LONG_DOUBLE
#define scheme_make_long_double (scheme_extension_table->scheme_make_long_double)
#endif
#ifdef MZ_USE_SINGLE_FLOATS
#define scheme_make_float (scheme_extension_table->scheme_make_float)
#endif
#define scheme_make_char (scheme_extension_table->scheme_make_char)
#define scheme_make_char_or_nul (scheme_extension_table->scheme_make_char_or_nul)
#define scheme_make_sema (scheme_extension_table->scheme_make_sema)
#define scheme_post_sema (scheme_extension_table->scheme_post_sema)
#define scheme_post_sema_all (scheme_extension_table->scheme_post_sema_all)
#define scheme_wait_sema (scheme_extension_table->scheme_wait_sema)
#define scheme_try_plain_sema (scheme_extension_table->scheme_try_plain_sema)
#define scheme_char_constants (scheme_extension_table->scheme_char_constants)
#define scheme_make_channel (scheme_extension_table->scheme_make_channel)
#define scheme_make_channel_put_evt (scheme_extension_table->scheme_make_channel_put_evt)
#define scheme_get_int_val (scheme_extension_table->scheme_get_int_val)
#define scheme_get_unsigned_int_val (scheme_extension_table->scheme_get_unsigned_int_val)
#define scheme_get_long_long_val (scheme_extension_table->scheme_get_long_long_val)
#define scheme_get_unsigned_long_long_val (scheme_extension_table->scheme_get_unsigned_long_long_val)
#define scheme_real_to_double (scheme_extension_table->scheme_real_to_double)
#ifdef MZ_LONG_DOUBLE
#define scheme_real_to_long_double (scheme_extension_table->scheme_real_to_long_double)
#endif
#define scheme_make_cptr (scheme_extension_table->scheme_make_cptr)
#define scheme_make_offset_cptr (scheme_extension_table->scheme_make_offset_cptr)
#define scheme_make_external_cptr (scheme_extension_table->scheme_make_external_cptr)
#define scheme_make_offset_external_cptr (scheme_extension_table->scheme_make_offset_external_cptr)
#define scheme_is_cpointer (scheme_extension_table->scheme_is_cpointer)
#define scheme_get_proc_name (scheme_extension_table->scheme_get_proc_name)
#define scheme_utf8_decode (scheme_extension_table->scheme_utf8_decode)
#define scheme_utf8_decode_offset_prefix (scheme_extension_table->scheme_utf8_decode_offset_prefix)
#define scheme_utf8_decode_as_prefix (scheme_extension_table->scheme_utf8_decode_as_prefix)
#define scheme_utf8_decode_all (scheme_extension_table->scheme_utf8_decode_all)
#define scheme_utf8_decode_prefix (scheme_extension_table->scheme_utf8_decode_prefix)
#define scheme_utf8_decode_to_buffer (scheme_extension_table->scheme_utf8_decode_to_buffer)
#define scheme_utf8_decode_to_buffer_len (scheme_extension_table->scheme_utf8_decode_to_buffer_len)
#define scheme_utf8_decode_count (scheme_extension_table->scheme_utf8_decode_count)
#define scheme_utf8_encode (scheme_extension_table->scheme_utf8_encode)
#define scheme_utf8_encode_all (scheme_extension_table->scheme_utf8_encode_all)
#define scheme_utf8_encode_to_buffer (scheme_extension_table->scheme_utf8_encode_to_buffer)
#define scheme_utf8_encode_to_buffer_len (scheme_extension_table->scheme_utf8_encode_to_buffer_len)
#define scheme_ucs4_to_utf16 (scheme_extension_table->scheme_ucs4_to_utf16)
#define scheme_utf16_to_ucs4 (scheme_extension_table->scheme_utf16_to_ucs4)
#define scheme_open_converter (scheme_extension_table->scheme_open_converter)
#define scheme_close_converter (scheme_extension_table->scheme_close_converter)
#define scheme_getenv (scheme_extension_table->scheme_getenv)
#define scheme_make_bignum (scheme_extension_table->scheme_make_bignum)
#define scheme_make_bignum_from_unsigned (scheme_extension_table->scheme_make_bignum_from_unsigned)
#define scheme_make_bignum_from_long_long (scheme_extension_table->scheme_make_bignum_from_long_long)
#define scheme_make_bignum_from_unsigned_long_long (scheme_extension_table->scheme_make_bignum_from_unsigned_long_long)
#define scheme_bignum_to_double (scheme_extension_table->scheme_bignum_to_double)
#define scheme_bignum_from_double (scheme_extension_table->scheme_bignum_from_double)
#ifdef MZ_LONG_DOUBLE
#define scheme_bignum_to_long_double (scheme_extension_table->scheme_bignum_to_long_double)
#define scheme_bignum_from_long_double (scheme_extension_table->scheme_bignum_from_long_double)
#endif
#ifdef MZ_USE_SINGLE_FLOATS
#define scheme_bignum_to_float (scheme_extension_table->scheme_bignum_to_float)
#define scheme_bignum_from_float (scheme_extension_table->scheme_bignum_from_float)
#else
# define scheme_bignum_to_float scheme_bignum_to_double
# define scheme_bignum_from_float scheme_bignum_from_double
#endif
#define scheme_bignum_to_string (scheme_extension_table->scheme_bignum_to_string)
#define scheme_bignum_to_allocated_string (scheme_extension_table->scheme_bignum_to_allocated_string)
#define scheme_read_bignum (scheme_extension_table->scheme_read_bignum)
#define scheme_read_bignum_bytes (scheme_extension_table->scheme_read_bignum_bytes)
#define scheme_bignum_normalize (scheme_extension_table->scheme_bignum_normalize)
#define scheme_make_rational (scheme_extension_table->scheme_make_rational)
#define scheme_rational_to_double (scheme_extension_table->scheme_rational_to_double)
#define scheme_rational_from_double (scheme_extension_table->scheme_rational_from_double)
#ifdef MZ_LONG_DOUBLE
#define scheme_rational_to_long_double (scheme_extension_table->scheme_rational_to_long_double)
#define scheme_rational_from_long_double (scheme_extension_table->scheme_rational_from_long_double)
#endif
#ifdef MZ_USE_SINGLE_FLOATS
#define scheme_rational_to_float (scheme_extension_table->scheme_rational_to_float)
#define scheme_rational_from_float (scheme_extension_table->scheme_rational_from_float)
#else
# define scheme_rational_to_float scheme_rational_to_double
# define scheme_rational_from_float scheme_rational_from_double
#endif
#define scheme_rational_normalize (scheme_extension_table->scheme_rational_normalize)
#define scheme_rational_numerator (scheme_extension_table->scheme_rational_numerator)
#define scheme_rational_denominator (scheme_extension_table->scheme_rational_denominator)
#define scheme_make_complex (scheme_extension_table->scheme_make_complex)
#define scheme_complex_normalize (scheme_extension_table->scheme_complex_normalize)
#define scheme_complex_real_part (scheme_extension_table->scheme_complex_real_part)
#define scheme_complex_imaginary_part (scheme_extension_table->scheme_complex_imaginary_part)
#define scheme_is_exact (scheme_extension_table->scheme_is_exact)
#define scheme_is_inexact (scheme_extension_table->scheme_is_inexact)
#define scheme_expand (scheme_extension_table->scheme_expand)
#define scheme_compile (scheme_extension_table->scheme_compile)
#define scheme_read (scheme_extension_table->scheme_read)
#define scheme_read_syntax (scheme_extension_table->scheme_read_syntax)
#define scheme_write (scheme_extension_table->scheme_write)
#define scheme_print (scheme_extension_table->scheme_print)
#define scheme_display (scheme_extension_table->scheme_display)
#define scheme_write_w_max (scheme_extension_table->scheme_write_w_max)
#define scheme_display_w_max (scheme_extension_table->scheme_display_w_max)
#define scheme_print_w_max (scheme_extension_table->scheme_print_w_max)
#define scheme_write_byte_string (scheme_extension_table->scheme_write_byte_string)
#define scheme_write_char_string (scheme_extension_table->scheme_write_char_string)
#define scheme_put_byte_string (scheme_extension_table->scheme_put_byte_string)
#define scheme_put_char_string (scheme_extension_table->scheme_put_char_string)
#define scheme_write_to_string (scheme_extension_table->scheme_write_to_string)
#define scheme_display_to_string (scheme_extension_table->scheme_display_to_string)
#define scheme_print_to_string (scheme_extension_table->scheme_print_to_string)
#define scheme_write_to_string_w_max (scheme_extension_table->scheme_write_to_string_w_max)
#define scheme_display_to_string_w_max (scheme_extension_table->scheme_display_to_string_w_max)
#define scheme_print_to_string_w_max (scheme_extension_table->scheme_print_to_string_w_max)
#define scheme_debug_print (scheme_extension_table->scheme_debug_print)
#define scheme_flush_output (scheme_extension_table->scheme_flush_output)
#define scheme_format (scheme_extension_table->scheme_format)
#define scheme_printf (scheme_extension_table->scheme_printf)
#define scheme_format_utf8 (scheme_extension_table->scheme_format_utf8)
#define scheme_printf_utf8 (scheme_extension_table->scheme_printf_utf8)
#define scheme_getc (scheme_extension_table->scheme_getc)
#define scheme_get_byte (scheme_extension_table->scheme_get_byte)
#define scheme_peekc (scheme_extension_table->scheme_peekc)
#define scheme_peek_byte (scheme_extension_table->scheme_peek_byte)
#define scheme_peekc_skip (scheme_extension_table->scheme_peekc_skip)
#define scheme_peek_byte_skip (scheme_extension_table->scheme_peek_byte_skip)
#define scheme_getc_special_ok (scheme_extension_table->scheme_getc_special_ok)
#define scheme_get_byte_special_ok (scheme_extension_table->scheme_get_byte_special_ok)
#define scheme_peekc_special_ok (scheme_extension_table->scheme_peekc_special_ok)
#define scheme_peek_byte_special_ok_skip (scheme_extension_table->scheme_peek_byte_special_ok_skip)
#define scheme_peekc_special_ok_skip (scheme_extension_table->scheme_peekc_special_ok_skip)
#define scheme_ungetc (scheme_extension_table->scheme_ungetc)
#define scheme_byte_ready (scheme_extension_table->scheme_byte_ready)
#define scheme_char_ready (scheme_extension_table->scheme_char_ready)
#define scheme_peekc_is_ungetc (scheme_extension_table->scheme_peekc_is_ungetc)
#define scheme_need_wakeup (scheme_extension_table->scheme_need_wakeup)
#define scheme_get_byte_string (scheme_extension_table->scheme_get_byte_string)
#define scheme_get_byte_string_unless (scheme_extension_table->scheme_get_byte_string_unless)
#define scheme_get_byte_string_special_ok_unless (scheme_extension_table->scheme_get_byte_string_special_ok_unless)
#define scheme_progress_evt (scheme_extension_table->scheme_progress_evt)
#define scheme_peeked_read (scheme_extension_table->scheme_peeked_read)
#define scheme_get_char_string (scheme_extension_table->scheme_get_char_string)
#define scheme_get_bytes (scheme_extension_table->scheme_get_bytes)
#define scheme_get_ready_special (scheme_extension_table->scheme_get_ready_special)
#define scheme_tell (scheme_extension_table->scheme_tell)
#define scheme_tell_can_redirect (scheme_extension_table->scheme_tell_can_redirect)
#define scheme_output_tell (scheme_extension_table->scheme_output_tell)
#define scheme_tell_line (scheme_extension_table->scheme_tell_line)
#define scheme_tell_column (scheme_extension_table->scheme_tell_column)
#define scheme_tell_all (scheme_extension_table->scheme_tell_all)
#define scheme_set_port_location (scheme_extension_table->scheme_set_port_location)
#define scheme_count_lines (scheme_extension_table->scheme_count_lines)
#define scheme_close_input_port (scheme_extension_table->scheme_close_input_port)
#define scheme_close_output_port (scheme_extension_table->scheme_close_output_port)
#define scheme_write_special (scheme_extension_table->scheme_write_special)
#define scheme_write_special_nonblock (scheme_extension_table->scheme_write_special_nonblock)
#define scheme_make_write_evt (scheme_extension_table->scheme_make_write_evt)
#define scheme_port_record (scheme_extension_table->scheme_port_record)
#define scheme_input_port_record (scheme_extension_table->scheme_input_port_record)
#define scheme_output_port_record (scheme_extension_table->scheme_output_port_record)
#define scheme_is_input_port (scheme_extension_table->scheme_is_input_port)
#define scheme_is_output_port (scheme_extension_table->scheme_is_output_port)
#define scheme_make_port_type (scheme_extension_table->scheme_make_port_type)
#define scheme_make_input_port (scheme_extension_table->scheme_make_input_port)
#define scheme_make_output_port (scheme_extension_table->scheme_make_output_port)
#define scheme_set_next_port_custodian (scheme_extension_table->scheme_set_next_port_custodian)
#define scheme_set_port_location_fun (scheme_extension_table->scheme_set_port_location_fun)
#define scheme_set_port_count_lines_fun (scheme_extension_table->scheme_set_port_count_lines_fun)
#define scheme_port_count_lines (scheme_extension_table->scheme_port_count_lines)
#define scheme_progress_evt_via_get (scheme_extension_table->scheme_progress_evt_via_get)
#define scheme_peeked_read_via_get (scheme_extension_table->scheme_peeked_read_via_get)
#define scheme_write_evt_via_write (scheme_extension_table->scheme_write_evt_via_write)
#define scheme_write_special_evt_via_write_special (scheme_extension_table->scheme_write_special_evt_via_write_special)
#define scheme_open_input_file (scheme_extension_table->scheme_open_input_file)
#define scheme_open_output_file (scheme_extension_table->scheme_open_output_file)
#define scheme_open_input_output_file (scheme_extension_table->scheme_open_input_output_file)
#define scheme_open_output_file_with_mode (scheme_extension_table->scheme_open_output_file_with_mode)
#define scheme_make_file_input_port (scheme_extension_table->scheme_make_file_input_port)
#define scheme_make_named_file_input_port (scheme_extension_table->scheme_make_named_file_input_port)
#define scheme_make_file_output_port (scheme_extension_table->scheme_make_file_output_port)
#define scheme_make_fd_input_port (scheme_extension_table->scheme_make_fd_input_port)
#define scheme_make_fd_output_port (scheme_extension_table->scheme_make_fd_output_port)
#define scheme_make_byte_string_input_port (scheme_extension_table->scheme_make_byte_string_input_port)
#define scheme_make_sized_byte_string_input_port (scheme_extension_table->scheme_make_sized_byte_string_input_port)
#define scheme_make_byte_string_output_port (scheme_extension_table->scheme_make_byte_string_output_port)
#define scheme_get_sized_byte_string_output (scheme_extension_table->scheme_get_sized_byte_string_output)
#define scheme_get_reset_sized_byte_string_output (scheme_extension_table->scheme_get_reset_sized_byte_string_output)
#define scheme_pipe (scheme_extension_table->scheme_pipe)
#define scheme_pipe_with_limit (scheme_extension_table->scheme_pipe_with_limit)
#define scheme_make_null_output_port (scheme_extension_table->scheme_make_null_output_port)
#define scheme_make_redirect_output_port (scheme_extension_table->scheme_make_redirect_output_port)
#define scheme_set_file_position (scheme_extension_table->scheme_set_file_position)
#define scheme_file_exists (scheme_extension_table->scheme_file_exists)
#define scheme_directory_exists (scheme_extension_table->scheme_directory_exists)
#define scheme_expand_filename (scheme_extension_table->scheme_expand_filename)
#define scheme_expand_user_filename (scheme_extension_table->scheme_expand_user_filename)
#define scheme_expand_string_filename (scheme_extension_table->scheme_expand_string_filename)
#define scheme_os_getcwd (scheme_extension_table->scheme_os_getcwd)
#define scheme_os_setcwd (scheme_extension_table->scheme_os_setcwd)
#define scheme_getdrive (scheme_extension_table->scheme_getdrive)
#define scheme_split_path (scheme_extension_table->scheme_split_path)
#define scheme_build_path (scheme_extension_table->scheme_build_path)
#define scheme_path_to_directory_path (scheme_extension_table->scheme_path_to_directory_path)
#define scheme_path_to_complete_path (scheme_extension_table->scheme_path_to_complete_path)
#define scheme_simplify_path (scheme_extension_table->scheme_simplify_path)
#define scheme_make_path (scheme_extension_table->scheme_make_path)
#define scheme_make_sized_path (scheme_extension_table->scheme_make_sized_path)
#define scheme_make_sized_offset_path (scheme_extension_table->scheme_make_sized_offset_path)
#define scheme_make_sized_offset_kind_path (scheme_extension_table->scheme_make_sized_offset_kind_path)
#define scheme_make_path_without_copying (scheme_extension_table->scheme_make_path_without_copying)
#define scheme_alloc_fdset_array (scheme_extension_table->scheme_alloc_fdset_array)
#define scheme_init_fdset_array (scheme_extension_table->scheme_init_fdset_array)
#define scheme_get_fdset (scheme_extension_table->scheme_get_fdset)
#define scheme_fdzero (scheme_extension_table->scheme_fdzero)
#define scheme_fdset (scheme_extension_table->scheme_fdset)
#define scheme_fdclr (scheme_extension_table->scheme_fdclr)
#define scheme_fdisset (scheme_extension_table->scheme_fdisset)
#define scheme_add_fd_handle (scheme_extension_table->scheme_add_fd_handle)
#define scheme_add_fd_eventmask (scheme_extension_table->scheme_add_fd_eventmask)
#define scheme_collapse_win_fd (scheme_extension_table->scheme_collapse_win_fd)
#define scheme_set_wakeup_time (scheme_extension_table->scheme_set_wakeup_time)
#define scheme_security_check_file (scheme_extension_table->scheme_security_check_file)
#define scheme_security_check_file_link (scheme_extension_table->scheme_security_check_file_link)
#define scheme_security_check_network (scheme_extension_table->scheme_security_check_network)
#define scheme_get_host_address (scheme_extension_table->scheme_get_host_address)
#define scheme_free_host_address (scheme_extension_table->scheme_free_host_address)
#define scheme_host_address_strerror (scheme_extension_table->scheme_host_address_strerror)
#define scheme_getnameinfo (scheme_extension_table->scheme_getnameinfo)
#define scheme_get_port_file_descriptor (scheme_extension_table->scheme_get_port_file_descriptor)
#define scheme_get_port_fd (scheme_extension_table->scheme_get_port_fd)
#define scheme_get_port_socket (scheme_extension_table->scheme_get_port_socket)
#define scheme_socket_to_ports (scheme_extension_table->scheme_socket_to_ports)
#define scheme_fd_to_semaphore (scheme_extension_table->scheme_fd_to_semaphore)
#define scheme_set_type_printer (scheme_extension_table->scheme_set_type_printer)
#define scheme_print_bytes (scheme_extension_table->scheme_print_bytes)
#define scheme_print_utf8 (scheme_extension_table->scheme_print_utf8)
#define scheme_print_string (scheme_extension_table->scheme_print_string)
#define scheme_read_byte_string (scheme_extension_table->scheme_read_byte_string)
#define scheme_make_namespace (scheme_extension_table->scheme_make_namespace)
#define scheme_add_global (scheme_extension_table->scheme_add_global)
#define scheme_add_global_symbol (scheme_extension_table->scheme_add_global_symbol)
#define scheme_make_envunbox (scheme_extension_table->scheme_make_envunbox)
#define scheme_lookup_global (scheme_extension_table->scheme_lookup_global)
#define scheme_global_bucket (scheme_extension_table->scheme_global_bucket)
#define scheme_module_bucket (scheme_extension_table->scheme_module_bucket)
#define scheme_builtin_value (scheme_extension_table->scheme_builtin_value)
#define scheme_set_global_bucket (scheme_extension_table->scheme_set_global_bucket)
#define scheme_primitive_module (scheme_extension_table->scheme_primitive_module)
#define scheme_finish_primitive_module (scheme_extension_table->scheme_finish_primitive_module)
#define scheme_set_primitive_module_phaseless (scheme_extension_table->scheme_set_primitive_module_phaseless)
#define scheme_protect_primitive_provide (scheme_extension_table->scheme_protect_primitive_provide)
#define scheme_make_modidx (scheme_extension_table->scheme_make_modidx)
#define scheme_dynamic_require (scheme_extension_table->scheme_dynamic_require)
#define scheme_dynamic_require_reader (scheme_extension_table->scheme_dynamic_require_reader)
#define scheme_namespace_require (scheme_extension_table->scheme_namespace_require)
#define scheme_is_module_path (scheme_extension_table->scheme_is_module_path)
#define scheme_is_module_path_index (scheme_extension_table->scheme_is_module_path_index)
#define scheme_is_resolved_module_path (scheme_extension_table->scheme_is_resolved_module_path)
#define scheme_datum_to_kernel_stx (scheme_extension_table->scheme_datum_to_kernel_stx)
#define scheme_module_is_declared (scheme_extension_table->scheme_module_is_declared)
#define scheme_intern_symbol (scheme_extension_table->scheme_intern_symbol)
#define scheme_intern_exact_symbol (scheme_extension_table->scheme_intern_exact_symbol)
#define scheme_intern_exact_char_symbol (scheme_extension_table->scheme_intern_exact_char_symbol)
#define scheme_make_symbol (scheme_extension_table->scheme_make_symbol)
#define scheme_make_exact_symbol (scheme_extension_table->scheme_make_exact_symbol)
#define scheme_make_exact_char_symbol (scheme_extension_table->scheme_make_exact_char_symbol)
#define scheme_symbol_name (scheme_extension_table->scheme_symbol_name)
#define scheme_symbol_name_and_size (scheme_extension_table->scheme_symbol_name_and_size)
#define scheme_symbol_val (scheme_extension_table->scheme_symbol_val)
#define scheme_intern_exact_keyword (scheme_extension_table->scheme_intern_exact_keyword)
#define scheme_intern_exact_char_keyword (scheme_extension_table->scheme_intern_exact_char_keyword)
#define scheme_make_struct_values (scheme_extension_table->scheme_make_struct_values)
#define scheme_make_struct_names (scheme_extension_table->scheme_make_struct_names)
#define scheme_make_struct_type (scheme_extension_table->scheme_make_struct_type)
#define scheme_make_struct_type2 (scheme_extension_table->scheme_make_struct_type2)
#define scheme_make_struct_instance (scheme_extension_table->scheme_make_struct_instance)
#define scheme_is_struct_instance (scheme_extension_table->scheme_is_struct_instance)
#define scheme_struct_ref (scheme_extension_table->scheme_struct_ref)
#define scheme_struct_set (scheme_extension_table->scheme_struct_set)
#define scheme_make_struct_type_property (scheme_extension_table->scheme_make_struct_type_property)
#define scheme_make_struct_type_property_w_guard (scheme_extension_table->scheme_make_struct_type_property_w_guard)
#define scheme_struct_type_property_ref (scheme_extension_table->scheme_struct_type_property_ref)
#define scheme_chaperone_struct_type_property_ref (scheme_extension_table->scheme_chaperone_struct_type_property_ref)
#define scheme_make_location (scheme_extension_table->scheme_make_location)
#define scheme_is_location (scheme_extension_table->scheme_is_location)
#define scheme_make_inspector (scheme_extension_table->scheme_make_inspector)
#define scheme_is_subinspector (scheme_extension_table->scheme_is_subinspector)
#define scheme_eq (scheme_extension_table->scheme_eq)
#define scheme_eqv (scheme_extension_table->scheme_eqv)
#define scheme_equal (scheme_extension_table->scheme_equal)
#define scheme_chaperone_of (scheme_extension_table->scheme_chaperone_of)
#define scheme_impersonator_of (scheme_extension_table->scheme_impersonator_of)
#ifdef MZ_PRECISE_GC
#define scheme_hash_key (scheme_extension_table->scheme_hash_key)
#endif
#define scheme_equal_hash_key (scheme_extension_table->scheme_equal_hash_key)
#define scheme_equal_hash_key2 (scheme_extension_table->scheme_equal_hash_key2)
#define scheme_recur_equal_hash_key (scheme_extension_table->scheme_recur_equal_hash_key)
#define scheme_recur_equal_hash_key2 (scheme_extension_table->scheme_recur_equal_hash_key2)
#define scheme_eqv_hash_key (scheme_extension_table->scheme_eqv_hash_key)
#define scheme_eqv_hash_key2 (scheme_extension_table->scheme_eqv_hash_key2)
#define scheme_set_type_equality (scheme_extension_table->scheme_set_type_equality)
#define scheme_recur_equal (scheme_extension_table->scheme_recur_equal)
#define scheme_build_list (scheme_extension_table->scheme_build_list)
#define scheme_build_list_offset (scheme_extension_table->scheme_build_list_offset)
#define scheme_is_list (scheme_extension_table->scheme_is_list)
#define scheme_list_length (scheme_extension_table->scheme_list_length)
#define scheme_proper_list_length (scheme_extension_table->scheme_proper_list_length)
#define scheme_alloc_list (scheme_extension_table->scheme_alloc_list)
#define scheme_map_1 (scheme_extension_table->scheme_map_1)
#define scheme_car (scheme_extension_table->scheme_car)
#define scheme_cdr (scheme_extension_table->scheme_cdr)
#define scheme_cadr (scheme_extension_table->scheme_cadr)
#define scheme_caddr (scheme_extension_table->scheme_caddr)
#define scheme_vector_to_list (scheme_extension_table->scheme_vector_to_list)
#define scheme_list_to_vector (scheme_extension_table->scheme_list_to_vector)
#define scheme_append (scheme_extension_table->scheme_append)
#define scheme_reverse (scheme_extension_table->scheme_reverse)
#define scheme_box (scheme_extension_table->scheme_box)
#define scheme_unbox (scheme_extension_table->scheme_unbox)
#define scheme_set_box (scheme_extension_table->scheme_set_box)
#define scheme_make_weak_box (scheme_extension_table->scheme_make_weak_box)
#define scheme_make_late_weak_box (scheme_extension_table->scheme_make_late_weak_box)
#define scheme_make_ephemeron (scheme_extension_table->scheme_make_ephemeron)
#define scheme_ephemeron_value (scheme_extension_table->scheme_ephemeron_value)
#define scheme_ephemeron_key (scheme_extension_table->scheme_ephemeron_key)
#define scheme_make_late_will_executor (scheme_extension_table->scheme_make_late_will_executor)
#define scheme_load (scheme_extension_table->scheme_load)
#define scheme_load_extension (scheme_extension_table->scheme_load_extension)
#define scheme_register_extension_global (scheme_extension_table->scheme_register_extension_global)
#define scheme_get_seconds (scheme_extension_table->scheme_get_seconds)
#define scheme_get_milliseconds (scheme_extension_table->scheme_get_milliseconds)
#define scheme_get_inexact_milliseconds (scheme_extension_table->scheme_get_inexact_milliseconds)
#define scheme_get_process_milliseconds (scheme_extension_table->scheme_get_process_milliseconds)
#define scheme_get_process_children_milliseconds (scheme_extension_table->scheme_get_process_children_milliseconds)
#define scheme_get_thread_milliseconds (scheme_extension_table->scheme_get_thread_milliseconds)
#define scheme_banner (scheme_extension_table->scheme_banner)
#define scheme_version (scheme_extension_table->scheme_version)
#define scheme_check_proc_arity (scheme_extension_table->scheme_check_proc_arity)
#define scheme_check_proc_arity2 (scheme_extension_table->scheme_check_proc_arity2)
#define scheme_make_provided_string (scheme_extension_table->scheme_make_provided_string)
#define scheme_make_args_string (scheme_extension_table->scheme_make_args_string)
#define scheme_make_arg_lines_string (scheme_extension_table->scheme_make_arg_lines_string)
#define scheme_system_library_subpath (scheme_extension_table->scheme_system_library_subpath)
#define scheme_signal_received (scheme_extension_table->scheme_signal_received)
#define scheme_signal_received_at (scheme_extension_table->scheme_signal_received_at)
#define scheme_get_signal_handle (scheme_extension_table->scheme_get_signal_handle)
#define scheme_wait_until_signal_received (scheme_extension_table->scheme_wait_until_signal_received)
#define scheme_char_strlen (scheme_extension_table->scheme_char_strlen)
#define scheme_stx_extract_marks (scheme_extension_table->scheme_stx_extract_marks)
#define scheme_get_place_id (scheme_extension_table->scheme_get_place_id)
#define scheme_get_place_table (scheme_extension_table->scheme_get_place_table)
#define scheme_register_process_global (scheme_extension_table->scheme_register_process_global)
#define scheme_malloc_key (scheme_extension_table->scheme_malloc_key)
#define scheme_free_key (scheme_extension_table->scheme_free_key)
#define scheme_jit_find_code_end (scheme_extension_table->scheme_jit_find_code_end)
#define scheme_jit_now (scheme_extension_table->scheme_jit_now)
#define scheme_set_signal_handler (scheme_extension_table->scheme_set_signal_handler)
#ifdef MZ_PRECISE_GC
#pragma GC_VARIABLE_STACK_THOUGH_TABLE
#endif

View File

@ -1,136 +0,0 @@
/* This file was generated by makeexn */
#ifndef _MZEXN_DEFINES
#define _MZEXN_DEFINES
enum {
MZEXN,
MZEXN_FAIL,
MZEXN_FAIL_CONTRACT,
MZEXN_FAIL_CONTRACT_ARITY,
MZEXN_FAIL_CONTRACT_DIVIDE_BY_ZERO,
MZEXN_FAIL_CONTRACT_NON_FIXNUM_RESULT,
MZEXN_FAIL_CONTRACT_CONTINUATION,
MZEXN_FAIL_CONTRACT_VARIABLE,
MZEXN_FAIL_READ,
MZEXN_FAIL_READ_EOF,
MZEXN_FAIL_READ_NON_CHAR,
MZEXN_FAIL_FILESYSTEM,
MZEXN_FAIL_FILESYSTEM_EXISTS,
MZEXN_FAIL_FILESYSTEM_VERSION,
MZEXN_FAIL_FILESYSTEM_ERRNO,
MZEXN_FAIL_NETWORK,
MZEXN_FAIL_NETWORK_ERRNO,
MZEXN_FAIL_OUT_OF_MEMORY,
MZEXN_FAIL_UNSUPPORTED,
MZEXN_FAIL_USER,
MZEXN_BREAK,
MZEXN_BREAK_HANG_UP,
MZEXN_BREAK_TERMINATE,
MZEXN_OTHER
};
#endif
#ifdef _MZEXN_TABLE
#define MZEXN_MAXARGS 3
#ifdef GLOBAL_EXN_ARRAY
static exn_rec exn_table[] = {
{ 2, NULL, NULL, 0, NULL, -1 },
{ 2, NULL, NULL, 0, NULL, 0 },
{ 2, NULL, NULL, 0, NULL, 1 },
{ 2, NULL, NULL, 0, NULL, 2 },
{ 2, NULL, NULL, 0, NULL, 2 },
{ 2, NULL, NULL, 0, NULL, 2 },
{ 2, NULL, NULL, 0, NULL, 2 },
{ 3, NULL, NULL, 0, NULL, 2 },
{ 3, NULL, NULL, 0, NULL, 1 },
{ 3, NULL, NULL, 0, NULL, 8 },
{ 3, NULL, NULL, 0, NULL, 8 },
{ 2, NULL, NULL, 0, NULL, 1 },
{ 2, NULL, NULL, 0, NULL, 11 },
{ 2, NULL, NULL, 0, NULL, 11 },
{ 3, NULL, NULL, 0, NULL, 11 },
{ 2, NULL, NULL, 0, NULL, 1 },
{ 3, NULL, NULL, 0, NULL, 15 },
{ 2, NULL, NULL, 0, NULL, 1 },
{ 2, NULL, NULL, 0, NULL, 1 },
{ 2, NULL, NULL, 0, NULL, 1 },
{ 3, NULL, NULL, 0, NULL, 0 },
{ 3, NULL, NULL, 0, NULL, 20 },
{ 3, NULL, NULL, 0, NULL, 20 }
};
#else
static exn_rec *exn_table;
#endif
#endif
#ifdef _MZEXN_PRESETUP
#ifndef GLOBAL_EXN_ARRAY
exn_table = (exn_rec *)scheme_malloc(sizeof(exn_rec) * MZEXN_OTHER);
exn_table[MZEXN].args = 2;
exn_table[MZEXN_FAIL].args = 2;
exn_table[MZEXN_FAIL_CONTRACT].args = 2;
exn_table[MZEXN_FAIL_CONTRACT_ARITY].args = 2;
exn_table[MZEXN_FAIL_CONTRACT_DIVIDE_BY_ZERO].args = 2;
exn_table[MZEXN_FAIL_CONTRACT_NON_FIXNUM_RESULT].args = 2;
exn_table[MZEXN_FAIL_CONTRACT_CONTINUATION].args = 2;
exn_table[MZEXN_FAIL_CONTRACT_VARIABLE].args = 3;
exn_table[MZEXN_FAIL_READ].args = 3;
exn_table[MZEXN_FAIL_READ_EOF].args = 3;
exn_table[MZEXN_FAIL_READ_NON_CHAR].args = 3;
exn_table[MZEXN_FAIL_FILESYSTEM].args = 2;
exn_table[MZEXN_FAIL_FILESYSTEM_EXISTS].args = 2;
exn_table[MZEXN_FAIL_FILESYSTEM_VERSION].args = 2;
exn_table[MZEXN_FAIL_FILESYSTEM_ERRNO].args = 3;
exn_table[MZEXN_FAIL_NETWORK].args = 2;
exn_table[MZEXN_FAIL_NETWORK_ERRNO].args = 3;
exn_table[MZEXN_FAIL_OUT_OF_MEMORY].args = 2;
exn_table[MZEXN_FAIL_UNSUPPORTED].args = 2;
exn_table[MZEXN_FAIL_USER].args = 2;
exn_table[MZEXN_BREAK].args = 3;
exn_table[MZEXN_BREAK_HANG_UP].args = 3;
exn_table[MZEXN_BREAK_TERMINATE].args = 3;
#endif
#endif
#ifdef _MZEXN_DECL_FIELDS
static const char *MZEXN_FIELDS[2] = { "message", "continuation-marks" };
static const char *MZEXN_FAIL_CONTRACT_VARIABLE_FIELDS[1] = { "id" };
static const char *MZEXN_FAIL_READ_FIELDS[1] = { "srclocs" };
static const char *MZEXN_FAIL_FILESYSTEM_ERRNO_FIELDS[1] = { "errno" };
static const char *MZEXN_FAIL_NETWORK_ERRNO_FIELDS[1] = { "errno" };
static const char *MZEXN_BREAK_FIELDS[1] = { "continuation" };
#endif
#ifdef _MZEXN_DECL_PROPS
# define MZEXN_FAIL_READ_PROPS scheme_make_pair(scheme_make_pair(scheme_source_property, scheme_make_prim_w_arity(extract_read_locations, "extract_read_locations", 0, -1)), scheme_null)
#endif
#ifdef _MZEXN_SETUP
SETUP_STRUCT(MZEXN, NULL, "exn", 2, MZEXN_FIELDS, scheme_null, scheme_make_prim_w_arity(exn_field_check, "exn_field_check" , 0, -1))
SETUP_STRUCT(MZEXN_FAIL, EXN_PARENT(MZEXN), "exn:fail", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_CONTRACT, EXN_PARENT(MZEXN_FAIL), "exn:fail:contract", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_CONTRACT_ARITY, EXN_PARENT(MZEXN_FAIL_CONTRACT), "exn:fail:contract:arity", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_CONTRACT_DIVIDE_BY_ZERO, EXN_PARENT(MZEXN_FAIL_CONTRACT), "exn:fail:contract:divide-by-zero", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_CONTRACT_NON_FIXNUM_RESULT, EXN_PARENT(MZEXN_FAIL_CONTRACT), "exn:fail:contract:non-fixnum-result", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_CONTRACT_CONTINUATION, EXN_PARENT(MZEXN_FAIL_CONTRACT), "exn:fail:contract:continuation", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_CONTRACT_VARIABLE, EXN_PARENT(MZEXN_FAIL_CONTRACT), "exn:fail:contract:variable", 1, MZEXN_FAIL_CONTRACT_VARIABLE_FIELDS, scheme_null, scheme_make_prim_w_arity(variable_field_check, "variable_field_check" , 0, -1))
SETUP_STRUCT(MZEXN_FAIL_READ, EXN_PARENT(MZEXN_FAIL), "exn:fail:read", 1, MZEXN_FAIL_READ_FIELDS, MZEXN_FAIL_READ_PROPS, scheme_make_prim_w_arity(read_field_check, "read_field_check" , 0, -1))
SETUP_STRUCT(MZEXN_FAIL_READ_EOF, EXN_PARENT(MZEXN_FAIL_READ), "exn:fail:read:eof", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_READ_NON_CHAR, EXN_PARENT(MZEXN_FAIL_READ), "exn:fail:read:non-char", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_FILESYSTEM, EXN_PARENT(MZEXN_FAIL), "exn:fail:filesystem", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_FILESYSTEM_EXISTS, EXN_PARENT(MZEXN_FAIL_FILESYSTEM), "exn:fail:filesystem:exists", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_FILESYSTEM_VERSION, EXN_PARENT(MZEXN_FAIL_FILESYSTEM), "exn:fail:filesystem:version", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_FILESYSTEM_ERRNO, EXN_PARENT(MZEXN_FAIL_FILESYSTEM), "exn:fail:filesystem:errno", 1, MZEXN_FAIL_FILESYSTEM_ERRNO_FIELDS, scheme_null, scheme_make_prim_w_arity(errno_field_check, "errno_field_check" , 0, -1))
SETUP_STRUCT(MZEXN_FAIL_NETWORK, EXN_PARENT(MZEXN_FAIL), "exn:fail:network", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_NETWORK_ERRNO, EXN_PARENT(MZEXN_FAIL_NETWORK), "exn:fail:network:errno", 1, MZEXN_FAIL_NETWORK_ERRNO_FIELDS, scheme_null, scheme_make_prim_w_arity(errno_field_check, "errno_field_check" , 0, -1))
SETUP_STRUCT(MZEXN_FAIL_OUT_OF_MEMORY, EXN_PARENT(MZEXN_FAIL), "exn:fail:out-of-memory", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_UNSUPPORTED, EXN_PARENT(MZEXN_FAIL), "exn:fail:unsupported", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_USER, EXN_PARENT(MZEXN_FAIL), "exn:fail:user", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_BREAK, EXN_PARENT(MZEXN), "exn:break", 1, MZEXN_BREAK_FIELDS, scheme_null, scheme_make_prim_w_arity(break_field_check, "break_field_check" , 0, -1))
SETUP_STRUCT(MZEXN_BREAK_HANG_UP, EXN_PARENT(MZEXN_BREAK), "exn:break:hang-up", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_BREAK_TERMINATE, EXN_PARENT(MZEXN_BREAK), "exn:break:terminate", 0, NULL, scheme_null, NULL)
#endif

View File

@ -1,37 +0,0 @@
#ifndef GC2_OBJHEAD_H
#define GC2_OBJHEAD_H
#if defined(MZ_PRECISE_GC) && !defined(USE_COMPACT_3M_GC)
#if defined(_WIN32) || defined(__CYGWIN32__) || defined(MZ_USE_LARGE_PAGE_SIZE)
# define LOG_APAGE_SIZE 16
#else
# define LOG_APAGE_SIZE 14
#endif
typedef struct objhead {
/* the type and size of the object */
uintptr_t type : 3; /* if `moved`, then non-0 means moved to gen 1/2 */
/* these are the various mark bits we use */
uintptr_t mark : 1;
uintptr_t btc_mark : 1;
/* these are used for compaction et al*/
uintptr_t moved : 1;
uintptr_t dead : 1;
uintptr_t size : LOG_APAGE_SIZE;
/* leftover bits are used for hashing: */
uintptr_t hash : ((8 * sizeof(intptr_t)) - (4+3+LOG_APAGE_SIZE) );
} objhead;
#define OBJHEAD_SIZE (sizeof(objhead))
#define OBJPTR_TO_OBJHEAD(p) ((objhead *) (((char *)(p)) - OBJHEAD_SIZE))
#define OBJHEAD_TO_OBJPTR(p) ((void *) (((char *)(p)) + OBJHEAD_SIZE))
XFORM_NONGCING extern int GC_is_allocated(void *p);
#define OBJHEAD_HAS_HASH_BITS
#define OBJHEAD_HASH_BITS(p) (OBJPTR_TO_OBJHEAD(p)->hash)
#endif
#endif

View File

@ -1,769 +0,0 @@
/* Implements thread-local variables, which are all combined into one
big table.
When thread-local variables are not needed, this file doesn't
declare them. Instead, declarations marked with
THREAD_LOCAL_DECL() are used.
When thread-local variables are needed, then THREAD_LOCAL_DECL()
expands to nothing, and this file defines each thread-local variable
as a field in one big record. The record is accessed through a single
thread-local variable or through pthread_getspecific().
Choose the names of thread-local variables carefully. The names are
globally visible, and macros to redirect uses of thread-local
variables can create trouble and poor error messages from the C
compiler if the same name is used for a local variable. */
#ifndef SCHEME_THREADLOCAL_H
#define SCHEME_THREADLOCAL_H
#include "mzconfig.h"
# ifdef __cplusplus
extern "C" {
# endif
#if defined(MZ_USE_PLACES) || defined(MZ_USE_FUTURES)
# define USE_THREAD_LOCAL
# ifdef _WIN32
# if defined(_WIN64)
# if defined(__MINGW32__)
# define THREAD_LOCAL /* empty */
# define IMPLEMENT_THREAD_LOCAL_VIA_WIN_TLS
# else
# define THREAD_LOCAL __declspec(thread)
# define MZ_THREAD_EXTERN extern
# define IMPLEMENT_THREAD_LOCAL_VIA_OFFSET
# define IMPLEMENT_THREAD_LOCAL_EXTERNALLY_VIA_PROC
# endif
# else
# define THREAD_LOCAL /* empty */
# define IMPLEMENT_THREAD_LOCAL_VIA_WIN_TLS
# endif
# elif (defined(__APPLE__) && defined(__MACH__)) || defined(GC2_PLACES_TESTING)
# define IMPLEMENT_THREAD_LOCAL_VIA_PTHREADS
# if defined(__x86_64__) || defined(__i386__)
# define INLINE_GETSPECIFIC_ASSEMBLY_CODE
# endif
# else
# define THREAD_LOCAL __thread
# endif
#else
# define THREAD_LOCAL /* empty */
#endif
/* Set up MZ_EXTERN for DLL build */
#if (defined(__WIN32__) || defined(WIN32) || defined(_WIN32) || defined(__CYGWIN32__)) \
&& !defined(LINK_EXTENSIONS_BY_TABLE) \
&& !defined(SCHEME_EMBEDDED_NO_DLL)
# define MZ_DLLIMPORT __declspec(dllimport)
# define MZ_DLLEXPORT __declspec(dllexport)
# if (defined(__mzscheme_private__) || defined(__MINGW32_DELAY_LOAD__) \
|| defined(MZ_NO_LIBRACKET_DLL) \
|| (defined(__CYGWIN32__) && !defined(MZ_USES_SHARED_LIB)))
# define MZ_DLLSPEC __declspec(dllexport)
# else
# define MZ_DLLSPEC __declspec(dllimport)
# endif
# if (defined(__CYGWIN32__) && !defined(MZ_USES_SHARED_LIB)) || defined(MZ_PRECISE_GC)
# define MZGC_DLLIMPORT
# else
# define MZGC_DLLIMPORT MZ_DLLIMPORT
# endif
#else
# define MZ_DLLSPEC
# define MZ_DLLIMPORT
# define MZ_DLLEXPORT
# define MZGC_DLLIMPORT
#endif
#define MZ_EXTERN extern MZ_DLLSPEC
#ifndef MZ_THREAD_EXTERN
# define MZ_THREAD_EXTERN MZ_EXTERN
#endif
MZ_EXTERN void scheme_init_os_thread(void);
/* **************************************************************** */
/* Declarations that we wish were elsewhere, but are needed here to */
/* determine the size and type of some thread-local record fields. */
/* **************************************************************** */
#define STACK_COPY_CACHE_SIZE 10
#define BIGNUM_CACHE_SIZE 16
#define STACK_CACHE_SIZE 32
#define NUM_MORE_CONSTANT_STXES 24
/* The number of cached scope sets should be a power of 2: */
#define NUM_RECENT_SCOPE_SETS 8
/* This structure must be 4 words: */
typedef struct {
void *orig_return_address;
void *stack_frame;
struct Scheme_Object *cache;
void *orig_result;
} Stack_Cache_Elem;
typedef intptr_t rxpos;
struct gmp_tmp_stack
{
void *end;
void *alloc_point;
struct gmp_tmp_stack *prev;
};
#ifndef MZ_PRECISE_GC
typedef intptr_t objhead;
#endif
typedef void (*Scheme_Sleep_Proc)(float seconds, void *fds);
typedef void (*Scheme_On_Atomic_Timeout_Proc)(void *data, int must_give_up);
/* **************************************** */
#ifndef USE_THREAD_LOCAL
# define THREAD_LOCAL_DECL(x) x
#else
/* **************************************** */
typedef struct Thread_Local_Variables {
int scheme_current_place_id_;
void **GC_variable_stack_;
struct NewGC *GC_instance_;
uintptr_t GC_gen0_alloc_page_ptr_;
uintptr_t GC_gen0_alloc_page_end_;
int GC_gen0_alloc_only_;
uintptr_t force_gc_for_place_accounting_;
uintptr_t scheme_os_thread_id_;
int scheme_starting_up_;
struct rktio_t *scheme_rktio_;
void *bignum_cache_[BIGNUM_CACHE_SIZE];
int cache_count_;
struct Scheme_Hash_Table *toplevels_ht_;
struct Scheme_Hash_Table *locals_ht_[2];
volatile int scheme_fuel_counter_;
uintptr_t scheme_stack_boundary_;
uintptr_t volatile scheme_jit_stack_boundary_;
volatile int scheme_future_need_gc_pause_;
int scheme_use_rtcall_;
int in_jit_critical_section_;
void *jit_buffer_cache_;
intptr_t jit_buffer_cache_size_;
int jit_buffer_cache_registered_;
int scheme_continuation_application_count_;
int scheme_cont_capture_count_;
int scheme_prompt_capture_count_;
struct Scheme_Prompt *available_prompt_;
struct Scheme_Prompt *available_cws_prompt_;
struct Scheme_Prompt *available_regular_prompt_;
struct Scheme_Dynamic_Wind *available_prompt_dw_;
struct Scheme_Meta_Continuation *available_prompt_mc_;
struct Scheme_Cont *offstack_cont_;
struct Scheme_Overflow *offstack_overflow_;
struct Scheme_Overflow_Jmp *scheme_overflow_jmp_;
void *scheme_overflow_stack_start_;
void **codetab_tree_;
int during_set_;
Stack_Cache_Elem stack_cache_stack_[STACK_CACHE_SIZE];
intptr_t stack_cache_stack_pos_;
struct Scheme_Object **fixup_runstack_base_;
int fixup_already_in_place_;
void *retry_alloc_r1_;
double scheme_jit_save_fp_;
double scheme_jit_save_fp2_;
#ifdef MZ_LONG_DOUBLE
mz_long_double scheme_jit_save_extfp_;
mz_long_double scheme_jit_save_extfp2_;
#endif
struct Scheme_Bucket_Table *starts_table_;
struct mz_proc_thread *proc_thread_self_;
struct Scheme_Object *scheme_orig_stdout_port_;
struct Scheme_Object *scheme_orig_stderr_port_;
struct Scheme_Object *scheme_orig_stdin_port_;
struct rktio_ltps_t *scheme_semaphore_fd_set_;
struct Scheme_Object *fs_change_props_;
struct Scheme_Custodian *new_port_cust_;
char *read_string_byte_buffer_;
struct ITimer_Data *itimerdata_;
char *quick_buffer_;
char *quick_encode_buffer_;
char *quick_print_buffer_;
struct Scheme_Hash_Table *cache_ht_;
char *regstr_;
char *regparsestr_;
int regmatchmin_;
int regmatchmax_;
int regmaxbackposn_;
int regsavepos_;
struct Scheme_Hash_Table *regbackknown_;
struct Scheme_Hash_Table *regbackdepends_;
rxpos regparse_;
rxpos regparse_end_;
int regnpar_;
int regncounter_;
rxpos regcode_;
rxpos regcodesize_;
rxpos regcodemax_;
intptr_t regmaxlookback_;
const char *regerrorwho_;
Scheme_Object *regerrorproc_;
Scheme_Object *regerrorval_;
intptr_t rx_buffer_size_;
rxpos *startp_buffer_cache_;
rxpos *endp_buffer_cache_;
rxpos *maybep_buffer_cache_;
rxpos *match_stack_buffer_cache_;
uintptr_t scheme_os_thread_stack_base_;
struct Scheme_Object *scheme_system_idle_channel_;
struct Scheme_Object *system_idle_put_evt_;
void *stack_copy_cache_[STACK_COPY_CACHE_SIZE];
intptr_t stack_copy_size_cache_[STACK_COPY_CACHE_SIZE];
int scc_pos_;
struct Scheme_Instance *scheme_startup_instance_;
struct startup_instance_top_t *c_startup_instance_top_;
struct Scheme_Thread *scheme_current_thread_;
struct Scheme_Thread *scheme_main_thread_;
struct Scheme_Thread *scheme_first_thread_;
struct Scheme_Thread *gc_prep_thread_chain_;
struct Scheme_Thread_Set *scheme_thread_set_top_;
struct Scheme_Current_LWC *scheme_current_lwc_;
intptr_t process_time_at_swap_;
intptr_t process_time_skips_;
int num_running_threads_;
int swap_no_setjmp_;
int thread_swap_count_;
int scheme_did_gc_count_;
struct Scheme_Future_State *scheme_future_state_;
struct Scheme_Future_Thread_State *scheme_future_thread_state_;
void *jit_future_storage_[4];
struct Scheme_Object **scheme_current_runstack_start_;
struct Scheme_Object **scheme_current_runstack_;
intptr_t scheme_current_cont_mark_stack_;
intptr_t scheme_current_cont_mark_pos_;
struct Scheme_Custodian *main_custodian_;
struct Scheme_Hash_Table *limited_custodians_;
struct Scheme_Plumber *initial_plumber_;
struct Scheme_Config *initial_config_;
struct Scheme_Thread *swap_target_;
struct Scheme_Object *scheduled_kills_;
struct Scheme_Hash_Table *late_will_executors_with_pending_;
int do_atomic_;
int missed_context_switch_;
int all_breaks_disabled_;
int have_activity_;
int scheme_active_but_sleeping_;
int thread_ended_with_activity_;
int scheme_no_stack_overflow_;
int needs_sleep_cancelled_;
double needs_sleep_time_end_;
int tls_pos_;
struct Scheme_Object *the_nested_exn_handler_;
struct Scheme_Object *cust_closers_;
struct Scheme_Object *thread_swap_callbacks_;
struct Scheme_Object *thread_swap_out_callbacks_;
struct Scheme_Object *recycle_cell_;
struct Scheme_Object *maybe_recycle_cell_;
int recycle_cc_count_;
void *gmp_mem_pool_;
uintptr_t max_total_allocation_;
uintptr_t current_total_allocation_;
struct gmp_tmp_stack gmp_tmp_xxx_;
struct gmp_tmp_stack *gmp_tmp_current_;
struct Scheme_Logger *scheme_main_logger_;
struct Scheme_Logger *scheme_gc_logger_;
struct Scheme_Logger *scheme_future_logger_;
struct Scheme_Logger *scheme_place_logger_;
int scheme_overflow_count_;
struct Scheme_Object *original_pwd_;
void *file_path_wc_buffer_;
intptr_t scheme_hash_request_count_;
intptr_t scheme_hash_iteration_count_;
struct Scheme_Bucket_Table *scheme_namespace_to_env_;
int special_is_ok_;
int scheme_force_port_closed_;
int fd_reserved_;
struct rktio_fd_t *the_fd_;
int scheme_num_read_syntax_objects_;
struct Scheme_Load_Delay *clear_bytes_chain_;
const char *failure_msg_for_read_;
void **dgc_array_;
int *dgc_count_;
int dgc_size_;
void (*save_oom_)(void);
int current_lifetime_;
int scheme_main_was_once_suspended_;
int buffer_init_size_;
uintptr_t scheme_total_gc_time_;
uintptr_t start_this_gc_time_;
uintptr_t end_this_gc_time_;
double start_this_gc_real_time_;
double end_this_gc_real_time_;
struct Scheme_Struct_Type *gc_info_prefab_;
struct Scheme_Struct_Type *place_event_prefab_;
volatile short delayed_break_ready_;
struct Scheme_Thread *main_break_target_thread_;
intptr_t scheme_code_page_total_;
intptr_t scheme_code_total_;
intptr_t scheme_code_count_;
intptr_t max_gc_pre_used_bytes_;
intptr_t max_code_page_total_;
int num_major_garbage_collections_;
int num_minor_garbage_collections_;
int locale_on_;
void *current_locale_name_ptr_;
char *cached_locale_encoding_name_;
struct rktio_converter_t *cached_locale_to_converter_;
struct rktio_converter_t *cached_locale_from_converter_;
int gensym_counter_;
struct Scheme_Object *dummy_input_port_;
struct Scheme_Object *dummy_output_port_;
struct Scheme_Hash_Table *opened_libs_;
struct mzrt_mutex *jit_lock_;
struct free_list_entry *free_list_;
int free_list_bucket_count_;
void *code_allocation_page_list_;
struct Scheme_Bucket_Table *prefab_table_;
struct Scheme_Hash_Table *place_local_symbol_table_;
struct Scheme_Hash_Table *place_local_keyword_table_;
struct Scheme_Hash_Table *place_local_parallel_symbol_table_;
struct Scheme_Bucket_Table *literal_string_table_;
struct Scheme_Bucket_Table *literal_number_table_;
struct FFI_Sync_Queue *ffi_sync_queue_;
struct Scheme_GC_Pre_Post_Callback_Desc *gc_prepost_callback_descs_;
struct Scheme_Hash_Table *place_local_misc_table_;
int place_evts_array_size_;
struct Evt **place_evts_;
struct Scheme_Place_Object *place_object_;
struct Scheme_Place *all_child_places_;
struct Scheme_Place_Bi_Channel_Link *place_channel_links_;
struct Scheme_Object **reusable_ifs_stack_;
struct Scheme_Object *group_member_cache_;
struct Scheme_Prefix *scheme_prefix_finalize_;
struct Scheme_Prefix *scheme_inc_prefix_finalize_;
struct Scheme_Hash_Table *loaded_extensions_;
struct Scheme_Hash_Table *fullpath_loaded_extensions_;
Scheme_Sleep_Proc scheme_place_sleep_;
struct Scheme_Object *thread_sleep_callback_;
int thread_sleep_callback_fd_;
struct GHBN_Thread_Data *ghbn_thread_data_;
Scheme_On_Atomic_Timeout_Proc on_atomic_timeout_;
void *on_atomic_timeout_data_;
int atomic_timeout_auto_suspend_;
int atomic_timeout_atomic_level_;
struct Scheme_Object *configuration_callback_cache_[2];
struct FFI_Orig_Place_Call *cached_orig_place_todo_;
struct Scheme_Hash_Table *ffi_lock_ht_;
struct Scheme_Object *is_syntax_proc_;
struct Scheme_Object *expander_syntax_to_datum_proc_;
struct Scheme_Hash_Table *local_primitive_tables_;
struct Scheme_Object *current_linklet_native_lambdas_;
} Thread_Local_Variables;
#if defined(IMPLEMENT_THREAD_LOCAL_VIA_PTHREADS)
/* Using Pthread getspecific() */
# include <pthread.h>
MZ_EXTERN pthread_key_t scheme_thread_local_key;
# if defined(__APPLE__) && defined(__MACH__)
# define PREFER_TO_CACHE_THREAD_LOCAL
MZ_EXTERN int scheme_thread_local_offset;
# endif
# ifndef INLINE_GETSPECIFIC_ASSEMBLY_CODE
# define scheme_get_thread_local_variables() ((Thread_Local_Variables *)pthread_getspecific(scheme_thread_local_key))
# ifdef MZ_XFORM
XFORM_GC_VARIABLE_STACK_THROUGH_GETSPECIFIC;
# endif
# else
# ifdef MZ_XFORM
START_XFORM_SKIP;
# endif
static inline Thread_Local_Variables *scheme_get_thread_local_variables(void) __attribute__((used));
static inline Thread_Local_Variables *scheme_get_thread_local_variables(void) {
Thread_Local_Variables *x = NULL;
# if defined(__APPLE__) && defined(__MACH__)
# if defined(__x86_64__)
asm("movq %%gs:0(%1,%2,8), %0" : "=r"(x) : "r"(scheme_thread_local_offset), "r"((int)scheme_thread_local_key));
# else
asm("movl %%gs:0(%1,%2,4), %0" : "=r"(x) : "r"(scheme_thread_local_offset), "r"(scheme_thread_local_key));
# endif
# elif defined(linux)
# if defined(__x86_64__)
asm( "mov %1, %%eax;"
"shl $0x4, %%rax;"
"mov %%fs:0x10, %%rdx;"
"mov 0x118(%%rax,%%rdx), %0;"
:"=r"(x) /* output */
:"r"(scheme_thread_local_key)
:"%rax", "%rdx" /* clobbered register */
);
# else
# error scheme_get_thread_local_variables no defined on this platform
# endif
# else
# error scheme_get_thread_local_variables no defined on this platform
# endif
return x;
}
# ifdef MZ_XFORM
END_XFORM_SKIP;
XFORM_GC_VARIABLE_STACK_THROUGH_FUNCTION;
# endif
# endif
#elif defined(IMPLEMENT_THREAD_LOCAL_VIA_PROCEDURE)
/* Using external scheme_get_thread_local_variables() procedure */
MZ_EXTERN Thread_Local_Variables *scheme_get_thread_local_variables(void);
# ifdef MZ_XFORM
XFORM_GC_VARIABLE_STACK_THROUGH_FUNCTION;
# endif
#elif defined(IMPLEMENT_THREAD_LOCAL_VIA_WIN_TLS)
# ifdef MZ_XFORM
START_XFORM_SKIP;
# endif
MZ_EXTERN Thread_Local_Variables *scheme_external_get_thread_local_variables(void);
# ifdef __mzscheme_private__
/* In the Racket DLL, need thread-local to be fast: */
MZ_EXTERN uintptr_t scheme_tls_delta;
# ifdef MZ_USE_WIN_TLS_VIA_DLL
MZ_EXTERN int scheme_tls_index;
# endif
static __inline Thread_Local_Variables **scheme_get_thread_local_variables_ptr(void) {
# ifdef __MINGW32__
Thread_Local_Variables **x;
# ifdef _WIN64
asm (
"mov %%gs:(0x58), %%rax;"
"mov (%%rax), %%rax;"
"add %1, %%rax;"
"mov %%rax, %0;"
:"=r"(x) /* output */
:"r"(scheme_tls_delta)
:"%rax" /* clobbered register */
);
# else
asm (
"mov %%fs:(0x2C), %%eax;"
"mov (%%eax), %%eax;"
"add %1, %%eax;"
"mov %%eax, %0;"
:"=r"(x) /* output */
:"r"(scheme_tls_delta)
:"%eax" /* clobbered register */
);
# endif
return x;
# else
__asm { mov eax, FS:[0x2C]
# ifdef MZ_USE_WIN_TLS_VIA_DLL
add eax, scheme_tls_index
# endif
mov eax, [eax]
add eax, scheme_tls_delta }
/* result is in eax */
# endif
}
static __inline Thread_Local_Variables *scheme_get_thread_local_variables(void) {
return *scheme_get_thread_local_variables_ptr();
}
# else
/* Outside the Racket DLL, slower thread-local is ok: */
static __inline Thread_Local_Variables *scheme_get_thread_local_variables(void) {
return scheme_external_get_thread_local_variables();
}
# endif
# ifdef MZ_XFORM
END_XFORM_SKIP;
XFORM_GC_VARIABLE_STACK_THROUGH_FUNCTION;
# endif
#else
/* Using `THREAD_LOCAL' variable: */
# if defined(IMPLEMENT_THREAD_LOCAL_EXTERNALLY_VIA_PROC) && !defined(__mzscheme_private__)
# ifdef MZ_XFORM
START_XFORM_SKIP;
# endif
MZ_EXTERN Thread_Local_Variables *scheme_external_get_thread_local_variables(void);
static __inline Thread_Local_Variables *scheme_get_thread_local_variables(void) {
return scheme_external_get_thread_local_variables();
}
# ifdef MZ_XFORM
END_XFORM_SKIP;
XFORM_GC_VARIABLE_STACK_THROUGH_FUNCTION;
# endif
# elif defined (IMPLEMENT_THREAD_LOCAL_VIA_OFFSET)
MZ_THREAD_EXTERN THREAD_LOCAL Thread_Local_Variables scheme_thread_locals_space;
extern int scheme_tls_delta;
# define scheme_get_thread_local_variables() ((Thread_Local_Variables *)((char *)&scheme_thread_locals_space + scheme_tls_delta))
# ifdef MZ_XFORM
XFORM_GC_VARIABLE_STACK_THROUGH_DELTA;
# endif
# else
MZ_THREAD_EXTERN THREAD_LOCAL Thread_Local_Variables scheme_thread_locals;
# define scheme_get_thread_local_variables() (&scheme_thread_locals)
# ifdef MZ_XFORM
XFORM_GC_VARIABLE_STACK_THROUGH_THREAD_LOCAL;
# endif
# endif
#endif
/* **************************************** */
#ifdef MZ_XFORM
# define XOA XFORM_OK_ASSIGN
#else
# define XOA /* empty */
#endif
#define scheme_current_place_id XOA (scheme_get_thread_local_variables()->scheme_current_place_id_)
#define GC_objhead_template XOA (scheme_get_thread_local_variables()->GC_objhead_template_)
#define GC_instance XOA (scheme_get_thread_local_variables()->GC_instance_)
#define GC_gen0_alloc_page_ptr XOA (scheme_get_thread_local_variables()->GC_gen0_alloc_page_ptr_)
#define GC_gen0_alloc_page_end XOA (scheme_get_thread_local_variables()->GC_gen0_alloc_page_end_)
#define GC_gen0_alloc_only XOA (scheme_get_thread_local_variables()->GC_gen0_alloc_only_)
#define GC_variable_stack XOA (scheme_get_thread_local_variables()->GC_variable_stack_)
#define force_gc_for_place_accounting XOA (scheme_get_thread_local_variables()->force_gc_for_place_accounting_)
#define scheme_os_thread_id XOA (scheme_get_thread_local_variables()->scheme_os_thread_id_)
#define scheme_starting_up XOA (scheme_get_thread_local_variables()->scheme_starting_up_)
#define scheme_rktio XOA (scheme_get_thread_local_variables()->scheme_rktio_)
#define bignum_cache XOA (scheme_get_thread_local_variables()->bignum_cache_)
#define cache_count XOA (scheme_get_thread_local_variables()->cache_count_)
#define toplevels_ht XOA (scheme_get_thread_local_variables()->toplevels_ht_)
#define locals_ht XOA (scheme_get_thread_local_variables()->locals_ht_)
#define scheme_fuel_counter XOA (scheme_get_thread_local_variables()->scheme_fuel_counter_)
#define scheme_stack_boundary XOA (scheme_get_thread_local_variables()->scheme_stack_boundary_)
#define scheme_jit_stack_boundary XOA (scheme_get_thread_local_variables()->scheme_jit_stack_boundary_)
#define scheme_future_need_gc_pause XOA (scheme_get_thread_local_variables()->scheme_future_need_gc_pause_)
#define scheme_use_rtcall XOA (scheme_get_thread_local_variables()->scheme_use_rtcall_)
#define in_jit_critical_section XOA (scheme_get_thread_local_variables()->in_jit_critical_section_)
#define jit_buffer_cache XOA (scheme_get_thread_local_variables()->jit_buffer_cache_)
#define jit_buffer_cache_size XOA (scheme_get_thread_local_variables()->jit_buffer_cache_size_)
#define jit_buffer_cache_registered XOA (scheme_get_thread_local_variables()->jit_buffer_cache_registered_)
#define scheme_continuation_application_count XOA (scheme_get_thread_local_variables()->scheme_continuation_application_count_)
#define scheme_cont_capture_count XOA (scheme_get_thread_local_variables()->scheme_cont_capture_count_)
#define scheme_prompt_capture_count XOA (scheme_get_thread_local_variables()->scheme_prompt_capture_count_)
#define available_prompt XOA (scheme_get_thread_local_variables()->available_prompt_)
#define available_cws_prompt XOA (scheme_get_thread_local_variables()->available_cws_prompt_)
#define available_regular_prompt XOA (scheme_get_thread_local_variables()->available_regular_prompt_)
#define available_prompt_dw XOA (scheme_get_thread_local_variables()->available_prompt_dw_)
#define available_prompt_mc XOA (scheme_get_thread_local_variables()->available_prompt_mc_)
#define offstack_cont XOA (scheme_get_thread_local_variables()->offstack_cont_)
#define offstack_overflow XOA (scheme_get_thread_local_variables()->offstack_overflow_)
#define scheme_overflow_jmp XOA (scheme_get_thread_local_variables()->scheme_overflow_jmp_)
#define scheme_overflow_stack_start XOA (scheme_get_thread_local_variables()->scheme_overflow_stack_start_)
#define codetab_tree XOA (scheme_get_thread_local_variables()->codetab_tree_)
#define during_set XOA (scheme_get_thread_local_variables()->during_set_)
#define thread_local_pointers XOA (scheme_get_thread_local_variables()->thread_local_pointers_)
#define stack_cache_stack XOA (scheme_get_thread_local_variables()->stack_cache_stack_)
#define stack_cache_stack_pos XOA (scheme_get_thread_local_variables()->stack_cache_stack_pos_)
#define fixup_runstack_base XOA (scheme_get_thread_local_variables()->fixup_runstack_base_)
#define fixup_already_in_place XOA (scheme_get_thread_local_variables()->fixup_already_in_place_)
#define retry_alloc_r1 XOA (scheme_get_thread_local_variables()->retry_alloc_r1_)
#define scheme_jit_save_fp XOA (scheme_get_thread_local_variables()->scheme_jit_save_fp_)
#define scheme_jit_save_fp2 XOA (scheme_get_thread_local_variables()->scheme_jit_save_fp2_)
#ifdef MZ_LONG_DOUBLE
#define scheme_jit_save_extfp XOA (scheme_get_thread_local_variables()->scheme_jit_save_extfp_)
#define scheme_jit_save_extfp2 XOA (scheme_get_thread_local_variables()->scheme_jit_save_extfp2_)
#endif
#define starts_table XOA (scheme_get_thread_local_variables()->starts_table_)
#define proc_thread_self XOA (scheme_get_thread_local_variables()->proc_thread_self_)
#define scheme_orig_stdout_port XOA (scheme_get_thread_local_variables()->scheme_orig_stdout_port_)
#define scheme_orig_stderr_port XOA (scheme_get_thread_local_variables()->scheme_orig_stderr_port_)
#define scheme_orig_stdin_port XOA (scheme_get_thread_local_variables()->scheme_orig_stdin_port_)
#define scheme_semaphore_fd_set XOA (scheme_get_thread_local_variables()->scheme_semaphore_fd_set_)
#define fs_change_props XOA (scheme_get_thread_local_variables()->fs_change_props_)
#define new_port_cust XOA (scheme_get_thread_local_variables()->new_port_cust_)
#define read_string_byte_buffer XOA (scheme_get_thread_local_variables()->read_string_byte_buffer_)
#define itimerdata XOA (scheme_get_thread_local_variables()->itimerdata_)
#define quick_buffer XOA (scheme_get_thread_local_variables()->quick_buffer_)
#define quick_encode_buffer XOA (scheme_get_thread_local_variables()->quick_encode_buffer_)
#define quick_print_buffer XOA (scheme_get_thread_local_variables()->quick_print_buffer_)
#define cache_ht XOA (scheme_get_thread_local_variables()->cache_ht_)
#define regstr XOA (scheme_get_thread_local_variables()->regstr_)
#define regparsestr XOA (scheme_get_thread_local_variables()->regparsestr_)
#define regmatchmin XOA (scheme_get_thread_local_variables()->regmatchmin_)
#define regmatchmax XOA (scheme_get_thread_local_variables()->regmatchmax_)
#define regmaxbackposn XOA (scheme_get_thread_local_variables()->regmaxbackposn_)
#define regsavepos XOA (scheme_get_thread_local_variables()->regsavepos_)
#define regbackknown XOA (scheme_get_thread_local_variables()->regbackknown_)
#define regbackdepends XOA (scheme_get_thread_local_variables()->regbackdepends_)
#define regparse XOA (scheme_get_thread_local_variables()->regparse_)
#define regparse_end XOA (scheme_get_thread_local_variables()->regparse_end_)
#define regnpar XOA (scheme_get_thread_local_variables()->regnpar_)
#define regncounter XOA (scheme_get_thread_local_variables()->regncounter_)
#define regcode XOA (scheme_get_thread_local_variables()->regcode_)
#define regcodesize XOA (scheme_get_thread_local_variables()->regcodesize_)
#define regcodemax XOA (scheme_get_thread_local_variables()->regcodemax_)
#define regmaxlookback XOA (scheme_get_thread_local_variables()->regmaxlookback_)
#define regerrorwho XOA (scheme_get_thread_local_variables()->regerrorwho_)
#define regerrorproc XOA (scheme_get_thread_local_variables()->regerrorproc_)
#define regerrorval XOA (scheme_get_thread_local_variables()->regerrorval_)
#define rx_buffer_size XOA (scheme_get_thread_local_variables()->rx_buffer_size_)
#define startp_buffer_cache XOA (scheme_get_thread_local_variables()->startp_buffer_cache_)
#define endp_buffer_cache XOA (scheme_get_thread_local_variables()->endp_buffer_cache_)
#define maybep_buffer_cache XOA (scheme_get_thread_local_variables()->maybep_buffer_cache_)
#define match_stack_buffer_cache XOA (scheme_get_thread_local_variables()->match_stack_buffer_cache_)
#define scheme_os_thread_stack_base XOA (scheme_get_thread_local_variables()->scheme_os_thread_stack_base_)
#define scheme_system_idle_channel XOA (scheme_get_thread_local_variables()->scheme_system_idle_channel_)
#define system_idle_put_evt XOA (scheme_get_thread_local_variables()->system_idle_put_evt_)
#define stack_copy_cache XOA (scheme_get_thread_local_variables()->stack_copy_cache_)
#define stack_copy_size_cache XOA (scheme_get_thread_local_variables()->stack_copy_size_cache_)
#define scc_pos XOA (scheme_get_thread_local_variables()->scc_pos_)
#define scheme_startup_instance XOA (scheme_get_thread_local_variables()->scheme_startup_instance_)
#define c_startup_instance_top XOA (scheme_get_thread_local_variables()->c_startup_instance_top_)
#define scheme_current_thread XOA (scheme_get_thread_local_variables()->scheme_current_thread_)
#define scheme_main_thread XOA (scheme_get_thread_local_variables()->scheme_main_thread_)
#define scheme_first_thread XOA (scheme_get_thread_local_variables()->scheme_first_thread_)
#define gc_prep_thread_chain XOA (scheme_get_thread_local_variables()->gc_prep_thread_chain_)
#define scheme_thread_set_top XOA (scheme_get_thread_local_variables()->scheme_thread_set_top_)
#define scheme_current_lwc XOA (scheme_get_thread_local_variables()->scheme_current_lwc_)
#define num_running_threads XOA (scheme_get_thread_local_variables()->num_running_threads_)
#define swap_no_setjmp XOA (scheme_get_thread_local_variables()->swap_no_setjmp_)
#define thread_swap_count XOA (scheme_get_thread_local_variables()->thread_swap_count_)
#define process_time_at_swap XOA (scheme_get_thread_local_variables()->process_time_at_swap_)
#define process_time_skips XOA (scheme_get_thread_local_variables()->process_time_skips_)
#define scheme_did_gc_count XOA (scheme_get_thread_local_variables()->scheme_did_gc_count_)
#define scheme_future_state XOA (scheme_get_thread_local_variables()->scheme_future_state_)
#define scheme_future_thread_state XOA (scheme_get_thread_local_variables()->scheme_future_thread_state_)
#define jit_future_storage XOA (scheme_get_thread_local_variables()->jit_future_storage_)
#define scheme_current_runstack_start XOA (scheme_get_thread_local_variables()->scheme_current_runstack_start_)
#define scheme_current_runstack XOA (scheme_get_thread_local_variables()->scheme_current_runstack_)
#define scheme_current_cont_mark_stack XOA (scheme_get_thread_local_variables()->scheme_current_cont_mark_stack_)
#define scheme_current_cont_mark_pos XOA (scheme_get_thread_local_variables()->scheme_current_cont_mark_pos_)
#define main_custodian XOA (scheme_get_thread_local_variables()->main_custodian_)
#define last_custodian XOA (scheme_get_thread_local_variables()->last_custodian_)
#define limited_custodians XOA (scheme_get_thread_local_variables()->limited_custodians_)
#define initial_plumber XOA (scheme_get_thread_local_variables()->initial_plumber_)
#define initial_config XOA (scheme_get_thread_local_variables()->initial_config_)
#define swap_target XOA (scheme_get_thread_local_variables()->swap_target_)
#define scheduled_kills XOA (scheme_get_thread_local_variables()->scheduled_kills_)
#define late_will_executors_with_pending XOA (scheme_get_thread_local_variables()->late_will_executors_with_pending_)
#define do_atomic XOA (scheme_get_thread_local_variables()->do_atomic_)
#define missed_context_switch XOA (scheme_get_thread_local_variables()->missed_context_switch_)
#define all_breaks_disabled XOA (scheme_get_thread_local_variables()->all_breaks_disabled_)
#define have_activity XOA (scheme_get_thread_local_variables()->have_activity_)
#define scheme_active_but_sleeping XOA (scheme_get_thread_local_variables()->scheme_active_but_sleeping_)
#define thread_ended_with_activity XOA (scheme_get_thread_local_variables()->thread_ended_with_activity_)
#define scheme_no_stack_overflow XOA (scheme_get_thread_local_variables()->scheme_no_stack_overflow_)
#define needs_sleep_cancelled XOA (scheme_get_thread_local_variables()->needs_sleep_cancelled_)
#define needs_sleep_time_end XOA (scheme_get_thread_local_variables()->needs_sleep_time_end_)
#define tls_pos XOA (scheme_get_thread_local_variables()->tls_pos_)
#define the_nested_exn_handler XOA (scheme_get_thread_local_variables()->the_nested_exn_handler_)
#define cust_closers XOA (scheme_get_thread_local_variables()->cust_closers_)
#define thread_swap_callbacks XOA (scheme_get_thread_local_variables()->thread_swap_callbacks_)
#define thread_swap_out_callbacks XOA (scheme_get_thread_local_variables()->thread_swap_out_callbacks_)
#define recycle_cell XOA (scheme_get_thread_local_variables()->recycle_cell_)
#define maybe_recycle_cell XOA (scheme_get_thread_local_variables()->maybe_recycle_cell_)
#define recycle_cc_count XOA (scheme_get_thread_local_variables()->recycle_cc_count_)
#define gmp_mem_pool XOA (scheme_get_thread_local_variables()->gmp_mem_pool_)
#define max_total_allocation XOA (scheme_get_thread_local_variables()->max_total_allocation_)
#define current_total_allocation XOA (scheme_get_thread_local_variables()->current_total_allocation_)
#define gmp_tmp_xxx XOA (scheme_get_thread_local_variables()->gmp_tmp_xxx_)
#define gmp_tmp_current XOA (scheme_get_thread_local_variables()->gmp_tmp_current_)
#define scheme_main_logger XOA (scheme_get_thread_local_variables()->scheme_main_logger_)
#define scheme_gc_logger XOA (scheme_get_thread_local_variables()->scheme_gc_logger_)
#define scheme_future_logger XOA (scheme_get_thread_local_variables()->scheme_future_logger_)
#define scheme_place_logger XOA (scheme_get_thread_local_variables()->scheme_place_logger_)
#define scheme_overflow_count XOA (scheme_get_thread_local_variables()->scheme_overflow_count_)
#define original_pwd XOA (scheme_get_thread_local_variables()->original_pwd_)
#define file_path_wc_buffer XOA (scheme_get_thread_local_variables()->file_path_wc_buffer_)
#define scheme_hash_request_count XOA (scheme_get_thread_local_variables()->scheme_hash_request_count_)
#define scheme_hash_iteration_count XOA (scheme_get_thread_local_variables()->scheme_hash_iteration_count_)
#define scheme_namespace_to_env XOA (scheme_get_thread_local_variables()->scheme_namespace_to_env_)
#define special_is_ok XOA (scheme_get_thread_local_variables()->special_is_ok_)
#define scheme_force_port_closed XOA (scheme_get_thread_local_variables()->scheme_force_port_closed_)
#define fd_reserved XOA (scheme_get_thread_local_variables()->fd_reserved_)
#define the_fd XOA (scheme_get_thread_local_variables()->the_fd_)
#define scheme_num_read_syntax_objects XOA (scheme_get_thread_local_variables()->scheme_num_read_syntax_objects_)
#define clear_bytes_chain XOA (scheme_get_thread_local_variables()->clear_bytes_chain_)
#define failure_msg_for_read XOA (scheme_get_thread_local_variables()->failure_msg_for_read_)
#define dgc_array XOA (scheme_get_thread_local_variables()->dgc_array_)
#define dgc_count XOA (scheme_get_thread_local_variables()->dgc_count_)
#define dgc_size XOA (scheme_get_thread_local_variables()->dgc_size_)
#define save_oom XOA (scheme_get_thread_local_variables()->save_oom_)
#define current_lifetime XOA (scheme_get_thread_local_variables()->current_lifetime_)
#define scheme_main_was_once_suspended XOA (scheme_get_thread_local_variables()->scheme_main_was_once_suspended_)
#define buffer_init_size XOA (scheme_get_thread_local_variables()->buffer_init_size_)
#define scheme_total_gc_time XOA (scheme_get_thread_local_variables()->scheme_total_gc_time_)
#define start_this_gc_time XOA (scheme_get_thread_local_variables()->start_this_gc_time_)
#define end_this_gc_time XOA (scheme_get_thread_local_variables()->end_this_gc_time_)
#define start_this_gc_real_time XOA (scheme_get_thread_local_variables()->start_this_gc_real_time_)
#define end_this_gc_real_time XOA (scheme_get_thread_local_variables()->end_this_gc_real_time_)
#define gc_info_prefab XOA (scheme_get_thread_local_variables()->gc_info_prefab_)
#define place_event_prefab XOA (scheme_get_thread_local_variables()->place_event_prefab_)
#define delayed_break_ready XOA (scheme_get_thread_local_variables()->delayed_break_ready_)
#define main_break_target_thread XOA (scheme_get_thread_local_variables()->main_break_target_thread_)
#define scheme_code_page_total XOA (scheme_get_thread_local_variables()->scheme_code_page_total_)
#define scheme_code_total XOA (scheme_get_thread_local_variables()->scheme_code_total_)
#define scheme_code_count XOA (scheme_get_thread_local_variables()->scheme_code_count_)
#define max_gc_pre_used_bytes XOA (scheme_get_thread_local_variables()->max_gc_pre_used_bytes_)
#define max_code_page_total XOA (scheme_get_thread_local_variables()->max_code_page_total_)
#define num_major_garbage_collections XOA (scheme_get_thread_local_variables()->num_major_garbage_collections_)
#define num_minor_garbage_collections XOA (scheme_get_thread_local_variables()->num_minor_garbage_collections_)
#define locale_on XOA (scheme_get_thread_local_variables()->locale_on_)
#define current_locale_name_ptr XOA (scheme_get_thread_local_variables()->current_locale_name_ptr_)
#define cached_locale_encoding_name XOA (scheme_get_thread_local_variables()->cached_locale_encoding_name_)
#define cached_locale_to_converter XOA (scheme_get_thread_local_variables()->cached_locale_to_converter_)
#define cached_locale_from_converter XOA (scheme_get_thread_local_variables()->cached_locale_from_converter_)
#define gensym_counter XOA (scheme_get_thread_local_variables()->gensym_counter_)
#define dummy_input_port XOA (scheme_get_thread_local_variables()->dummy_input_port_)
#define dummy_output_port XOA (scheme_get_thread_local_variables()->dummy_output_port_)
#define opened_libs XOA (scheme_get_thread_local_variables()->opened_libs_)
#define jit_lock XOA (scheme_get_thread_local_variables()->jit_lock_)
#define free_list XOA (scheme_get_thread_local_variables()->free_list_)
#define free_list_bucket_count XOA (scheme_get_thread_local_variables()->free_list_bucket_count_)
#define code_allocation_page_list XOA (scheme_get_thread_local_variables()->code_allocation_page_list_)
#define prefab_table XOA (scheme_get_thread_local_variables()->prefab_table_)
#define place_local_symbol_table XOA (scheme_get_thread_local_variables()->place_local_symbol_table_)
#define place_local_keyword_table XOA (scheme_get_thread_local_variables()->place_local_keyword_table_)
#define place_local_parallel_symbol_table XOA (scheme_get_thread_local_variables()->place_local_parallel_symbol_table_)
#define literal_string_table XOA (scheme_get_thread_local_variables()->literal_string_table_)
#define literal_number_table XOA (scheme_get_thread_local_variables()->literal_number_table_)
#define ffi_sync_queue XOA (scheme_get_thread_local_variables()->ffi_sync_queue_)
#define gc_prepost_callback_descs XOA (scheme_get_thread_local_variables()->gc_prepost_callback_descs_)
#define place_local_misc_table XOA (scheme_get_thread_local_variables()->place_local_misc_table_)
#define place_evts_array_size XOA (scheme_get_thread_local_variables()->place_evts_array_size_)
#define place_evts XOA (scheme_get_thread_local_variables()->place_evts_)
#define place_object XOA (scheme_get_thread_local_variables()->place_object_)
#define all_child_places XOA (scheme_get_thread_local_variables()->all_child_places_)
#define place_channel_links XOA (scheme_get_thread_local_variables()->place_channel_links_)
#define reusable_ifs_stack XOA (scheme_get_thread_local_variables()->reusable_ifs_stack_)
#define group_member_cache XOA (scheme_get_thread_local_variables()->group_member_cache_)
#define scheme_prefix_finalize XOA (scheme_get_thread_local_variables()->scheme_prefix_finalize_)
#define scheme_inc_prefix_finalize XOA (scheme_get_thread_local_variables()->scheme_inc_prefix_finalize_)
#define loaded_extensions XOA (scheme_get_thread_local_variables()->loaded_extensions_)
#define fullpath_loaded_extensions XOA (scheme_get_thread_local_variables()->fullpath_loaded_extensions_)
#define scheme_place_sleep XOA (scheme_get_thread_local_variables()->scheme_place_sleep_)
#define thread_sleep_callback XOA (scheme_get_thread_local_variables()->thread_sleep_callback_)
#define thread_sleep_callback_fd XOA (scheme_get_thread_local_variables()->thread_sleep_callback_fd_)
#define ghbn_thread_data XOA (scheme_get_thread_local_variables()->ghbn_thread_data_)
#define on_atomic_timeout XOA (scheme_get_thread_local_variables()->on_atomic_timeout_)
#define on_atomic_timeout_data XOA (scheme_get_thread_local_variables()->on_atomic_timeout_data_)
#define atomic_timeout_auto_suspend XOA (scheme_get_thread_local_variables()->atomic_timeout_auto_suspend_)
#define atomic_timeout_atomic_level XOA (scheme_get_thread_local_variables()->atomic_timeout_atomic_level_)
#define configuration_callback_cache XOA (scheme_get_thread_local_variables()->configuration_callback_cache_)
#define cached_orig_place_todo XOA (scheme_get_thread_local_variables()->cached_orig_place_todo_)
#define ffi_lock_ht XOA (scheme_get_thread_local_variables()->ffi_lock_ht_)
#define is_syntax_proc XOA (scheme_get_thread_local_variables()->is_syntax_proc_)
#define expander_syntax_to_datum_proc XOA (scheme_get_thread_local_variables()->expander_syntax_to_datum_proc_)
#define local_primitive_tables XOA (scheme_get_thread_local_variables()->local_primitive_tables_)
#define current_linklet_native_lambdas XOA (scheme_get_thread_local_variables()->current_linklet_native_lambdas_)
/* **************************************** */
# define THREAD_LOCAL_DECL(x) /* empty */
#endif
/* **************************************** */
# ifdef __cplusplus
}
# endif
#endif

View File

@ -1,36 +0,0 @@
/* The version string has one of the forms:
X.Y
X.Y.Z Z != 0
X.Y.Z.W W != 0
where each X, Y, Z, W is a non-negative exact integer, Y must not
exceed 99, and Z or W must not exceed 999. Y>=90 means that this is
working towards {X+1}.0, and X.Y (Z=0, W=0) is an alpha version for
{X+1}.0; Z>=900 means working towards X.{Y+1}, and X.Y.Z as an
alpha release.
Note that the version number in the "base" package's "info.rkt"
needs to be updated separately.
*/
#define MZSCHEME_VERSION_X 7
#define MZSCHEME_VERSION_Y 8
#define MZSCHEME_VERSION_Z 0
#define MZSCHEME_VERSION_W 6
/* A level of indirection makes `#` work as needed: */
#define AS_a_STR_HELPER(x) #x
#define AS_a_STR(x) AS_a_STR_HELPER(x)
#if MZSCHEME_VERSION_W != 0
# define MZSCHEME_VERSION AS_a_STR(MZSCHEME_VERSION_X) "." AS_a_STR(MZSCHEME_VERSION_Y) "." AS_a_STR(MZSCHEME_VERSION_Z) "." AS_a_STR(MZSCHEME_VERSION_W)
#elif MZSCHEME_VERSION_Z != 0
# define MZSCHEME_VERSION AS_a_STR(MZSCHEME_VERSION_X) "." AS_a_STR(MZSCHEME_VERSION_Y) "." AS_a_STR(MZSCHEME_VERSION_Z)
#else
# define MZSCHEME_VERSION AS_a_STR(MZSCHEME_VERSION_X) "." AS_a_STR(MZSCHEME_VERSION_Y)
#endif
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)
#define MZSCHEME_VM "racket"

File diff suppressed because it is too large Load Diff

View File

@ -1,301 +0,0 @@
enum {
/* Compiled bytecode elements: */
scheme_toplevel_type, /* 0 */
scheme_static_toplevel_type, /* 1 */
scheme_local_type, /* 2 */
scheme_local_unbox_type, /* 3 */
scheme_application_type, /* 4 */
scheme_application2_type, /* 5 */
scheme_application3_type, /* 6 */
scheme_sequence_type, /* 7 */
scheme_branch_type, /* 8 */
scheme_lambda_type, /* 9 */
scheme_let_value_type, /* 10 */
scheme_let_void_type, /* 11 */
scheme_letrec_type, /* 12 */
scheme_let_one_type, /* 13 */
scheme_with_cont_mark_type, /* 14 */
scheme_define_values_type, /* 15 */
scheme_set_bang_type, /* 16 */
scheme_boxenv_type, /* 17 */
scheme_begin0_sequence_type, /* 18 */
scheme_varref_form_type, /* 19 */
scheme_apply_values_type, /* 20 */
scheme_with_immed_mark_type, /* 21 */
scheme_case_lambda_sequence_type, /* 22 */
scheme_inline_variant_type, /* 23 */
_scheme_values_types_, /* 24 */
/* All following types are values at run time */
scheme_linklet_type, /* 25 */
/* Replacements for some of the above as the
compiler's intermediate representation for
optimization: */
scheme_ir_local_type, /* 26 */
scheme_ir_lambda_type, /* 27 */
scheme_ir_let_value_type, /* 28 */
scheme_ir_let_header_type, /* 29 */
scheme_ir_toplevel_type, /* 30 */
scheme_quote_compilation_type, /* used while writing, only */
/* Generated in the compiler front-end, but
registered in the prefix table instead of
used directly as an "expression": */
scheme_variable_type, /* 32 */
_scheme_ir_values_types_, /* 33 */
/* All of the following are literal values from the
perspective of the compiler */
scheme_linklet_bundle_type, /* 34 */
scheme_instance_type, /* 35 */
/* procedure types */
scheme_prim_type, /* 36 */
scheme_closed_prim_type, /* 37 */
scheme_closure_type, /* 38 */
scheme_case_closure_type, /* 39 */
scheme_cont_type, /* 40 */
scheme_escaping_cont_type, /* 41 */
scheme_proc_struct_type, /* 42 */
scheme_native_closure_type, /* 43 */
scheme_proc_chaperone_type, /* 44 */
scheme_chaperone_type, /* 45 */
/* structure type (plus one above for procs) */
scheme_structure_type, /* 46 */
/* number types (must be together) */
scheme_integer_type, /* 47 */
scheme_bignum_type, /* 48 */
scheme_rational_type, /* 49 */
scheme_float_type, /* 50 */
scheme_double_type, /* 51 */
scheme_complex_type, /* 52 */
/* other eqv?-able values (must be with numbers) */
scheme_char_type, /* 53 */
scheme_long_double_type, /* 54 */
/* other values */
scheme_char_string_type, /* 55 */
scheme_byte_string_type, /* 56 */
scheme_unix_path_type, /* 57 */
scheme_windows_path_type, /* 58 */
scheme_symbol_type, /* 59 */
scheme_keyword_type, /* 60 */
scheme_null_type, /* 61 */
scheme_pair_type, /* 62 */
scheme_mutable_pair_type, /* 63 */
scheme_vector_type, /* 64 */
scheme_inspector_type, /* 65 */
scheme_input_port_type, /* 66 */
scheme_output_port_type, /* 67 */
scheme_eof_type, /* 68 */
scheme_true_type, /* 69 */
scheme_false_type, /* 70 */
scheme_void_type, /* 71 */
scheme_primitive_syntax_type, /* 72 */
scheme_macro_type, /* 73 */
scheme_box_type, /* 74 */
scheme_thread_type, /* 75 */
scheme_cont_mark_set_type, /* 76 */
scheme_sema_type, /* 77 */
/* hash table types (must be together for hash?
* implementation */
scheme_hash_table_type, /* 78 */
scheme_hash_tree_type, /* 79 */
scheme_eq_hash_tree_type, /* 80 */
scheme_eqv_hash_tree_type, /* 81 */
scheme_hash_tree_subtree_type, /* 82 */
scheme_hash_tree_collision_type, /* 83 */
scheme_hash_tree_indirection_type, /* 84 */
scheme_bucket_type, /* 85 */
scheme_bucket_table_type, /* 86 */
scheme_cpointer_type, /* 87 */
scheme_prefix_type, /* 88 */
scheme_weak_box_type, /* 89 */
scheme_ephemeron_type, /* 90 */
scheme_struct_type_type, /* 91 */
scheme_set_macro_type, /* 92 */
scheme_listener_type, /* 93 */
scheme_env_type, /* 94 */
scheme_startup_env_type, /* 95 */
scheme_config_type, /* 96 */
scheme_stx_type, /* 97 */
scheme_will_executor_type, /* 98 */
scheme_custodian_type, /* 99 */
scheme_random_state_type, /* 100 */
scheme_regexp_type, /* 101 */
scheme_subprocess_type, /* 102 */
scheme_eval_waiting_type, /* 103 */
scheme_tail_call_waiting_type, /* 104 */
scheme_undefined_type, /* 105 */
scheme_struct_property_type, /* 106 */
scheme_chaperone_property_type, /* 107 */
scheme_multiple_values_type, /* 108 */
scheme_placeholder_type, /* 109 */
scheme_table_placeholder_type, /* 110 */
scheme_svector_type, /* 111 */
scheme_resolve_prefix_type, /* 112 */
scheme_security_guard_type, /* 113 */
scheme_indent_type, /* 114 */
scheme_udp_type, /* 115 */
scheme_udp_evt_type, /* 116 */
scheme_tcp_accept_evt_type, /* 117 */
scheme_id_macro_type, /* 118 */
scheme_evt_set_type, /* 119 */
scheme_wrap_evt_type, /* 120 */
scheme_handle_evt_type, /* 121 */
scheme_replace_evt_type, /* 122 */
scheme_active_replace_evt_type, /* 123 */
scheme_nack_guard_evt_type, /* 124 */
scheme_semaphore_repost_type, /* 125 */
scheme_channel_type, /* 126 */
scheme_channel_put_type, /* 127 */
scheme_thread_resume_type, /* 128 */
scheme_thread_suspend_type, /* 129 */
scheme_thread_dead_type, /* 130 */
scheme_poll_evt_type, /* 131 */
scheme_nack_evt_type, /* 132 */
scheme_thread_set_type, /* 133 */
scheme_string_converter_type, /* 134 */
scheme_alarm_type, /* 135 */
scheme_thread_recv_evt_type, /* 136 */
scheme_thread_cell_type, /* 137 */
scheme_channel_syncer_type, /* 138 */
scheme_write_evt_type, /* 139 */
scheme_always_evt_type, /* 140 */
scheme_never_evt_type, /* 141 */
scheme_progress_evt_type, /* 142 */
scheme_place_dead_type, /* 143 */
scheme_already_comp_type, /* 144 */
scheme_readtable_type, /* 145 */
scheme_thread_cell_values_type, /* 146 */
scheme_global_ref_type, /* 147 */
scheme_cont_mark_chain_type, /* 148 */
scheme_raw_pair_type, /* 149 */
scheme_prompt_type, /* 150 */
scheme_prompt_tag_type, /* 151 */
scheme_continuation_mark_key_type, /* 152 */
scheme_delay_syntax_type, /* 153 */
scheme_cust_box_type, /* 154 */
scheme_logger_type, /* 155 */
scheme_log_reader_type, /* 156 */
scheme_noninline_proc_type, /* 157 */
scheme_future_type, /* 158 */
scheme_flvector_type, /* 159 */
scheme_extflvector_type, /* 160 */
scheme_fxvector_type, /* 161 */
scheme_place_type, /* 162 */
scheme_place_object_type, /* 163 */
scheme_place_async_channel_type, /* 164 */
scheme_place_bi_channel_type, /* 165 */
scheme_once_used_type, /* 166 */
scheme_serialized_symbol_type, /* 167 */
scheme_serialized_keyword_type, /* 168 */
scheme_serialized_structure_type, /* 169 */
scheme_fsemaphore_type, /* 170 */
scheme_serialized_tcp_fd_type, /* 171 */
scheme_serialized_file_fd_type, /* 172 */
scheme_port_closed_evt_type, /* 173 */
scheme_proc_shape_type, /* 174 */
scheme_struct_prop_proc_shape_type, /* 175 */
scheme_struct_proc_shape_type, /* 176 */
scheme_phantom_bytes_type, /* 177 */
scheme_environment_variables_type, /* 178 */
scheme_filesystem_change_evt_type, /* 179 */
scheme_ctype_type, /* 180 */
scheme_plumber_type, /* 181 */
scheme_plumber_handle_type, /* 182 */
scheme_deferred_expr_type, /* 183 */
scheme_unquoted_printing_string_type, /* 184 */
scheme_will_be_lambda_type, /* 185 */
scheme_thunk_for_continue_type, /* 186 */
#ifdef MZTAG_REQUIRED
_scheme_last_normal_type_, /* 187 */
/* The remaining tags exist for GC tracing (in non-conservative
mode), but they are not needed for run-time tag tests */
scheme_rt_weak_array, /* 188 */
scheme_rt_comp_env, /* 189 */
scheme_rt_constant_binding, /* 190 */
scheme_rt_resolve_info, /* 191 */
scheme_rt_unresolve_info, /* 192 */
scheme_rt_optimize_info, /* 193 */
scheme_rt_cont_mark, /* 194 */
scheme_rt_saved_stack, /* 195 */
scheme_rt_reply_item, /* 196 */
scheme_rt_ir_lambda_info, /* 197 */
scheme_rt_overflow, /* 198 */
scheme_rt_overflow_jmp, /* 199 */
scheme_rt_meta_cont, /* 200 */
scheme_rt_dyn_wind_cell, /* 201 */
scheme_rt_dyn_wind_info, /* 202 */
scheme_rt_dyn_wind, /* 203 */
scheme_rt_dup_check, /* 204 */
scheme_rt_thread_memory, /* 205 */
scheme_rt_input_file, /* 206 */
scheme_rt_input_fd, /* 207 */
scheme_rt_oskit_console_input, /* 208 */
scheme_rt_tested_input_file, /* 209 */
scheme_rt_tested_output_file, /* 210 */
scheme_rt_indexed_string, /* 211 */
scheme_rt_output_file, /* 212 */
scheme_rt_pipe, /* 213 */
scheme_rt_system_child, /* 214 */
scheme_rt_tcp, /* 215 */
scheme_rt_write_data, /* 216 */
scheme_rt_tcp_select_info, /* 217 */
scheme_rt_param_data, /* 218 */
scheme_rt_will, /* 219 */
scheme_rt_finalization, /* 220 */
scheme_rt_finalizations, /* 221 */
scheme_rt_cpp_object, /* 222 */
scheme_rt_cpp_array_object, /* 223 */
scheme_rt_stack_object, /* 224 */
scheme_thread_hop_type, /* 225 */
scheme_rt_srcloc, /* 226 */
scheme_rt_evt, /* 227 */
scheme_rt_syncing, /* 228 */
scheme_rt_comp_prefix, /* 229 */
scheme_rt_user_input, /* 230 */
scheme_rt_user_output, /* 231 */
scheme_rt_compact_port, /* 232 */
scheme_rt_read_special_dw, /* 233 */
scheme_rt_regwork, /* 234 */
scheme_rt_rx_lazy_string, /* 235 */
scheme_rt_buf_holder, /* 236 */
scheme_rt_parameterization, /* 237 */
scheme_rt_print_params, /* 238 */
scheme_rt_read_params, /* 239 */
scheme_rt_native_code, /* 240 */
scheme_rt_native_code_plus_case, /* 241 */
scheme_rt_jitter_data, /* 242 */
scheme_rt_module_exports, /* 243 */
scheme_rt_delay_load_info, /* 244 */
scheme_rt_marshal_info, /* 245 */
scheme_rt_unmarshal_info, /* 246 */
scheme_rt_runstack, /* 247 */
scheme_rt_sfs_info, /* 248 */
scheme_rt_validate_clearing, /* 249 */
scheme_rt_lightweight_cont, /* 250 */
scheme_rt_export_info, /* 251 */
scheme_rt_cont_jmp, /* 252 */
scheme_rt_letrec_check_frame, /* 253 */
#endif
_scheme_last_type_
};

View File

@ -1,24 +0,0 @@
/* Standard settings for Unix platforms. */
/* Used by sconfig.h for known architectures. */
#define SYSTEM_TYPE_NAME "unix"
#define UNIX_FILE_SYSTEM
#define USE_C_SYSLOG
#define DO_STACK_CHECK
#ifndef ASSUME_FIXED_STACK_SIZE
# define UNIX_FIND_STACK_BOUNDS
#endif
#define UNIX_STACK_MAXIMUM 8388608
#define UNIX_DYNAMIC_LOAD
#ifndef MZ_USE_DETERMINSTIC_FUEL
# if defined(MZ_USE_PLACES) || defined(USE_PTHREAD_INSTEAD_OF_ITIMER)
# define USE_PTHREAD_THREAD_TIMER
# else
# define USE_ITIMER
# endif
#endif