diff --git a/src/mzscheme/src/cstartup.inc b/src/mzscheme/src/cstartup.inc
index f422a40277..68d02bfaf7 100644
--- a/src/mzscheme/src/cstartup.inc
+++ b/src/mzscheme/src/cstartup.inc
@@ -1,24 +1,24 @@
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,48,46,49,50,0,0,0,1,0,0,6,0,9,0,
-14,0,18,0,23,0,28,0,32,0,39,0,42,0,55,0,62,0,69,0,78,
+16,0,20,0,25,0,28,0,33,0,40,0,47,0,60,0,64,0,69,0,78,
0,84,0,98,0,112,0,115,0,119,0,121,0,132,0,134,0,148,0,155,0,
177,0,179,0,193,0,253,0,23,1,32,1,41,1,51,1,68,1,107,1,146,
1,215,1,4,2,92,2,137,2,142,2,162,2,53,3,73,3,124,3,190,3,
75,4,233,4,20,5,31,5,110,5,0,0,118,7,0,0,65,98,101,103,105,
-110,29,11,11,64,108,101,116,42,63,108,101,116,64,119,104,101,110,64,99,111,
-110,100,63,97,110,100,66,108,101,116,114,101,99,62,111,114,72,112,97,114,97,
-109,101,116,101,114,105,122,101,66,100,101,102,105,110,101,66,117,110,108,101,115,
-115,68,104,101,114,101,45,115,116,120,65,113,117,111,116,101,29,94,2,14,68,
+110,29,11,11,66,100,101,102,105,110,101,63,97,110,100,64,108,101,116,42,62,
+111,114,64,99,111,110,100,66,108,101,116,114,101,99,66,117,110,108,101,115,115,
+72,112,97,114,97,109,101,116,101,114,105,122,101,63,108,101,116,64,119,104,101,
+110,68,104,101,114,101,45,115,116,120,65,113,117,111,116,101,29,94,2,14,68,
35,37,107,101,114,110,101,108,11,29,94,2,14,68,35,37,112,97,114,97,109,
122,11,62,105,102,63,115,116,120,61,115,70,108,101,116,45,118,97,108,117,101,
115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,97,109,
98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,
45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,98,
-10,35,11,8,180,219,94,159,2,16,35,35,159,2,15,35,35,16,20,2,9,
-2,2,2,3,2,2,2,4,2,2,2,5,2,2,2,6,2,2,2,7,2,
-2,2,8,2,2,2,10,2,2,2,11,2,2,2,12,2,2,97,36,11,8,
-180,219,93,159,2,15,35,36,16,2,2,13,161,2,2,36,2,13,2,2,2,
-13,97,10,11,11,8,180,219,16,0,97,10,37,11,8,180,219,16,0,13,16,
+10,35,11,8,181,219,94,159,2,16,35,35,159,2,15,35,35,16,20,2,3,
+2,2,2,6,2,2,2,4,2,2,2,5,2,2,2,8,2,2,2,7,2,
+2,2,9,2,2,2,10,2,2,2,11,2,2,2,12,2,2,97,36,11,8,
+181,219,93,159,2,15,35,36,16,2,2,13,161,2,2,36,2,13,2,2,2,
+13,97,10,11,11,8,181,219,16,0,97,10,37,11,8,181,219,16,0,13,16,
4,35,29,11,11,2,2,11,18,98,64,104,101,114,101,8,31,8,30,8,29,
8,28,8,27,27,248,22,190,3,23,196,1,249,22,183,3,80,158,38,35,251,
22,73,2,17,248,22,88,23,200,2,12,249,22,63,2,1,248,22,90,23,202,
@@ -26,14 +26,14 @@
17,248,22,88,23,200,2,249,22,63,2,1,248,22,90,23,202,1,12,27,248,
22,65,248,22,190,3,23,197,1,28,248,22,71,23,194,2,20,15,159,36,35,
36,28,248,22,71,248,22,65,23,195,2,248,22,64,193,249,22,183,3,80,158,
-38,35,251,22,73,2,17,248,22,64,23,200,2,249,22,63,2,7,248,22,65,
+38,35,251,22,73,2,17,248,22,64,23,200,2,249,22,63,2,4,248,22,65,
23,202,1,11,18,100,10,8,31,8,30,8,29,8,28,8,27,16,4,11,11,
2,18,3,1,7,101,110,118,56,49,54,51,16,4,11,11,2,19,3,1,7,
101,110,118,56,49,54,52,27,248,22,65,248,22,190,3,23,197,1,28,248,22,
71,23,194,2,20,15,159,36,35,36,28,248,22,71,248,22,65,23,195,2,248,
22,64,193,249,22,183,3,80,158,38,35,250,22,73,2,20,248,22,73,249,22,
73,248,22,73,2,21,248,22,64,23,202,2,251,22,73,2,17,2,21,2,21,
-249,22,63,2,9,248,22,65,23,205,1,18,100,11,8,31,8,30,8,29,8,
+249,22,63,2,6,248,22,65,23,205,1,18,100,11,8,31,8,30,8,29,8,
28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,56,49,54,54,16,4,
11,11,2,19,3,1,7,101,110,118,56,49,54,55,248,22,190,3,193,27,248,
22,190,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,
@@ -49,7 +49,7 @@
22,2,32,0,89,162,8,44,36,46,9,222,33,42,248,22,190,3,248,22,64,
201,248,22,65,198,27,248,22,65,248,22,190,3,196,27,248,22,190,3,248,22,
64,195,249,22,183,3,80,158,39,35,28,248,22,71,195,250,22,74,2,20,9,
-248,22,65,199,250,22,73,2,4,248,22,73,248,22,64,199,250,22,74,2,3,
+248,22,65,199,250,22,73,2,11,248,22,73,248,22,64,199,250,22,74,2,5,
248,22,65,201,248,22,65,202,27,248,22,65,248,22,190,3,23,197,1,27,249,
22,1,22,77,249,22,2,22,190,3,248,22,190,3,248,22,64,199,249,22,183,
3,80,158,39,35,251,22,73,1,22,119,105,116,104,45,99,111,110,116,105,110,
@@ -61,10 +61,10 @@
15,159,36,35,36,249,22,183,3,80,158,38,35,27,248,22,190,3,248,22,64,
23,198,2,28,249,22,151,8,62,61,62,248,22,184,3,248,22,88,23,197,2,
250,22,73,2,20,248,22,73,249,22,73,21,93,2,25,248,22,64,199,250,22,
-74,2,6,249,22,73,2,25,249,22,73,248,22,97,203,2,25,248,22,65,202,
+74,2,7,249,22,73,2,25,249,22,73,248,22,97,203,2,25,248,22,65,202,
251,22,73,2,17,28,249,22,151,8,248,22,184,3,248,22,64,23,201,2,64,
101,108,115,101,10,248,22,64,23,198,2,250,22,74,2,20,9,248,22,65,23,
-201,1,249,22,63,2,6,248,22,65,23,203,1,99,8,31,8,30,8,29,8,
+201,1,249,22,63,2,7,248,22,65,23,203,1,99,8,31,8,30,8,29,8,
28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,56,49,56,57,16,4,
11,11,2,19,3,1,7,101,110,118,56,49,57,48,18,158,94,10,64,118,111,
105,100,8,47,27,248,22,65,248,22,190,3,196,249,22,183,3,80,158,38,35,
@@ -78,22 +78,22 @@
11,11,11,11,11,16,10,2,3,2,4,2,5,2,6,2,7,2,8,2,9,
2,10,2,11,2,12,35,45,36,11,11,16,0,16,0,16,0,35,35,11,11,
11,16,0,16,0,16,0,35,35,16,11,16,5,93,2,13,20,15,159,35,35,
-35,35,20,103,159,35,16,0,16,1,33,32,10,16,5,93,2,12,89,162,8,
+35,35,20,103,159,35,16,0,16,1,33,32,10,16,5,93,2,9,89,162,8,
44,36,52,9,223,0,33,33,35,20,103,159,35,16,1,20,25,159,36,2,2,
-2,13,16,0,11,16,5,93,2,5,89,162,8,44,36,52,9,223,0,33,34,
+2,13,16,0,11,16,5,93,2,12,89,162,8,44,36,52,9,223,0,33,34,
35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,5,93,
-2,7,89,162,8,44,36,52,9,223,0,33,35,35,20,103,159,35,16,1,20,
-25,159,36,2,2,2,13,16,1,33,36,11,16,5,93,2,9,89,162,8,44,
+2,4,89,162,8,44,36,52,9,223,0,33,35,35,20,103,159,35,16,1,20,
+25,159,36,2,2,2,13,16,1,33,36,11,16,5,93,2,6,89,162,8,44,
36,55,9,223,0,33,37,35,20,103,159,35,16,1,20,25,159,36,2,2,2,
-13,16,1,33,38,11,16,5,93,2,4,89,162,8,44,36,57,9,223,0,33,
+13,16,1,33,38,11,16,5,93,2,11,89,162,8,44,36,57,9,223,0,33,
41,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,5,
93,2,8,89,162,8,44,36,52,9,223,0,33,43,35,20,103,159,35,16,1,
-20,25,159,36,2,2,2,13,16,0,11,16,5,93,2,3,89,162,8,44,36,
+20,25,159,36,2,2,2,13,16,0,11,16,5,93,2,5,89,162,8,44,36,
53,9,223,0,33,44,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,
16,0,11,16,5,93,2,10,89,162,8,44,36,54,9,223,0,33,45,35,20,
-103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,5,93,2,6,
+103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,5,93,2,7,
89,162,8,44,36,57,9,223,0,33,46,35,20,103,159,35,16,1,20,25,159,
-36,2,2,2,13,16,1,33,48,11,16,5,93,2,11,89,162,8,44,36,53,
+36,2,2,2,13,16,1,33,48,11,16,5,93,2,3,89,162,8,44,36,53,
9,223,0,33,49,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,
0,11,16,0,94,2,15,2,16,93,2,15,9,9,35,0};
EVAL_ONE_SIZED_STR((char *)expr, 2031);
@@ -344,20 +344,20 @@
}
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,48,46,49,8,0,0,0,1,0,0,6,0,19,0,
-34,0,48,0,62,0,76,0,111,0,0,0,241,0,0,0,65,113,117,111,116,
+34,0,48,0,62,0,76,0,111,0,0,0,254,0,0,0,65,113,117,111,116,
101,29,94,2,1,67,35,37,117,116,105,108,115,11,29,94,2,1,69,35,37,
110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,109,122,
11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35,
-37,107,101,114,110,101,108,11,98,10,35,11,8,182,221,97,159,2,2,35,35,
+37,107,101,114,110,101,108,11,98,10,35,11,8,183,221,97,159,2,2,35,35,
159,2,3,35,35,159,2,4,35,35,159,2,5,35,35,159,2,6,35,35,16,
0,159,35,20,103,159,35,16,1,65,98,101,103,105,110,16,0,83,158,41,20,
100,137,69,35,37,98,117,105,108,116,105,110,29,11,11,10,10,18,96,11,42,
42,42,35,80,158,35,35,20,103,159,35,16,0,16,0,11,11,16,0,35,11,
38,35,11,11,16,0,16,0,16,0,35,35,36,11,11,16,0,16,0,16,0,
-35,35,11,11,11,16,0,16,0,16,0,35,35,16,0,16,0,98,2,6,2,
+35,35,11,11,11,16,0,16,0,16,0,35,35,16,0,16,0,99,2,6,2,
5,29,94,2,1,69,35,37,102,111,114,101,105,103,110,11,2,4,2,3,2,
-2,9,9,9,35,0};
- EVAL_ONE_SIZED_STR((char *)expr, 278);
+2,29,94,2,1,67,35,37,112,108,97,99,101,11,9,9,9,35,0};
+ EVAL_ONE_SIZED_STR((char *)expr, 291);
}
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,48,46,49,52,0,0,0,1,0,0,3,0,14,0,
diff --git a/src/mzscheme/src/env.c b/src/mzscheme/src/env.c
index 70224a31a7..1b9d124366 100644
--- a/src/mzscheme/src/env.c
+++ b/src/mzscheme/src/env.c
@@ -365,6 +365,7 @@ static Scheme_Env *place_instance_init_post_kernel() {
#endif
scheme_init_parameterization(env);
scheme_init_expand_observe(env);
+ scheme_init_place(env);
#ifndef DONT_USE_FOREIGN
scheme_init_foreign(env);
@@ -463,9 +464,6 @@ static void make_kernel_env(void)
#ifndef NO_REGEXP_UTILS
MZTIMEIT(regexp, scheme_regexp_initialize(env));
#endif
-#ifdef MZ_USE_PLACES
- MZTIMEIT(places, scheme_init_place(env));
-#endif
MARK_START_TIME();
diff --git a/src/mzscheme/src/places.c b/src/mzscheme/src/places.c
index e800266ea4..67d3161ec9 100644
--- a/src/mzscheme/src/places.c
+++ b/src/mzscheme/src/places.c
@@ -3,10 +3,6 @@
#ifdef MZ_USE_PLACES
-/************************************************************************/
-/************************************************************************/
-/************************************************************************/
-
#include "mzrt.h"
Scheme_Object *scheme_place(int argc, Scheme_Object *args[]);
@@ -16,12 +12,29 @@ static Scheme_Object *scheme_place_p(int argc, Scheme_Object *args[]);
static void load_namespace(char *namespace_name);
static void load_namespace_utf8(Scheme_Object *namespace_name);
-#ifdef MZ_PRECISE_GC
+# ifdef MZ_PRECISE_GC
static void register_traversers(void);
-#endif
+# endif
static void *place_start_proc(void *arg);
+# define PLACE_PRIM_W_ARITY(name, func, a1, a2, env) GLOBAL_PRIM_W_ARITY(name, func, a1, a2, env)
+
+#else
+
+# define PLACE_PRIM_W_ARITY(name, func, a1, a2, env) GLOBAL_PRIM_W_ARITY(name, not_implemented, a1, a2, env)
+
+static Scheme_Object *not_implemented(int argc, Scheme_Object **argv)
+{
+ scheme_raise_exn(MZEXN_FAIL_UNSUPPORTED, "not supported");
+ return NULL;
+}
+
+# ifdef MZ_PRECISE_GC
+static void register_traversers(void) { }
+# endif
+
+#endif
/*========================================================================*/
/* initialization */
@@ -36,20 +49,20 @@ void scheme_init_place(Scheme_Env *env)
plenv = scheme_primitive_module(scheme_intern_symbol("#%place"), env);
- scheme_add_global_constant("place", scheme_make_prim_w_arity(scheme_place, "place", 1, 1), plenv);
- scheme_add_global_constant("place_sleep", scheme_make_prim_w_arity(scheme_place_sleep, "place_sleep", 1, 1), plenv);
- scheme_add_global_constant("place_wait", scheme_make_prim_w_arity(scheme_place_wait, "place_wait", 1, 1), plenv);
- scheme_add_global_constant("place?", scheme_make_prim_w_arity(scheme_place_p, "place?", 1, 1), plenv);
- scheme_add_global_constant("place6", scheme_make_prim_w_arity(scheme_place, "place6", 1, 1), plenv);
- scheme_add_global_constant("place5", scheme_make_prim_w_arity(scheme_place, "place5", 1, 1), plenv);
- scheme_add_global_constant("place4", scheme_make_prim_w_arity(scheme_place, "place4", 1, 1), plenv);
- scheme_add_global_constant("place3", scheme_make_prim_w_arity(scheme_place, "place3", 1, 1), plenv);
- scheme_add_global_constant("place2", scheme_make_prim_w_arity(scheme_place, "place2", 1, 1), plenv);
- scheme_add_global_constant("place1", scheme_make_prim_w_arity(scheme_place, "place1", 1, 1), plenv);
+ PLACE_PRIM_W_ARITY("place", scheme_place, 1, 1, plenv);
+ PLACE_PRIM_W_ARITY("place_sleep", scheme_place_sleep, 1, 1, plenv);
+ PLACE_PRIM_W_ARITY("place_wait", scheme_place_wait, 1, 1, plenv);
+ PLACE_PRIM_W_ARITY("place?", scheme_place_p, 1, 1, plenv);
scheme_finish_primitive_module(plenv);
}
+#ifdef MZ_USE_PLACES
+
+/************************************************************************/
+/************************************************************************/
+/************************************************************************/
+
typedef struct Place_Start_Data {
Scheme_Object *thunk;
} Place_Start_Data;
diff --git a/src/mzscheme/src/schpriv.h b/src/mzscheme/src/schpriv.h
index 3742dc35ea..f095c94305 100644
--- a/src/mzscheme/src/schpriv.h
+++ b/src/mzscheme/src/schpriv.h
@@ -2600,11 +2600,11 @@ void scheme_add_global_keyword_symbol(Scheme_Object *name, Scheme_Object *v, Sch
void scheme_add_global_constant(const char *name, Scheme_Object *v, Scheme_Env *env);
void scheme_add_global_constant_symbol(Scheme_Object *name, Scheme_Object *v, Scheme_Env *env);
-#define GLOBAL_FOLDING_PRIM(name, func, a1, a2, a3, env) scheme_add_global_constant(name, scheme_make_folding_prim(func, name, a1, a2, a3), env);
-#define GLOBAL_IMMED_PRIM(name, func, a1, a2, env) scheme_add_global_constant(name, scheme_make_immed_prim(func, name, a1, a2), env);
-#define GLOBAL_PARAMETER(name, func, constant, env) scheme_add_global_constant(name, scheme_register_parameter(func, name, constant), env);
-#define GLOBAL_PRIM_W_ARITY(name, func, a1, a2, env) scheme_add_global_constant(name, scheme_make_prim_w_arity(func, name, a1, a2), env);
-#define GLOBAL_PRIM_W_ARITY2(name, func, a1, a2, a3, a4, env) scheme_add_global_constant(name, scheme_make_prim_w_arity2(func, name, a1, a2, a3, a4), env);
+#define GLOBAL_FOLDING_PRIM(name, func, a1, a2, a3, env) scheme_add_global_constant(name, scheme_make_folding_prim(func, name, a1, a2, a3), env)
+#define GLOBAL_IMMED_PRIM(name, func, a1, a2, env) scheme_add_global_constant(name, scheme_make_immed_prim(func, name, a1, a2), env)
+#define GLOBAL_PARAMETER(name, func, constant, env) scheme_add_global_constant(name, scheme_register_parameter(func, name, constant), env)
+#define GLOBAL_PRIM_W_ARITY(name, func, a1, a2, env) scheme_add_global_constant(name, scheme_make_prim_w_arity(func, name, a1, a2), env)
+#define GLOBAL_PRIM_W_ARITY2(name, func, a1, a2, a3, a4, env) scheme_add_global_constant(name, scheme_make_prim_w_arity2(func, name, a1, a2, a3, a4), env)
Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Object *bdg, int is_def, Scheme_Object *phase);
diff --git a/src/mzscheme/src/startup.inc b/src/mzscheme/src/startup.inc
index ef261ace36..0defa286e3 100644
--- a/src/mzscheme/src/startup.inc
+++ b/src/mzscheme/src/startup.inc
@@ -391,7 +391,8 @@
"(only '#%foreign) "
" '#%paramz"
" '#%network"
-" '#%utils))"
+" '#%utils"
+"(only '#%place)))"
);
EVAL_ONE_STR(
"(module #%boot '#%kernel"
diff --git a/src/mzscheme/src/startup.ss b/src/mzscheme/src/startup.ss
index ae3bad163e..10d5b14772 100644
--- a/src/mzscheme/src/startup.ss
+++ b/src/mzscheme/src/startup.ss
@@ -463,7 +463,8 @@
(only '#%foreign) ; so it's attached, but doesn't depend on any exports
'#%paramz
'#%network
- '#%utils))
+ '#%utils
+ (only '#%place)))
;; ----------------------------------------
;; Handlers to install on startup
diff --git a/src/worksp/gc2/make.ss b/src/worksp/gc2/make.ss
index 7345d6e609..a6a60f8e09 100644
--- a/src/worksp/gc2/make.ss
+++ b/src/worksp/gc2/make.ss
@@ -39,11 +39,13 @@
"jit"
"list"
"module"
+ "mzrt"
"network"
"numarith"
"number"
"numcomp"
"numstr"
+ "places"
"port"
"portfun"
"print"
diff --git a/src/worksp/libmzsch/libmzsch.vcproj b/src/worksp/libmzsch/libmzsch.vcproj
index 3d926172d8..a754bb7e7e 100644
--- a/src/worksp/libmzsch/libmzsch.vcproj
+++ b/src/worksp/libmzsch/libmzsch.vcproj
@@ -266,6 +266,10 @@
RelativePath="..\..\Mzscheme\Src\module.c"
>
+
+
@@ -290,6 +294,10 @@
RelativePath="..\..\Mzscheme\Src\numstr.c"
>
+
+