default module name resolver: fix cache

The cache was keyed on `current-library-collection-paths`, but
not other parameters such as `current-library-collection-links`,
so it was too "sticky" in the case that some parameters changed.
Adjust the cache to be specific to loaded module in a namespace's
module registry.
This commit is contained in:
Matthew Flatt 2014-05-14 05:42:58 -06:00
parent 62ff915a56
commit a7ad0e3a01
4 changed files with 262 additions and 232 deletions

View File

@ -150,6 +150,16 @@ bytecode-file information recorded by the @tech{compiled-load handler}
for the source namespace's @tech{module registry} is transferred to
the target namespace's @tech{module registry}.
The default module name resolver also maintains a small,
@tech{module registry}-specific cache that maps @racket[lib] and symbolic
module paths to their resolutions. This cache is consulted before
checking parameters such as @racket[current-library-collection-links]
and @racket[current-library-collection-paths], so results may
``stick'' even if those parameter values change. An entry is added to
the cache only when the fourth argument to the module name resolver is
true (indicating that a module should be loaded) and only when loading
succeeds.
Module loading is suppressed (i.e., @racket[#f] is supplied as a fourth
argument to the module name resolver) when resolving module paths in
@tech{syntax objects} (see @secref["stxobj-model"]). When a

View File

@ -1,5 +1,5 @@
{
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,54,46,48,46,49,46,56,84,0,0,0,0,0,0,0,0,0,0,
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,54,46,48,46,49,46,57,84,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,51,0,0,0,1,0,0,10,0,14,0,
27,0,31,0,38,0,42,0,49,0,54,0,61,0,66,0,69,0,74,0,83,
0,87,0,93,0,107,0,121,0,124,0,130,0,134,0,136,0,147,0,149,0,
@ -16,12 +16,12 @@
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,36,11,8,240,
156,88,0,0,95,144,2,17,36,36,144,2,16,36,36,144,2,16,36,36,16,
160,88,0,0,95,144,2,17,36,36,144,2,16,36,36,144,2,16,36,36,16,
20,2,8,2,2,2,4,2,2,2,5,2,2,2,6,2,2,2,7,2,2,
2,10,2,2,2,3,2,2,2,9,2,2,2,11,2,2,2,12,2,2,97,
37,11,8,240,156,88,0,0,93,144,2,16,36,37,16,2,2,13,146,2,2,
37,2,13,2,2,2,13,96,11,11,8,240,156,88,0,0,16,0,96,38,11,
8,240,156,88,0,0,16,0,18,98,64,104,101,114,101,13,16,6,36,2,14,
37,11,8,240,160,88,0,0,93,144,2,16,36,37,16,2,2,13,146,2,2,
37,2,13,2,2,2,13,96,11,11,8,240,160,88,0,0,16,0,96,38,11,
8,240,160,88,0,0,16,0,18,98,64,104,101,114,101,13,16,6,36,2,14,
2,2,11,11,11,8,32,8,31,8,30,8,29,27,248,22,164,4,195,249,22,
157,4,80,143,39,36,251,22,90,2,18,248,22,102,199,12,249,22,80,2,19,
248,22,104,201,27,248,22,164,4,195,249,22,157,4,80,143,39,36,251,22,90,
@ -30,14 +30,14 @@
82,194,248,22,152,18,193,249,22,157,4,80,143,39,36,251,22,90,2,18,248,
22,152,18,199,249,22,80,2,4,248,22,153,18,201,11,18,100,10,13,16,6,
36,2,14,2,2,11,11,11,8,32,8,31,8,30,8,29,16,4,11,11,2,
20,3,1,8,101,110,118,49,55,56,50,55,16,4,11,11,2,21,3,1,8,
101,110,118,49,55,56,50,56,27,248,22,82,248,22,164,4,196,28,248,22,88,
20,3,1,8,101,110,118,49,55,56,50,57,16,4,11,11,2,21,3,1,8,
101,110,118,49,55,56,51,48,27,248,22,82,248,22,164,4,196,28,248,22,88,
193,20,14,144,37,36,37,28,248,22,88,248,22,82,194,248,22,152,18,193,249,
22,157,4,80,143,39,36,250,22,90,2,22,248,22,90,249,22,90,248,22,90,
2,23,248,22,152,18,201,251,22,90,2,18,2,23,2,23,249,22,80,2,11,
248,22,153,18,204,18,100,11,13,16,6,36,2,14,2,2,11,11,11,8,32,
8,31,8,30,8,29,16,4,11,11,2,20,3,1,8,101,110,118,49,55,56,
51,48,16,4,11,11,2,21,3,1,8,101,110,118,49,55,56,51,49,248,22,
51,50,16,4,11,11,2,21,3,1,8,101,110,118,49,55,56,51,51,248,22,
164,4,193,27,248,22,164,4,194,249,22,80,248,22,90,248,22,81,196,248,22,
153,18,195,27,248,22,82,248,22,164,4,23,197,1,249,22,157,4,80,143,39,
36,28,248,22,64,248,22,158,4,248,22,81,23,198,2,27,249,22,2,32,0,
@ -68,8 +68,8 @@
9,248,22,158,4,248,22,81,200,64,101,108,115,101,10,248,22,152,18,197,250,
22,91,2,22,9,248,22,153,18,200,249,22,80,2,8,248,22,82,202,99,13,
16,6,36,2,14,2,2,11,11,11,8,32,8,31,8,30,8,29,16,4,11,
11,2,20,3,1,8,101,110,118,49,55,56,53,51,16,4,11,11,2,21,3,
1,8,101,110,118,49,55,56,53,52,18,143,94,10,64,118,111,105,100,8,48,
11,2,20,3,1,8,101,110,118,49,55,56,53,53,16,4,11,11,2,21,3,
1,8,101,110,118,49,55,56,53,54,18,143,94,10,64,118,111,105,100,8,48,
27,248,22,82,248,22,164,4,196,249,22,157,4,80,143,39,36,28,248,22,64,
248,22,158,4,248,22,81,197,250,22,90,2,28,248,22,90,248,22,152,18,199,
248,22,102,198,27,248,22,158,4,248,22,152,18,197,250,22,90,2,28,248,22,
@ -100,7 +100,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 2051);
}
{
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,54,46,48,46,49,46,56,84,0,0,0,0,0,0,0,0,0,0,
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,54,46,48,46,49,46,57,84,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,187,0,0,0,1,0,0,8,0,21,0,
26,0,43,0,55,0,77,0,106,0,150,0,156,0,165,0,172,0,187,0,205,
0,217,0,233,0,247,0,13,1,32,1,39,1,73,1,90,1,107,1,130,1,
@ -559,7 +559,7 @@
22,139,15,10,22,140,15,10,22,143,15,10,22,142,15,11,22,144,15,10,22,
141,15,10,22,145,15,10,22,146,15,10,22,147,15,10,22,148,15,10,22,149,
15,11,22,150,15,10,22,136,15,11,247,23,193,1,250,22,177,11,2,8,2,
52,23,196,1,248,22,9,20,20,94,88,148,36,37,8,43,16,4,8,128,6,
52,23,196,1,248,22,8,20,20,94,88,148,36,37,8,43,16,4,8,128,6,
8,128,104,8,240,0,64,0,0,36,9,224,1,2,33,144,2,23,195,1,0,
7,35,114,120,34,47,43,34,28,248,22,152,7,23,195,2,27,249,22,162,16,
2,146,2,23,197,2,28,23,193,2,28,249,22,128,4,248,22,101,23,196,2,
@ -1017,7 +1017,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 19187);
}
{
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,54,46,48,46,49,46,56,84,0,0,0,0,0,0,0,0,0,0,
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,54,46,48,46,49,46,57,84,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,14,0,0,0,1,0,0,15,0,40,0,
57,0,75,0,97,0,120,0,140,0,162,0,171,0,180,0,187,0,196,0,203,
0,0,0,231,1,0,0,74,35,37,112,108,97,99,101,45,115,116,114,117,99,
@ -1047,7 +1047,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 557);
}
{
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,54,46,48,46,49,46,56,84,0,0,0,0,0,0,0,0,0,0,
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,54,46,48,46,49,46,57,84,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,106,0,0,0,1,0,0,7,0,18,0,
45,0,51,0,60,0,67,0,89,0,102,0,128,0,145,0,167,0,175,0,187,
0,202,0,218,0,236,0,0,1,12,1,28,1,51,1,75,1,87,1,118,1,
@ -1057,8 +1057,8 @@
5,249,12,23,13,74,13,165,13,181,13,197,13,211,13,227,13,46,14,62,14,
78,14,94,14,169,14,76,15,92,15,167,15,162,16,42,17,117,17,24,18,37,
18,190,18,118,19,161,19,243,19,115,20,176,20,184,20,195,20,229,21,243,21,
15,22,28,22,205,22,212,22,116,23,138,23,158,23,220,23,230,23,244,23,25,
24,124,24,128,24,135,24,89,25,192,33,245,33,13,34,37,34,0,0,64,38,
15,22,28,22,205,22,212,22,116,23,136,23,236,23,2,24,12,24,26,24,63,
24,162,24,166,24,173,24,122,25,14,34,67,34,91,34,115,34,0,0,142,38,
0,0,66,35,37,98,111,111,116,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,68,35,37,112,97,114,97,109,122,29,
@ -1345,191 +1345,195 @@
111,100,117,108,101,32,112,97,116,104,58,32,126,115,10,23,202,2,248,22,167,
13,28,23,196,2,251,22,175,12,23,198,1,247,22,29,248,22,90,23,201,1,
23,199,1,86,94,23,196,1,250,22,138,13,23,197,1,247,22,29,23,198,1,
28,249,22,158,7,194,2,38,2,29,28,249,22,158,7,194,2,37,62,117,112,
192,32,93,88,148,8,36,37,50,11,67,115,115,45,62,114,107,116,222,33,94,
19,248,22,155,7,194,28,249,22,132,4,23,195,4,39,28,249,22,158,7,6,
3,3,46,115,115,249,22,174,7,197,249,22,184,3,23,199,4,39,249,22,175,
7,250,22,174,7,198,36,249,22,184,3,23,200,4,39,2,42,193,193,2,0,
8,35,114,120,34,91,46,93,34,32,96,88,148,8,36,37,47,11,2,33,222,
33,97,28,248,22,88,23,194,2,9,250,22,91,6,4,4,10,32,32,32,248,
22,172,15,248,22,103,23,198,2,248,2,96,248,22,82,23,198,1,28,249,22,
170,9,248,22,82,23,200,2,23,197,1,28,249,22,168,9,248,22,152,18,23,
200,1,23,196,1,251,22,173,11,2,23,6,41,41,99,121,99,108,101,32,105,
110,32,108,111,97,100,105,110,103,10,32,32,97,116,32,112,97,116,104,58,32,
126,97,10,32,32,112,97,116,104,115,58,126,97,23,200,1,249,22,1,22,175,
7,248,2,96,248,22,95,23,201,1,12,12,247,23,193,1,250,22,157,4,11,
196,195,20,13,144,80,144,45,50,38,249,22,80,249,22,80,248,22,185,16,247,
22,138,14,23,201,1,23,195,1,20,13,144,80,144,45,38,37,252,80,144,50,
39,37,249,22,33,11,80,144,52,38,37,22,190,4,23,200,2,22,128,5,248,
28,23,207,2,20,20,94,88,148,8,36,37,46,11,9,223,14,33,100,23,207,
1,86,94,23,207,1,22,7,28,248,22,64,23,206,2,23,205,1,28,28,248,
22,78,23,206,2,249,22,168,9,248,22,152,18,23,208,2,2,34,11,23,205,
1,86,94,23,205,1,28,248,22,150,5,23,202,2,27,248,22,152,5,23,203,
2,28,248,22,64,193,249,22,90,2,4,194,192,23,201,2,249,247,22,175,5,
23,200,1,27,248,22,68,248,22,172,15,23,201,1,28,23,203,2,28,250,22,
158,2,248,22,81,23,201,1,23,201,1,11,249,22,80,11,204,249,22,80,194,
204,192,86,96,28,248,22,160,5,23,196,2,12,28,248,22,155,4,23,198,2,
250,22,175,11,11,6,15,15,98,97,100,32,109,111,100,117,108,101,32,112,97,
116,104,23,200,2,250,22,177,11,2,23,2,35,23,198,2,28,28,23,196,2,
248,22,150,5,23,197,2,10,12,250,22,177,11,2,23,6,31,31,40,111,114,
47,99,32,35,102,32,114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,
45,112,97,116,104,63,41,23,199,2,28,28,23,197,2,248,22,155,4,23,198,
2,10,12,250,22,177,11,2,23,6,17,17,40,111,114,47,99,32,35,102,32,
115,121,110,116,97,120,63,41,23,200,2,28,28,248,22,78,23,196,2,249,22,
168,9,248,22,152,18,23,198,2,2,4,11,86,97,23,198,1,23,197,1,23,
196,1,23,193,1,248,22,151,5,248,22,102,23,197,1,28,28,248,22,78,23,
32,92,88,148,8,36,37,50,11,67,115,115,45,62,114,107,116,222,33,93,19,
248,22,155,7,194,28,249,22,132,4,23,195,4,39,28,249,22,168,9,7,46,
249,22,156,7,197,249,22,184,3,23,199,4,39,28,28,249,22,168,9,7,115,
249,22,156,7,197,249,22,184,3,23,199,4,38,249,22,168,9,7,115,249,22,
156,7,197,249,22,184,3,23,199,4,37,11,249,22,175,7,250,22,174,7,198,
36,249,22,184,3,23,200,4,39,2,42,193,193,193,2,28,249,22,158,7,194,
2,38,2,29,28,249,22,158,7,194,2,37,62,117,112,192,0,8,35,114,120,
34,91,46,93,34,32,96,88,148,8,36,37,47,11,2,33,222,33,97,28,248,
22,88,23,194,2,9,250,22,91,6,4,4,10,32,32,32,248,22,172,15,248,
22,103,23,198,2,248,2,96,248,22,82,23,198,1,28,249,22,170,9,248,22,
82,23,200,2,23,197,1,28,249,22,168,9,248,22,152,18,23,200,1,23,196,
1,251,22,173,11,2,23,6,41,41,99,121,99,108,101,32,105,110,32,108,111,
97,100,105,110,103,10,32,32,97,116,32,112,97,116,104,58,32,126,97,10,32,
32,112,97,116,104,115,58,126,97,23,200,1,249,22,1,22,175,7,248,2,96,
248,22,95,23,201,1,12,12,247,23,193,1,250,22,157,4,11,196,195,20,13,
144,80,144,46,50,38,249,22,80,249,22,80,23,198,1,23,202,1,23,195,1,
20,13,144,80,144,46,38,37,252,80,144,51,39,37,249,22,33,11,80,144,53,
38,37,22,190,4,23,201,2,22,128,5,248,28,23,208,2,20,20,94,88,148,
8,36,37,46,11,9,223,15,33,100,23,208,1,86,94,23,208,1,22,7,28,
248,22,64,23,207,2,23,206,1,28,28,248,22,78,23,207,2,249,22,168,9,
248,22,152,18,23,209,2,2,34,11,23,206,1,86,94,23,206,1,28,248,22,
150,5,23,203,2,27,248,22,152,5,23,204,2,28,248,22,64,193,249,22,90,
2,4,194,192,23,202,2,249,247,22,175,5,23,201,1,27,248,22,68,248,22,
172,15,23,202,1,28,23,204,2,28,250,22,158,2,248,22,81,23,202,1,23,
202,1,11,249,22,80,11,205,249,22,80,194,205,192,86,96,28,248,22,160,5,
23,196,2,12,28,248,22,155,4,23,198,2,250,22,175,11,11,6,15,15,98,
97,100,32,109,111,100,117,108,101,32,112,97,116,104,23,200,2,250,22,177,11,
2,23,2,35,23,198,2,28,28,23,196,2,248,22,150,5,23,197,2,10,12,
250,22,177,11,2,23,6,31,31,40,111,114,47,99,32,35,102,32,114,101,115,
111,108,118,101,100,45,109,111,100,117,108,101,45,112,97,116,104,63,41,23,199,
2,28,28,23,197,2,248,22,155,4,23,198,2,10,12,250,22,177,11,2,23,
6,17,17,40,111,114,47,99,32,35,102,32,115,121,110,116,97,120,63,41,23,
200,2,28,28,248,22,78,23,196,2,249,22,168,9,248,22,152,18,23,198,2,
2,4,11,86,97,23,198,1,23,197,1,23,196,1,23,193,1,248,22,151,5,
248,22,102,23,197,1,28,28,248,22,78,23,196,2,28,249,22,168,9,248,22,
152,18,23,198,2,2,36,28,248,22,78,248,22,102,23,197,2,249,22,168,9,
248,22,106,23,198,2,2,4,11,11,11,86,97,23,198,1,23,197,1,23,196,
1,23,193,1,248,22,151,5,249,2,87,248,22,119,23,199,2,248,22,104,23,
199,1,28,28,248,22,78,23,196,2,28,249,22,168,9,248,22,152,18,23,198,
2,2,36,28,28,249,22,170,9,248,22,102,23,198,2,2,38,10,249,22,170,
9,248,22,102,23,198,2,2,37,28,23,196,2,27,248,22,152,5,23,198,2,
28,248,22,64,193,10,28,248,22,78,193,248,22,64,248,22,152,18,194,11,11,
11,11,11,86,96,23,198,1,23,197,1,23,193,1,27,248,22,152,5,23,198,
1,248,22,151,5,249,2,87,28,248,22,78,23,197,2,248,22,152,18,23,197,
2,23,196,2,27,28,249,22,170,9,248,22,102,23,203,2,2,37,248,22,153,
18,200,248,22,104,200,28,248,22,78,23,198,2,249,22,94,248,22,153,18,199,
194,192,28,28,248,22,78,23,196,2,249,22,168,9,248,22,152,18,23,198,2,
2,40,11,86,94,248,80,144,38,8,29,39,23,194,2,253,24,199,1,23,201,
1,23,202,1,23,203,1,23,204,1,11,80,143,43,56,28,28,248,22,78,23,
196,2,28,249,22,168,9,248,22,152,18,23,198,2,2,36,28,248,22,78,248,
22,102,23,197,2,249,22,168,9,248,22,106,23,198,2,2,4,11,11,11,86,
97,23,198,1,23,197,1,23,196,1,23,193,1,248,22,151,5,249,2,87,248,
22,119,23,199,2,248,22,104,23,199,1,28,28,248,22,78,23,196,2,28,249,
22,168,9,248,22,152,18,23,198,2,2,36,28,28,249,22,170,9,248,22,102,
23,198,2,2,38,10,249,22,170,9,248,22,102,23,198,2,2,37,28,23,196,
2,27,248,22,152,5,23,198,2,28,248,22,64,193,10,28,248,22,78,193,248,
22,64,248,22,152,18,194,11,11,11,11,11,86,96,23,198,1,23,197,1,23,
193,1,27,248,22,152,5,23,198,1,248,22,151,5,249,2,87,28,248,22,78,
23,197,2,248,22,152,18,23,197,2,23,196,2,27,28,249,22,170,9,248,22,
102,23,203,2,2,37,248,22,153,18,200,248,22,104,200,28,248,22,78,23,198,
2,249,22,94,248,22,153,18,199,194,192,28,28,248,22,78,23,196,2,249,22,
168,9,248,22,152,18,23,198,2,2,40,11,86,94,248,80,144,38,8,29,39,
23,194,2,253,24,199,1,23,201,1,23,202,1,23,203,1,23,204,1,11,80,
143,43,56,28,28,248,22,78,23,196,2,28,249,22,168,9,248,22,152,18,23,
198,2,2,36,28,248,22,78,248,22,102,23,197,2,249,22,168,9,248,22,106,
23,198,2,2,40,11,11,11,86,94,248,80,144,38,8,29,39,23,194,2,253,
24,199,1,248,22,102,23,202,2,23,202,1,23,203,1,23,204,1,248,22,104,
23,202,1,80,143,43,56,86,94,23,193,1,27,88,148,8,36,37,54,8,240,
0,0,8,0,79,115,104,111,119,45,99,111,108,108,101,99,116,105,111,110,45,
101,114,114,225,2,5,3,33,91,27,28,248,22,78,23,198,2,28,249,22,168,
9,2,36,248,22,152,18,23,200,2,27,248,22,102,23,199,2,28,28,249,22,
170,9,23,195,2,2,38,10,249,22,170,9,23,195,2,2,37,86,94,23,193,
1,28,23,199,2,27,248,22,152,5,23,201,2,28,248,22,78,193,248,22,152,
18,193,192,250,22,173,11,2,23,6,45,45,110,111,32,98,97,115,101,32,112,
97,116,104,32,102,111,114,32,114,101,108,97,116,105,118,101,32,115,117,98,109,
111,100,117,108,101,32,112,97,116,104,58,32,126,46,115,23,201,2,192,23,197,
2,23,197,2,27,28,248,22,78,23,199,2,28,249,22,168,9,2,36,248,22,
152,18,23,201,2,27,28,28,28,249,22,170,9,248,22,102,23,202,2,2,38,
10,249,22,170,9,248,22,102,23,202,2,2,37,23,200,2,11,27,248,22,152,
5,23,202,2,27,28,249,22,170,9,248,22,102,23,204,2,2,37,248,22,153,
18,23,202,1,248,22,104,23,202,1,28,248,22,78,23,195,2,249,2,87,248,
22,152,18,23,197,2,249,22,94,248,22,153,18,23,199,1,23,197,1,249,2,
87,23,196,1,23,195,1,249,2,87,2,38,28,249,22,170,9,248,22,102,23,
204,2,2,37,248,22,153,18,23,202,1,248,22,104,23,202,1,28,248,22,78,
193,248,22,153,18,193,11,11,11,27,28,248,22,64,23,196,2,27,248,80,144,
43,48,39,249,22,80,23,199,2,247,22,148,16,28,23,193,2,192,86,94,23,
193,1,90,144,38,11,89,146,38,36,11,249,80,144,46,54,39,248,22,71,23,
201,2,11,27,28,248,22,88,23,195,2,2,41,249,22,175,7,23,197,2,2,
42,251,80,144,49,8,24,39,23,204,1,28,248,22,88,23,199,2,23,199,1,
86,94,23,199,1,248,22,81,23,199,2,28,248,22,88,23,199,2,86,94,23,
198,1,9,248,22,153,18,23,199,1,23,197,1,28,248,22,152,7,23,196,2,
86,94,23,196,1,27,248,80,144,43,8,30,39,23,202,2,27,248,80,144,44,
48,39,249,22,80,23,200,2,23,197,2,28,23,193,2,192,86,94,23,193,1,
90,144,38,11,89,146,38,36,11,249,80,144,47,54,39,23,201,2,11,250,22,
1,22,186,15,23,199,1,249,22,94,249,22,2,32,0,88,148,8,36,37,44,
11,9,222,33,92,23,200,1,248,22,90,248,2,93,23,201,1,28,248,22,168,
15,23,196,2,86,94,23,196,1,248,80,144,42,8,31,39,248,22,132,16,28,
248,22,129,16,23,198,2,23,197,2,249,22,130,16,23,199,2,248,80,144,46,
8,30,39,23,205,2,28,249,22,168,9,248,22,81,23,198,2,2,34,27,248,
80,144,43,48,39,249,22,80,23,199,2,247,22,148,16,28,23,193,2,192,86,
94,23,193,1,90,144,39,11,89,146,38,36,11,249,80,144,47,54,39,248,22,
102,23,202,2,11,89,146,37,38,11,28,248,22,88,248,22,104,23,201,2,28,
248,22,88,23,194,2,249,22,164,16,2,95,23,196,2,11,10,27,28,23,196,
2,248,2,93,23,196,2,28,248,22,88,23,195,2,2,41,28,249,22,164,16,
2,95,23,197,2,248,2,93,23,196,2,249,22,175,7,23,197,2,2,42,27,
28,23,197,1,86,94,23,196,1,249,22,94,28,248,22,88,248,22,104,23,205,
2,21,93,6,5,5,109,122,108,105,98,249,22,1,22,94,249,22,2,80,144,
53,8,32,39,248,22,104,23,208,2,23,197,1,28,248,22,88,23,196,2,86,
94,23,195,1,248,22,90,23,197,1,86,94,23,196,1,23,195,1,251,80,144,
51,8,24,39,23,206,1,248,22,81,23,198,2,248,22,153,18,23,198,1,23,
198,1,28,249,22,168,9,248,22,152,18,23,198,2,2,39,248,80,144,42,8,
31,39,248,22,132,16,249,22,130,16,248,22,134,16,248,22,102,23,201,2,248,
80,144,46,8,30,39,23,205,2,12,86,94,28,28,248,22,168,15,23,194,2,
10,248,22,183,8,23,194,2,12,28,23,201,2,250,22,175,11,67,114,101,113,
117,105,114,101,249,22,136,8,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,81,23,199,2,6,0,0,23,
204,2,250,22,177,11,2,23,2,35,23,198,2,27,28,248,22,183,8,23,195,
2,249,22,188,8,23,196,2,36,249,22,132,16,248,22,133,16,23,197,2,11,
27,28,248,22,183,8,23,196,2,249,22,188,8,23,197,2,37,248,80,144,44,
8,25,39,23,195,2,90,144,39,11,89,146,39,36,11,28,248,22,183,8,23,
199,2,250,22,7,2,43,249,22,188,8,23,203,2,38,2,43,248,22,189,15,
23,198,2,86,95,23,195,1,23,193,1,27,28,248,22,183,8,23,200,2,249,
22,188,8,23,201,2,39,249,80,144,49,59,39,23,197,2,5,0,27,28,248,
22,183,8,23,201,2,249,22,188,8,23,202,2,40,248,22,151,5,23,200,2,
27,250,22,158,2,80,144,52,41,38,248,22,185,16,247,22,138,14,11,27,28,
23,194,2,23,194,1,86,94,23,194,1,27,249,22,80,247,22,138,2,247,22,
138,2,86,94,250,22,156,2,80,144,54,41,38,248,22,185,16,247,22,138,14,
195,192,27,28,23,204,2,248,22,151,5,249,22,80,248,22,152,5,23,200,2,
23,207,2,23,196,2,86,95,28,23,212,1,27,250,22,158,2,248,22,81,23,
199,2,196,11,28,23,193,1,12,27,27,28,248,22,17,80,144,55,51,38,80,
144,54,51,38,247,22,19,251,22,33,11,80,144,58,50,38,9,23,197,1,27,
248,22,185,16,247,22,138,14,86,94,249,22,3,20,20,94,88,148,8,36,37,
54,11,9,226,14,13,2,3,33,98,23,195,1,23,196,2,248,28,248,22,17,
80,144,56,51,38,32,0,88,148,36,37,42,11,9,222,33,99,80,144,55,8,
33,39,20,20,97,88,148,36,36,8,24,8,240,12,64,0,0,9,232,19,22,
15,16,13,12,8,7,5,2,33,101,23,195,1,23,198,1,23,208,1,23,215,
1,12,28,28,248,22,183,8,23,204,1,11,28,248,22,152,7,23,206,2,10,
28,248,22,64,23,206,2,10,28,248,22,78,23,206,2,249,22,168,9,248,22,
152,18,23,208,2,2,34,11,249,80,144,53,49,39,28,248,22,152,7,23,208,
2,249,22,80,23,209,1,248,80,144,56,8,30,39,23,215,1,86,94,23,212,
1,249,22,80,23,209,1,247,22,148,16,252,22,185,8,23,209,1,23,208,1,
23,206,1,23,204,1,23,203,1,12,192,86,96,20,18,144,11,80,143,36,56,
248,80,144,37,8,28,37,249,22,33,11,80,144,39,58,37,248,22,189,4,80,
144,37,57,38,248,22,175,5,80,144,37,37,39,248,22,137,15,80,144,37,45,
39,20,18,144,11,80,143,36,56,248,80,144,37,8,28,37,249,22,33,11,80,
144,39,58,37,20,18,144,11,80,143,36,56,248,80,144,37,8,28,37,249,22,
33,11,80,144,39,58,37,144,36,20,114,144,36,16,1,11,16,0,20,26,15,
53,9,2,1,2,1,29,11,11,11,11,9,9,11,11,11,10,38,80,143,36,
36,20,114,144,41,16,29,2,2,2,3,30,2,6,2,7,11,6,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,11,4,30,2,8,72,112,97,116,104,45,115,116,114,105,110,103,
63,39,196,15,2,9,30,2,8,71,114,101,114,111,111,116,45,112,97,116,104,
41,196,16,30,2,8,75,112,97,116,104,45,97,100,100,45,115,117,102,102,105,
120,41,196,12,2,10,2,11,2,12,2,13,2,14,2,15,2,16,2,17,2,
18,2,19,2,20,2,21,2,22,2,23,30,2,24,2,7,11,6,30,2,8,
79,112,97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102,105,120,41,
196,14,30,2,8,73,102,105,110,100,45,99,111,108,45,102,105,108,101,44,196,
4,30,2,8,76,110,111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,
39,196,11,2,25,2,26,30,2,24,74,114,101,112,97,114,97,109,101,116,101,
114,105,122,101,11,7,16,0,37,39,36,16,0,36,16,16,2,16,2,17,2,
9,2,13,2,18,2,19,2,12,2,3,2,11,2,2,2,21,2,14,2,15,
2,10,2,20,2,23,52,11,11,11,16,3,2,25,2,22,2,26,16,3,11,
11,11,16,3,2,25,2,22,2,26,39,39,37,12,11,11,16,0,16,0,16,
0,36,36,11,12,11,11,16,0,16,0,16,0,36,36,16,24,20,15,16,2,
248,22,179,8,69,115,111,45,115,117,102,102,105,120,80,144,36,36,37,20,15,
16,2,88,148,36,38,8,43,8,189,3,2,3,223,0,33,56,80,144,36,37,
37,20,15,16,2,32,0,88,148,8,36,41,52,11,2,10,222,33,57,80,144,
36,44,37,20,15,16,2,20,27,143,32,0,88,148,8,36,37,42,11,2,11,
222,192,32,0,88,148,8,36,37,42,11,2,11,222,192,80,144,36,45,37,20,
15,16,2,247,22,141,2,80,144,36,41,37,20,15,16,2,8,128,8,80,144,
36,46,37,20,15,16,2,249,22,184,8,8,128,8,11,80,144,36,47,37,20,
15,16,2,88,148,8,36,37,50,8,128,32,2,14,223,0,33,58,80,144,36,
48,37,20,15,16,2,88,148,8,36,38,55,8,128,32,2,15,223,0,33,59,
80,144,36,49,37,20,15,16,2,247,22,76,80,144,36,50,37,20,15,16,2,
248,22,18,74,109,111,100,117,108,101,45,108,111,97,100,105,110,103,80,144,36,
51,37,20,15,16,2,11,80,143,36,52,20,15,16,2,11,80,143,36,53,20,
15,16,2,32,0,88,148,36,38,57,11,2,20,222,33,78,80,144,36,54,37,
20,15,16,2,32,0,88,148,8,36,37,49,11,2,21,222,33,79,80,144,36,
55,37,20,15,16,2,11,80,143,36,56,20,15,16,2,88,149,8,34,37,45,
8,240,0,0,80,0,1,21,112,114,101,112,45,112,108,97,110,101,116,45,114,
101,115,111,108,118,101,114,33,37,224,1,0,33,80,80,144,36,8,29,39,20,
15,16,2,88,148,36,37,50,8,240,0,0,3,0,67,103,101,116,45,100,105,
114,223,0,33,81,80,144,36,8,30,39,20,15,16,2,88,148,36,37,49,8,
240,0,0,128,0,72,112,97,116,104,45,115,115,45,62,114,107,116,223,0,33,
82,80,144,36,8,31,39,20,15,16,2,88,148,8,36,37,45,8,240,0,0,
4,0,9,223,0,33,83,80,144,36,8,32,39,20,15,16,2,88,148,36,37,
45,8,240,0,128,0,0,9,223,0,33,84,80,144,36,8,33,39,20,15,16,
2,27,11,20,19,143,36,90,144,37,10,89,146,37,36,10,20,25,96,2,23,
88,148,8,36,38,54,8,32,9,224,2,1,33,85,88,148,36,39,49,11,9,
223,0,33,86,88,148,36,40,8,32,16,4,8,240,44,240,0,0,8,240,156,
227,0,0,39,36,9,224,2,1,33,102,207,80,144,36,57,37,20,15,16,2,
88,148,36,36,45,16,2,8,130,8,8,176,65,2,25,223,0,33,103,80,144,
36,8,26,37,20,15,16,2,20,27,143,88,148,8,36,36,45,16,2,36,8,
144,65,2,26,223,0,33,104,88,148,8,36,36,45,16,2,36,8,144,65,2,
26,223,0,33,105,80,144,36,8,27,37,96,29,94,2,4,68,35,37,107,101,
114,110,101,108,11,29,94,2,4,69,35,37,109,105,110,45,115,116,120,11,2,
8,2,24,9,9,9,36,9,0};
EVAL_ONE_SIZED_STR((char *)expr, 10046);
22,102,23,197,2,249,22,168,9,248,22,106,23,198,2,2,40,11,11,11,86,
94,248,80,144,38,8,29,39,23,194,2,253,24,199,1,248,22,102,23,202,2,
23,202,1,23,203,1,23,204,1,248,22,104,23,202,1,80,143,43,56,86,94,
23,193,1,27,88,148,8,36,37,54,8,240,0,0,8,0,79,115,104,111,119,
45,99,111,108,108,101,99,116,105,111,110,45,101,114,114,225,2,5,3,33,91,
27,28,248,22,78,23,198,2,28,249,22,168,9,2,36,248,22,152,18,23,200,
2,27,248,22,102,23,199,2,28,28,249,22,170,9,23,195,2,2,38,10,249,
22,170,9,23,195,2,2,37,86,94,23,193,1,28,23,199,2,27,248,22,152,
5,23,201,2,28,248,22,78,193,248,22,152,18,193,192,250,22,173,11,2,23,
6,45,45,110,111,32,98,97,115,101,32,112,97,116,104,32,102,111,114,32,114,
101,108,97,116,105,118,101,32,115,117,98,109,111,100,117,108,101,32,112,97,116,
104,58,32,126,46,115,23,201,2,192,23,197,2,23,197,2,27,28,248,22,78,
23,199,2,28,249,22,168,9,2,36,248,22,152,18,23,201,2,27,28,28,28,
249,22,170,9,248,22,102,23,202,2,2,38,10,249,22,170,9,248,22,102,23,
202,2,2,37,23,200,2,11,27,248,22,152,5,23,202,2,27,28,249,22,170,
9,248,22,102,23,204,2,2,37,248,22,153,18,23,202,1,248,22,104,23,202,
1,28,248,22,78,23,195,2,249,2,87,248,22,152,18,23,197,2,249,22,94,
248,22,153,18,23,199,1,23,197,1,249,2,87,23,196,1,23,195,1,249,2,
87,2,38,28,249,22,170,9,248,22,102,23,204,2,2,37,248,22,153,18,23,
202,1,248,22,104,23,202,1,28,248,22,78,193,248,22,153,18,193,11,11,11,
27,28,248,22,64,23,196,2,27,248,80,144,43,48,39,249,22,80,23,199,2,
248,22,185,16,247,22,138,14,28,23,193,2,192,86,94,23,193,1,90,144,38,
11,89,146,38,36,11,249,80,144,46,54,39,248,22,71,23,201,2,11,27,28,
248,22,88,23,195,2,2,41,249,22,175,7,23,197,2,2,42,251,80,144,49,
8,24,39,23,204,1,28,248,22,88,23,199,2,23,199,1,86,94,23,199,1,
248,22,81,23,199,2,28,248,22,88,23,199,2,86,94,23,198,1,9,248,22,
153,18,23,199,1,23,197,1,28,248,22,152,7,23,196,2,86,94,23,196,1,
27,248,80,144,43,8,30,39,23,202,2,27,248,80,144,44,48,39,249,22,80,
23,200,2,23,197,2,28,23,193,2,192,86,94,23,193,1,90,144,38,11,89,
146,38,36,11,249,80,144,47,54,39,23,201,2,11,28,248,22,88,23,194,2,
86,94,23,193,1,249,22,186,15,23,198,1,248,2,92,23,197,1,250,22,1,
22,186,15,23,199,1,249,22,94,249,22,2,32,0,88,148,8,36,37,44,11,
9,222,33,94,23,200,1,248,22,90,248,2,92,23,201,1,28,248,22,168,15,
23,196,2,86,94,23,196,1,248,80,144,42,8,31,39,248,22,132,16,28,248,
22,129,16,23,198,2,23,197,2,249,22,130,16,23,199,2,248,80,144,46,8,
30,39,23,205,2,28,249,22,168,9,248,22,81,23,198,2,2,34,27,248,80,
144,43,48,39,249,22,80,23,199,2,248,22,185,16,247,22,138,14,28,23,193,
2,192,86,94,23,193,1,90,144,39,11,89,146,38,36,11,249,80,144,47,54,
39,248,22,102,23,202,2,11,89,146,37,38,11,28,248,22,88,248,22,104,23,
201,2,28,248,22,88,23,194,2,249,22,164,16,2,95,23,196,2,11,10,27,
28,23,196,2,248,2,92,23,196,2,28,248,22,88,23,195,2,2,41,28,249,
22,164,16,2,95,23,197,2,248,2,92,23,196,2,249,22,175,7,23,197,2,
2,42,27,28,23,197,1,86,94,23,196,1,249,22,94,28,248,22,88,248,22,
104,23,205,2,21,93,6,5,5,109,122,108,105,98,249,22,1,22,94,249,22,
2,80,144,53,8,32,39,248,22,104,23,208,2,23,197,1,28,248,22,88,23,
196,2,86,94,23,195,1,248,22,90,23,197,1,86,94,23,196,1,23,195,1,
251,80,144,51,8,24,39,23,206,1,248,22,81,23,198,2,248,22,153,18,23,
198,1,23,198,1,28,249,22,168,9,248,22,152,18,23,198,2,2,39,248,80,
144,42,8,31,39,248,22,132,16,249,22,130,16,248,22,134,16,248,22,102,23,
201,2,248,80,144,46,8,30,39,23,205,2,12,86,94,28,28,248,22,168,15,
23,194,2,10,248,22,183,8,23,194,2,12,28,23,201,2,250,22,175,11,67,
114,101,113,117,105,114,101,249,22,136,8,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,81,23,199,2,6,
0,0,23,204,2,250,22,177,11,2,23,2,35,23,198,2,27,28,248,22,183,
8,23,195,2,249,22,188,8,23,196,2,36,249,22,132,16,248,22,133,16,23,
197,2,11,27,28,248,22,183,8,23,196,2,249,22,188,8,23,197,2,37,248,
80,144,44,8,25,39,23,195,2,90,144,39,11,89,146,39,36,11,28,248,22,
183,8,23,199,2,250,22,7,2,43,249,22,188,8,23,203,2,38,2,43,248,
22,189,15,23,198,2,86,95,23,195,1,23,193,1,27,28,248,22,183,8,23,
200,2,249,22,188,8,23,201,2,39,249,80,144,49,59,39,23,197,2,5,0,
27,28,248,22,183,8,23,201,2,249,22,188,8,23,202,2,40,248,22,151,5,
23,200,2,27,250,22,158,2,80,144,52,41,38,248,22,185,16,247,22,138,14,
11,27,28,23,194,2,23,194,1,86,94,23,194,1,27,249,22,80,247,22,138,
2,247,22,138,2,86,94,250,22,156,2,80,144,54,41,38,248,22,185,16,247,
22,138,14,195,192,27,28,23,204,2,248,22,151,5,249,22,80,248,22,152,5,
23,200,2,23,207,2,23,196,2,86,95,28,23,212,2,27,250,22,158,2,248,
22,81,23,199,2,196,11,28,23,193,1,12,27,27,28,248,22,17,80,144,55,
51,38,80,144,54,51,38,247,22,19,251,22,33,11,80,144,58,50,38,9,23,
197,1,27,248,22,185,16,247,22,138,14,86,94,249,22,3,88,148,8,36,37,
54,11,9,226,14,13,2,3,33,98,23,196,2,248,28,248,22,17,80,144,56,
51,38,32,0,88,148,36,37,42,11,9,222,33,99,80,144,55,8,33,39,20,
20,98,88,148,36,36,8,25,8,240,12,64,0,0,9,233,19,22,15,16,13,
12,8,7,5,1,2,33,101,23,195,1,23,194,1,23,198,1,23,208,1,23,
215,1,12,28,28,248,22,183,8,23,204,1,86,94,23,212,1,11,28,23,212,
1,28,248,22,152,7,23,206,2,10,28,248,22,64,23,206,2,10,28,248,22,
78,23,206,2,249,22,168,9,248,22,152,18,23,208,2,2,34,11,11,249,80,
144,53,49,39,28,248,22,152,7,23,208,2,249,22,80,23,209,1,248,80,144,
56,8,30,39,23,215,1,86,94,23,212,1,249,22,80,23,209,1,248,22,185,
16,247,22,138,14,252,22,185,8,23,209,1,23,208,1,23,206,1,23,204,1,
23,203,1,12,192,86,96,20,18,144,11,80,143,36,56,248,80,144,37,8,28,
37,249,22,33,11,80,144,39,58,37,248,22,189,4,80,144,37,57,38,248,22,
175,5,80,144,37,37,39,248,22,137,15,80,144,37,45,39,20,18,144,11,80,
143,36,56,248,80,144,37,8,28,37,249,22,33,11,80,144,39,58,37,20,18,
144,11,80,143,36,56,248,80,144,37,8,28,37,249,22,33,11,80,144,39,58,
37,144,36,20,114,144,36,16,1,11,16,0,20,26,15,53,9,2,1,2,1,
29,11,11,11,11,9,9,11,11,11,10,38,80,143,36,36,20,114,144,41,16,
29,2,2,2,3,30,2,6,2,7,11,6,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,11,4,
30,2,8,72,112,97,116,104,45,115,116,114,105,110,103,63,39,196,15,2,9,
30,2,8,71,114,101,114,111,111,116,45,112,97,116,104,41,196,16,30,2,8,
75,112,97,116,104,45,97,100,100,45,115,117,102,102,105,120,41,196,12,2,10,
2,11,2,12,2,13,2,14,2,15,2,16,2,17,2,18,2,19,2,20,2,
21,2,22,2,23,30,2,24,2,7,11,6,30,2,8,79,112,97,116,104,45,
114,101,112,108,97,99,101,45,115,117,102,102,105,120,41,196,14,30,2,8,73,
102,105,110,100,45,99,111,108,45,102,105,108,101,44,196,4,30,2,8,76,110,
111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,39,196,11,2,25,2,
26,30,2,24,74,114,101,112,97,114,97,109,101,116,101,114,105,122,101,11,7,
16,0,37,39,36,16,0,36,16,16,2,16,2,17,2,9,2,13,2,18,2,
19,2,12,2,3,2,11,2,2,2,21,2,14,2,15,2,10,2,20,2,23,
52,11,11,11,16,3,2,25,2,22,2,26,16,3,11,11,11,16,3,2,25,
2,22,2,26,39,39,37,12,11,11,16,0,16,0,16,0,36,36,11,12,11,
11,16,0,16,0,16,0,36,36,16,24,20,15,16,2,248,22,179,8,69,115,
111,45,115,117,102,102,105,120,80,144,36,36,37,20,15,16,2,88,148,36,38,
8,43,8,189,3,2,3,223,0,33,56,80,144,36,37,37,20,15,16,2,32,
0,88,148,8,36,41,52,11,2,10,222,33,57,80,144,36,44,37,20,15,16,
2,20,27,143,32,0,88,148,8,36,37,42,11,2,11,222,192,32,0,88,148,
8,36,37,42,11,2,11,222,192,80,144,36,45,37,20,15,16,2,247,22,141,
2,80,144,36,41,37,20,15,16,2,8,128,8,80,144,36,46,37,20,15,16,
2,249,22,184,8,8,128,8,11,80,144,36,47,37,20,15,16,2,88,148,8,
36,37,50,8,128,32,2,14,223,0,33,58,80,144,36,48,37,20,15,16,2,
88,148,8,36,38,55,8,128,32,2,15,223,0,33,59,80,144,36,49,37,20,
15,16,2,247,22,76,80,144,36,50,37,20,15,16,2,248,22,18,74,109,111,
100,117,108,101,45,108,111,97,100,105,110,103,80,144,36,51,37,20,15,16,2,
11,80,143,36,52,20,15,16,2,11,80,143,36,53,20,15,16,2,32,0,88,
148,36,38,57,11,2,20,222,33,78,80,144,36,54,37,20,15,16,2,32,0,
88,148,8,36,37,49,11,2,21,222,33,79,80,144,36,55,37,20,15,16,2,
11,80,143,36,56,20,15,16,2,88,149,8,34,37,45,8,240,0,0,80,0,
1,21,112,114,101,112,45,112,108,97,110,101,116,45,114,101,115,111,108,118,101,
114,33,37,224,1,0,33,80,80,144,36,8,29,39,20,15,16,2,88,148,36,
37,50,8,240,0,0,3,0,67,103,101,116,45,100,105,114,223,0,33,81,80,
144,36,8,30,39,20,15,16,2,88,148,36,37,49,8,240,0,0,128,0,72,
112,97,116,104,45,115,115,45,62,114,107,116,223,0,33,82,80,144,36,8,31,
39,20,15,16,2,88,148,8,36,37,45,8,240,0,0,4,0,9,223,0,33,
83,80,144,36,8,32,39,20,15,16,2,88,148,36,37,45,8,240,0,128,0,
0,9,223,0,33,84,80,144,36,8,33,39,20,15,16,2,27,11,20,19,143,
36,90,144,37,10,89,146,37,36,10,20,25,96,2,23,88,148,8,36,38,54,
8,32,9,224,2,1,33,85,88,148,36,39,49,11,9,223,0,33,86,88,148,
36,40,8,32,16,4,8,240,44,240,0,0,8,240,156,227,0,0,39,36,9,
224,2,1,33,102,207,80,144,36,57,37,20,15,16,2,88,148,36,36,45,16,
2,8,130,8,8,176,65,2,25,223,0,33,103,80,144,36,8,26,37,20,15,
16,2,20,27,143,88,148,8,36,36,45,16,2,36,8,144,65,2,26,223,0,
33,104,88,148,8,36,36,45,16,2,36,8,144,65,2,26,223,0,33,105,80,
144,36,8,27,37,96,29,94,2,4,68,35,37,107,101,114,110,101,108,11,29,
94,2,4,69,35,37,109,105,110,45,115,116,120,11,2,8,2,24,9,9,9,
36,9,0};
EVAL_ONE_SIZED_STR((char *)expr, 10124);
}
{
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,54,46,48,46,49,46,56,84,0,0,0,0,0,0,0,0,0,0,
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,54,46,48,46,49,46,57,84,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,11,0,0,0,1,0,0,10,0,16,0,
29,0,44,0,58,0,78,0,90,0,104,0,118,0,170,0,0,0,101,1,0,
0,69,35,37,98,117,105,108,116,105,110,65,113,117,111,116,101,29,94,2,2,
@ -1537,7 +1541,7 @@
114,107,11,29,94,2,2,68,35,37,112,97,114,97,109,122,11,29,94,2,2,
74,35,37,112,108,97,99,101,45,115,116,114,117,99,116,11,29,94,2,2,66,
35,37,98,111,111,116,11,29,94,2,2,68,35,37,101,120,112,111,98,115,11,
29,94,2,2,68,35,37,107,101,114,110,101,108,11,97,36,11,8,240,27,91,
29,94,2,2,68,35,37,107,101,114,110,101,108,11,97,36,11,8,240,34,91,
0,0,100,144,2,3,36,36,144,2,4,36,36,144,2,5,36,36,144,2,6,
36,36,144,2,7,36,36,144,2,8,36,36,144,2,9,36,36,144,2,9,36,
36,16,0,144,36,20,114,144,36,16,1,11,16,0,20,26,15,53,9,2,1,

View File

@ -748,13 +748,18 @@
"(define finish"
"(lambda(i sep i2)"
"(bytes->path-element"
"(bytes-append"
"(let((res(bytes-append"
"(subbytes bs 0 i)"
" sep"
"(rest-bytes bs i2)"
"(if(string? sfx)"
"(string->bytes/locale sfx(char->integer #\\?))"
" sfx))"
" sfx))))"
"(if(zero?(bytes-length res))"
"(raise-arguments-error 'path-replace-suffix"
" \"removing suffix makes path element empty\""
" \"given path\" s)"
" res))"
"(if(path-for-some-system? s)"
"(path-convention-type s)"
"(system-path-convention-type)))))"
@ -1171,6 +1176,8 @@
" base))))))"
"(current-load-relative-directory)"
"(current-directory))))"
"(get-reg(lambda()"
"(namespace-module-registry(current-namespace))))"
"(show-collection-err(lambda(msg)"
"(let((msg(string-append"
"(or(and stx"
@ -1196,7 +1203,9 @@
"(ss->rkt(lambda(s)"
"(let((len(string-length s)))"
"(if(and(len . >= . 3)"
" (string=? \".ss\" (substring s (- len 3))))"
"(equal? #\\.(string-ref s(- len 3)))"
"(equal? #\\s(string-ref s(- len 2)))"
"(equal? #\\s(string-ref s(- len 1))))"
" (string-append (substring s 0 (- len 3)) \".rkt\")"
" s))))"
"(path-ss->rkt(lambda(p)"
@ -1240,7 +1249,7 @@
"(let((s-parsed"
"(cond"
"((symbol? s)"
"(or(path-cache-get(cons s(current-library-collection-paths)))"
"(or(path-cache-get(cons s(get-reg)))"
"(let-values(((cols file)(split-relative-string(symbol->string s) #f)))"
"(let*((f-file(if(null? cols)"
" \"main.rkt\""
@ -1253,6 +1262,8 @@
"(let*((dir(get-dir)))"
"(or(path-cache-get(cons s dir))"
"(let-values(((cols file)(split-relative-string s #f)))"
"(if(null? cols)"
"(build-path dir(ss->rkt file))"
"(apply build-path "
" dir"
"(append"
@ -1262,13 +1273,13 @@
" ((string=? s \"..\") 'up)"
"(else s)))"
" cols)"
"(list(ss->rkt file))))))))"
"(list(ss->rkt file)))))))))"
"((path? s) "
"(path-ss->rkt(simplify-path(if(complete-path? s)"
" s"
"(path->complete-path s(get-dir))))))"
"((eq?(car s) 'lib)"
"(or(path-cache-get(cons s(current-library-collection-paths)))"
"(or(path-cache-get(cons s(get-reg)))"
"(let*-values(((cols file)(split-relative-string(cadr s) #f))"
"((old-style?)(if(null?(cddr s))"
"(and(null? cols)"
@ -1329,11 +1340,11 @@
"(vector-ref s-parsed 4)"
"(make-resolved-module-path filename)))"
"(hts(or(hash-ref -module-hash-table-table"
"(namespace-module-registry(current-namespace))"
"(get-reg)"
" #f)"
"(let((hts(cons(make-hasheq)(make-hasheq))))"
"(hash-set! -module-hash-table-table"
"(namespace-module-registry(current-namespace))"
"(get-reg)"
" hts)"
" hts)))"
"(modname(if subm-path"
@ -1353,7 +1364,7 @@
" -loading-filename"
" null"
" tag)))"
"(nsr(namespace-module-registry(current-namespace))))"
"(nsr(get-reg)))"
"(for-each"
"(lambda(s)"
"(when(and(equal?(cdr s) normal-filename)"
@ -1372,9 +1383,7 @@
"(lambda(f)(f))"
"(lambda(f)(call-with-continuation-prompt f -loading-prompt-tag)))"
"(lambda()"
"(with-continuation-mark -loading-filename(cons(cons "
"(namespace-module-registry(current-namespace))"
" normal-filename)"
"(with-continuation-mark -loading-filename(cons(cons nsr normal-filename)"
" loading)"
"(parameterize((current-module-declare-name root-modname)"
"(current-module-path-for-load"
@ -1399,13 +1408,14 @@
"(cons sym subm-path))"
" sym)))))))))))"
"(when(and(not(vector? s-parsed))"
" load?"
"(or(string? s)"
"(symbol? s)"
"(and(pair? s)"
"(eq?(car s) 'lib))))"
"(path-cache-set!(if(string? s)"
"(cons s(get-dir))"
"(cons s(current-library-collection-paths)))"
"(cons s(get-reg)))"
"(vector filename"
" normal-filename"
" name"

View File

@ -1349,6 +1349,8 @@
base))))))
(current-load-relative-directory)
(current-directory)))]
[get-reg (lambda ()
(namespace-module-registry (current-namespace)))]
[show-collection-err (lambda (msg)
(let ([msg (string-append
(or (and stx
@ -1374,7 +1376,10 @@
[ss->rkt (lambda (s)
(let ([len (string-length s)])
(if (and (len . >= . 3)
(string=? ".ss" (substring s (- len 3))))
;; ".ss"
(equal? #\. (string-ref s (- len 3)))
(equal? #\s (string-ref s (- len 2)))
(equal? #\s (string-ref s (- len 1))))
(string-append (substring s 0 (- len 3)) ".rkt")
s)))]
[path-ss->rkt (lambda (p)
@ -1421,7 +1426,7 @@
;; Non-string result represents an error
(cond
[(symbol? s)
(or (path-cache-get (cons s (current-library-collection-paths)))
(or (path-cache-get (cons s (get-reg)))
(let-values ([(cols file) (split-relative-string (symbol->string s) #f)])
(let* ([f-file (if (null? cols)
"main.rkt"
@ -1434,23 +1439,25 @@
(let* ([dir (get-dir)])
(or (path-cache-get (cons s dir))
(let-values ([(cols file) (split-relative-string s #f)])
(apply build-path
dir
(append
(map (lambda (s)
(cond
[(string=? s ".") 'same]
[(string=? s "..") 'up]
[else s]))
cols)
(list (ss->rkt file)))))))]
(if (null? cols)
(build-path dir (ss->rkt file))
(apply build-path
dir
(append
(map (lambda (s)
(cond
[(string=? s ".") 'same]
[(string=? s "..") 'up]
[else s]))
cols)
(list (ss->rkt file))))))))]
[(path? s)
;; Use filesystem-sensitive `simplify-path' here:
(path-ss->rkt (simplify-path (if (complete-path? s)
s
(path->complete-path s (get-dir)))))]
[(eq? (car s) 'lib)
(or (path-cache-get (cons s (current-library-collection-paths)))
(or (path-cache-get (cons s (get-reg)))
(let*-values ([(cols file) (split-relative-string (cadr s) #f)]
[(old-style?) (if (null? (cddr s))
(and (null? cols)
@ -1513,11 +1520,11 @@
(vector-ref s-parsed 4)
(make-resolved-module-path filename))]
[hts (or (hash-ref -module-hash-table-table
(namespace-module-registry (current-namespace))
(get-reg)
#f)
(let ([hts (cons (make-hasheq) (make-hasheq))])
(hash-set! -module-hash-table-table
(namespace-module-registry (current-namespace))
(get-reg)
hts)
hts))]
[modname (if subm-path
@ -1539,7 +1546,7 @@
-loading-filename
null
tag))]
[nsr (namespace-module-registry (current-namespace))])
[nsr (get-reg)])
(for-each
(lambda (s)
(when (and (equal? (cdr s) normal-filename)
@ -1558,9 +1565,7 @@
(lambda (f) (f))
(lambda (f) (call-with-continuation-prompt f -loading-prompt-tag)))
(lambda ()
(with-continuation-mark -loading-filename (cons (cons
(namespace-module-registry (current-namespace))
normal-filename)
(with-continuation-mark -loading-filename (cons (cons nsr normal-filename)
loading)
(parameterize ([current-module-declare-name root-modname]
[current-module-path-for-load
@ -1592,13 +1597,14 @@
sym)))))))))))
;; If a `lib' path, cache pathname manipulations
(when (and (not (vector? s-parsed))
load?
(or (string? s)
(symbol? s)
(and (pair? s)
(eq? (car s) 'lib))))
(path-cache-set! (if (string? s)
(cons s (get-dir))
(cons s (current-library-collection-paths)))
(cons s (get-reg)))
(vector filename
normal-filename
name