add unsafe-os-thread-... to #%unsafe

These functions just `raise exn:fail:unsupported`, but having
them present allows the version of Racket to bootstrap
Racket-on-Chez.
This commit is contained in:
Matthew Flatt 2018-01-25 15:10:39 -07:00
parent 6eb740300f
commit 2bf00a1208
6 changed files with 61 additions and 10 deletions

View File

@ -12,7 +12,7 @@
(define collection 'multi)
(define version "6.12.0.2")
(define version "6.12.0.3")
(define deps `("racket-lib"
["racket" #:version ,version]))

View File

@ -35,7 +35,12 @@
unsafe-make-security-guard-at-root
unsafe-set-on-atomic-timeout!
unsafe-abort-current-continuation/no-wind
unsafe-call-with-composable-continuation/no-wind)
unsafe-call-with-composable-continuation/no-wind
unsafe-os-thread-enabled?
unsafe-call-in-os-thread
unsafe-make-os-semaphore
unsafe-os-semaphore-post
unsafe-os-semaphore-wait)
(rename-out [new:unsafe-impersonate-procedure unsafe-impersonate-procedure]
[new:unsafe-chaperone-procedure unsafe-chaperone-procedure])
(prefix-out unsafe-

View File

@ -1,5 +1,5 @@
{
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,54,46,49,49,46,48,46,53,84,0,0,0,0,0,0,0,0,0,
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,54,46,49,50,46,48,46,51,84,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,54,0,0,0,1,0,0,8,0,18,
0,22,0,26,0,31,0,38,0,42,0,47,0,59,0,66,0,69,0,82,0,
89,0,94,0,103,0,109,0,123,0,137,0,140,0,146,0,157,0,159,0,173,
@ -102,7 +102,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 2091);
}
{
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,54,46,49,49,46,48,46,53,84,0,0,0,0,0,0,0,0,0,
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,54,46,49,50,46,48,46,51,84,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,183,0,0,0,1,0,0,8,0,16,
0,29,0,34,0,51,0,63,0,85,0,114,0,158,0,164,0,178,0,193,0,
211,0,223,0,239,0,253,0,19,1,39,1,73,1,90,1,107,1,130,1,145,
@ -1011,7 +1011,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 19016);
}
{
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,54,46,49,49,46,48,46,53,84,0,0,0,0,0,0,0,0,0,
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,54,46,49,50,46,48,46,51,84,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,1,0,0,8,0,23,
0,48,0,65,0,83,0,105,0,128,0,149,0,171,0,181,0,191,0,199,0,
209,0,217,0,0,0,253,1,0,0,3,1,5,105,110,115,112,48,76,35,37,
@ -1042,7 +1042,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 582);
}
{
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,54,46,49,49,46,48,46,53,84,0,0,0,0,0,0,0,0,0,
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,54,46,49,50,46,48,46,51,84,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,102,0,0,0,1,0,0,8,0,15,
0,26,0,53,0,59,0,73,0,86,0,112,0,129,0,151,0,159,0,171,0,
186,0,202,0,220,0,241,0,253,0,13,1,36,1,60,1,72,1,103,1,108,
@ -1538,7 +1538,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 10344);
}
{
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,54,46,49,49,46,48,46,53,84,0,0,0,0,0,0,0,0,0,
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,54,46,49,50,46,48,46,51,84,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,1,0,0,8,0,18,
0,22,0,28,0,42,0,56,0,68,0,88,0,102,0,117,0,130,0,135,0,
139,0,151,0,235,0,242,0,20,1,0,0,224,1,0,0,3,1,5,105,110,

View File

@ -15,7 +15,7 @@
#define USE_COMPILED_STARTUP 1
#define EXPECTED_PRIM_COUNT 1161
#define EXPECTED_UNSAFE_COUNT 157
#define EXPECTED_UNSAFE_COUNT 162
#define EXPECTED_FLFXNUM_COUNT 69
#define EXPECTED_EXTFL_COUNT 45
#define EXPECTED_FUTURES_COUNT 15

View File

@ -13,12 +13,12 @@
consistently.)
*/
#define MZSCHEME_VERSION "6.12.0.2"
#define MZSCHEME_VERSION "6.12.0.3"
#define MZSCHEME_VERSION_X 6
#define MZSCHEME_VERSION_Y 12
#define MZSCHEME_VERSION_Z 0
#define MZSCHEME_VERSION_W 2
#define MZSCHEME_VERSION_W 3
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)

View File

@ -342,6 +342,12 @@ static Scheme_Object *unsafe_register_process_global(int argc, Scheme_Object *ar
static Scheme_Object *unsafe_get_place_table(int argc, Scheme_Object *argv[]);
static Scheme_Object *unsafe_set_on_atomic_timeout(int argc, Scheme_Object *argv[]);
static Scheme_Object *unsafe_os_thread_enabled_p(int argc, Scheme_Object *argv[]);
static Scheme_Object *unsafe_call_in_os_thread(int argc, Scheme_Object *argv[]);
static Scheme_Object *unsafe_make_os_semaphore(int argc, Scheme_Object *argv[]);
static Scheme_Object *unsafe_os_semaphore_wait(int argc, Scheme_Object *argv[]);
static Scheme_Object *unsafe_os_semaphore_post(int argc, Scheme_Object *argv[]);
static Scheme_Object *make_plumber(int argc, Scheme_Object *argv[]);
static Scheme_Object *plumber_p(int argc, Scheme_Object *argv[]);
static Scheme_Object *plumber_flush_all(int argc, Scheme_Object *argv[]);
@ -664,6 +670,12 @@ scheme_init_unsafe_thread (Scheme_Env *env)
GLOBAL_PRIM_W_ARITY("unsafe-poll-ctx-milliseconds-wakeup", unsafe_poll_ctx_time_wakeup, 2, 2, env);
GLOBAL_PRIM_W_ARITY("unsafe-signal-received", unsafe_signal_received, 0, 0, env);
GLOBAL_PRIM_W_ARITY("unsafe-set-sleep-in-thread!", unsafe_set_sleep_in_thread, 2, 2, env);
GLOBAL_PRIM_W_ARITY("unsafe-os-thread-enabled?", unsafe_os_thread_enabled_p, 0, 0, env);
GLOBAL_PRIM_W_ARITY("unsafe-call-in-os-thread", unsafe_call_in_os_thread, 1, 1, env);
GLOBAL_PRIM_W_ARITY("unsafe-make-os-semaphore", unsafe_make_os_semaphore, 0, 0, env);
GLOBAL_PRIM_W_ARITY("unsafe-os-semaphore-wait", unsafe_os_semaphore_wait, 1, 1, env);
GLOBAL_PRIM_W_ARITY("unsafe-os-semaphore-post", unsafe_os_semaphore_post, 1, 1, env);
}
void scheme_init_thread_places(void) {
@ -2826,6 +2838,40 @@ Scheme_Hash_Table *scheme_get_place_table(void)
return place_local_misc_table;
}
/*========================================================================*/
/* OS threads - not supported */
/*========================================================================*/
static Scheme_Object *unsafe_os_thread_enabled_p(int argc, Scheme_Object *argv[])
{
return scheme_false;
}
static Scheme_Object *unsafe_call_in_os_thread(int argc, Scheme_Object *argv[])
{
scheme_check_proc_arity("unsafe-call-in-os-thread", 0, 0, argc, argv);
scheme_raise_exn(MZEXN_FAIL_UNSUPPORTED, "unsafe-call-in-os-thread: " NOT_SUPPORTED_STR);
ESCAPED_BEFORE_HERE;
}
static Scheme_Object *unsafe_make_os_semaphore(int argc, Scheme_Object *argv[])
{
scheme_raise_exn(MZEXN_FAIL_UNSUPPORTED, "unsafe-make-os-semaphore: " NOT_SUPPORTED_STR);
ESCAPED_BEFORE_HERE;
}
static Scheme_Object *unsafe_os_semaphore_wait(int argc, Scheme_Object *argv[])
{
scheme_raise_exn(MZEXN_FAIL_UNSUPPORTED, "unsafe-os-semaphore-wait: " NOT_SUPPORTED_STR);
ESCAPED_BEFORE_HERE;
}
static Scheme_Object *unsafe_os_semaphore_post(int argc, Scheme_Object *argv[])
{
scheme_raise_exn(MZEXN_FAIL_UNSUPPORTED, "unsafe-os-semaphore-post: " NOT_SUPPORTED_STR);
ESCAPED_BEFORE_HERE;
}
/*========================================================================*/
/* thread creation and swapping */
/*========================================================================*/