orig paramz to planet resolver (v4.2.1.7)

svn: r15783
This commit is contained in:
Matthew Flatt 2009-08-19 16:40:33 +00:00
parent d3ececcee6
commit 543f586a97
14 changed files with 371 additions and 253 deletions

View File

@ -162,12 +162,16 @@ subdirectory.
#lang mzscheme
;; This `resolver' no longer fits the normal protocol for a
;; module name resolver, because it accepts an extra argument in
;; the second and third cases. The extra argument is a parameterization
;; to use for installation actions.
(define resolver
(case-lambda
[(name) (void)]
[(spec module-path stx)
(resolver spec module-path stx #t)]
[(spec module-path stx load?)
[(spec module-path stx orig-paramz)
(resolver spec module-path stx #t orig-paramz)]
[(spec module-path stx load? orig-paramz)
;; ensure these directories exist
(make-directory* (PLANET-DIR))
(make-directory* (CACHE-DIR))
@ -175,7 +179,8 @@ subdirectory.
(planet-resolve spec
(current-module-declare-name) ;; seems more reliable than module-path in v3.99
stx
load?)]))
load?
orig-paramz)]))
(require mzlib/match
mzlib/file
@ -321,7 +326,8 @@ subdirectory.
;; planet-resolve : PLANET-REQUEST (resolved-module-path | #f) syntax[PLANET-REQUEST] -> symbol
;; resolves the given request. Returns a name corresponding to the module in
;; the correct environment
(define (planet-resolve spec rmp stx load?)
(define (planet-resolve spec rmp stx load? orig-paramz)
;; Need to send `orig-paramz' on to the right place
(let-values ([(path pkg) (get-planet-module-path/pkg spec rmp stx)])
(when load? (add-pkg-to-diamond-registry! pkg stx))
(do-require path (pkg-path pkg) rmp stx load?)))

View File

@ -65,7 +65,9 @@ Sets the path to be returned by @scheme[(find-system-path
Initializes the @scheme[current-library-collection-paths] parameter
using @scheme[find-library-collection-paths]. The
@var{pre_extra_paths} and @var{post_extra-paths} arguments are
propagated to @scheme[find-library-collection-paths].}
propagated to @scheme[find-library-collection-paths].
The function calls @cpp{scheme_seal_parameters} automatically.}
@function[(void scheme_init_collection_paths
[Scheme_Env* env]
@ -73,3 +75,10 @@ propagated to @scheme[find-library-collection-paths].}
Like @cpp{scheme_init_collection_paths_post}, but with @scheme[null]
as the last argument.}
@function[(void scheme_seal_parameters)]{
Takes a snapshot of the current values of built-in parameters. These
values are used for privileged actions, such as installing a @|PLaneT|
package.}

View File

@ -326,7 +326,14 @@ To embed PLT Scheme CGC in a program, follow these steps:
@item{Access Scheme through @cppi{scheme_dynamic_require},
@cppi{scheme_load}, @cppi{scheme_eval}, and/or other functions
described in this manual.}
described in this manual.
If the embedding program configures built-in parameters in a way
that should be considered part of the default configuration, then
call @cpp{scheme_seal_parameters} afterward. The snapshot of
parameter values taken by @cpp{scheme_seal_parameters} is used for
certain privileged operations, such as installing a @|PLaneT|
package.}
@item{Compile the program and link it with the MzScheme libraries.}

View File

@ -1,3 +1,7 @@
Version 4.2.1.7
Inside: embedding applications should call scheme_seal_parameters
after initializing parameter values (currently used by Planet)
Version 4.2.1.6
Added print-syntax-width

View File

@ -1074,6 +1074,8 @@ static int run_from_cmd_line(int argc, char *_argv[],
}
#endif /* NO_FILE_SYSTEM_UTILS */
scheme_seal_parameters();
fa_a = (FinishArgsAtoms *)scheme_malloc_atomic(sizeof(FinishArgsAtoms));
fa = (FinishArgs *)scheme_malloc(sizeof(FinishArgs));
fa->a = fa_a;

View File

@ -1746,6 +1746,8 @@ MZ_EXTERN void scheme_set_original_dir(Scheme_Object *d);
MZ_EXTERN void scheme_init_collection_paths(Scheme_Env *global_env, Scheme_Object *extra_dirs);
MZ_EXTERN void scheme_init_collection_paths_post(Scheme_Env *global_env, Scheme_Object *extra_dirs, Scheme_Object *extra_post_dirs);
MZ_EXTERN void scheme_seal_parameters();
/* Initialization */
MZ_EXTERN Scheme_Env *scheme_basic_env(void);
MZ_EXTERN void scheme_reset_overflow(void);

View File

@ -1,12 +1,12 @@
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,49,46,54,50,0,0,0,1,0,0,3,0,12,0,
19,0,23,0,28,0,41,0,44,0,49,0,56,0,63,0,67,0,72,0,78,
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,49,46,55,50,0,0,0,1,0,0,3,0,12,0,
19,0,32,0,36,0,41,0,44,0,49,0,56,0,63,0,67,0,72,0,78,
0,92,0,106,0,109,0,115,0,119,0,121,0,132,0,134,0,148,0,155,0,
177,0,179,0,193,0,1,1,27,1,35,1,43,1,53,1,89,1,122,1,155,
1,214,1,24,2,102,2,168,2,173,2,193,2,84,3,104,3,155,3,221,3,
106,4,248,4,44,5,67,5,146,5,0,0,93,7,0,0,29,11,11,68,104,
101,114,101,45,115,116,120,66,100,101,102,105,110,101,63,97,110,100,64,108,101,
116,42,72,112,97,114,97,109,101,116,101,114,105,122,101,62,111,114,64,99,111,
101,114,101,45,115,116,120,66,100,101,102,105,110,101,72,112,97,114,97,109,101,
116,101,114,105,122,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,63,108,101,116,64,
119,104,101,110,65,113,117,111,116,101,29,94,2,13,68,35,37,107,101,114,110,
101,108,11,29,94,2,13,68,35,37,112,97,114,97,109,122,11,62,105,102,65,
@ -14,29 +14,29 @@
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,97,
35,11,8,171,244,95,159,2,15,35,35,159,2,14,35,35,159,2,14,35,35,
16,20,2,3,2,1,2,7,2,1,2,4,2,1,2,5,2,1,2,8,2,
1,2,9,2,1,2,6,2,1,2,10,2,1,2,11,2,1,2,12,2,1,
97,36,11,8,171,244,93,159,2,14,35,36,16,2,2,2,161,2,1,36,2,
2,2,1,2,2,96,11,11,8,171,244,16,0,96,37,11,8,171,244,16,0,
35,11,8,170,244,95,159,2,15,35,35,159,2,14,35,35,159,2,14,35,35,
16,20,2,3,2,1,2,4,2,1,2,7,2,1,2,5,2,1,2,6,2,
1,2,9,2,1,2,8,2,1,2,10,2,1,2,11,2,1,2,12,2,1,
97,36,11,8,170,244,93,159,2,14,35,36,16,2,2,2,161,2,1,36,2,
2,2,1,2,2,96,11,11,8,170,244,16,0,96,37,11,8,170,244,16,0,
13,16,4,35,29,11,11,2,1,11,18,16,2,99,64,104,101,114,101,8,31,
8,30,8,29,8,28,8,27,93,8,224,50,61,0,0,95,9,8,224,50,61,
8,30,8,29,8,28,8,27,93,8,224,49,61,0,0,95,9,8,224,49,61,
0,0,2,1,27,248,22,137,4,195,249,22,130,4,80,158,38,35,251,22,77,
2,16,248,22,92,199,12,249,22,67,2,17,248,22,94,201,27,248,22,137,4,
195,249,22,130,4,80,158,38,35,251,22,77,2,16,248,22,92,199,249,22,67,
2,17,248,22,94,201,12,27,248,22,69,248,22,137,4,196,28,248,22,75,193,
20,15,159,36,35,36,28,248,22,75,248,22,69,194,248,22,68,193,249,22,130,
4,80,158,38,35,251,22,77,2,16,248,22,68,199,249,22,67,2,4,248,22,
4,80,158,38,35,251,22,77,2,16,248,22,68,199,249,22,67,2,5,248,22,
69,201,11,18,16,2,101,10,8,31,8,30,8,29,8,28,8,27,16,4,11,
11,2,18,3,1,8,101,110,118,49,48,51,49,56,16,4,11,11,2,19,3,
1,8,101,110,118,49,48,51,49,57,93,8,224,51,61,0,0,95,9,8,224,
51,61,0,0,2,1,27,248,22,69,248,22,137,4,196,28,248,22,75,193,20,
11,2,18,3,1,8,101,110,118,49,48,51,50,48,16,4,11,11,2,19,3,
1,8,101,110,118,49,48,51,50,49,93,8,224,50,61,0,0,95,9,8,224,
50,61,0,0,2,1,27,248,22,69,248,22,137,4,196,28,248,22,75,193,20,
15,159,36,35,36,28,248,22,75,248,22,69,194,248,22,68,193,249,22,130,4,
80,158,38,35,250,22,77,2,20,248,22,77,249,22,77,248,22,77,2,21,248,
22,68,201,251,22,77,2,16,2,21,2,21,249,22,67,2,7,248,22,69,204,
18,16,2,101,11,8,31,8,30,8,29,8,28,8,27,16,4,11,11,2,18,
3,1,8,101,110,118,49,48,51,50,49,16,4,11,11,2,19,3,1,8,101,
110,118,49,48,51,50,50,93,8,224,52,61,0,0,95,9,8,224,52,61,0,
3,1,8,101,110,118,49,48,51,50,51,16,4,11,11,2,19,3,1,8,101,
110,118,49,48,51,50,52,93,8,224,51,61,0,0,95,9,8,224,51,61,0,
0,2,1,248,22,137,4,193,27,248,22,137,4,194,249,22,67,248,22,77,248,
22,68,196,248,22,69,195,27,248,22,69,248,22,137,4,23,197,1,249,22,130,
4,80,158,38,35,28,248,22,53,248,22,131,4,248,22,68,23,198,2,27,249,
@ -51,7 +51,7 @@
222,33,42,248,22,137,4,248,22,68,201,248,22,69,198,27,248,22,69,248,22,
137,4,196,27,248,22,137,4,248,22,68,195,249,22,130,4,80,158,39,35,28,
248,22,75,195,250,22,78,2,20,9,248,22,69,199,250,22,77,2,11,248,22,
77,248,22,68,199,250,22,78,2,5,248,22,69,201,248,22,69,202,27,248,22,
77,248,22,68,199,250,22,78,2,6,248,22,69,201,248,22,69,202,27,248,22,
69,248,22,137,4,23,197,1,27,249,22,1,22,81,249,22,2,22,137,4,248,
22,137,4,248,22,68,199,249,22,130,4,80,158,39,35,251,22,77,1,22,119,
105,116,104,45,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107,
@ -66,9 +66,9 @@
69,202,251,22,77,2,16,28,249,22,167,8,248,22,131,4,248,22,68,200,64,
101,108,115,101,10,248,22,68,197,250,22,78,2,20,9,248,22,69,200,249,22,
67,2,8,248,22,69,202,100,8,31,8,30,8,29,8,28,8,27,16,4,11,
11,2,18,3,1,8,101,110,118,49,48,51,52,52,16,4,11,11,2,19,3,
1,8,101,110,118,49,48,51,52,53,93,8,224,53,61,0,0,18,16,2,158,
94,10,64,118,111,105,100,8,47,95,9,8,224,53,61,0,0,2,1,27,248,
11,2,18,3,1,8,101,110,118,49,48,51,52,54,16,4,11,11,2,19,3,
1,8,101,110,118,49,48,51,52,55,93,8,224,52,61,0,0,18,16,2,158,
94,10,64,118,111,105,100,8,47,95,9,8,224,52,61,0,0,2,1,27,248,
22,69,248,22,137,4,196,249,22,130,4,80,158,38,35,28,248,22,53,248,22,
131,4,248,22,68,197,250,22,77,2,26,248,22,77,248,22,68,199,248,22,92,
198,27,248,22,131,4,248,22,68,197,250,22,77,2,26,248,22,77,248,22,68,
@ -83,14 +83,14 @@
159,35,35,35,35,20,103,159,35,16,0,16,1,33,32,10,16,5,2,10,89,
162,8,44,36,52,9,223,0,33,33,35,20,103,159,35,16,1,2,2,16,0,
11,16,5,2,12,89,162,8,44,36,52,9,223,0,33,34,35,20,103,159,35,
16,1,2,2,16,0,11,16,5,2,4,89,162,8,44,36,52,9,223,0,33,
16,1,2,2,16,0,11,16,5,2,5,89,162,8,44,36,52,9,223,0,33,
35,35,20,103,159,35,16,1,2,2,16,1,33,36,11,16,5,2,7,89,162,
8,44,36,55,9,223,0,33,37,35,20,103,159,35,16,1,2,2,16,1,33,
38,11,16,5,2,11,89,162,8,44,36,57,9,223,0,33,41,35,20,103,159,
35,16,1,2,2,16,0,11,16,5,2,9,89,162,8,44,36,52,9,223,0,
33,43,35,20,103,159,35,16,1,2,2,16,0,11,16,5,2,5,89,162,8,
33,43,35,20,103,159,35,16,1,2,2,16,0,11,16,5,2,6,89,162,8,
44,36,53,9,223,0,33,44,35,20,103,159,35,16,1,2,2,16,0,11,16,
5,2,6,89,162,8,44,36,54,9,223,0,33,45,35,20,103,159,35,16,1,
5,2,4,89,162,8,44,36,54,9,223,0,33,45,35,20,103,159,35,16,1,
2,2,16,0,11,16,5,2,8,89,162,8,44,36,57,9,223,0,33,46,35,
20,103,159,35,16,1,2,2,16,1,33,48,11,16,5,2,3,89,162,8,44,
36,53,9,223,0,33,49,35,20,103,159,35,16,1,2,2,16,0,11,16,0,
@ -98,7 +98,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 2006);
}
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,49,46,54,59,0,0,0,1,0,0,13,0,18,0,
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,49,46,55,59,0,0,0,1,0,0,13,0,18,0,
35,0,50,0,68,0,84,0,94,0,112,0,132,0,148,0,166,0,197,0,226,
0,248,0,6,1,12,1,26,1,31,1,41,1,49,1,77,1,109,1,154,1,
199,1,223,1,6,2,8,2,65,2,155,3,196,3,31,5,135,5,239,5,100,
@ -340,12 +340,12 @@
EVAL_ONE_SIZED_STR((char *)expr, 5006);
}
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,49,46,54,8,0,0,0,1,0,0,6,0,19,0,
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,49,46,55,8,0,0,0,1,0,0,6,0,19,0,
34,0,48,0,62,0,76,0,115,0,0,0,6,1,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,97,35,11,8,177,246,98,159,2,2,35,35,159,
37,107,101,114,110,101,108,11,97,35,11,8,176,246,98,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,159,2,
6,35,35,16,0,159,35,20,103,159,35,16,1,11,16,0,83,158,41,20,100,
144,69,35,37,98,117,105,108,116,105,110,29,11,11,11,11,11,18,96,11,42,
@ -358,200 +358,205 @@
EVAL_ONE_SIZED_STR((char *)expr, 299);
}
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,49,46,54,52,0,0,0,1,0,0,11,0,38,0,
44,0,57,0,71,0,93,0,119,0,131,0,149,0,169,0,181,0,197,0,220,
0,0,1,5,1,10,1,15,1,24,1,29,1,60,1,64,1,72,1,81,1,
89,1,192,1,237,1,1,2,30,2,61,2,117,2,127,2,174,2,184,2,191,
2,78,4,91,4,110,4,229,4,241,4,119,5,133,5,255,5,5,6,19,6,
46,6,131,6,133,6,199,6,154,12,213,12,247,12,0,0,128,15,0,0,70,
100,108,108,45,115,117,102,102,105,120,1,25,100,101,102,97,117,108,116,45,108,
111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,65,113,117,111,116,
101,29,94,2,3,67,35,37,117,116,105,108,115,11,29,94,2,3,68,35,37,
112,97,114,97,109,122,11,1,20,100,101,102,97,117,108,116,45,114,101,97,100,
101,114,45,103,117,97,114,100,1,24,45,109,111,100,117,108,101,45,104,97,115,
104,45,116,97,98,108,101,45,116,97,98,108,101,71,45,112,97,116,104,45,99,
97,99,104,101,77,45,108,111,97,100,105,110,103,45,102,105,108,101,110,97,109,
101,79,45,108,111,97,100,105,110,103,45,112,114,111,109,112,116,45,116,97,103,
71,45,112,114,101,118,45,114,101,108,116,111,75,45,112,114,101,118,45,114,101,
108,116,111,45,100,105,114,1,21,115,112,108,105,116,45,114,101,108,97,116,105,
118,101,45,115,116,114,105,110,103,1,34,109,97,107,101,45,115,116,97,110,100,
97,114,100,45,109,111,100,117,108,101,45,110,97,109,101,45,114,101,115,111,108,
118,101,114,64,98,111,111,116,64,115,97,109,101,5,3,46,122,111,6,6,6,
110,97,116,105,118,101,64,108,111,111,112,1,29,115,116,97,110,100,97,114,100,
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,49,46,55,56,0,0,0,1,0,0,11,0,38,0,
44,0,57,0,66,0,73,0,95,0,117,0,143,0,155,0,173,0,193,0,205,
0,221,0,244,0,0,1,31,1,38,1,43,1,48,1,53,1,58,1,67,1,
72,1,76,1,84,1,93,1,101,1,204,1,249,1,13,2,42,2,73,2,129,
2,139,2,186,2,196,2,203,2,90,4,103,4,122,4,241,4,253,4,131,5,
145,5,11,6,17,6,31,6,58,6,143,6,145,6,211,6,157,12,207,12,228,
12,0,0,207,15,0,0,70,100,108,108,45,115,117,102,102,105,120,1,25,100,
101,102,97,117,108,116,45,108,111,97,100,47,117,115,101,45,99,111,109,112,105,
108,101,100,65,113,117,111,116,101,29,94,2,3,67,35,37,117,116,105,108,115,
11,68,35,37,112,97,114,97,109,122,29,94,2,3,2,5,11,1,20,112,97,
114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121,1,20,100,
101,102,97,117,108,116,45,114,101,97,100,101,114,45,103,117,97,114,100,1,24,
45,109,111,100,117,108,101,45,104,97,115,104,45,116,97,98,108,101,45,116,97,
98,108,101,71,45,112,97,116,104,45,99,97,99,104,101,77,45,108,111,97,100,
105,110,103,45,102,105,108,101,110,97,109,101,79,45,108,111,97,100,105,110,103,
45,112,114,111,109,112,116,45,116,97,103,71,45,112,114,101,118,45,114,101,108,
116,111,75,45,112,114,101,118,45,114,101,108,116,111,45,100,105,114,1,21,115,
112,108,105,116,45,114,101,108,97,116,105,118,101,45,115,116,114,105,110,103,71,
111,114,105,103,45,112,97,114,97,109,122,1,29,115,116,97,110,100,97,114,100,
45,109,111,100,117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,101,114,
63,108,105,98,67,105,103,110,111,114,101,100,249,22,14,195,80,159,37,45,37,
249,80,159,37,48,36,195,10,27,28,23,195,2,28,249,22,167,8,23,197,2,
80,158,38,46,87,94,23,195,1,80,158,36,47,27,248,22,176,4,23,197,2,
28,248,22,147,13,23,194,2,91,159,38,11,90,161,38,35,11,248,22,168,13,
23,197,1,87,95,83,160,37,11,80,158,40,46,198,83,160,37,11,80,158,40,
47,192,192,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,130,5,28,
192,192,247,22,188,13,20,14,159,80,158,35,39,250,80,158,38,40,249,22,27,
11,80,158,40,39,22,130,5,28,248,22,147,13,23,198,2,23,197,1,87,94,
23,197,1,247,22,188,13,247,194,250,22,165,13,23,197,1,23,199,1,249,80,
158,42,38,23,198,1,2,17,252,22,165,13,23,199,1,23,201,1,2,18,247,
22,182,7,249,80,158,44,38,23,200,1,80,159,44,35,37,87,94,23,194,1,
27,250,22,182,13,196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249,
22,67,195,194,11,27,252,22,165,13,23,200,1,23,202,1,2,18,247,22,182,
7,249,80,158,45,38,23,201,1,80,159,45,35,37,27,250,22,182,13,196,11,
32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,67,195,194,11,249,247,
22,129,14,248,22,68,195,195,27,250,22,165,13,23,198,1,23,200,1,249,80,
158,43,38,23,199,1,2,17,27,250,22,182,13,196,11,32,0,89,162,8,44,
35,40,9,222,11,28,192,249,22,67,195,194,11,249,247,22,128,5,248,22,68,
195,195,249,247,22,128,5,194,195,87,94,28,248,80,158,36,37,23,195,2,12,
250,22,135,9,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,
100,6,25,25,112,97,116,104,32,111,114,32,118,97,108,105,100,45,112,97,116,
104,32,115,116,114,105,110,103,23,197,2,91,159,41,11,90,161,36,35,11,28,
248,22,171,13,23,201,2,23,200,1,27,247,22,130,5,28,23,193,2,249,22,
172,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,168,13,23,194,2,
87,94,23,196,1,90,161,36,39,11,28,249,22,167,8,23,196,2,68,114,101,
108,97,116,105,118,101,87,94,23,194,1,2,16,23,194,1,90,161,36,40,11,
247,22,190,13,27,89,162,43,36,49,62,122,111,225,7,5,3,33,27,27,89,
162,43,36,51,9,225,8,6,4,33,28,27,249,22,5,89,162,8,44,36,46,
9,223,5,33,29,23,203,2,27,28,23,195,1,27,249,22,5,89,162,8,44,
36,52,9,225,13,11,9,33,30,23,205,2,27,28,23,196,2,11,193,28,192,
192,28,193,28,23,196,2,28,249,22,170,3,248,22,69,196,248,22,69,23,199,
2,193,11,11,11,11,28,23,193,2,249,80,159,47,54,36,202,89,162,43,35,
45,9,224,14,2,33,31,87,94,23,193,1,27,28,23,197,1,27,249,22,5,
83,158,39,20,97,94,89,162,8,44,36,50,9,225,14,12,10,33,32,23,203,
1,23,206,1,27,28,196,11,193,28,192,192,28,193,28,196,28,249,22,170,3,
248,22,69,196,248,22,69,199,193,11,11,11,11,28,192,249,80,159,48,54,36,
203,89,162,43,35,45,9,224,15,2,33,33,249,80,159,48,54,36,203,89,162,
43,35,44,9,224,15,7,33,34,32,36,89,162,8,44,36,54,2,19,222,33,
38,0,17,35,114,120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,27,
249,22,134,14,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,67,
248,22,92,23,196,2,27,248,22,101,23,197,1,27,249,22,134,14,2,37,23,
196,2,28,23,193,2,87,94,23,194,1,249,22,67,248,22,92,23,196,2,27,
248,22,101,23,197,1,27,249,22,134,14,2,37,23,196,2,28,23,193,2,87,
94,23,194,1,249,22,67,248,22,92,23,196,2,248,2,36,248,22,101,23,197,
1,248,22,77,194,248,22,77,194,248,22,77,194,32,39,89,162,43,36,54,2,
19,222,33,40,28,248,22,75,248,22,69,23,195,2,249,22,7,9,248,22,68,
195,91,159,37,11,90,161,37,35,11,27,248,22,69,196,28,248,22,75,248,22,
69,23,195,2,249,22,7,9,248,22,68,195,91,159,37,11,90,161,37,35,11,
27,248,22,69,196,28,248,22,75,248,22,69,23,195,2,249,22,7,9,248,22,
68,195,91,159,37,11,90,161,37,35,11,248,2,39,248,22,69,196,249,22,7,
249,22,67,248,22,68,199,196,195,249,22,7,249,22,67,248,22,68,199,196,195,
249,22,7,249,22,67,248,22,68,199,196,195,27,248,2,36,23,195,1,28,194,
192,248,2,39,193,87,95,28,248,22,174,4,195,12,250,22,135,9,2,20,6,
20,20,114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,112,97,116,
104,197,28,24,193,2,248,24,194,1,195,87,94,23,193,1,12,27,27,250,22,
141,2,80,159,41,42,37,248,22,154,14,247,22,129,12,11,28,23,193,2,192,
87,94,23,193,1,27,247,22,125,87,94,250,22,139,2,80,159,42,42,37,248,
22,154,14,247,22,129,12,195,192,250,22,139,2,195,198,66,97,116,116,97,99,
104,251,211,197,198,199,10,28,192,250,22,134,9,11,196,195,248,22,132,9,194,
28,249,22,168,6,194,6,1,1,46,2,16,28,249,22,168,6,194,6,2,2,
46,46,62,117,112,192,28,249,22,169,8,248,22,69,23,200,2,23,197,1,28,
249,22,167,8,248,22,68,23,200,2,23,196,1,251,22,132,9,2,20,6,26,
26,99,121,99,108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,
126,101,58,32,126,101,23,200,1,249,22,2,22,69,248,22,82,249,22,67,23,
206,1,23,202,1,12,12,247,192,20,14,159,80,159,39,44,37,249,22,67,248,
22,154,14,247,22,129,12,23,197,1,20,14,159,80,158,39,39,250,80,158,42,
40,249,22,27,11,80,158,44,39,22,156,4,23,196,1,249,247,22,129,5,23,
198,1,248,22,55,248,22,151,13,23,198,1,87,94,28,28,248,22,147,13,23,
197,2,10,248,22,180,4,23,197,2,12,28,23,198,2,250,22,134,9,11,6,
15,15,98,97,100,32,109,111,100,117,108,101,32,112,97,116,104,23,201,2,250,
22,135,9,2,20,6,19,19,109,111,100,117,108,101,45,112,97,116,104,32,111,
114,32,112,97,116,104,23,199,2,28,28,248,22,65,23,197,2,249,22,167,8,
248,22,68,23,199,2,2,3,11,248,22,175,4,248,22,92,197,28,28,248,22,
65,23,197,2,249,22,167,8,248,22,68,23,199,2,66,112,108,97,110,101,116,
11,87,94,28,207,12,20,14,159,80,158,37,39,250,80,158,40,40,249,22,27,
11,80,158,42,39,22,129,12,23,197,1,90,161,36,35,10,249,22,157,4,21,
94,2,21,6,18,18,112,108,97,110,101,116,47,114,101,115,111,108,118,101,114,
46,115,115,1,27,112,108,97,110,101,116,45,109,111,100,117,108,101,45,110,97,
109,101,45,114,101,115,111,108,118,101,114,12,251,211,199,200,201,202,87,94,23,
193,1,27,89,162,8,44,36,45,79,115,104,111,119,45,99,111,108,108,101,99,
116,105,111,110,45,101,114,114,223,6,33,44,27,28,248,22,53,23,199,2,27,
250,22,141,2,80,159,43,43,37,249,22,67,23,204,2,247,22,189,13,11,28,
23,193,2,192,87,94,23,193,1,91,159,37,11,90,161,37,35,11,249,80,159,
44,48,36,248,22,58,23,204,2,11,27,251,80,158,47,50,2,20,23,202,1,
28,248,22,75,23,199,2,23,199,2,248,22,68,23,199,2,28,248,22,75,23,
199,2,9,248,22,69,23,199,2,249,22,165,13,23,195,1,28,248,22,75,23,
197,1,87,94,23,197,1,6,7,7,109,97,105,110,46,115,115,249,22,185,6,
23,199,1,6,3,3,46,115,115,28,248,22,162,6,23,199,2,87,94,23,194,
1,27,248,80,159,41,55,36,23,201,2,27,250,22,141,2,80,159,44,43,37,
249,22,67,23,205,2,23,199,2,11,28,23,193,2,192,87,94,23,193,1,91,
159,37,11,90,161,37,35,11,249,80,159,45,48,36,23,204,2,11,250,22,1,
22,165,13,23,199,1,249,22,81,249,22,2,32,0,89,162,8,44,36,43,9,
222,33,45,23,200,1,248,22,77,23,200,1,28,248,22,147,13,23,199,2,87,
94,23,194,1,28,248,22,170,13,23,199,2,23,198,2,248,22,77,6,26,26,
32,40,97,32,112,97,116,104,32,109,117,115,116,32,98,101,32,97,98,115,111,
108,117,116,101,41,28,249,22,167,8,248,22,68,23,201,2,2,21,27,250,22,
141,2,80,159,43,43,37,249,22,67,23,204,2,247,22,189,13,11,28,23,193,
2,192,87,94,23,193,1,91,159,38,11,90,161,37,35,11,249,80,159,45,48,
36,248,22,92,23,205,2,11,90,161,36,37,11,28,248,22,75,248,22,94,23,
204,2,28,248,22,75,23,194,2,249,22,136,14,0,8,35,114,120,34,91,46,
93,34,23,196,2,11,10,27,27,28,23,197,2,249,22,81,28,248,22,75,248,
22,94,23,208,2,21,93,6,5,5,109,122,108,105,98,249,22,1,22,81,249,
22,2,80,159,51,56,36,248,22,94,23,211,2,23,197,2,28,248,22,75,23,
196,2,248,22,77,23,197,2,23,195,2,251,80,158,49,50,2,20,23,204,1,
248,22,68,23,198,2,248,22,69,23,198,1,249,22,165,13,23,195,1,28,23,
198,1,87,94,23,196,1,23,197,1,28,248,22,75,23,197,1,87,94,23,197,
1,6,7,7,109,97,105,110,46,115,115,28,249,22,136,14,0,8,35,114,120,
34,91,46,93,34,23,199,2,23,197,1,249,22,185,6,23,199,1,6,3,3,
46,115,115,28,249,22,167,8,248,22,68,23,201,2,64,102,105,108,101,249,22,
172,13,248,22,176,13,248,22,92,23,202,2,248,80,159,42,55,36,23,202,2,
12,87,94,28,28,248,22,147,13,23,194,2,10,248,22,184,7,23,194,2,87,
94,23,200,1,12,28,23,200,2,250,22,134,9,67,114,101,113,117,105,114,101,
249,22,146,7,6,17,17,98,97,100,32,109,111,100,117,108,101,32,112,97,116,
104,126,97,28,23,198,2,248,22,68,23,199,2,6,0,0,23,203,1,87,94,
23,200,1,250,22,135,9,2,20,249,22,146,7,6,13,13,109,111,100,117,108,
101,32,112,97,116,104,126,97,28,23,198,2,248,22,68,23,199,2,6,0,0,
23,201,2,27,28,248,22,184,7,23,195,2,249,22,189,7,23,196,2,35,249,
22,174,13,248,22,175,13,23,197,2,11,27,28,248,22,184,7,23,196,2,249,
22,189,7,23,197,2,36,248,80,158,42,51,23,195,2,91,159,38,11,90,161,
38,35,11,28,248,22,184,7,23,199,2,250,22,7,2,22,249,22,189,7,23,
203,2,37,2,22,248,22,168,13,23,198,2,87,95,23,195,1,23,193,1,27,
28,248,22,184,7,23,200,2,249,22,189,7,23,201,2,38,249,80,158,47,52,
23,197,2,5,0,27,28,248,22,184,7,23,201,2,249,22,189,7,23,202,2,
39,248,22,175,4,23,200,2,27,27,250,22,141,2,80,159,51,42,37,248,22,
154,14,247,22,129,12,11,28,23,193,2,192,87,94,23,193,1,27,247,22,125,
87,94,250,22,139,2,80,159,52,42,37,248,22,154,14,247,22,129,12,195,192,
87,95,28,23,209,1,27,250,22,141,2,23,197,2,197,11,28,23,193,1,12,
87,95,27,27,28,248,22,17,80,159,51,45,37,80,159,50,45,37,247,22,19,
250,22,25,248,22,23,23,197,2,80,159,53,44,37,23,196,1,27,248,22,154,
14,247,22,129,12,249,22,3,83,158,39,20,97,94,89,162,8,44,36,54,9,
226,12,11,2,3,33,46,23,195,1,23,196,1,248,28,248,22,17,80,159,50,
45,37,32,0,89,162,43,36,41,9,222,33,47,80,159,49,57,36,89,162,43,
35,50,9,227,14,9,8,4,3,33,48,250,22,139,2,23,197,1,197,10,12,
28,28,248,22,184,7,23,202,1,11,27,248,22,162,6,23,208,2,28,192,192,
27,248,22,53,23,209,2,28,192,192,28,248,22,65,23,209,2,249,22,167,8,
248,22,68,23,211,2,2,21,11,250,22,139,2,80,159,50,43,37,28,248,22,
162,6,23,210,2,249,22,67,23,211,1,248,80,159,53,55,36,23,213,1,87,
94,23,210,1,249,22,67,23,211,1,247,22,189,13,252,22,186,7,23,208,1,
23,207,1,23,205,1,23,203,1,201,12,193,91,159,37,10,90,161,36,35,10,
11,90,161,36,36,10,83,158,38,20,96,96,2,20,89,162,8,44,36,50,9,
224,2,0,33,42,89,162,43,38,48,9,223,1,33,43,89,162,43,39,8,30,
9,225,2,3,0,33,49,208,87,95,248,22,155,4,248,80,159,37,49,36,247,
22,129,12,248,22,129,5,80,159,36,36,36,248,22,184,12,80,159,36,41,36,
159,35,20,103,159,35,16,1,11,16,0,83,158,41,20,100,144,66,35,37,98,
111,111,116,29,11,11,11,11,11,10,36,80,158,35,35,20,103,159,39,16,19,
2,1,2,2,30,2,4,72,112,97,116,104,45,115,116,114,105,110,103,63,10,
30,2,4,75,112,97,116,104,45,97,100,100,45,115,117,102,102,105,120,7,30,
2,5,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,
107,101,121,4,30,2,5,1,23,101,120,116,101,110,100,45,112,97,114,97,109,
101,116,101,114,105,122,97,116,105,111,110,3,2,6,2,7,2,8,2,9,2,
10,2,11,2,12,2,13,2,14,30,2,4,69,45,102,105,110,100,45,99,111,
108,0,30,2,4,76,110,111,114,109,97,108,45,99,97,115,101,45,112,97,116,
104,6,30,2,4,79,112,97,116,104,45,114,101,112,108,97,99,101,45,115,117,
102,102,105,120,9,2,15,16,0,16,0,35,16,0,35,16,11,2,9,2,10,
2,7,2,8,2,11,2,12,2,2,2,6,2,1,2,14,2,13,46,11,11,
38,35,11,11,11,16,1,2,15,16,1,11,16,1,2,15,36,36,36,11,11,
11,16,0,16,0,16,0,35,35,11,11,11,11,16,0,16,0,16,0,35,35,
16,0,16,16,83,158,35,16,2,89,162,43,36,44,9,223,0,33,23,80,159,
35,57,36,83,158,35,16,2,89,162,43,36,44,9,223,0,33,24,80,159,35,
56,36,83,158,35,16,2,89,162,43,36,48,67,103,101,116,45,100,105,114,223,
0,33,25,80,159,35,55,36,83,158,35,16,2,89,162,43,37,48,68,119,105,
116,104,45,100,105,114,223,0,33,26,80,159,35,54,36,83,158,35,16,2,248,
22,181,7,69,115,111,45,115,117,102,102,105,120,80,159,35,35,36,83,158,35,
16,2,89,162,43,37,59,2,2,223,0,33,35,80,159,35,36,36,83,158,35,
16,2,32,0,89,162,8,44,36,41,2,6,222,192,80,159,35,41,36,83,158,
35,16,2,247,22,128,2,80,159,35,42,36,83,158,35,16,2,247,22,127,80,
159,35,43,36,83,158,35,16,2,247,22,63,80,159,35,44,36,83,158,35,16,
2,248,22,18,74,109,111,100,117,108,101,45,108,111,97,100,105,110,103,80,159,
35,45,36,83,158,35,16,2,11,80,158,35,46,83,158,35,16,2,11,80,158,
35,47,83,158,35,16,2,32,0,89,162,43,37,44,2,13,222,33,41,80,159,
35,48,36,83,158,35,16,2,89,162,8,44,36,44,2,14,223,0,33,50,80,
159,35,49,36,83,158,35,16,2,89,162,43,35,43,2,15,223,0,33,51,80,
159,35,53,36,95,29,94,2,3,68,35,37,107,101,114,110,101,108,11,29,94,
2,3,69,35,37,109,105,110,45,115,116,120,11,2,4,9,9,9,35,0};
EVAL_ONE_SIZED_STR((char *)expr, 4093);
29,94,2,3,2,5,11,64,98,111,111,116,64,115,101,97,108,64,115,97,109,
101,5,3,46,122,111,6,6,6,110,97,116,105,118,101,64,108,111,111,112,63,
108,105,98,67,105,103,110,111,114,101,100,249,22,14,195,80,159,37,45,37,249,
80,159,37,48,36,195,10,27,28,23,195,2,28,249,22,167,8,23,197,2,80,
158,38,46,87,94,23,195,1,80,158,36,47,27,248,22,176,4,23,197,2,28,
248,22,147,13,23,194,2,91,159,38,11,90,161,38,35,11,248,22,168,13,23,
197,1,87,95,83,160,37,11,80,158,40,46,198,83,160,37,11,80,158,40,47,
192,192,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,130,5,28,192,
192,247,22,188,13,20,14,159,80,158,35,39,250,80,158,38,40,249,22,27,11,
80,158,40,39,22,130,5,28,248,22,147,13,23,198,2,23,197,1,87,94,23,
197,1,247,22,188,13,247,194,250,22,165,13,23,197,1,23,199,1,249,80,158,
42,38,23,198,1,2,22,252,22,165,13,23,199,1,23,201,1,2,23,247,22,
182,7,249,80,158,44,38,23,200,1,80,159,44,35,37,87,94,23,194,1,27,
250,22,182,13,196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,
67,195,194,11,27,252,22,165,13,23,200,1,23,202,1,2,23,247,22,182,7,
249,80,158,45,38,23,201,1,80,159,45,35,37,27,250,22,182,13,196,11,32,
0,89,162,8,44,35,40,9,222,11,28,192,249,22,67,195,194,11,249,247,22,
129,14,248,22,68,195,195,27,250,22,165,13,23,198,1,23,200,1,249,80,158,
43,38,23,199,1,2,22,27,250,22,182,13,196,11,32,0,89,162,8,44,35,
40,9,222,11,28,192,249,22,67,195,194,11,249,247,22,128,5,248,22,68,195,
195,249,247,22,128,5,194,195,87,94,28,248,80,158,36,37,23,195,2,12,250,
22,135,9,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,
6,25,25,112,97,116,104,32,111,114,32,118,97,108,105,100,45,112,97,116,104,
32,115,116,114,105,110,103,23,197,2,91,159,41,11,90,161,36,35,11,28,248,
22,171,13,23,201,2,23,200,1,27,247,22,130,5,28,23,193,2,249,22,172,
13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,168,13,23,194,2,87,
94,23,196,1,90,161,36,39,11,28,249,22,167,8,23,196,2,68,114,101,108,
97,116,105,118,101,87,94,23,194,1,2,21,23,194,1,90,161,36,40,11,247,
22,190,13,27,89,162,43,36,49,62,122,111,225,7,5,3,33,31,27,89,162,
43,36,51,9,225,8,6,4,33,32,27,249,22,5,89,162,8,44,36,46,9,
223,5,33,33,23,203,2,27,28,23,195,1,27,249,22,5,89,162,8,44,36,
52,9,225,13,11,9,33,34,23,205,2,27,28,23,196,2,11,193,28,192,192,
28,193,28,23,196,2,28,249,22,170,3,248,22,69,196,248,22,69,23,199,2,
193,11,11,11,11,28,23,193,2,249,80,159,47,58,36,202,89,162,43,35,45,
9,224,14,2,33,35,87,94,23,193,1,27,28,23,197,1,27,249,22,5,83,
158,39,20,97,94,89,162,8,44,36,50,9,225,14,12,10,33,36,23,203,1,
23,206,1,27,28,196,11,193,28,192,192,28,193,28,196,28,249,22,170,3,248,
22,69,196,248,22,69,199,193,11,11,11,11,28,192,249,80,159,48,58,36,203,
89,162,43,35,45,9,224,15,2,33,37,249,80,159,48,58,36,203,89,162,43,
35,44,9,224,15,7,33,38,32,40,89,162,8,44,36,54,2,24,222,33,42,
0,17,35,114,120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,27,249,
22,134,14,2,41,23,196,2,28,23,193,2,87,94,23,194,1,249,22,67,248,
22,92,23,196,2,27,248,22,101,23,197,1,27,249,22,134,14,2,41,23,196,
2,28,23,193,2,87,94,23,194,1,249,22,67,248,22,92,23,196,2,27,248,
22,101,23,197,1,27,249,22,134,14,2,41,23,196,2,28,23,193,2,87,94,
23,194,1,249,22,67,248,22,92,23,196,2,248,2,40,248,22,101,23,197,1,
248,22,77,194,248,22,77,194,248,22,77,194,32,43,89,162,43,36,54,2,24,
222,33,44,28,248,22,75,248,22,69,23,195,2,249,22,7,9,248,22,68,195,
91,159,37,11,90,161,37,35,11,27,248,22,69,196,28,248,22,75,248,22,69,
23,195,2,249,22,7,9,248,22,68,195,91,159,37,11,90,161,37,35,11,27,
248,22,69,196,28,248,22,75,248,22,69,23,195,2,249,22,7,9,248,22,68,
195,91,159,37,11,90,161,37,35,11,248,2,43,248,22,69,196,249,22,7,249,
22,67,248,22,68,199,196,195,249,22,7,249,22,67,248,22,68,199,196,195,249,
22,7,249,22,67,248,22,68,199,196,195,27,248,2,40,23,195,1,28,194,192,
248,2,43,193,87,95,28,248,22,174,4,195,12,250,22,135,9,2,17,6,20,
20,114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,112,97,116,104,
197,28,24,193,2,248,24,194,1,195,87,94,23,193,1,12,27,27,250,22,141,
2,80,159,41,42,37,248,22,154,14,247,22,129,12,11,28,23,193,2,192,87,
94,23,193,1,27,247,22,125,87,94,250,22,139,2,80,159,42,42,37,248,22,
154,14,247,22,129,12,195,192,250,22,139,2,195,198,66,97,116,116,97,99,104,
251,211,197,198,199,10,28,192,250,22,134,9,11,196,195,248,22,132,9,194,28,
249,22,168,6,194,6,1,1,46,2,21,28,249,22,168,6,194,6,2,2,46,
46,62,117,112,192,28,249,22,169,8,248,22,69,23,200,2,23,197,1,28,249,
22,167,8,248,22,68,23,200,2,23,196,1,251,22,132,9,2,17,6,26,26,
99,121,99,108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,126,
101,58,32,126,101,23,200,1,249,22,2,22,69,248,22,82,249,22,67,23,206,
1,23,202,1,12,12,247,192,20,14,159,80,159,39,44,37,249,22,67,248,22,
154,14,247,22,129,12,23,197,1,20,14,159,80,158,39,39,250,80,158,42,40,
249,22,27,11,80,158,44,39,22,156,4,23,196,1,249,247,22,129,5,23,198,
1,248,22,55,248,22,151,13,23,198,1,87,94,28,28,248,22,147,13,23,196,
2,10,248,22,180,4,23,196,2,12,28,23,197,2,250,22,134,9,11,6,15,
15,98,97,100,32,109,111,100,117,108,101,32,112,97,116,104,23,200,2,250,22,
135,9,2,17,6,19,19,109,111,100,117,108,101,45,112,97,116,104,32,111,114,
32,112,97,116,104,23,198,2,28,28,248,22,65,23,196,2,249,22,167,8,248,
22,68,23,198,2,2,3,11,248,22,175,4,248,22,92,196,28,28,248,22,65,
23,196,2,249,22,167,8,248,22,68,23,198,2,66,112,108,97,110,101,116,11,
87,94,28,207,12,20,14,159,80,158,36,51,80,158,36,49,90,161,36,35,10,
249,22,157,4,21,94,2,25,6,18,18,112,108,97,110,101,116,47,114,101,115,
111,108,118,101,114,46,115,115,1,27,112,108,97,110,101,116,45,109,111,100,117,
108,101,45,110,97,109,101,45,114,101,115,111,108,118,101,114,12,252,212,199,200,
201,202,80,158,41,49,87,94,23,193,1,27,89,162,8,44,36,45,79,115,104,
111,119,45,99,111,108,108,101,99,116,105,111,110,45,101,114,114,223,5,33,48,
27,28,248,22,53,23,198,2,27,250,22,141,2,80,159,42,43,37,249,22,67,
23,203,2,247,22,189,13,11,28,23,193,2,192,87,94,23,193,1,91,159,37,
11,90,161,37,35,11,249,80,159,43,48,36,248,22,58,23,203,2,11,27,251,
80,158,46,52,2,17,23,202,1,28,248,22,75,23,199,2,23,199,2,248,22,
68,23,199,2,28,248,22,75,23,199,2,9,248,22,69,23,199,2,249,22,165,
13,23,195,1,28,248,22,75,23,197,1,87,94,23,197,1,6,7,7,109,97,
105,110,46,115,115,249,22,185,6,23,199,1,6,3,3,46,115,115,28,248,22,
162,6,23,198,2,87,94,23,194,1,27,248,80,159,40,59,36,23,200,2,27,
250,22,141,2,80,159,43,43,37,249,22,67,23,204,2,23,199,2,11,28,23,
193,2,192,87,94,23,193,1,91,159,37,11,90,161,37,35,11,249,80,159,44,
48,36,23,203,2,11,250,22,1,22,165,13,23,199,1,249,22,81,249,22,2,
32,0,89,162,8,44,36,43,9,222,33,49,23,200,1,248,22,77,23,200,1,
28,248,22,147,13,23,198,2,87,94,23,194,1,28,248,22,170,13,23,198,2,
23,197,2,248,22,77,6,26,26,32,40,97,32,112,97,116,104,32,109,117,115,
116,32,98,101,32,97,98,115,111,108,117,116,101,41,28,249,22,167,8,248,22,
68,23,200,2,2,25,27,250,22,141,2,80,159,42,43,37,249,22,67,23,203,
2,247,22,189,13,11,28,23,193,2,192,87,94,23,193,1,91,159,38,11,90,
161,37,35,11,249,80,159,44,48,36,248,22,92,23,204,2,11,90,161,36,37,
11,28,248,22,75,248,22,94,23,203,2,28,248,22,75,23,194,2,249,22,136,
14,0,8,35,114,120,34,91,46,93,34,23,196,2,11,10,27,27,28,23,197,
2,249,22,81,28,248,22,75,248,22,94,23,207,2,21,93,6,5,5,109,122,
108,105,98,249,22,1,22,81,249,22,2,80,159,50,8,25,36,248,22,94,23,
210,2,23,197,2,28,248,22,75,23,196,2,248,22,77,23,197,2,23,195,2,
251,80,158,48,52,2,17,23,204,1,248,22,68,23,198,2,248,22,69,23,198,
1,249,22,165,13,23,195,1,28,23,198,1,87,94,23,196,1,23,197,1,28,
248,22,75,23,197,1,87,94,23,197,1,6,7,7,109,97,105,110,46,115,115,
28,249,22,136,14,0,8,35,114,120,34,91,46,93,34,23,199,2,23,197,1,
249,22,185,6,23,199,1,6,3,3,46,115,115,28,249,22,167,8,248,22,68,
23,200,2,64,102,105,108,101,249,22,172,13,248,22,176,13,248,22,92,23,201,
2,248,80,159,41,59,36,23,201,2,12,87,94,28,28,248,22,147,13,23,194,
2,10,248,22,184,7,23,194,2,87,94,23,199,1,12,28,23,199,2,250,22,
134,9,67,114,101,113,117,105,114,101,249,22,146,7,6,17,17,98,97,100,32,
109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2,248,22,68,23,
199,2,6,0,0,23,202,1,87,94,23,199,1,250,22,135,9,2,17,249,22,
146,7,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,
2,248,22,68,23,199,2,6,0,0,23,200,2,27,28,248,22,184,7,23,195,
2,249,22,189,7,23,196,2,35,249,22,174,13,248,22,175,13,23,197,2,11,
27,28,248,22,184,7,23,196,2,249,22,189,7,23,197,2,36,248,80,158,41,
53,23,195,2,91,159,38,11,90,161,38,35,11,28,248,22,184,7,23,199,2,
250,22,7,2,26,249,22,189,7,23,203,2,37,2,26,248,22,168,13,23,198,
2,87,95,23,195,1,23,193,1,27,28,248,22,184,7,23,200,2,249,22,189,
7,23,201,2,38,249,80,158,46,54,23,197,2,5,0,27,28,248,22,184,7,
23,201,2,249,22,189,7,23,202,2,39,248,22,175,4,23,200,2,27,27,250,
22,141,2,80,159,50,42,37,248,22,154,14,247,22,129,12,11,28,23,193,2,
192,87,94,23,193,1,27,247,22,125,87,94,250,22,139,2,80,159,51,42,37,
248,22,154,14,247,22,129,12,195,192,87,95,28,23,208,1,27,250,22,141,2,
23,197,2,197,11,28,23,193,1,12,87,95,27,27,28,248,22,17,80,159,50,
45,37,80,159,49,45,37,247,22,19,250,22,25,248,22,23,23,197,2,80,159,
52,44,37,23,196,1,27,248,22,154,14,247,22,129,12,249,22,3,83,158,39,
20,97,94,89,162,8,44,36,54,9,226,12,11,2,3,33,50,23,195,1,23,
196,1,248,28,248,22,17,80,159,49,45,37,32,0,89,162,43,36,41,9,222,
33,51,80,159,48,8,26,36,89,162,43,35,50,9,227,13,9,8,4,3,33,
52,250,22,139,2,23,197,1,197,10,12,28,28,248,22,184,7,23,202,1,11,
27,248,22,162,6,23,207,2,28,192,192,27,248,22,53,23,208,2,28,192,192,
28,248,22,65,23,208,2,249,22,167,8,248,22,68,23,210,2,2,25,11,250,
22,139,2,80,159,49,43,37,28,248,22,162,6,23,209,2,249,22,67,23,210,
1,248,80,159,52,59,36,23,212,1,87,94,23,209,1,249,22,67,23,210,1,
247,22,189,13,252,22,186,7,23,208,1,23,207,1,23,205,1,23,203,1,201,
12,193,87,96,83,160,37,11,80,158,35,49,248,80,158,36,57,249,22,27,11,
80,158,38,51,248,22,155,4,80,159,36,50,37,248,22,129,5,80,159,36,36,
36,248,22,184,12,80,159,36,41,36,83,160,37,11,80,158,35,49,248,80,158,
36,57,249,22,27,11,80,158,38,51,159,35,20,103,159,35,16,1,11,16,0,
83,158,41,20,100,144,66,35,37,98,111,111,116,29,11,11,11,11,11,10,37,
80,158,35,35,20,103,159,39,16,23,2,1,2,2,30,2,4,72,112,97,116,
104,45,115,116,114,105,110,103,63,10,30,2,4,75,112,97,116,104,45,97,100,
100,45,115,117,102,102,105,120,7,30,2,6,2,7,4,30,2,6,1,23,101,
120,116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,
110,3,2,8,2,9,2,10,2,11,2,12,2,13,2,14,2,15,2,16,2,
17,30,2,18,2,7,4,30,2,4,69,45,102,105,110,100,45,99,111,108,0,
30,2,4,76,110,111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,6,
30,2,4,79,112,97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102,
105,120,9,2,19,2,20,30,2,18,74,114,101,112,97,114,97,109,101,116,101,
114,105,122,101,5,16,0,16,0,35,16,0,35,16,12,2,11,2,12,2,9,
2,10,2,13,2,14,2,2,2,8,2,1,2,16,2,15,2,17,47,11,11,
38,35,11,11,11,16,2,2,19,2,20,16,2,11,11,16,2,2,19,2,20,
37,37,36,11,11,11,16,0,16,0,16,0,35,35,11,11,11,11,16,0,16,
0,16,0,35,35,16,0,16,18,83,158,35,16,2,89,162,43,36,44,9,223,
0,33,27,80,159,35,8,26,36,83,158,35,16,2,89,162,43,36,44,9,223,
0,33,28,80,159,35,8,25,36,83,158,35,16,2,89,162,43,36,48,67,103,
101,116,45,100,105,114,223,0,33,29,80,159,35,59,36,83,158,35,16,2,89,
162,43,37,48,68,119,105,116,104,45,100,105,114,223,0,33,30,80,159,35,58,
36,83,158,35,16,2,248,22,181,7,69,115,111,45,115,117,102,102,105,120,80,
159,35,35,36,83,158,35,16,2,89,162,43,37,59,2,2,223,0,33,39,80,
159,35,36,36,83,158,35,16,2,32,0,89,162,8,44,36,41,2,8,222,192,
80,159,35,41,36,83,158,35,16,2,247,22,128,2,80,159,35,42,36,83,158,
35,16,2,247,22,127,80,159,35,43,36,83,158,35,16,2,247,22,63,80,159,
35,44,36,83,158,35,16,2,248,22,18,74,109,111,100,117,108,101,45,108,111,
97,100,105,110,103,80,159,35,45,36,83,158,35,16,2,11,80,158,35,46,83,
158,35,16,2,11,80,158,35,47,83,158,35,16,2,32,0,89,162,43,37,44,
2,15,222,33,45,80,159,35,48,36,83,158,35,16,2,11,80,158,35,49,83,
158,35,16,2,91,159,37,10,90,161,36,35,10,11,90,161,36,36,10,83,158,
38,20,96,96,2,17,89,162,8,44,36,50,9,224,2,0,33,46,89,162,43,
38,48,9,223,1,33,47,89,162,43,39,8,29,9,224,2,0,33,53,208,80,
159,35,50,36,83,158,35,16,2,89,162,43,35,44,2,19,223,0,33,54,80,
159,35,55,36,83,158,35,16,2,89,162,8,44,35,44,2,20,223,0,33,55,
80,159,35,56,36,96,29,94,2,3,68,35,37,107,101,114,110,101,108,11,29,
94,2,3,69,35,37,109,105,110,45,115,116,120,11,2,4,2,18,9,9,9,
35,0};
EVAL_ONE_SIZED_STR((char *)expr, 4180);
}

View File

@ -208,6 +208,17 @@ static void boot_module_resolver()
scheme_apply(boot, 0, NULL);
}
void scheme_seal_parameters()
{
Scheme_Object *seal, *a[2];
a[0] = scheme_make_pair(scheme_intern_symbol("quote"),
scheme_make_pair(scheme_intern_symbol("#%boot"),
scheme_null));
a[1] = scheme_intern_symbol("seal");
seal = scheme_dynamic_require(2, a);
scheme_apply(seal, 0, NULL);
}
void os_platform_init() {
#ifdef UNIX_LIMIT_STACK
struct rlimit rl;

View File

@ -9972,6 +9972,8 @@ void scheme_init_collection_paths_post(Scheme_Env *global_env, Scheme_Object *ex
a[0] = _scheme_apply(flcp, 2, a);
_scheme_apply(clcp, 1, a);
}
}
p->error_buf = save;
}

View File

@ -512,8 +512,8 @@ typedef struct {
struct Scheme_Config {
Scheme_Object so;
Scheme_Object *key;
Scheme_Object *cell;
Scheme_Object *key; /* NULL => cell is a Scheme_Parameterization* and next is NULL */
Scheme_Object *cell; /* value or thread cell (when key != NULL) or Scheme_Parameterization* (otherwise) */
int depth;
struct Scheme_Config *next;
};

View File

@ -13,12 +13,12 @@
consistently.)
*/
#define MZSCHEME_VERSION "4.2.1.6"
#define MZSCHEME_VERSION "4.2.1.7"
#define MZSCHEME_VERSION_X 4
#define MZSCHEME_VERSION_Y 2
#define MZSCHEME_VERSION_Z 1
#define MZSCHEME_VERSION_W 6
#define MZSCHEME_VERSION_W 7
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)

View File

@ -398,8 +398,8 @@
);
EVAL_ONE_STR(
"(module #%boot '#%kernel"
"(#%require '#%min-stx '#%utils)"
"(#%provide boot)"
"(#%require '#%min-stx '#%utils '#%paramz)"
"(#%provide boot seal)"
"(define-values(dll-suffix)"
"(system-type 'so-suffix))"
"(define-values(default-load/use-compiled)"
@ -483,8 +483,9 @@
"(values null(car l))"
"(let-values(((c f)(loop(cdr l))))"
"(values(cons(car l) c) f)))))))"
"(define-values(make-standard-module-name-resolver)"
"(lambda(orig-namespace)"
"(define-values(orig-paramz) #f)"
"(define-values(standard-module-name-resolver)"
"(let-values()"
"(define-values(planet-resolver) #f)"
"(define-values(standard-module-name-resolver)"
"(case-lambda "
@ -520,9 +521,11 @@
"(make-resolved-module-path(cadr s)))"
"((and(pair? s)(eq?(car s) 'planet))"
"(unless planet-resolver"
"(parameterize((current-namespace orig-namespace))"
"(with-continuation-mark"
" parameterization-key"
" orig-paramz"
" (set! planet-resolver (dynamic-require '(lib \"planet/resolver.ss\") 'planet-module-name-resolver))))"
"(planet-resolver s relto stx load?))"
"(planet-resolver s relto stx load? orig-paramz))"
"(else"
"(let((get-dir(lambda()"
"(or(and relto"
@ -698,7 +701,13 @@
" standard-module-name-resolver))"
"(define-values(boot)"
"(lambda()"
"(current-module-name-resolver(make-standard-module-name-resolver(current-namespace)))"
"(seal)"
"(current-module-name-resolver standard-module-name-resolver)"
"(current-load/use-compiled default-load/use-compiled)"
"(current-reader-guard default-reader-guard))))"
"(current-reader-guard default-reader-guard)))"
"(define-values(seal)"
"(lambda()"
"(set! orig-paramz"
"(reparameterize "
"(continuation-mark-set-first #f parameterization-key))))))"
);

View File

@ -5,9 +5,11 @@
;; needed to start up MzScheme --- especially to install the
;; default module-name resolver.
;; MzScheme runs ((dynamic-require ''#%boot boot)) on startup. So,
;; replace the content of this file to get a different set of initial
;; module definitions and parameter values.
;; MzScheme runs ((dynamic-require ''#%boot boot)) on startup. Then,
;; after configuring all startup parameters, MzScheme may run
;; ((dynamic-require ''#%boot seal)), and it may seal multiple
;; times. So, replace the content of this file to get a different set
;; of initial module definitions and parameter values.
;; When using makefiles, `make startup' in [the build directory for]
;; plt/src/mzscheme creates plt/src/mzscheme/src/cstartup.inc. Note
@ -472,9 +474,9 @@
;; Handlers to install on startup
(module #%boot '#%kernel
(#%require '#%min-stx '#%utils)
(#%require '#%min-stx '#%utils '#%paramz)
(#%provide boot)
(#%provide boot seal)
(define-values (dll-suffix)
(system-type 'so-suffix))
@ -565,8 +567,10 @@
(let-values ([(c f) (loop (cdr l))])
(values (cons (car l) c) f)))))))
(define-values (make-standard-module-name-resolver)
(lambda (orig-namespace)
(define-values (orig-paramz) #f)
(define-values (standard-module-name-resolver)
(let-values ()
(define-values (planet-resolver) #f)
(define-values (standard-module-name-resolver)
(case-lambda
@ -606,9 +610,11 @@
(make-resolved-module-path (cadr s))]
[(and (pair? s) (eq? (car s) 'planet))
(unless planet-resolver
(parameterize ([current-namespace orig-namespace])
(with-continuation-mark
parameterization-key
orig-paramz
(set! planet-resolver (dynamic-require '(lib "planet/resolver.ss") 'planet-module-name-resolver))))
(planet-resolver s relto stx load?)]
(planet-resolver s relto stx load? orig-paramz)]
[else
(let ([get-dir (lambda ()
(or (and relto
@ -791,6 +797,13 @@
(define-values (boot)
(lambda ()
(current-module-name-resolver (make-standard-module-name-resolver (current-namespace)))
(seal)
(current-module-name-resolver standard-module-name-resolver)
(current-load/use-compiled default-load/use-compiled)
(current-reader-guard default-reader-guard))))
(current-reader-guard default-reader-guard)))
(define-values (seal)
(lambda ()
(set! orig-paramz
(reparameterize
(continuation-mark-set-first #f parameterization-key))))))

View File

@ -336,6 +336,7 @@ static Scheme_Object *make_parameter(int argc, Scheme_Object *args[]);
static Scheme_Object *make_derived_parameter(int argc, Scheme_Object *args[]);
static Scheme_Object *extend_parameterization(int argc, Scheme_Object *args[]);
static Scheme_Object *parameterization_p(int argc, Scheme_Object *args[]);
static Scheme_Object *reparameterize(int argc, Scheme_Object **argv);
static Scheme_Object *make_thread_cell(int argc, Scheme_Object *args[]);
static Scheme_Object *thread_cell_p(int argc, Scheme_Object *args[]);
@ -859,6 +860,12 @@ void scheme_init_parameterization(Scheme_Env *env)
0, 0),
newenv);
scheme_add_global_constant("reparameterize",
scheme_make_prim_w_arity(reparameterize,
"reparameterize",
1, 1),
newenv);
scheme_finish_primitive_module(newenv);
scheme_protect_primitive_provide(newenv, NULL);
@ -6216,6 +6223,12 @@ void scheme_set_param(Scheme_Config *c, int pos, Scheme_Object *o)
scheme_current_thread->cell_values, o);
}
static Scheme_Parameterization *malloc_paramz()
{
return (Scheme_Parameterization *)scheme_malloc_tagged(sizeof(Scheme_Parameterization) +
(max_configs - 1) * sizeof(Scheme_Object*));
}
void scheme_flatten_config(Scheme_Config *orig_c)
{
int pos, i;
@ -6225,8 +6238,7 @@ void scheme_flatten_config(Scheme_Config *orig_c)
Scheme_Config *c;
if (orig_c->next) {
paramz = (Scheme_Parameterization *)scheme_malloc_tagged(sizeof(Scheme_Parameterization) +
(max_configs - 1) * sizeof(Scheme_Object*));
paramz = malloc_paramz();
#ifdef MZTAG_REQUIRED
paramz->type = scheme_rt_parameterization;
#endif
@ -6353,6 +6365,42 @@ static Scheme_Object *extend_parameterization(int argc, Scheme_Object *argv[])
return (Scheme_Object *)c;
}
static Scheme_Object *reparameterize(int argc, Scheme_Object **argv)
{
/* Clones values of all built-in parameters in a new parameterization.
This could be implemented in Scheme by enumerating all built-in parameters,
but it's easier and faster here. We need this for the Planet resolver. */
Scheme_Config *c, *naya;
Scheme_Parameterization *pz, *npz;
Scheme_Object *v;
int i;
if (!SCHEME_CONFIGP(argv[0]))
scheme_wrong_type("reparameterize", "parameterization", 0, argc, argv);
c = (Scheme_Config *)argv[0];
scheme_flatten_config(c);
pz = (Scheme_Parameterization *)c->cell;
npz = malloc_paramz();
memcpy(npz, pz, sizeof(Scheme_Parameterization));
naya = MALLOC_ONE_TAGGED(Scheme_Config);
naya->so.type = scheme_config_type;
naya->depth = 0;
naya->key = NULL;
naya->cell = (Scheme_Object *)npz;
naya->next = NULL;
for (i = 0; i < max_configs; i++) {
v = scheme_thread_cell_get(pz->prims[i], scheme_current_thread->cell_values);
v = scheme_make_thread_cell(v, 1);
npz->prims[i] = v;
}
return (Scheme_Object *)naya;
}
static Scheme_Object *parameter_p(int argc, Scheme_Object **argv)
{
Scheme_Object *v = argv[0];