3.99.0.11, safe for space (in 3m+JIT mode)
svn: r8599
This commit is contained in:
parent
ad0a9aa3b5
commit
4f6d727b91
|
@ -906,6 +906,7 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
||||||
break;
|
break;
|
||||||
case '-':
|
case '-':
|
||||||
no_more_switches = 1;
|
no_more_switches = 1;
|
||||||
|
was_config_flag = 1;
|
||||||
break;
|
break;
|
||||||
case 'j':
|
case 'j':
|
||||||
scheme_set_startup_use_jit(0);
|
scheme_set_startup_use_jit(0);
|
||||||
|
|
|
@ -205,6 +205,7 @@ scheme_make_prim
|
||||||
scheme_make_noneternal_prim
|
scheme_make_noneternal_prim
|
||||||
scheme_make_prim_w_arity
|
scheme_make_prim_w_arity
|
||||||
scheme_make_folding_prim
|
scheme_make_folding_prim
|
||||||
|
scheme_make_immed_prim
|
||||||
scheme_make_noncm_prim
|
scheme_make_noncm_prim
|
||||||
scheme_make_noneternal_prim_w_arity
|
scheme_make_noneternal_prim_w_arity
|
||||||
scheme_make_prim_w_everything
|
scheme_make_prim_w_everything
|
||||||
|
|
|
@ -215,6 +215,7 @@ scheme_make_prim
|
||||||
scheme_make_noneternal_prim
|
scheme_make_noneternal_prim
|
||||||
scheme_make_prim_w_arity
|
scheme_make_prim_w_arity
|
||||||
scheme_make_folding_prim
|
scheme_make_folding_prim
|
||||||
|
scheme_make_immed_prim
|
||||||
scheme_make_noncm_prim
|
scheme_make_noncm_prim
|
||||||
scheme_make_noneternal_prim_w_arity
|
scheme_make_noneternal_prim_w_arity
|
||||||
scheme_make_prim_w_everything
|
scheme_make_prim_w_everything
|
||||||
|
|
|
@ -193,6 +193,7 @@ EXPORTS
|
||||||
scheme_make_noneternal_prim
|
scheme_make_noneternal_prim
|
||||||
scheme_make_prim_w_arity
|
scheme_make_prim_w_arity
|
||||||
scheme_make_folding_prim
|
scheme_make_folding_prim
|
||||||
|
scheme_make_immed_prim
|
||||||
scheme_make_noncm_prim
|
scheme_make_noncm_prim
|
||||||
scheme_make_noneternal_prim_w_arity
|
scheme_make_noneternal_prim_w_arity
|
||||||
scheme_make_prim_w_everything
|
scheme_make_prim_w_everything
|
||||||
|
|
|
@ -207,6 +207,7 @@ EXPORTS
|
||||||
scheme_make_noneternal_prim
|
scheme_make_noneternal_prim
|
||||||
scheme_make_prim_w_arity
|
scheme_make_prim_w_arity
|
||||||
scheme_make_folding_prim
|
scheme_make_folding_prim
|
||||||
|
scheme_make_immed_prim
|
||||||
scheme_make_noncm_prim
|
scheme_make_noncm_prim
|
||||||
scheme_make_noneternal_prim_w_arity
|
scheme_make_noneternal_prim_w_arity
|
||||||
scheme_make_prim_w_everything
|
scheme_make_prim_w_everything
|
||||||
|
|
|
@ -612,26 +612,31 @@ typedef struct Scheme_Offset_Cptr
|
||||||
|
|
||||||
/* Constants for flags in Scheme_Primitive_[Closed]_Proc.
|
/* Constants for flags in Scheme_Primitive_[Closed]_Proc.
|
||||||
Do not use them directly. */
|
Do not use them directly. */
|
||||||
#define SCHEME_PRIM_IS_FOLDING 1
|
#define SCHEME_PRIM_OPT_MASK (1 | 2)
|
||||||
#define SCHEME_PRIM_IS_PRIMITIVE 2
|
#define SCHEME_PRIM_IS_PRIMITIVE 4
|
||||||
#define SCHEME_PRIM_IS_STRUCT_INDEXED_GETTER 4
|
#define SCHEME_PRIM_IS_STRUCT_INDEXED_GETTER 8
|
||||||
#define SCHEME_PRIM_IS_STRUCT_PRED 8
|
#define SCHEME_PRIM_IS_STRUCT_PRED 16
|
||||||
#define SCHEME_PRIM_IS_PARAMETER 16
|
#define SCHEME_PRIM_IS_PARAMETER 32
|
||||||
#define SCHEME_PRIM_IS_STRUCT_OTHER 32
|
#define SCHEME_PRIM_IS_STRUCT_OTHER 64
|
||||||
#define SCHEME_PRIM_STRUCT_OTHER_TYPE_MASK (64 | 128)
|
#define SCHEME_PRIM_STRUCT_OTHER_TYPE_MASK (128 | 256)
|
||||||
#define SCHEME_PRIM_IS_MULTI_RESULT 256
|
#define SCHEME_PRIM_IS_MULTI_RESULT 512
|
||||||
#define SCHEME_PRIM_IS_BINARY_INLINED 512
|
#define SCHEME_PRIM_IS_BINARY_INLINED 1024
|
||||||
#define SCHEME_PRIM_IS_USER_PARAMETER 1024
|
#define SCHEME_PRIM_IS_USER_PARAMETER 2048
|
||||||
#define SCHEME_PRIM_IS_METHOD 2048
|
#define SCHEME_PRIM_IS_METHOD 4096
|
||||||
#define SCHEME_PRIM_IS_CLOSURE 4096
|
#define SCHEME_PRIM_IS_CLOSURE 8192
|
||||||
#define SCHEME_PRIM_IS_NONCM 8192
|
|
||||||
#define SCHEME_PRIM_IS_UNARY_INLINED 16384
|
#define SCHEME_PRIM_IS_UNARY_INLINED 16384
|
||||||
#define SCHEME_PRIM_IS_MIN_NARY_INLINED 32768
|
#define SCHEME_PRIM_IS_MIN_NARY_INLINED 32768
|
||||||
|
|
||||||
|
/* Values with SCHEME_PRIM_OPT_MASK, earlier implies later: */
|
||||||
|
#define SCHEME_PRIM_OPT_FOLDING 3
|
||||||
|
#define SCHEME_PRIM_OPT_IMMEDIATE 2
|
||||||
|
#define SCHEME_PRIM_OPT_NONCM 1
|
||||||
|
|
||||||
|
/* Values with SCHEME_PRIM_STRUCT_OTHER_TYPE_MASK */
|
||||||
#define SCHEME_PRIM_STRUCT_TYPE_INDEXLESS_GETTER 0
|
#define SCHEME_PRIM_STRUCT_TYPE_INDEXLESS_GETTER 0
|
||||||
#define SCHEME_PRIM_STRUCT_TYPE_CONSTR 64
|
#define SCHEME_PRIM_STRUCT_TYPE_CONSTR 128
|
||||||
#define SCHEME_PRIM_STRUCT_TYPE_INDEXLESS_SETTER 128
|
#define SCHEME_PRIM_STRUCT_TYPE_INDEXLESS_SETTER 256
|
||||||
#define SCHEME_PRIM_STRUCT_TYPE_INDEXED_SETTER (64 | 128)
|
#define SCHEME_PRIM_STRUCT_TYPE_INDEXED_SETTER (128 | 256)
|
||||||
|
|
||||||
#define SCHEME_PRIM_IS_STRUCT_PROC (SCHEME_PRIM_IS_STRUCT_INDEXED_GETTER | SCHEME_PRIM_IS_STRUCT_PRED | SCHEME_PRIM_IS_STRUCT_OTHER)
|
#define SCHEME_PRIM_IS_STRUCT_PROC (SCHEME_PRIM_IS_STRUCT_INDEXED_GETTER | SCHEME_PRIM_IS_STRUCT_PRED | SCHEME_PRIM_IS_STRUCT_OTHER)
|
||||||
|
|
||||||
|
|
|
@ -246,7 +246,7 @@ void scheme_init_char (Scheme_Env *env)
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("make-known-char-range-list",
|
scheme_add_global_constant("make-known-char-range-list",
|
||||||
scheme_make_noncm_prim(char_map_list,
|
scheme_make_immed_prim(char_map_list,
|
||||||
"make-known-char-range-list",
|
"make-known-char-range-list",
|
||||||
0, 0),
|
0, 0),
|
||||||
env);
|
env);
|
||||||
|
|
|
@ -1,68 +1,72 @@
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,51,46,57,57,46,48,46,57,50,0,0,0,1,0,0,6,0,9,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,49,49,50,0,0,0,1,0,0,6,0,
|
||||||
0,14,0,18,0,23,0,28,0,32,0,39,0,42,0,55,0,62,0,69,0,
|
9,0,14,0,18,0,23,0,36,0,41,0,45,0,52,0,55,0,62,0,69,
|
||||||
78,0,84,0,98,0,112,0,115,0,119,0,121,0,132,0,134,0,148,0,155,
|
0,78,0,84,0,98,0,112,0,115,0,119,0,121,0,132,0,134,0,148,0,
|
||||||
0,177,0,179,0,193,0,203,0,209,0,232,0,33,1,43,1,60,1,93,1,
|
155,0,177,0,179,0,193,0,203,0,209,0,232,0,33,1,43,1,60,1,99,
|
||||||
126,1,185,1,230,1,52,2,97,2,102,2,122,2,252,2,16,3,64,3,130,
|
1,138,1,212,1,1,2,94,2,139,2,144,2,164,2,54,3,74,3,124,3,
|
||||||
3,13,4,155,4,198,4,209,4,32,5,0,0,50,7,0,0,65,98,101,103,
|
190,3,75,4,238,4,25,5,36,5,115,5,0,0,133,7,0,0,65,98,101,
|
||||||
105,110,29,11,11,64,108,101,116,42,63,108,101,116,64,119,104,101,110,64,99,
|
103,105,110,29,11,11,64,108,101,116,42,63,108,101,116,64,119,104,101,110,72,
|
||||||
111,110,100,63,97,110,100,66,108,101,116,114,101,99,62,111,114,72,112,97,114,
|
112,97,114,97,109,101,116,101,114,105,122,101,64,99,111,110,100,63,97,110,100,
|
||||||
97,109,101,116,101,114,105,122,101,66,100,101,102,105,110,101,66,117,110,108,101,
|
66,108,101,116,114,101,99,62,111,114,66,100,101,102,105,110,101,66,117,110,108,
|
||||||
115,115,68,104,101,114,101,45,115,116,120,65,113,117,111,116,101,29,94,2,14,
|
101,115,115,68,104,101,114,101,45,115,116,120,65,113,117,111,116,101,29,94,2,
|
||||||
68,35,37,112,97,114,97,109,122,11,29,94,2,14,68,35,37,107,101,114,110,
|
14,68,35,37,112,97,114,97,109,122,11,29,94,2,14,68,35,37,107,101,114,
|
||||||
101,108,11,62,105,102,63,115,116,120,61,115,70,108,101,116,45,118,97,108,117,
|
110,101,108,11,62,105,102,63,115,116,120,61,115,70,108,101,116,45,118,97,108,
|
||||||
101,115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,97,
|
117,101,115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,
|
||||||
109,98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,
|
97,109,98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,
|
||||||
110,45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,
|
111,110,45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,
|
||||||
95,8,240,48,117,0,0,11,16,0,95,8,193,11,16,0,96,35,11,93,159,
|
115,95,8,240,48,117,0,0,11,16,0,95,8,193,11,16,0,96,35,11,93,
|
||||||
2,16,34,35,16,2,2,13,161,2,2,35,2,13,2,2,2,13,97,10,34,
|
159,2,16,34,35,16,2,2,13,161,2,2,35,2,13,2,2,2,13,97,10,
|
||||||
11,94,159,2,15,34,34,159,2,16,34,34,16,20,2,9,2,2,2,3,2,
|
34,11,94,159,2,15,34,34,159,2,16,34,34,16,20,2,10,2,2,2,3,
|
||||||
2,2,4,2,2,2,5,2,2,2,10,2,2,2,7,2,2,2,8,2,2,
|
2,2,2,4,2,2,2,5,2,2,2,6,2,2,2,7,2,2,2,8,2,
|
||||||
2,6,2,2,2,11,2,2,2,12,2,2,13,16,4,34,29,11,11,2,2,
|
2,2,9,2,2,2,11,2,2,2,12,2,2,13,16,4,34,29,11,11,2,
|
||||||
11,18,98,64,104,101,114,101,8,31,8,30,8,29,8,28,8,27,27,248,22,
|
2,11,18,98,64,104,101,114,101,8,31,8,30,8,29,8,28,8,27,27,248,
|
||||||
178,3,195,249,22,171,3,80,158,37,34,251,22,73,2,17,248,22,88,199,12,
|
22,178,3,23,196,1,249,22,171,3,80,158,37,34,251,22,73,2,17,248,22,
|
||||||
249,22,63,2,1,248,22,90,201,27,248,22,178,3,195,249,22,171,3,80,158,
|
88,23,200,2,12,249,22,63,2,1,248,22,90,23,202,1,27,248,22,178,3,
|
||||||
37,34,251,22,73,2,17,248,22,88,199,249,22,63,2,1,248,22,90,201,12,
|
23,196,1,249,22,171,3,80,158,37,34,251,22,73,2,17,248,22,88,23,200,
|
||||||
27,248,22,65,248,22,178,3,196,28,248,22,71,193,20,15,159,35,34,35,28,
|
2,249,22,63,2,1,248,22,90,23,202,1,12,27,248,22,65,248,22,178,3,
|
||||||
248,22,71,248,22,65,194,248,22,64,193,249,22,171,3,80,158,37,34,251,22,
|
23,197,1,28,248,22,71,23,194,2,87,94,23,193,1,20,15,159,35,34,35,
|
||||||
73,2,17,248,22,64,199,249,22,63,2,7,248,22,65,201,11,18,100,10,8,
|
28,248,22,71,248,22,65,23,195,2,248,22,64,193,249,22,171,3,80,158,37,
|
||||||
31,8,30,8,29,8,28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,
|
34,251,22,73,2,17,248,22,64,23,200,2,249,22,63,2,8,248,22,65,23,
|
||||||
54,55,55,56,16,4,11,11,2,19,3,1,7,101,110,118,54,55,55,57,27,
|
202,1,11,18,100,10,8,31,8,30,8,29,8,28,8,27,16,4,11,11,2,
|
||||||
248,22,65,248,22,178,3,196,28,248,22,71,193,20,15,159,35,34,35,28,248,
|
18,3,1,7,101,110,118,54,57,49,51,16,4,11,11,2,19,3,1,7,101,
|
||||||
22,71,248,22,65,194,248,22,64,193,249,22,171,3,80,158,37,34,250,22,73,
|
110,118,54,57,49,52,27,248,22,65,248,22,178,3,23,197,1,28,248,22,71,
|
||||||
2,20,248,22,73,249,22,73,248,22,73,2,21,248,22,64,201,251,22,73,2,
|
23,194,2,87,94,23,193,1,20,15,159,35,34,35,28,248,22,71,248,22,65,
|
||||||
17,2,21,2,21,249,22,63,2,9,248,22,65,204,18,100,11,8,31,8,30,
|
23,195,2,248,22,64,193,249,22,171,3,80,158,37,34,250,22,73,2,20,248,
|
||||||
8,29,8,28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,54,55,56,
|
22,73,249,22,73,248,22,73,2,21,248,22,64,23,202,2,251,22,73,2,17,
|
||||||
49,16,4,11,11,2,19,3,1,7,101,110,118,54,55,56,50,248,22,178,3,
|
2,21,2,21,249,22,63,2,10,248,22,65,23,205,1,18,100,11,8,31,8,
|
||||||
193,27,248,22,178,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,
|
30,8,29,8,28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,54,57,
|
||||||
27,248,22,65,248,22,178,3,196,249,22,171,3,80,158,37,34,28,248,22,51,
|
49,54,16,4,11,11,2,19,3,1,7,101,110,118,54,57,49,55,248,22,178,
|
||||||
248,22,172,3,248,22,64,197,27,249,22,2,32,0,89,162,8,36,35,41,9,
|
3,193,27,248,22,178,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,
|
||||||
222,33,39,248,22,178,3,248,22,88,199,250,22,73,2,22,248,22,73,249,22,
|
195,27,248,22,65,248,22,178,3,23,197,1,249,22,171,3,80,158,37,34,28,
|
||||||
73,248,22,73,248,22,64,203,250,22,74,2,23,249,22,2,22,64,203,248,22,
|
248,22,51,248,22,172,3,248,22,64,23,198,2,27,249,22,2,32,0,89,162,
|
||||||
90,205,249,22,63,248,22,64,201,249,22,2,22,88,199,250,22,74,2,20,249,
|
8,44,35,41,9,222,33,39,248,22,178,3,248,22,88,23,200,2,250,22,73,
|
||||||
22,2,32,0,89,162,34,35,45,9,222,33,40,248,22,178,3,248,22,64,201,
|
2,22,248,22,73,249,22,73,248,22,73,248,22,64,23,204,2,250,22,74,2,
|
||||||
248,22,65,198,27,248,22,178,3,194,249,22,63,248,22,73,248,22,64,196,248,
|
23,249,22,2,22,64,23,204,2,248,22,90,23,206,2,249,22,63,248,22,64,
|
||||||
22,65,195,27,248,22,65,248,22,178,3,196,249,22,171,3,80,158,37,34,250,
|
23,202,1,249,22,2,22,88,23,200,1,250,22,74,2,20,249,22,2,32,0,
|
||||||
22,74,2,22,249,22,2,32,0,89,162,34,35,45,9,222,33,42,248,22,178,
|
89,162,42,35,45,9,222,33,40,248,22,178,3,248,22,64,201,248,22,65,198,
|
||||||
3,248,22,64,201,248,22,65,198,27,248,22,65,248,22,178,3,196,27,248,22,
|
27,248,22,178,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,
|
||||||
178,3,248,22,64,195,249,22,171,3,80,158,38,34,28,248,22,71,195,250,22,
|
248,22,65,248,22,178,3,23,197,1,249,22,171,3,80,158,37,34,250,22,74,
|
||||||
74,2,20,9,248,22,65,199,250,22,73,2,4,248,22,73,248,22,64,199,250,
|
2,22,249,22,2,32,0,89,162,42,35,45,9,222,33,42,248,22,178,3,248,
|
||||||
22,74,2,3,248,22,65,201,248,22,65,202,27,248,22,65,248,22,178,3,196,
|
22,64,201,248,22,65,198,27,248,22,65,248,22,178,3,196,27,248,22,178,3,
|
||||||
|
248,22,64,195,249,22,171,3,80,158,38,34,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,201,248,22,65,202,27,248,22,65,248,22,178,3,23,197,1,
|
||||||
27,249,22,1,22,77,249,22,2,22,178,3,248,22,178,3,248,22,64,199,249,
|
27,249,22,1,22,77,249,22,2,22,178,3,248,22,178,3,248,22,64,199,249,
|
||||||
22,171,3,80,158,38,34,251,22,73,1,22,119,105,116,104,45,99,111,110,116,
|
22,171,3,80,158,38,34,251,22,73,1,22,119,105,116,104,45,99,111,110,116,
|
||||||
105,110,117,97,116,105,111,110,45,109,97,114,107,2,24,250,22,74,1,23,101,
|
105,110,117,97,116,105,111,110,45,109,97,114,107,2,24,250,22,74,1,23,101,
|
||||||
120,116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,
|
120,116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,
|
||||||
110,21,95,1,27,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,
|
110,21,95,1,27,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,
|
||||||
107,45,115,101,116,45,102,105,114,115,116,11,2,24,201,250,22,74,2,20,9,
|
107,45,115,101,116,45,102,105,114,115,116,11,2,24,201,250,22,74,2,20,9,
|
||||||
248,22,65,203,27,248,22,65,248,22,178,3,196,28,248,22,71,193,20,15,159,
|
248,22,65,203,27,248,22,65,248,22,178,3,23,197,1,28,248,22,71,23,194,
|
||||||
35,34,35,249,22,171,3,80,158,37,34,27,248,22,178,3,248,22,64,197,28,
|
2,87,94,23,193,1,20,15,159,35,34,35,249,22,171,3,80,158,37,34,27,
|
||||||
249,22,137,8,62,61,62,248,22,172,3,248,22,88,196,250,22,73,2,20,248,
|
248,22,178,3,248,22,64,23,198,2,28,249,22,138,8,62,61,62,248,22,172,
|
||||||
22,73,249,22,73,21,93,2,25,248,22,64,199,250,22,74,2,6,249,22,73,
|
3,248,22,88,23,197,2,250,22,73,2,20,248,22,73,249,22,73,21,93,2,
|
||||||
2,25,249,22,73,248,22,97,203,2,25,248,22,65,202,251,22,73,2,17,28,
|
25,248,22,64,199,250,22,74,2,7,249,22,73,2,25,249,22,73,248,22,97,
|
||||||
249,22,137,8,248,22,172,3,248,22,64,200,64,101,108,115,101,10,248,22,64,
|
203,2,25,248,22,65,202,251,22,73,2,17,28,249,22,138,8,248,22,172,3,
|
||||||
197,250,22,74,2,20,9,248,22,65,200,249,22,63,2,6,248,22,65,202,99,
|
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,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,
|
8,31,8,30,8,29,8,28,8,27,16,4,11,11,2,18,3,1,7,101,110,
|
||||||
118,54,56,48,52,16,4,11,11,2,19,3,1,7,101,110,118,54,56,48,53,
|
118,54,57,51,57,16,4,11,11,2,19,3,1,7,101,110,118,54,57,52,48,
|
||||||
18,158,94,10,64,118,111,105,100,8,47,27,248,22,65,248,22,178,3,196,249,
|
18,158,94,10,64,118,111,105,100,8,47,27,248,22,65,248,22,178,3,196,249,
|
||||||
22,171,3,80,158,37,34,28,248,22,51,248,22,172,3,248,22,64,197,250,22,
|
22,171,3,80,158,37,34,28,248,22,51,248,22,172,3,248,22,64,197,250,22,
|
||||||
73,2,26,248,22,73,248,22,64,199,248,22,88,198,27,248,22,172,3,248,22,
|
73,2,26,248,22,73,248,22,64,199,248,22,88,198,27,248,22,172,3,248,22,
|
||||||
|
@ -75,187 +79,187 @@
|
||||||
6,2,7,2,8,2,9,2,10,2,11,2,12,16,10,11,11,11,11,11,11,
|
6,2,7,2,8,2,9,2,10,2,11,2,12,16,10,11,11,11,11,11,11,
|
||||||
11,11,11,11,16,10,2,3,2,4,2,5,2,6,2,7,2,8,2,9,2,
|
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,34,44,16,11,16,5,93,2,13,20,15,159,34,34,34,34,
|
10,2,11,2,12,34,44,16,11,16,5,93,2,13,20,15,159,34,34,34,34,
|
||||||
20,102,159,34,16,0,16,1,33,32,10,16,5,93,2,12,89,162,8,36,35,
|
20,102,159,34,16,0,16,1,33,32,10,16,5,93,2,12,89,162,8,44,35,
|
||||||
51,9,223,0,33,33,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,
|
51,9,223,0,33,33,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,
|
||||||
16,0,11,16,5,93,2,5,89,162,8,36,35,51,9,223,0,33,34,34,20,
|
16,0,11,16,5,93,2,5,89,162,8,44,35,51,9,223,0,33,34,34,20,
|
||||||
102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,7,
|
102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,8,
|
||||||
89,162,8,36,35,51,9,223,0,33,35,34,20,102,159,34,16,1,20,25,159,
|
89,162,8,44,35,51,9,223,0,33,35,34,20,102,159,34,16,1,20,25,159,
|
||||||
35,2,2,2,13,16,1,33,36,11,16,5,93,2,9,89,162,8,36,35,54,
|
35,2,2,2,13,16,1,33,36,11,16,5,93,2,10,89,162,8,44,35,54,
|
||||||
9,223,0,33,37,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,
|
9,223,0,33,37,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,
|
||||||
1,33,38,11,16,5,93,2,4,89,162,8,36,35,56,9,223,0,33,41,34,
|
1,33,38,11,16,5,93,2,4,89,162,8,44,35,56,9,223,0,33,41,34,
|
||||||
20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,
|
20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,
|
||||||
8,89,162,8,36,35,51,9,223,0,33,43,34,20,102,159,34,16,1,20,25,
|
9,89,162,8,44,35,51,9,223,0,33,43,34,20,102,159,34,16,1,20,25,
|
||||||
159,35,2,2,2,13,16,0,11,16,5,93,2,3,89,162,8,36,35,52,9,
|
159,35,2,2,2,13,16,0,11,16,5,93,2,3,89,162,8,44,35,52,9,
|
||||||
223,0,33,44,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,
|
223,0,33,44,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,
|
||||||
11,16,5,93,2,10,89,162,8,36,35,53,9,223,0,33,45,34,20,102,159,
|
11,16,5,93,2,6,89,162,8,44,35,53,9,223,0,33,45,34,20,102,159,
|
||||||
34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,6,89,162,
|
34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,7,89,162,
|
||||||
8,36,35,56,9,223,0,33,46,34,20,102,159,34,16,1,20,25,159,35,2,
|
8,44,35,56,9,223,0,33,46,34,20,102,159,34,16,1,20,25,159,35,2,
|
||||||
2,2,13,16,1,33,48,11,16,5,93,2,11,89,162,8,36,35,52,9,223,
|
2,2,13,16,1,33,48,11,16,5,93,2,11,89,162,8,44,35,52,9,223,
|
||||||
0,33,49,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,
|
0,33,49,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,
|
||||||
16,0,94,2,16,2,15,93,2,16,9,0};
|
16,0,94,2,16,2,15,93,2,16,9,0};
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 1964);
|
EVAL_ONE_SIZED_STR((char *)expr, 2048);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,51,46,57,57,46,48,46,57,61,0,0,0,1,0,0,3,0,16,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,49,49,61,0,0,0,1,0,0,3,0,
|
||||||
0,21,0,38,0,53,0,71,0,87,0,97,0,115,0,135,0,151,0,169,0,
|
16,0,21,0,38,0,53,0,71,0,87,0,97,0,115,0,135,0,151,0,169,
|
||||||
200,0,229,0,251,0,9,1,15,1,29,1,34,1,44,1,52,1,80,1,112,
|
0,200,0,229,0,251,0,9,1,15,1,29,1,34,1,44,1,52,1,80,1,
|
||||||
1,157,1,202,1,226,1,9,2,11,2,20,2,71,2,87,3,96,3,126,3,
|
112,1,157,1,202,1,226,1,9,2,11,2,20,2,71,2,87,3,96,3,126,
|
||||||
170,4,242,4,58,5,146,5,158,5,201,5,217,5,204,6,218,6,69,7,8,
|
3,170,4,242,4,58,5,146,5,158,5,201,5,217,5,204,6,218,6,69,7,
|
||||||
8,202,8,209,8,215,8,75,9,87,9,155,9,1,10,14,10,36,10,170,10,
|
8,8,202,8,209,8,215,8,75,9,87,9,155,9,1,10,14,10,36,10,170,
|
||||||
36,11,37,12,45,12,53,12,79,12,159,12,0,0,210,15,0,0,29,11,11,
|
10,36,11,37,12,45,12,53,12,79,12,158,12,0,0,209,15,0,0,29,11,
|
||||||
72,112,97,116,104,45,115,116,114,105,110,103,63,64,98,115,98,115,76,110,111,
|
11,72,112,97,116,104,45,115,116,114,105,110,103,63,64,98,115,98,115,76,110,
|
||||||
114,109,97,108,45,99,97,115,101,45,112,97,116,104,74,45,99,104,101,99,107,
|
111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,74,45,99,104,101,99,
|
||||||
45,114,101,108,112,97,116,104,77,45,99,104,101,99,107,45,99,111,108,108,101,
|
107,45,114,101,108,112,97,116,104,77,45,99,104,101,99,107,45,99,111,108,108,
|
||||||
99,116,105,111,110,75,99,111,108,108,101,99,116,105,111,110,45,112,97,116,104,
|
101,99,116,105,111,110,75,99,111,108,108,101,99,116,105,111,110,45,112,97,116,
|
||||||
69,45,102,105,110,100,45,99,111,108,77,99,104,101,99,107,45,115,117,102,102,
|
104,69,45,102,105,110,100,45,99,111,108,77,99,104,101,99,107,45,115,117,102,
|
||||||
105,120,45,99,97,108,108,79,112,97,116,104,45,114,101,112,108,97,99,101,45,
|
102,105,120,45,99,97,108,108,79,112,97,116,104,45,114,101,112,108,97,99,101,
|
||||||
115,117,102,102,105,120,75,112,97,116,104,45,97,100,100,45,115,117,102,102,105,
|
45,115,117,102,102,105,120,75,112,97,116,104,45,97,100,100,45,115,117,102,102,
|
||||||
120,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,1,29,
|
105,120,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,1,
|
||||||
102,105,110,100,45,108,105,98,114,97,114,121,45,99,111,108,108,101,99,116,105,
|
29,102,105,110,100,45,108,105,98,114,97,114,121,45,99,111,108,108,101,99,116,
|
||||||
111,110,45,112,97,116,104,115,1,27,112,97,116,104,45,108,105,115,116,45,115,
|
105,111,110,45,112,97,116,104,115,1,27,112,97,116,104,45,108,105,115,116,45,
|
||||||
116,114,105,110,103,45,62,112,97,116,104,45,108,105,115,116,1,20,102,105,110,
|
115,116,114,105,110,103,45,62,112,97,116,104,45,108,105,115,116,1,20,102,105,
|
||||||
100,45,101,120,101,99,117,116,97,98,108,101,45,112,97,116,104,73,101,109,98,
|
110,100,45,101,120,101,99,117,116,97,98,108,101,45,112,97,116,104,73,101,109,
|
||||||
101,100,100,101,100,45,108,111,97,100,65,113,117,111,116,101,29,94,2,17,68,
|
98,101,100,100,101,100,45,108,111,97,100,65,113,117,111,116,101,29,94,2,17,
|
||||||
35,37,112,97,114,97,109,122,11,64,108,111,111,112,69,101,120,101,99,45,102,
|
68,35,37,112,97,114,97,109,122,11,64,108,111,111,112,69,101,120,101,99,45,
|
||||||
105,108,101,67,119,105,110,100,111,119,115,6,25,25,112,97,116,104,32,111,114,
|
102,105,108,101,67,119,105,110,100,111,119,115,6,25,25,112,97,116,104,32,111,
|
||||||
32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,6,29,29,
|
114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,6,29,
|
||||||
126,97,58,32,105,110,118,97,108,105,100,32,114,101,108,97,116,105,118,101,32,
|
29,126,97,58,32,105,110,118,97,108,105,100,32,114,101,108,97,116,105,118,101,
|
||||||
112,97,116,104,58,32,126,115,6,42,42,126,97,58,32,99,111,108,108,101,99,
|
32,112,97,116,104,58,32,126,115,6,42,42,126,97,58,32,99,111,108,108,101,
|
||||||
116,105,111,110,32,110,111,116,32,102,111,117,110,100,58,32,126,115,32,105,110,
|
99,116,105,111,110,32,110,111,116,32,102,111,117,110,100,58,32,126,115,32,105,
|
||||||
32,97,110,121,32,111,102,58,32,126,115,6,42,42,112,97,116,104,32,40,102,
|
110,32,97,110,121,32,111,102,58,32,126,115,6,42,42,112,97,116,104,32,40,
|
||||||
111,114,32,97,110,121,32,115,121,115,116,101,109,41,32,111,114,32,118,97,108,
|
102,111,114,32,97,110,121,32,115,121,115,116,101,109,41,32,111,114,32,118,97,
|
||||||
105,100,45,112,97,116,104,32,115,116,114,105,110,103,6,21,21,115,116,114,105,
|
108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,6,21,21,115,116,114,
|
||||||
110,103,32,111,114,32,98,121,116,101,32,115,116,114,105,110,103,6,36,36,99,
|
105,110,103,32,111,114,32,98,121,116,101,32,115,116,114,105,110,103,6,36,36,
|
||||||
97,110,110,111,116,32,97,100,100,32,97,32,115,117,102,102,105,120,32,116,111,
|
99,97,110,110,111,116,32,97,100,100,32,97,32,115,117,102,102,105,120,32,116,
|
||||||
32,97,32,114,111,111,116,32,112,97,116,104,58,32,5,0,68,35,37,107,101,
|
111,32,97,32,114,111,111,116,32,112,97,116,104,58,32,5,0,68,35,37,107,
|
||||||
114,110,101,108,27,20,14,159,80,158,35,49,250,80,158,38,50,249,22,27,11,
|
101,114,110,101,108,27,20,14,159,80,158,35,49,250,80,158,38,50,249,22,27,
|
||||||
80,158,40,49,22,137,12,10,248,22,186,4,195,28,248,22,164,5,193,12,87,
|
11,80,158,40,49,22,138,12,10,248,22,186,4,195,28,248,22,164,5,193,12,
|
||||||
94,248,22,140,8,193,248,80,159,36,53,35,195,28,248,22,71,194,9,27,248,
|
87,94,248,22,141,8,193,248,80,159,36,53,35,195,28,248,22,71,194,9,27,
|
||||||
22,64,195,27,28,248,22,182,12,194,193,28,248,22,181,12,194,249,22,183,12,
|
248,22,64,195,27,28,248,22,183,12,194,193,28,248,22,182,12,194,249,22,184,
|
||||||
195,250,80,158,41,47,248,22,133,13,2,20,11,10,250,80,158,39,47,248,22,
|
12,195,250,80,158,41,47,248,22,134,13,2,20,11,10,250,80,158,39,47,248,
|
||||||
133,13,2,20,196,10,28,192,249,22,63,248,22,185,12,249,22,183,12,197,247,
|
22,134,13,2,20,196,10,28,192,249,22,63,248,22,186,12,249,22,184,12,197,
|
||||||
22,134,13,27,248,22,65,199,28,248,22,71,193,9,27,248,22,64,194,27,28,
|
247,22,135,13,27,248,22,65,199,28,248,22,71,193,9,27,248,22,64,194,27,
|
||||||
248,22,182,12,194,193,28,248,22,181,12,194,249,22,183,12,195,250,80,158,46,
|
28,248,22,183,12,194,193,28,248,22,182,12,194,249,22,184,12,195,250,80,158,
|
||||||
47,248,22,133,13,2,20,11,10,250,80,158,44,47,248,22,133,13,2,20,196,
|
46,47,248,22,134,13,2,20,11,10,250,80,158,44,47,248,22,134,13,2,20,
|
||||||
10,28,192,249,22,63,248,22,185,12,249,22,183,12,197,247,22,134,13,248,80,
|
196,10,28,192,249,22,63,248,22,186,12,249,22,184,12,197,247,22,135,13,248,
|
||||||
159,44,52,35,248,22,65,198,248,80,159,42,52,35,248,22,65,196,27,248,22,
|
80,159,44,52,35,248,22,65,198,248,80,159,42,52,35,248,22,65,196,27,248,
|
||||||
65,197,28,248,22,71,193,9,27,248,22,64,194,27,28,248,22,182,12,194,193,
|
22,65,197,28,248,22,71,193,9,27,248,22,64,194,27,28,248,22,183,12,194,
|
||||||
28,248,22,181,12,194,249,22,183,12,195,250,80,158,44,47,248,22,133,13,2,
|
193,28,248,22,182,12,194,249,22,184,12,195,250,80,158,44,47,248,22,134,13,
|
||||||
20,11,10,250,80,158,42,47,248,22,133,13,2,20,196,10,28,192,249,22,63,
|
2,20,11,10,250,80,158,42,47,248,22,134,13,2,20,196,10,28,192,249,22,
|
||||||
248,22,185,12,249,22,183,12,197,247,22,134,13,248,80,159,42,52,35,248,22,
|
63,248,22,186,12,249,22,184,12,197,247,22,135,13,248,80,159,42,52,35,248,
|
||||||
65,198,248,80,159,40,52,35,248,22,65,196,249,80,159,36,37,35,2,7,195,
|
22,65,198,248,80,159,40,52,35,248,22,65,196,249,80,159,36,37,35,2,7,
|
||||||
27,248,22,158,12,194,28,192,192,28,248,22,133,6,194,27,248,22,180,12,195,
|
195,27,248,22,159,12,194,28,192,192,28,248,22,133,6,194,27,248,22,181,12,
|
||||||
28,192,192,248,22,181,12,195,11,87,94,28,28,248,22,159,12,194,10,27,248,
|
195,28,192,192,248,22,182,12,195,11,87,94,28,28,248,22,160,12,194,10,27,
|
||||||
22,158,12,195,28,192,192,28,248,22,133,6,195,27,248,22,180,12,196,28,192,
|
248,22,159,12,195,28,192,192,28,248,22,133,6,195,27,248,22,181,12,196,28,
|
||||||
192,248,22,181,12,196,11,12,250,22,167,8,76,110,111,114,109,97,108,45,112,
|
192,192,248,22,182,12,196,11,12,250,22,168,8,76,110,111,114,109,97,108,45,
|
||||||
97,116,104,45,99,97,115,101,6,42,42,112,97,116,104,32,40,102,111,114,32,
|
112,97,116,104,45,99,97,115,101,6,42,42,112,97,116,104,32,40,102,111,114,
|
||||||
97,110,121,32,115,121,115,116,101,109,41,32,111,114,32,118,97,108,105,100,45,
|
32,97,110,121,32,115,121,115,116,101,109,41,32,111,114,32,118,97,108,105,100,
|
||||||
112,97,116,104,32,115,116,114,105,110,103,196,28,28,248,22,159,12,194,249,22,
|
45,112,97,116,104,32,115,116,114,105,110,103,196,28,28,248,22,160,12,194,249,
|
||||||
137,8,248,22,160,12,196,2,21,249,22,137,8,247,22,152,7,2,21,27,28,
|
22,138,8,248,22,161,12,196,2,21,249,22,138,8,247,22,152,7,2,21,27,
|
||||||
248,22,133,6,195,194,248,22,142,7,248,22,163,12,196,28,249,22,146,13,0,
|
28,248,22,133,6,195,194,248,22,142,7,248,22,164,12,196,28,249,22,147,13,
|
||||||
21,35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,93,
|
0,21,35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,
|
||||||
34,194,28,248,22,133,6,195,248,22,166,12,195,194,27,248,22,172,6,194,249,
|
93,34,194,28,248,22,133,6,195,248,22,167,12,195,194,27,248,22,172,6,194,
|
||||||
22,167,12,248,22,145,7,250,22,152,13,0,6,35,114,120,34,47,34,28,249,
|
249,22,168,12,248,22,145,7,250,22,153,13,0,6,35,114,120,34,47,34,28,
|
||||||
22,146,13,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91,47,
|
249,22,147,13,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91,
|
||||||
92,92,93,42,36,34,200,198,250,22,152,13,0,19,35,114,120,34,91,32,46,
|
47,92,92,93,42,36,34,200,198,250,22,153,13,0,19,35,114,120,34,91,32,
|
||||||
93,43,40,91,47,92,92,93,42,41,36,34,201,6,2,2,92,49,80,158,42,
|
46,93,43,40,91,47,92,92,93,42,41,36,34,201,6,2,2,92,49,80,158,
|
||||||
35,2,21,28,248,22,133,6,194,248,22,166,12,194,193,87,94,28,27,248,22,
|
42,35,2,21,28,248,22,133,6,194,248,22,167,12,194,193,87,94,28,27,248,
|
||||||
158,12,195,28,192,192,28,248,22,133,6,195,27,248,22,180,12,196,28,192,192,
|
22,159,12,195,28,192,192,28,248,22,133,6,195,27,248,22,181,12,196,28,192,
|
||||||
248,22,181,12,196,11,12,250,22,167,8,195,2,22,196,28,248,22,180,12,194,
|
192,248,22,182,12,196,11,12,250,22,168,8,195,2,22,196,28,248,22,181,12,
|
||||||
12,248,22,182,10,249,22,191,9,248,22,162,6,250,22,181,6,2,23,199,200,
|
194,12,248,22,183,10,249,22,128,10,248,22,162,6,250,22,181,6,2,23,199,
|
||||||
247,22,23,87,94,28,27,248,22,158,12,195,28,192,192,28,248,22,133,6,195,
|
200,247,22,23,87,94,28,27,248,22,159,12,195,28,192,192,28,248,22,133,6,
|
||||||
27,248,22,180,12,196,28,192,192,248,22,181,12,196,11,12,250,22,167,8,195,
|
195,27,248,22,181,12,196,28,192,192,248,22,182,12,196,11,12,250,22,168,8,
|
||||||
2,22,196,28,248,22,180,12,194,12,248,22,182,10,249,22,191,9,248,22,162,
|
195,2,22,196,28,248,22,181,12,194,12,248,22,183,10,249,22,128,10,248,22,
|
||||||
6,250,22,181,6,2,23,199,200,247,22,23,87,94,87,94,28,27,248,22,158,
|
162,6,250,22,181,6,2,23,199,200,247,22,23,87,94,87,94,28,27,248,22,
|
||||||
12,195,28,192,192,28,248,22,133,6,195,27,248,22,180,12,196,28,192,192,248,
|
159,12,195,28,192,192,28,248,22,133,6,195,27,248,22,181,12,196,28,192,192,
|
||||||
22,181,12,196,11,12,250,22,167,8,195,2,22,196,28,248,22,180,12,194,12,
|
248,22,182,12,196,11,12,250,22,168,8,195,2,22,196,28,248,22,181,12,194,
|
||||||
248,22,182,10,249,22,191,9,248,22,162,6,250,22,181,6,2,23,199,200,247,
|
12,248,22,183,10,249,22,128,10,248,22,162,6,250,22,181,6,2,23,199,200,
|
||||||
22,23,249,22,3,89,162,34,35,48,9,223,2,33,36,196,248,22,182,10,249,
|
247,22,23,249,22,3,89,162,34,35,48,9,223,2,33,36,196,248,22,183,10,
|
||||||
22,157,10,195,247,22,23,87,94,87,94,249,80,159,36,37,35,2,7,195,249,
|
249,22,158,10,195,247,22,23,87,94,87,94,249,80,159,36,37,35,2,7,195,
|
||||||
22,3,80,159,36,51,35,196,251,80,159,38,40,35,2,7,32,0,89,162,34,
|
249,22,3,80,159,36,51,35,196,251,80,159,38,40,35,2,7,32,0,89,162,
|
||||||
35,43,9,222,33,38,197,198,32,40,89,162,34,40,57,65,99,108,111,111,112,
|
34,35,43,9,222,33,38,197,198,32,40,89,162,34,40,57,65,99,108,111,111,
|
||||||
222,33,41,28,248,22,71,198,248,195,251,22,181,6,2,24,198,28,248,22,71,
|
112,222,33,41,28,248,22,71,198,248,195,251,22,181,6,2,24,198,28,248,22,
|
||||||
202,200,250,22,1,22,176,12,203,204,197,27,249,22,176,12,248,22,64,201,198,
|
71,202,200,250,22,1,22,177,12,203,204,197,27,249,22,177,12,248,22,64,201,
|
||||||
28,248,22,171,12,193,27,250,22,1,22,176,12,196,201,28,248,22,171,12,193,
|
198,28,248,22,172,12,193,27,250,22,1,22,177,12,196,201,28,248,22,172,12,
|
||||||
192,27,248,22,65,201,28,248,22,71,193,248,198,251,22,181,6,2,24,201,28,
|
193,192,27,248,22,65,201,28,248,22,71,193,248,198,251,22,181,6,2,24,201,
|
||||||
248,22,71,205,203,250,22,1,22,176,12,206,23,15,200,27,249,22,176,12,248,
|
28,248,22,71,205,203,250,22,1,22,177,12,206,23,15,200,27,249,22,177,12,
|
||||||
22,64,196,201,28,248,22,171,12,193,27,250,22,1,22,176,12,196,204,28,248,
|
248,22,64,196,201,28,248,22,172,12,193,27,250,22,1,22,177,12,196,204,28,
|
||||||
22,171,12,193,192,253,2,40,203,204,205,206,23,15,248,22,65,201,253,2,40,
|
248,22,172,12,193,192,253,2,40,203,204,205,206,23,15,248,22,65,201,253,2,
|
||||||
202,203,204,205,206,248,22,65,200,27,248,22,65,200,28,248,22,71,193,248,197,
|
40,202,203,204,205,206,248,22,65,200,27,248,22,65,200,28,248,22,71,193,248,
|
||||||
251,22,181,6,2,24,200,28,248,22,71,204,202,250,22,1,22,176,12,205,206,
|
197,251,22,181,6,2,24,200,28,248,22,71,204,202,250,22,1,22,177,12,205,
|
||||||
199,27,249,22,176,12,248,22,64,196,200,28,248,22,171,12,193,27,250,22,1,
|
206,199,27,249,22,177,12,248,22,64,196,200,28,248,22,172,12,193,27,250,22,
|
||||||
22,176,12,196,203,28,248,22,171,12,193,192,253,2,40,202,203,204,205,206,248,
|
1,22,177,12,196,203,28,248,22,172,12,193,192,253,2,40,202,203,204,205,206,
|
||||||
22,65,201,253,2,40,201,202,203,204,205,248,22,65,200,27,247,22,135,13,253,
|
248,22,65,201,253,2,40,201,202,203,204,205,248,22,65,200,27,247,22,136,13,
|
||||||
2,40,198,199,200,201,202,198,87,95,28,28,248,22,159,12,193,10,27,248,22,
|
253,2,40,198,199,200,201,202,198,87,95,28,28,248,22,160,12,193,10,27,248,
|
||||||
158,12,194,28,192,192,28,248,22,133,6,194,27,248,22,180,12,195,28,192,192,
|
22,159,12,194,28,192,192,28,248,22,133,6,194,27,248,22,181,12,195,28,192,
|
||||||
248,22,181,12,195,11,12,252,22,167,8,199,2,25,34,197,198,28,28,248,22,
|
192,248,22,182,12,195,11,12,252,22,168,8,199,2,25,34,197,198,28,28,248,
|
||||||
133,6,194,10,248,22,185,6,194,12,252,22,167,8,199,2,26,35,197,198,91,
|
22,133,6,194,10,248,22,185,6,194,12,252,22,168,8,199,2,26,35,197,198,
|
||||||
159,37,11,90,161,37,34,11,248,22,179,12,196,87,94,28,192,12,250,22,168,
|
91,159,37,11,90,161,37,34,11,248,22,180,12,196,87,94,28,192,12,250,22,
|
||||||
8,200,2,27,198,249,22,7,194,195,91,159,36,11,90,161,36,34,11,87,95,
|
169,8,200,2,27,198,249,22,7,194,195,91,159,36,11,90,161,36,34,11,87,
|
||||||
28,28,248,22,159,12,195,10,27,248,22,158,12,196,28,192,192,28,248,22,133,
|
95,28,28,248,22,160,12,195,10,27,248,22,159,12,196,28,192,192,28,248,22,
|
||||||
6,196,27,248,22,180,12,197,28,192,192,248,22,181,12,197,11,12,252,22,167,
|
133,6,196,27,248,22,181,12,197,28,192,192,248,22,182,12,197,11,12,252,22,
|
||||||
8,2,10,2,25,34,199,200,28,28,248,22,133,6,196,10,248,22,185,6,196,
|
168,8,2,10,2,25,34,199,200,28,28,248,22,133,6,196,10,248,22,185,6,
|
||||||
12,252,22,167,8,2,10,2,26,35,199,200,91,159,37,11,90,161,37,34,11,
|
196,12,252,22,168,8,2,10,2,26,35,199,200,91,159,37,11,90,161,37,34,
|
||||||
248,22,179,12,198,87,94,28,192,12,250,22,168,8,2,10,2,27,200,249,22,
|
11,248,22,180,12,198,87,94,28,192,12,250,22,169,8,2,10,2,27,200,249,
|
||||||
7,194,195,27,249,22,168,12,250,22,151,13,0,18,35,114,120,35,34,40,91,
|
22,7,194,195,27,249,22,169,12,250,22,152,13,0,18,35,114,120,35,34,40,
|
||||||
46,93,91,94,46,93,42,124,41,36,34,248,22,164,12,200,28,248,22,133,6,
|
91,46,93,91,94,46,93,42,124,41,36,34,248,22,165,12,200,28,248,22,133,
|
||||||
202,249,22,145,7,203,8,63,201,28,248,22,159,12,198,248,22,160,12,198,247,
|
6,202,249,22,145,7,203,8,63,201,28,248,22,160,12,198,248,22,161,12,198,
|
||||||
22,161,12,28,248,22,158,12,194,249,22,176,12,195,194,192,91,159,36,11,90,
|
247,22,162,12,28,248,22,159,12,194,249,22,177,12,195,194,192,91,159,36,11,
|
||||||
161,36,34,11,87,95,28,28,248,22,159,12,195,10,27,248,22,158,12,196,28,
|
90,161,36,34,11,87,95,28,28,248,22,160,12,195,10,27,248,22,159,12,196,
|
||||||
192,192,28,248,22,133,6,196,27,248,22,180,12,197,28,192,192,248,22,181,12,
|
28,192,192,28,248,22,133,6,196,27,248,22,181,12,197,28,192,192,248,22,182,
|
||||||
197,11,12,252,22,167,8,2,11,2,25,34,199,200,28,28,248,22,133,6,196,
|
12,197,11,12,252,22,168,8,2,11,2,25,34,199,200,28,28,248,22,133,6,
|
||||||
10,248,22,185,6,196,12,252,22,167,8,2,11,2,26,35,199,200,91,159,37,
|
196,10,248,22,185,6,196,12,252,22,168,8,2,11,2,26,35,199,200,91,159,
|
||||||
11,90,161,37,34,11,248,22,179,12,198,87,94,28,192,12,250,22,168,8,2,
|
37,11,90,161,37,34,11,248,22,180,12,198,87,94,28,192,12,250,22,169,8,
|
||||||
11,2,27,200,249,22,7,194,195,27,249,22,168,12,249,22,131,7,250,22,152,
|
2,11,2,27,200,249,22,7,194,195,27,249,22,169,12,249,22,131,7,250,22,
|
||||||
13,0,9,35,114,120,35,34,91,46,93,34,248,22,164,12,202,6,1,1,95,
|
153,13,0,9,35,114,120,35,34,91,46,93,34,248,22,165,12,202,6,1,1,
|
||||||
28,248,22,133,6,201,249,22,145,7,202,8,63,200,28,248,22,159,12,198,248,
|
95,28,248,22,133,6,201,249,22,145,7,202,8,63,200,28,248,22,160,12,198,
|
||||||
22,160,12,198,247,22,161,12,28,248,22,158,12,194,249,22,176,12,195,194,192,
|
248,22,161,12,198,247,22,162,12,28,248,22,159,12,194,249,22,177,12,195,194,
|
||||||
249,247,22,184,5,194,11,248,80,158,35,45,9,27,247,22,137,13,249,80,158,
|
192,249,247,22,184,5,194,11,248,80,158,35,45,9,27,247,22,138,13,249,80,
|
||||||
37,46,28,194,27,248,22,150,7,6,11,11,80,76,84,67,79,76,76,69,67,
|
158,37,46,28,194,27,248,22,150,7,6,11,11,80,76,84,67,79,76,76,69,
|
||||||
84,83,28,192,192,6,0,0,6,0,0,27,28,195,250,22,176,12,248,22,133,
|
67,84,83,28,192,192,6,0,0,6,0,0,27,28,195,250,22,177,12,248,22,
|
||||||
13,69,97,100,100,111,110,45,100,105,114,247,22,148,7,6,8,8,99,111,108,
|
134,13,69,97,100,100,111,110,45,100,105,114,247,22,148,7,6,8,8,99,111,
|
||||||
108,101,99,116,115,11,27,248,80,159,40,52,35,249,22,77,201,248,22,73,248,
|
108,108,101,99,116,115,11,27,248,80,159,40,52,35,249,22,77,201,248,22,73,
|
||||||
22,133,13,72,99,111,108,108,101,99,116,115,45,100,105,114,28,193,249,22,63,
|
248,22,134,13,72,99,111,108,108,101,99,116,115,45,100,105,114,28,193,249,22,
|
||||||
195,194,192,32,49,89,162,34,37,49,2,19,222,33,50,27,249,22,144,13,196,
|
63,195,194,192,32,49,89,162,34,37,49,2,19,222,33,50,27,249,22,145,13,
|
||||||
197,28,192,27,248,22,88,194,27,250,2,49,198,199,248,22,97,198,28,249,22,
|
196,197,28,192,27,248,22,88,194,27,250,2,49,198,199,248,22,97,198,28,249,
|
||||||
191,6,195,2,28,249,22,77,197,194,249,22,63,248,22,167,12,196,194,28,249,
|
22,191,6,195,2,28,249,22,77,197,194,249,22,63,248,22,168,12,196,194,28,
|
||||||
22,191,6,197,2,28,249,22,77,195,9,249,22,63,248,22,167,12,198,9,87,
|
249,22,191,6,197,2,28,249,22,77,195,9,249,22,63,248,22,168,12,198,9,
|
||||||
95,28,28,248,22,185,6,194,10,248,22,133,6,194,12,250,22,167,8,2,14,
|
87,95,28,28,248,22,185,6,194,10,248,22,133,6,194,12,250,22,168,8,2,
|
||||||
6,21,21,98,121,116,101,32,115,116,114,105,110,103,32,111,114,32,115,116,114,
|
14,6,21,21,98,121,116,101,32,115,116,114,105,110,103,32,111,114,32,115,116,
|
||||||
105,110,103,196,28,28,248,22,72,195,249,22,4,22,158,12,196,11,12,250,22,
|
114,105,110,103,196,28,28,248,22,72,195,249,22,4,22,159,12,196,11,12,250,
|
||||||
167,8,2,14,6,13,13,108,105,115,116,32,111,102,32,112,97,116,104,115,197,
|
22,168,8,2,14,6,13,13,108,105,115,116,32,111,102,32,112,97,116,104,115,
|
||||||
250,2,49,197,195,28,248,22,133,6,197,248,22,144,7,197,196,32,52,89,162,
|
197,250,2,49,197,195,28,248,22,133,6,197,248,22,144,7,197,196,32,52,89,
|
||||||
8,36,38,56,2,19,222,33,55,32,53,89,162,8,36,37,53,70,102,111,117,
|
162,8,36,38,56,2,19,222,33,55,32,53,89,162,8,36,37,53,70,102,111,
|
||||||
110,100,45,101,120,101,99,222,33,54,28,192,91,159,37,11,90,161,37,34,11,
|
117,110,100,45,101,120,101,99,222,33,54,28,192,91,159,37,11,90,161,37,34,
|
||||||
248,22,179,12,198,27,28,197,27,248,22,184,12,200,28,249,22,139,8,194,201,
|
11,248,22,180,12,198,27,28,197,27,248,22,185,12,200,28,249,22,140,8,194,
|
||||||
11,28,248,22,180,12,193,250,2,53,200,201,249,22,176,12,199,197,250,2,53,
|
201,11,28,248,22,181,12,193,250,2,53,200,201,249,22,177,12,199,197,250,2,
|
||||||
200,201,195,11,28,192,192,27,28,248,22,158,12,195,27,249,22,176,12,197,200,
|
53,200,201,195,11,28,192,192,27,28,248,22,159,12,195,27,249,22,177,12,197,
|
||||||
28,28,248,22,171,12,193,10,248,22,170,12,193,192,11,11,28,192,192,28,198,
|
200,28,28,248,22,172,12,193,10,248,22,171,12,193,192,11,11,28,192,192,28,
|
||||||
11,27,248,22,184,12,201,28,249,22,139,8,194,202,11,28,248,22,180,12,193,
|
198,11,27,248,22,185,12,201,28,249,22,140,8,194,202,11,28,248,22,181,12,
|
||||||
250,2,53,201,202,249,22,176,12,200,197,250,2,53,201,202,195,194,28,248,22,
|
193,250,2,53,201,202,249,22,177,12,200,197,250,2,53,201,202,195,194,28,248,
|
||||||
71,196,11,27,248,22,183,12,248,22,64,198,27,249,22,176,12,195,196,28,248,
|
22,71,196,11,27,248,22,184,12,248,22,64,198,27,249,22,177,12,195,196,28,
|
||||||
22,170,12,193,250,2,53,198,199,195,27,248,22,65,199,28,248,22,71,193,11,
|
248,22,171,12,193,250,2,53,198,199,195,27,248,22,65,199,28,248,22,71,193,
|
||||||
27,248,22,183,12,248,22,64,195,27,249,22,176,12,195,199,28,248,22,170,12,
|
11,27,248,22,184,12,248,22,64,195,27,249,22,177,12,195,199,28,248,22,171,
|
||||||
193,250,2,53,201,202,195,27,248,22,65,196,28,248,22,71,193,11,27,248,22,
|
12,193,250,2,53,201,202,195,27,248,22,65,196,28,248,22,71,193,11,27,248,
|
||||||
183,12,248,22,64,195,27,249,22,176,12,195,202,28,248,22,170,12,193,250,2,
|
22,184,12,248,22,64,195,27,249,22,177,12,195,202,28,248,22,171,12,193,250,
|
||||||
53,204,205,195,251,2,52,204,205,206,248,22,65,199,87,95,28,27,248,22,158,
|
2,53,204,205,195,251,2,52,204,205,206,248,22,65,199,87,95,28,27,248,22,
|
||||||
12,195,28,192,192,28,248,22,133,6,195,27,248,22,180,12,196,28,192,192,248,
|
159,12,195,28,192,192,28,248,22,133,6,195,27,248,22,181,12,196,28,192,192,
|
||||||
22,181,12,196,11,12,250,22,167,8,2,15,6,25,25,112,97,116,104,32,111,
|
248,22,182,12,196,11,12,250,22,168,8,2,15,6,25,25,112,97,116,104,32,
|
||||||
114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,108,41,196,28,
|
111,114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,108,41,196,
|
||||||
28,194,28,27,248,22,158,12,196,28,192,192,28,248,22,133,6,196,27,248,22,
|
28,28,194,28,27,248,22,159,12,196,28,192,192,28,248,22,133,6,196,27,248,
|
||||||
180,12,197,28,192,192,248,22,181,12,197,11,248,22,180,12,195,11,10,12,250,
|
22,181,12,197,28,192,192,248,22,182,12,197,11,248,22,181,12,195,11,10,12,
|
||||||
22,167,8,2,15,6,29,29,35,102,32,111,114,32,114,101,108,97,116,105,118,
|
250,22,168,8,2,15,6,29,29,35,102,32,111,114,32,114,101,108,97,116,105,
|
||||||
101,32,112,97,116,104,32,111,114,32,115,116,114,105,110,103,197,28,28,248,22,
|
118,101,32,112,97,116,104,32,111,114,32,115,116,114,105,110,103,197,28,28,248,
|
||||||
180,12,194,91,159,37,11,90,161,37,34,11,248,22,179,12,197,249,22,137,8,
|
22,181,12,194,91,159,37,11,90,161,37,34,11,248,22,180,12,197,249,22,138,
|
||||||
194,68,114,101,108,97,116,105,118,101,11,27,248,22,150,7,6,4,4,80,65,
|
8,194,68,114,101,108,97,116,105,118,101,11,27,248,22,150,7,6,4,4,80,
|
||||||
84,72,251,2,52,198,199,200,28,196,27,249,80,158,42,46,199,9,28,249,22,
|
65,84,72,251,2,52,198,199,200,28,196,27,249,80,158,42,46,199,9,28,249,
|
||||||
137,8,247,22,152,7,2,21,249,22,63,248,22,167,12,5,1,46,194,192,9,
|
22,138,8,247,22,152,7,2,21,249,22,63,248,22,168,12,5,1,46,194,192,
|
||||||
27,248,22,183,12,195,28,248,22,170,12,193,250,2,53,198,199,195,11,250,80,
|
9,27,248,22,184,12,195,28,248,22,171,12,193,250,2,53,198,199,195,11,250,
|
||||||
158,37,47,196,197,11,250,80,158,37,47,196,11,11,87,94,249,22,189,5,247,
|
80,158,37,47,196,197,11,250,80,158,37,47,196,11,11,87,94,249,22,189,5,
|
||||||
22,166,4,195,248,22,140,5,249,22,151,3,34,249,22,135,3,197,198,27,248,
|
247,22,166,4,195,248,22,140,5,249,22,151,3,34,249,22,135,3,197,198,27,
|
||||||
22,133,13,2,20,27,249,80,158,38,47,195,11,27,27,248,22,154,3,198,28,
|
248,22,134,13,2,20,27,249,80,158,38,47,195,11,27,27,248,22,154,3,198,
|
||||||
192,192,34,27,27,248,22,154,3,200,28,192,192,34,27,249,22,183,4,197,89,
|
28,192,192,34,27,27,248,22,154,3,200,28,192,192,34,27,249,22,183,4,197,
|
||||||
162,8,36,34,46,9,224,4,3,33,59,27,248,22,170,4,194,87,94,248,22,
|
89,162,34,34,46,9,224,4,3,33,59,27,248,22,170,4,194,87,94,248,22,
|
||||||
134,4,21,94,2,17,2,29,248,80,159,41,53,35,193,159,34,20,102,159,34,
|
134,4,21,94,2,17,2,29,248,80,159,41,53,35,193,159,34,20,102,159,34,
|
||||||
16,1,20,24,65,98,101,103,105,110,16,0,83,158,40,20,99,134,67,35,37,
|
16,1,20,24,65,98,101,103,105,110,16,0,83,158,40,20,99,134,67,35,37,
|
||||||
117,116,105,108,115,2,1,11,10,10,10,10,10,41,80,158,34,34,20,102,159,
|
117,116,105,108,115,2,1,11,10,10,10,10,10,41,80,158,34,34,20,102,159,
|
||||||
|
@ -288,7 +292,7 @@
|
||||||
16,2,32,0,89,162,34,35,42,2,12,222,33,46,80,159,34,44,35,83,158,
|
16,2,32,0,89,162,34,35,42,2,12,222,33,46,80,159,34,44,35,83,158,
|
||||||
34,16,2,83,158,37,20,96,95,2,13,89,162,34,34,41,9,223,0,33,47,
|
34,16,2,83,158,37,20,96,95,2,13,89,162,34,34,41,9,223,0,33,47,
|
||||||
89,162,34,35,51,9,223,0,33,48,80,159,34,45,35,83,158,34,16,2,27,
|
89,162,34,35,51,9,223,0,33,48,80,159,34,45,35,83,158,34,16,2,27,
|
||||||
248,22,140,13,248,22,144,7,27,28,249,22,137,8,247,22,152,7,2,21,6,
|
248,22,141,13,248,22,144,7,27,28,249,22,138,8,247,22,152,7,2,21,6,
|
||||||
1,1,59,6,1,1,58,250,22,181,6,6,14,14,40,91,94,126,97,93,42,
|
1,1,59,6,1,1,58,250,22,181,6,6,14,14,40,91,94,126,97,93,42,
|
||||||
41,126,97,40,46,42,41,195,195,89,162,34,36,46,2,14,223,0,33,51,80,
|
41,126,97,40,46,42,41,195,195,89,162,34,36,46,2,14,223,0,33,51,80,
|
||||||
159,34,46,35,83,158,34,16,2,83,158,37,20,96,96,2,15,89,162,8,36,
|
159,34,46,35,83,158,34,16,2,83,158,37,20,96,96,2,15,89,162,8,36,
|
||||||
|
@ -299,160 +303,160 @@
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 4194);
|
EVAL_ONE_SIZED_STR((char *)expr, 4194);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,51,46,57,57,46,48,46,57,7,0,0,0,1,0,0,6,0,19,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,49,49,7,0,0,0,1,0,0,6,0,
|
||||||
0,34,0,48,0,62,0,76,0,0,0,253,0,0,0,65,113,117,111,116,101,
|
19,0,34,0,48,0,62,0,76,0,0,0,253,0,0,0,65,113,117,111,116,
|
||||||
29,94,2,1,67,35,37,117,116,105,108,115,11,29,94,2,1,69,35,37,110,
|
101,29,94,2,1,67,35,37,117,116,105,108,115,11,29,94,2,1,69,35,37,
|
||||||
101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,109,122,11,
|
110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,109,122,
|
||||||
29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35,37,
|
11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35,
|
||||||
107,101,114,110,101,108,11,159,34,20,102,159,34,16,1,20,24,65,98,101,103,
|
37,107,101,114,110,101,108,11,159,34,20,102,159,34,16,1,20,24,65,98,101,
|
||||||
105,110,16,0,83,158,40,20,99,134,69,35,37,98,117,105,108,116,105,110,29,
|
103,105,110,16,0,83,158,40,20,99,134,69,35,37,98,117,105,108,116,105,110,
|
||||||
11,11,10,10,18,94,11,97,10,34,11,97,159,2,2,34,34,159,2,3,34,
|
29,11,11,10,10,18,94,11,97,10,34,11,97,159,2,2,34,34,159,2,3,
|
||||||
34,159,2,4,34,34,159,2,5,34,34,159,2,6,34,34,16,0,18,94,11,
|
34,34,159,2,4,34,34,159,2,5,34,34,159,2,6,34,34,16,0,18,94,
|
||||||
95,35,11,16,0,10,18,94,11,95,8,240,48,117,0,0,11,16,0,34,80,
|
11,95,35,11,16,0,10,18,94,11,95,8,240,48,117,0,0,11,16,0,34,
|
||||||
158,34,34,20,102,159,34,16,0,16,0,11,11,16,0,34,11,11,11,16,0,
|
80,158,34,34,20,102,159,34,16,0,16,0,11,11,16,0,34,11,11,11,16,
|
||||||
16,0,16,0,34,34,11,11,16,0,16,0,16,0,34,34,11,11,16,0,16,
|
0,16,0,16,0,34,34,11,11,16,0,16,0,16,0,34,34,11,11,16,0,
|
||||||
0,16,0,34,34,16,0,16,0,98,2,6,2,5,29,94,2,1,69,35,37,
|
16,0,16,0,34,34,16,0,16,0,98,2,6,2,5,29,94,2,1,69,35,
|
||||||
102,111,114,101,105,103,110,11,2,4,2,3,2,2,9,9,0};
|
37,102,111,114,101,105,103,110,11,2,4,2,3,2,2,9,9,0};
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 289);
|
EVAL_ONE_SIZED_STR((char *)expr, 290);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,51,46,57,57,46,48,46,57,52,0,0,0,1,0,0,3,0,14,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,49,49,52,0,0,0,1,0,0,3,0,
|
||||||
0,41,0,47,0,60,0,74,0,96,0,122,0,134,0,152,0,172,0,184,0,
|
14,0,41,0,47,0,60,0,74,0,96,0,122,0,134,0,152,0,172,0,184,
|
||||||
200,0,223,0,3,1,8,1,13,1,18,1,23,1,54,1,58,1,66,1,74,
|
0,200,0,223,0,3,1,8,1,13,1,18,1,23,1,54,1,58,1,66,1,
|
||||||
1,82,1,163,1,199,1,216,1,245,1,17,2,47,2,57,2,87,2,97,2,
|
74,1,82,1,163,1,199,1,216,1,245,1,17,2,47,2,57,2,87,2,97,
|
||||||
104,2,178,3,190,3,209,3,33,4,45,4,173,4,185,4,30,5,36,5,50,
|
2,104,2,178,3,190,3,209,3,33,4,45,4,173,4,185,4,30,5,36,5,
|
||||||
5,77,5,148,5,150,5,203,5,93,10,152,10,184,10,0,0,119,13,0,0,
|
50,5,77,5,148,5,150,5,203,5,93,10,151,10,183,10,0,0,118,13,0,
|
||||||
29,11,11,70,100,108,108,45,115,117,102,102,105,120,1,25,100,101,102,97,117,
|
0,29,11,11,70,100,108,108,45,115,117,102,102,105,120,1,25,100,101,102,97,
|
||||||
108,116,45,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,65,
|
117,108,116,45,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,
|
||||||
113,117,111,116,101,29,94,2,4,67,35,37,117,116,105,108,115,11,29,94,2,
|
65,113,117,111,116,101,29,94,2,4,67,35,37,117,116,105,108,115,11,29,94,
|
||||||
4,68,35,37,112,97,114,97,109,122,11,1,20,100,101,102,97,117,108,116,45,
|
2,4,68,35,37,112,97,114,97,109,122,11,1,20,100,101,102,97,117,108,116,
|
||||||
114,101,97,100,101,114,45,103,117,97,114,100,1,24,45,109,111,100,117,108,101,
|
45,114,101,97,100,101,114,45,103,117,97,114,100,1,24,45,109,111,100,117,108,
|
||||||
45,104,97,115,104,45,116,97,98,108,101,45,116,97,98,108,101,71,45,112,97,
|
101,45,104,97,115,104,45,116,97,98,108,101,45,116,97,98,108,101,71,45,112,
|
||||||
116,104,45,99,97,99,104,101,77,45,108,111,97,100,105,110,103,45,102,105,108,
|
97,116,104,45,99,97,99,104,101,77,45,108,111,97,100,105,110,103,45,102,105,
|
||||||
101,110,97,109,101,79,45,108,111,97,100,105,110,103,45,112,114,111,109,112,116,
|
108,101,110,97,109,101,79,45,108,111,97,100,105,110,103,45,112,114,111,109,112,
|
||||||
45,116,97,103,71,45,112,114,101,118,45,114,101,108,116,111,75,45,112,114,101,
|
116,45,116,97,103,71,45,112,114,101,118,45,114,101,108,116,111,75,45,112,114,
|
||||||
118,45,114,101,108,116,111,45,100,105,114,1,21,115,112,108,105,116,45,114,101,
|
101,118,45,114,101,108,116,111,45,100,105,114,1,21,115,112,108,105,116,45,114,
|
||||||
108,97,116,105,118,101,45,115,116,114,105,110,103,1,34,109,97,107,101,45,115,
|
101,108,97,116,105,118,101,45,115,116,114,105,110,103,1,34,109,97,107,101,45,
|
||||||
116,97,110,100,97,114,100,45,109,111,100,117,108,101,45,110,97,109,101,45,114,
|
115,116,97,110,100,97,114,100,45,109,111,100,117,108,101,45,110,97,109,101,45,
|
||||||
101,115,111,108,118,101,114,64,98,111,111,116,64,115,97,109,101,64,119,101,97,
|
114,101,115,111,108,118,101,114,64,98,111,111,116,64,115,97,109,101,64,119,101,
|
||||||
107,64,108,111,111,112,1,29,115,116,97,110,100,97,114,100,45,109,111,100,117,
|
97,107,64,108,111,111,112,1,29,115,116,97,110,100,97,114,100,45,109,111,100,
|
||||||
108,101,45,110,97,109,101,45,114,101,115,111,108,118,101,114,63,108,105,98,67,
|
117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,101,114,63,108,105,98,
|
||||||
105,103,110,111,114,101,100,249,22,14,195,80,158,36,44,249,80,159,36,47,35,
|
67,105,103,110,111,114,101,100,249,22,14,195,80,158,36,44,249,80,159,36,47,
|
||||||
195,10,27,28,194,28,249,22,137,8,196,80,158,37,45,80,158,35,46,27,248,
|
35,195,10,27,28,194,28,249,22,138,8,196,80,158,37,45,80,158,35,46,27,
|
||||||
22,149,4,196,28,248,22,158,12,193,91,159,37,11,90,161,37,34,11,248,22,
|
248,22,149,4,196,28,248,22,159,12,193,91,159,37,11,90,161,37,34,11,248,
|
||||||
179,12,196,87,95,83,160,36,11,80,158,39,45,198,83,160,36,11,80,158,39,
|
22,180,12,196,87,95,83,160,36,11,80,158,39,45,198,83,160,36,11,80,158,
|
||||||
46,192,192,11,11,28,192,192,27,247,22,185,5,28,192,192,247,22,134,13,20,
|
39,46,192,192,11,11,28,192,192,27,247,22,185,5,28,192,192,247,22,135,13,
|
||||||
14,159,80,158,34,38,250,80,158,37,39,249,22,27,11,80,158,39,38,22,185,
|
20,14,159,80,158,34,38,250,80,158,37,39,249,22,27,11,80,158,39,38,22,
|
||||||
5,28,248,22,158,12,197,196,247,22,134,13,247,194,250,22,176,12,196,198,249,
|
185,5,28,248,22,159,12,197,196,247,22,135,13,247,194,250,22,177,12,196,198,
|
||||||
80,158,41,37,197,5,3,46,122,111,252,22,176,12,198,200,6,6,6,110,97,
|
249,80,158,41,37,197,5,3,46,122,111,252,22,177,12,198,200,6,6,6,110,
|
||||||
116,105,118,101,247,22,153,7,249,80,158,43,37,199,80,158,43,34,27,193,27,
|
97,116,105,118,101,247,22,153,7,249,80,158,43,37,199,80,158,43,34,27,193,
|
||||||
250,22,129,13,196,11,32,0,89,162,8,44,34,39,9,222,11,28,192,249,22,
|
27,250,22,130,13,196,11,32,0,89,162,8,36,34,39,9,222,11,28,192,249,
|
||||||
63,195,194,11,27,248,194,195,27,250,22,129,13,196,11,32,0,89,162,8,44,
|
22,63,195,194,11,27,248,194,195,27,250,22,130,13,196,11,32,0,89,162,8,
|
||||||
34,39,9,222,11,28,192,249,22,63,195,194,11,249,247,22,139,13,248,22,64,
|
36,34,39,9,222,11,28,192,249,22,63,195,194,11,249,247,22,140,13,248,22,
|
||||||
195,195,27,248,194,195,27,250,22,129,13,196,11,32,0,89,162,8,44,34,39,
|
64,195,195,27,248,194,195,27,250,22,130,13,196,11,32,0,89,162,8,36,34,
|
||||||
9,222,11,28,192,249,22,63,195,194,11,249,247,22,183,5,248,22,64,195,195,
|
39,9,222,11,28,192,249,22,63,195,194,11,249,247,22,183,5,248,22,64,195,
|
||||||
249,247,22,183,5,194,195,87,94,28,248,80,158,35,36,194,12,250,22,167,8,
|
195,249,247,22,183,5,194,195,87,94,28,248,80,158,35,36,194,12,250,22,168,
|
||||||
77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,6,25,25,
|
8,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,6,25,
|
||||||
112,97,116,104,32,111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,
|
25,112,97,116,104,32,111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,
|
||||||
114,105,110,103,196,91,159,40,11,90,161,35,34,11,28,248,22,182,12,200,199,
|
116,114,105,110,103,196,91,159,40,11,90,161,35,34,11,28,248,22,183,12,200,
|
||||||
27,247,22,185,5,28,192,249,22,183,12,202,194,200,90,161,37,35,11,248,22,
|
199,27,247,22,185,5,28,192,249,22,184,12,202,194,200,90,161,37,35,11,248,
|
||||||
179,12,193,90,161,35,38,11,28,249,22,137,8,195,68,114,101,108,97,116,105,
|
22,180,12,193,90,161,35,38,11,28,249,22,138,8,195,68,114,101,108,97,116,
|
||||||
118,101,2,17,193,90,161,35,39,11,247,22,136,13,27,89,162,34,35,48,62,
|
105,118,101,2,17,193,90,161,35,39,11,247,22,137,13,27,89,162,34,35,48,
|
||||||
122,111,225,7,5,3,33,27,27,89,162,34,35,50,9,225,8,6,4,33,28,
|
62,122,111,225,7,5,3,33,27,27,89,162,34,35,50,9,225,8,6,4,33,
|
||||||
27,249,22,5,89,162,34,35,46,9,223,5,33,29,202,27,28,194,27,249,22,
|
28,27,249,22,5,89,162,34,35,46,9,223,5,33,29,202,27,28,194,27,249,
|
||||||
5,89,162,34,35,46,9,223,5,33,30,204,27,28,195,11,193,28,192,192,28,
|
22,5,89,162,34,35,46,9,223,5,33,30,204,27,28,195,11,193,28,192,192,
|
||||||
193,28,195,28,249,22,147,3,248,22,65,196,248,22,65,198,193,11,11,11,11,
|
28,193,28,195,28,249,22,147,3,248,22,65,196,248,22,65,198,193,11,11,11,
|
||||||
28,192,249,80,159,46,53,35,202,89,162,34,34,44,9,224,14,2,33,31,27,
|
11,28,192,249,80,159,46,53,35,202,89,162,34,34,44,9,224,14,2,33,31,
|
||||||
28,196,27,249,22,5,89,162,34,35,46,9,223,7,33,32,205,27,28,196,11,
|
27,28,196,27,249,22,5,89,162,34,35,46,9,223,7,33,32,205,27,28,196,
|
||||||
193,28,192,192,28,193,28,196,28,249,22,147,3,248,22,65,196,248,22,65,199,
|
11,193,28,192,192,28,193,28,196,28,249,22,147,3,248,22,65,196,248,22,65,
|
||||||
193,11,11,11,11,28,192,249,80,159,47,53,35,203,89,162,34,34,44,9,224,
|
199,193,11,11,11,11,28,192,249,80,159,47,53,35,203,89,162,34,34,44,9,
|
||||||
15,2,33,33,249,80,159,47,53,35,203,89,162,34,34,43,9,224,15,7,33,
|
224,15,2,33,33,249,80,159,47,53,35,203,89,162,34,34,43,9,224,15,7,
|
||||||
34,32,36,89,162,34,35,53,2,19,222,33,38,0,17,35,114,120,34,94,40,
|
33,34,32,36,89,162,34,35,53,2,19,222,33,38,0,17,35,114,120,34,94,
|
||||||
46,42,63,41,47,40,46,42,41,36,34,27,249,22,144,13,2,37,195,28,192,
|
40,46,42,63,41,47,40,46,42,41,36,34,27,249,22,145,13,2,37,195,28,
|
||||||
249,22,63,248,22,88,195,27,248,22,97,196,27,249,22,144,13,2,37,195,28,
|
192,249,22,63,248,22,88,195,27,248,22,97,196,27,249,22,145,13,2,37,195,
|
||||||
192,249,22,63,248,22,88,195,27,248,22,97,196,27,249,22,144,13,2,37,195,
|
28,192,249,22,63,248,22,88,195,27,248,22,97,196,27,249,22,145,13,2,37,
|
||||||
28,192,249,22,63,248,22,88,195,248,2,36,248,22,97,196,248,22,73,194,248,
|
195,28,192,249,22,63,248,22,88,195,248,2,36,248,22,97,196,248,22,73,194,
|
||||||
22,73,194,248,22,73,194,32,39,89,162,34,35,53,2,19,222,33,40,28,248,
|
248,22,73,194,248,22,73,194,32,39,89,162,34,35,53,2,19,222,33,40,28,
|
||||||
22,71,248,22,65,194,249,22,7,9,248,22,64,195,91,159,36,11,90,161,36,
|
248,22,71,248,22,65,194,249,22,7,9,248,22,64,195,91,159,36,11,90,161,
|
||||||
34,11,27,248,22,65,196,28,248,22,71,248,22,65,194,249,22,7,9,248,22,
|
36,34,11,27,248,22,65,196,28,248,22,71,248,22,65,194,249,22,7,9,248,
|
||||||
64,195,91,159,36,11,90,161,36,34,11,27,248,22,65,196,28,248,22,71,248,
|
22,64,195,91,159,36,11,90,161,36,34,11,27,248,22,65,196,28,248,22,71,
|
||||||
22,65,194,249,22,7,9,248,22,64,195,91,159,36,11,90,161,36,34,11,248,
|
248,22,65,194,249,22,7,9,248,22,64,195,91,159,36,11,90,161,36,34,11,
|
||||||
2,39,248,22,65,196,249,22,7,249,22,63,248,22,64,199,196,195,249,22,7,
|
248,2,39,248,22,65,196,249,22,7,249,22,63,248,22,64,199,196,195,249,22,
|
||||||
249,22,63,248,22,64,199,196,195,249,22,7,249,22,63,248,22,64,199,196,195,
|
7,249,22,63,248,22,64,199,196,195,249,22,7,249,22,63,248,22,64,199,196,
|
||||||
27,248,2,36,194,28,194,192,248,2,39,193,87,95,28,248,22,147,4,195,12,
|
195,27,248,2,36,194,28,194,192,248,2,39,193,87,95,28,248,22,147,4,195,
|
||||||
250,22,167,8,2,20,6,20,20,114,101,115,111,108,118,101,100,45,109,111,100,
|
12,250,22,168,8,2,20,6,20,20,114,101,115,111,108,118,101,100,45,109,111,
|
||||||
117,108,101,45,112,97,116,104,197,28,207,248,208,195,12,27,27,250,22,126,80,
|
100,117,108,101,45,112,97,116,104,197,28,207,248,208,195,12,27,27,250,22,126,
|
||||||
158,40,41,248,22,162,13,247,22,146,11,11,28,192,192,27,247,22,120,87,94,
|
80,158,40,41,248,22,163,13,247,22,147,11,11,28,192,192,27,247,22,120,87,
|
||||||
250,22,125,80,158,41,41,248,22,162,13,247,22,146,11,195,192,250,22,125,195,
|
94,250,22,125,80,158,41,41,248,22,163,13,247,22,147,11,195,192,250,22,125,
|
||||||
198,66,97,116,116,97,99,104,251,211,197,198,199,10,28,192,250,22,166,8,11,
|
195,198,66,97,116,116,97,99,104,251,211,197,198,199,10,28,192,250,22,167,8,
|
||||||
196,195,248,22,164,8,194,28,249,22,139,6,194,6,1,1,46,2,17,28,249,
|
11,196,195,248,22,165,8,194,28,249,22,139,6,194,6,1,1,46,2,17,28,
|
||||||
22,139,6,194,6,2,2,46,46,62,117,112,192,28,249,22,139,8,248,22,65,
|
249,22,139,6,194,6,2,2,46,46,62,117,112,192,28,249,22,140,8,248,22,
|
||||||
199,196,28,249,22,137,8,248,22,64,199,195,251,22,164,8,2,20,6,26,26,
|
65,199,196,28,249,22,138,8,248,22,64,199,195,251,22,165,8,2,20,6,26,
|
||||||
99,121,99,108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,126,
|
26,99,121,99,108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,
|
||||||
101,58,32,126,101,199,249,22,2,22,65,248,22,78,249,22,63,205,201,12,12,
|
126,101,58,32,126,101,199,249,22,2,22,65,248,22,78,249,22,63,205,201,12,
|
||||||
247,192,20,14,159,80,158,38,43,249,22,63,247,22,146,11,196,20,14,159,80,
|
12,247,192,20,14,159,80,158,38,43,249,22,63,247,22,147,11,196,20,14,159,
|
||||||
158,38,38,250,80,158,41,39,249,22,27,11,80,158,43,38,22,131,4,195,249,
|
80,158,38,38,250,80,158,41,39,249,22,27,11,80,158,43,38,22,131,4,195,
|
||||||
247,22,184,5,197,248,22,52,248,22,162,12,197,87,94,28,28,248,22,158,12,
|
249,247,22,184,5,197,248,22,52,248,22,163,12,197,87,94,28,28,248,22,159,
|
||||||
196,10,248,22,152,4,196,12,28,197,250,22,166,8,11,6,15,15,98,97,100,
|
12,196,10,248,22,152,4,196,12,28,197,250,22,167,8,11,6,15,15,98,97,
|
||||||
32,109,111,100,117,108,101,32,112,97,116,104,200,250,22,167,8,2,20,6,19,
|
100,32,109,111,100,117,108,101,32,112,97,116,104,200,250,22,168,8,2,20,6,
|
||||||
19,109,111,100,117,108,101,45,112,97,116,104,32,111,114,32,112,97,116,104,198,
|
19,19,109,111,100,117,108,101,45,112,97,116,104,32,111,114,32,112,97,116,104,
|
||||||
28,28,248,22,61,196,249,22,137,8,248,22,64,198,2,4,11,248,22,148,4,
|
198,28,28,248,22,61,196,249,22,138,8,248,22,64,198,2,4,11,248,22,148,
|
||||||
248,22,88,197,28,28,248,22,61,196,249,22,137,8,248,22,64,198,66,112,108,
|
4,248,22,88,197,28,28,248,22,61,196,249,22,138,8,248,22,64,198,66,112,
|
||||||
97,110,101,116,11,87,94,28,207,12,20,14,159,80,158,36,38,250,80,158,39,
|
108,97,110,101,116,11,87,94,28,207,12,20,14,159,80,158,36,38,250,80,158,
|
||||||
39,249,22,27,11,80,158,41,38,22,146,11,196,90,161,35,34,10,249,22,132,
|
39,39,249,22,27,11,80,158,41,38,22,147,11,196,90,161,35,34,10,249,22,
|
||||||
4,21,94,2,21,6,18,18,112,108,97,110,101,116,47,114,101,115,111,108,118,
|
132,4,21,94,2,21,6,18,18,112,108,97,110,101,116,47,114,101,115,111,108,
|
||||||
101,114,46,115,115,1,27,112,108,97,110,101,116,45,109,111,100,117,108,101,45,
|
118,101,114,46,115,115,1,27,112,108,97,110,101,116,45,109,111,100,117,108,101,
|
||||||
110,97,109,101,45,114,101,115,111,108,118,101,114,12,251,211,199,200,201,202,27,
|
45,110,97,109,101,45,114,101,115,111,108,118,101,114,12,251,211,199,200,201,202,
|
||||||
89,162,34,35,44,79,115,104,111,119,45,99,111,108,108,101,99,116,105,111,110,
|
27,89,162,34,35,44,79,115,104,111,119,45,99,111,108,108,101,99,116,105,111,
|
||||||
45,101,114,114,223,6,33,44,27,28,248,22,51,198,27,250,22,126,80,158,42,
|
110,45,101,114,114,223,6,33,44,27,28,248,22,51,198,27,250,22,126,80,158,
|
||||||
42,249,22,63,203,247,22,135,13,11,28,192,192,91,159,36,11,90,161,36,34,
|
42,42,249,22,63,203,247,22,136,13,11,28,192,192,91,159,36,11,90,161,36,
|
||||||
11,249,80,159,43,47,35,248,22,54,203,11,27,251,80,158,46,49,2,20,201,
|
34,11,249,80,159,43,47,35,248,22,54,203,11,27,251,80,158,46,49,2,20,
|
||||||
28,248,22,71,198,198,248,22,64,198,28,248,22,71,198,9,248,22,65,198,249,
|
201,28,248,22,71,198,198,248,22,64,198,28,248,22,71,198,9,248,22,65,198,
|
||||||
22,176,12,194,28,248,22,71,196,6,7,7,109,97,105,110,46,115,115,249,22,
|
249,22,177,12,194,28,248,22,71,196,6,7,7,109,97,105,110,46,115,115,249,
|
||||||
156,6,198,6,3,3,46,115,115,28,248,22,133,6,198,27,248,80,159,40,54,
|
22,156,6,198,6,3,3,46,115,115,28,248,22,133,6,198,27,248,80,159,40,
|
||||||
35,200,27,250,22,126,80,158,43,42,249,22,63,204,198,11,28,192,192,91,159,
|
54,35,200,27,250,22,126,80,158,43,42,249,22,63,204,198,11,28,192,192,91,
|
||||||
36,11,90,161,36,34,11,249,80,159,44,47,35,203,11,250,22,1,22,176,12,
|
159,36,11,90,161,36,34,11,249,80,159,44,47,35,203,11,250,22,1,22,177,
|
||||||
198,249,22,77,249,22,2,32,0,89,162,8,36,35,42,9,222,33,45,199,248,
|
12,198,249,22,77,249,22,2,32,0,89,162,8,36,35,42,9,222,33,45,199,
|
||||||
22,73,199,28,248,22,158,12,198,28,248,22,181,12,198,197,248,22,73,6,26,
|
248,22,73,199,28,248,22,159,12,198,28,248,22,182,12,198,197,248,22,73,6,
|
||||||
26,32,40,97,32,112,97,116,104,32,109,117,115,116,32,98,101,32,97,98,115,
|
26,26,32,40,97,32,112,97,116,104,32,109,117,115,116,32,98,101,32,97,98,
|
||||||
111,108,117,116,101,41,28,249,22,137,8,248,22,64,200,2,21,27,250,22,126,
|
115,111,108,117,116,101,41,28,249,22,138,8,248,22,64,200,2,21,27,250,22,
|
||||||
80,158,42,42,249,22,63,203,247,22,135,13,11,28,192,192,91,159,37,11,90,
|
126,80,158,42,42,249,22,63,203,247,22,136,13,11,28,192,192,91,159,37,11,
|
||||||
161,36,34,11,249,80,159,44,47,35,248,22,88,204,11,90,161,35,36,11,28,
|
90,161,36,34,11,249,80,159,44,47,35,248,22,88,204,11,90,161,35,36,11,
|
||||||
248,22,71,248,22,90,203,28,248,22,71,193,249,22,146,13,0,8,35,114,120,
|
28,248,22,71,248,22,90,203,28,248,22,71,193,249,22,147,13,0,8,35,114,
|
||||||
34,91,46,93,34,195,11,10,27,27,28,196,249,22,77,28,248,22,71,248,22,
|
120,34,91,46,93,34,195,11,10,27,27,28,196,249,22,77,28,248,22,71,248,
|
||||||
90,23,15,21,93,6,5,5,109,122,108,105,98,249,22,1,22,77,249,22,2,
|
22,90,23,15,21,93,6,5,5,109,122,108,105,98,249,22,1,22,77,249,22,
|
||||||
80,159,50,55,35,248,22,90,23,18,196,28,248,22,71,195,248,22,73,196,194,
|
2,80,159,50,55,35,248,22,90,23,18,196,28,248,22,71,195,248,22,73,196,
|
||||||
251,80,158,48,49,2,20,203,248,22,64,197,248,22,65,197,249,22,176,12,194,
|
194,251,80,158,48,49,2,20,203,248,22,64,197,248,22,65,197,249,22,177,12,
|
||||||
28,197,196,28,248,22,71,196,6,7,7,109,97,105,110,46,115,115,28,249,22,
|
194,28,197,196,28,248,22,71,196,6,7,7,109,97,105,110,46,115,115,28,249,
|
||||||
146,13,0,8,35,114,120,34,91,46,93,34,198,196,249,22,156,6,198,6,3,
|
22,147,13,0,8,35,114,120,34,91,46,93,34,198,196,249,22,156,6,198,6,
|
||||||
3,46,115,115,28,249,22,137,8,248,22,64,200,64,102,105,108,101,249,22,183,
|
3,3,46,115,115,28,249,22,138,8,248,22,64,200,64,102,105,108,101,249,22,
|
||||||
12,248,22,88,200,248,80,159,41,54,35,201,12,87,94,28,28,248,22,158,12,
|
184,12,248,22,88,200,248,80,159,41,54,35,201,12,87,94,28,28,248,22,159,
|
||||||
193,10,248,22,155,7,193,12,28,199,250,22,166,8,67,114,101,113,117,105,114,
|
12,193,10,248,22,155,7,193,12,28,199,250,22,167,8,67,114,101,113,117,105,
|
||||||
101,249,22,181,6,6,17,17,98,97,100,32,109,111,100,117,108,101,32,112,97,
|
114,101,249,22,181,6,6,17,17,98,97,100,32,109,111,100,117,108,101,32,112,
|
||||||
116,104,126,97,28,197,248,22,64,198,6,0,0,202,250,22,167,8,2,20,249,
|
97,116,104,126,97,28,197,248,22,64,198,6,0,0,202,250,22,168,8,2,20,
|
||||||
22,181,6,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,197,
|
249,22,181,6,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,
|
||||||
248,22,64,198,6,0,0,200,27,28,248,22,155,7,194,249,22,160,7,195,34,
|
197,248,22,64,198,6,0,0,200,27,28,248,22,155,7,194,249,22,160,7,195,
|
||||||
249,22,185,12,248,22,186,12,196,11,27,28,248,22,155,7,195,249,22,160,7,
|
34,249,22,186,12,248,22,187,12,196,11,27,28,248,22,155,7,195,249,22,160,
|
||||||
196,35,248,80,158,41,50,194,91,159,37,11,90,161,37,34,11,28,248,22,155,
|
7,196,35,248,80,158,41,50,194,91,159,37,11,90,161,37,34,11,28,248,22,
|
||||||
7,198,250,22,7,2,22,249,22,160,7,202,36,2,22,248,22,179,12,197,27,
|
155,7,198,250,22,7,2,22,249,22,160,7,202,36,2,22,248,22,180,12,197,
|
||||||
28,248,22,155,7,199,249,22,160,7,200,37,249,80,158,46,51,196,5,0,27,
|
27,28,248,22,155,7,199,249,22,160,7,200,37,249,80,158,46,51,196,5,0,
|
||||||
28,248,22,155,7,200,249,22,160,7,201,38,248,22,148,4,199,27,27,250,22,
|
27,28,248,22,155,7,200,249,22,160,7,201,38,248,22,148,4,199,27,27,250,
|
||||||
126,80,158,50,41,248,22,162,13,247,22,146,11,11,28,192,192,27,247,22,120,
|
22,126,80,158,50,41,248,22,163,13,247,22,147,11,11,28,192,192,27,247,22,
|
||||||
87,94,250,22,125,80,158,51,41,248,22,162,13,247,22,146,11,195,192,87,95,
|
120,87,94,250,22,125,80,158,51,41,248,22,163,13,247,22,147,11,195,192,87,
|
||||||
28,23,16,27,250,22,126,196,197,11,28,192,12,87,95,27,27,28,248,22,17,
|
95,28,23,16,27,250,22,126,196,197,11,28,192,12,87,95,27,27,28,248,22,
|
||||||
80,158,50,44,80,158,49,44,247,22,19,250,22,25,248,22,23,196,80,158,52,
|
17,80,158,50,44,80,158,49,44,247,22,19,250,22,25,248,22,23,196,80,158,
|
||||||
43,195,27,247,22,146,11,249,22,3,89,162,34,35,53,9,226,12,11,2,3,
|
52,43,195,27,247,22,147,11,249,22,3,89,162,34,35,53,9,226,12,11,2,
|
||||||
33,46,195,248,28,248,22,17,80,158,49,44,32,0,89,162,34,35,40,9,222,
|
3,33,46,195,248,28,248,22,17,80,158,49,44,32,0,89,162,34,35,40,9,
|
||||||
33,47,80,159,48,56,35,89,162,34,34,49,9,227,14,9,8,4,3,33,48,
|
222,33,47,80,159,48,56,35,89,162,34,34,49,9,227,14,9,8,4,3,33,
|
||||||
250,22,125,196,197,10,12,28,28,248,22,155,7,201,11,27,248,22,133,6,23,
|
48,250,22,125,196,197,10,12,28,28,248,22,155,7,201,11,27,248,22,133,6,
|
||||||
15,28,192,192,28,248,22,61,23,15,249,22,137,8,248,22,64,23,17,2,21,
|
23,15,28,192,192,28,248,22,61,23,15,249,22,138,8,248,22,64,23,17,2,
|
||||||
11,250,22,125,80,158,49,42,28,248,22,133,6,23,17,249,22,63,23,18,248,
|
21,11,250,22,125,80,158,49,42,28,248,22,133,6,23,17,249,22,63,23,18,
|
||||||
80,159,52,54,35,23,20,249,22,63,23,18,247,22,135,13,252,22,157,7,23,
|
248,80,159,52,54,35,23,20,249,22,63,23,18,247,22,136,13,252,22,157,7,
|
||||||
15,206,204,202,201,12,193,91,159,36,10,90,161,35,34,10,11,90,161,35,35,
|
23,15,206,204,202,201,12,193,91,159,36,10,90,161,35,34,10,11,90,161,35,
|
||||||
10,83,158,37,20,96,96,2,20,89,162,8,36,35,49,9,224,2,0,33,42,
|
35,10,83,158,37,20,96,96,2,20,89,162,34,35,49,9,224,2,0,33,42,
|
||||||
89,162,34,37,47,9,223,1,33,43,89,162,34,38,8,30,9,225,2,3,0,
|
89,162,34,37,47,9,223,1,33,43,89,162,34,38,8,30,9,225,2,3,0,
|
||||||
33,49,208,87,95,248,22,130,4,248,80,158,36,48,247,22,146,11,248,22,184,
|
33,49,208,87,95,248,22,130,4,248,80,158,36,48,247,22,147,11,248,22,184,
|
||||||
5,80,158,35,35,248,22,132,12,80,159,35,40,35,159,34,20,102,159,34,16,
|
5,80,158,35,35,248,22,133,12,80,159,35,40,35,159,34,20,102,159,34,16,
|
||||||
1,20,24,65,98,101,103,105,110,16,0,83,158,40,20,99,134,66,35,37,98,
|
1,20,24,65,98,101,103,105,110,16,0,83,158,40,20,99,134,66,35,37,98,
|
||||||
111,111,116,2,1,11,10,10,10,10,10,36,80,158,34,34,20,102,159,38,16,
|
111,111,116,2,1,11,10,10,10,10,10,36,80,158,34,34,20,102,159,38,16,
|
||||||
19,30,2,1,2,2,193,30,2,1,2,3,193,30,2,5,72,112,97,116,104,
|
19,30,2,1,2,2,193,30,2,1,2,3,193,30,2,5,72,112,97,116,104,
|
||||||
|
|
|
@ -54,7 +54,7 @@ int scheme_get_allow_set_undefined() { return scheme_allow_set_undefined; }
|
||||||
|
|
||||||
int scheme_starting_up;
|
int scheme_starting_up;
|
||||||
|
|
||||||
Scheme_Object *scheme_local[MAX_CONST_LOCAL_POS][2];
|
Scheme_Object *scheme_local[MAX_CONST_LOCAL_POS][2][3];
|
||||||
|
|
||||||
#define MAX_CONST_TOPLEVEL_DEPTH 16
|
#define MAX_CONST_TOPLEVEL_DEPTH 16
|
||||||
#define MAX_CONST_TOPLEVEL_POS 16
|
#define MAX_CONST_TOPLEVEL_POS 16
|
||||||
|
@ -256,30 +256,33 @@ Scheme_Env *scheme_basic_env()
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
int i, k;
|
int i, k, cor;
|
||||||
|
|
||||||
#ifndef USE_TAGGED_ALLOCATION
|
#ifndef USE_TAGGED_ALLOCATION
|
||||||
GC_CAN_IGNORE Scheme_Local *all;
|
GC_CAN_IGNORE Scheme_Local *all;
|
||||||
|
|
||||||
all = (Scheme_Local *)scheme_malloc_eternal(sizeof(Scheme_Local) * 2 * MAX_CONST_LOCAL_POS);
|
all = (Scheme_Local *)scheme_malloc_eternal(sizeof(Scheme_Local) * 3 * 2 * MAX_CONST_LOCAL_POS);
|
||||||
# ifdef MEMORY_COUNTING_ON
|
# ifdef MEMORY_COUNTING_ON
|
||||||
scheme_misc_count += sizeof(Scheme_Local) * 2 * MAX_CONST_LOCAL_POS;
|
scheme_misc_count += sizeof(Scheme_Local) * 3 * 2 * MAX_CONST_LOCAL_POS;
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (i = 0; i < MAX_CONST_LOCAL_POS; i++) {
|
for (i = 0; i < MAX_CONST_LOCAL_POS; i++) {
|
||||||
for (k = 0; k < 2; k++) {
|
for (k = 0; k < 2; k++) {
|
||||||
Scheme_Object *v;
|
for (cor = 0; cor < 3; cor++) {
|
||||||
|
Scheme_Object *v;
|
||||||
|
|
||||||
#ifndef USE_TAGGED_ALLOCATION
|
#ifndef USE_TAGGED_ALLOCATION
|
||||||
v = (Scheme_Object *)(all++);
|
v = (Scheme_Object *)(all++);
|
||||||
#else
|
#else
|
||||||
v = (Scheme_Object *)scheme_malloc_eternal_tagged(sizeof(Scheme_Local));
|
v = (Scheme_Object *)scheme_malloc_eternal_tagged(sizeof(Scheme_Local));
|
||||||
#endif
|
#endif
|
||||||
v->type = k + scheme_local_type;
|
v->type = k + scheme_local_type;
|
||||||
SCHEME_LOCAL_POS(v) = i;
|
SCHEME_LOCAL_POS(v) = i;
|
||||||
|
SCHEME_LOCAL_FLAGS(v) = cor;
|
||||||
|
|
||||||
scheme_local[i][k] = v;
|
scheme_local[i][k][cor] = v;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1541,7 +1544,7 @@ Scheme_Object *scheme_register_stx_in_prefix(Scheme_Object *var, Scheme_Comp_Env
|
||||||
if (rec && rec[drec].dont_mark_local_use) {
|
if (rec && rec[drec].dont_mark_local_use) {
|
||||||
/* Make up anything; it's going to be ignored. */
|
/* Make up anything; it's going to be ignored. */
|
||||||
l = (Scheme_Local *)scheme_malloc_atomic_tagged(sizeof(Scheme_Local));
|
l = (Scheme_Local *)scheme_malloc_atomic_tagged(sizeof(Scheme_Local));
|
||||||
l->so.type = scheme_compiled_quote_syntax_type;
|
l->iso.so.type = scheme_compiled_quote_syntax_type;
|
||||||
l->position = 0;
|
l->position = 0;
|
||||||
|
|
||||||
return (Scheme_Object *)l;
|
return (Scheme_Object *)l;
|
||||||
|
@ -1556,7 +1559,7 @@ Scheme_Object *scheme_register_stx_in_prefix(Scheme_Object *var, Scheme_Comp_Env
|
||||||
pos = cp->num_stxes;
|
pos = cp->num_stxes;
|
||||||
|
|
||||||
l = (Scheme_Local *)scheme_malloc_atomic_tagged(sizeof(Scheme_Local));
|
l = (Scheme_Local *)scheme_malloc_atomic_tagged(sizeof(Scheme_Local));
|
||||||
l->so.type = scheme_compiled_quote_syntax_type;
|
l->iso.so.type = scheme_compiled_quote_syntax_type;
|
||||||
l->position = pos;
|
l->position = pos;
|
||||||
|
|
||||||
cp->num_stxes++;
|
cp->num_stxes++;
|
||||||
|
@ -1582,23 +1585,40 @@ static Scheme_Object *alloc_local(short type, int pos)
|
||||||
return (Scheme_Object *)v;
|
return (Scheme_Object *)v;
|
||||||
}
|
}
|
||||||
|
|
||||||
Scheme_Object *scheme_make_local(Scheme_Type type, int pos)
|
Scheme_Object *scheme_make_local(Scheme_Type type, int pos, int flags)
|
||||||
{
|
{
|
||||||
int k;
|
int k;
|
||||||
Scheme_Object *v;
|
Scheme_Object *v, *key;
|
||||||
|
|
||||||
k = type - scheme_local_type;
|
k = type - scheme_local_type;
|
||||||
|
|
||||||
if (pos < MAX_CONST_LOCAL_POS) {
|
/* Helper for reading bytecode: make sure flags is a valid value */
|
||||||
if (pos >= 0)
|
switch (flags) {
|
||||||
return scheme_local[pos][k];
|
case 0:
|
||||||
|
break;
|
||||||
|
case SCHEME_LOCAL_CLEAR_ON_READ:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
case SCHEME_LOCAL_OTHER_CLEARS:
|
||||||
|
flags = SCHEME_LOCAL_OTHER_CLEARS;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
v = scheme_hash_get(locals_ht[k], scheme_make_integer(pos));
|
if (pos < MAX_CONST_LOCAL_POS) {
|
||||||
|
return scheme_local[pos][k][flags];
|
||||||
|
}
|
||||||
|
|
||||||
|
key = scheme_make_integer(pos);
|
||||||
|
if (flags) {
|
||||||
|
key = scheme_make_pair(scheme_make_integer(flags), key);
|
||||||
|
}
|
||||||
|
|
||||||
|
v = scheme_hash_get(locals_ht[k], key);
|
||||||
if (v)
|
if (v)
|
||||||
return v;
|
return v;
|
||||||
|
|
||||||
v = alloc_local(type, pos);
|
v = alloc_local(type, pos);
|
||||||
|
SCHEME_LOCAL_FLAGS(v) = flags;
|
||||||
|
|
||||||
if (locals_ht[k]->count > TABLE_CACHE_MAX_SIZE) {
|
if (locals_ht[k]->count > TABLE_CACHE_MAX_SIZE) {
|
||||||
Scheme_Hash_Table *ht;
|
Scheme_Hash_Table *ht;
|
||||||
|
@ -1606,7 +1626,7 @@ Scheme_Object *scheme_make_local(Scheme_Type type, int pos)
|
||||||
locals_ht[k] = ht;
|
locals_ht[k] = ht;
|
||||||
}
|
}
|
||||||
|
|
||||||
scheme_hash_set(locals_ht[k], scheme_make_integer(pos), v);
|
scheme_hash_set(locals_ht[k], key, v);
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
@ -1642,7 +1662,7 @@ static Scheme_Local *get_frame_loc(Scheme_Comp_Env *frame,
|
||||||
|
|
||||||
COMPILE_DATA(frame)->use[i] = u;
|
COMPILE_DATA(frame)->use[i] = u;
|
||||||
|
|
||||||
return (Scheme_Local *)scheme_make_local(scheme_local_type, p + i);
|
return (Scheme_Local *)scheme_make_local(scheme_local_type, p + i, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modidx,
|
Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modidx,
|
||||||
|
@ -2384,7 +2404,7 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
|
||||||
*_lexical_binding_id = val;
|
*_lexical_binding_id = val;
|
||||||
}
|
}
|
||||||
if (flags & SCHEME_DONT_MARK_USE)
|
if (flags & SCHEME_DONT_MARK_USE)
|
||||||
return scheme_make_local(scheme_local_type, 0);
|
return scheme_make_local(scheme_local_type, 0, 0);
|
||||||
else
|
else
|
||||||
return (Scheme_Object *)get_frame_loc(frame, i, j, p, flags);
|
return (Scheme_Object *)get_frame_loc(frame, i, j, p, flags);
|
||||||
}
|
}
|
||||||
|
@ -2970,7 +2990,7 @@ Scheme_Object *scheme_optimize_reverse(Optimize_Info *info, int pos, int unless_
|
||||||
if (info->use && info->use[pos])
|
if (info->use && info->use[pos])
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return scheme_make_local(scheme_local_type, pos + delta);
|
return scheme_make_local(scheme_local_type, pos + delta, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int scheme_optimize_is_used(Optimize_Info *info, int pos)
|
int scheme_optimize_is_used(Optimize_Info *info, int pos)
|
||||||
|
@ -3063,7 +3083,7 @@ static Scheme_Object *do_optimize_info_lookup(Optimize_Info *info, int pos, int
|
||||||
if (!n) {
|
if (!n) {
|
||||||
/* Return shifted reference to other local: */
|
/* Return shifted reference to other local: */
|
||||||
delta += scheme_optimize_info_get_shift(info, pos);
|
delta += scheme_optimize_info_get_shift(info, pos);
|
||||||
n = scheme_make_local(scheme_local_type, pos + delta);
|
n = scheme_make_local(scheme_local_type, pos + delta, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return n;
|
return n;
|
||||||
|
@ -3386,7 +3406,8 @@ static int resolve_info_lookup(Resolve_Info *info, int pos, int *flags, Scheme_O
|
||||||
vec = scheme_make_vector(sz + 1, NULL);
|
vec = scheme_make_vector(sz + 1, NULL);
|
||||||
for (i = 0; i < sz; i++) {
|
for (i = 0; i < sz; i++) {
|
||||||
loc = scheme_make_local(scheme_local_type,
|
loc = scheme_make_local(scheme_local_type,
|
||||||
posmap[i] + offset + shifted);
|
posmap[i] + offset + shifted,
|
||||||
|
0);
|
||||||
if (boxmap) {
|
if (boxmap) {
|
||||||
if (boxmap[i / BITS_PER_MZSHORT] & ((mzshort)1 << (i & (BITS_PER_MZSHORT - 1))))
|
if (boxmap[i / BITS_PER_MZSHORT] & ((mzshort)1 << (i & (BITS_PER_MZSHORT - 1))))
|
||||||
loc = scheme_box(loc);
|
loc = scheme_box(loc);
|
||||||
|
@ -4641,16 +4662,29 @@ static Scheme_Object *write_local(Scheme_Object *obj)
|
||||||
return scheme_make_integer(SCHEME_LOCAL_POS(obj));
|
return scheme_make_integer(SCHEME_LOCAL_POS(obj));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *do_read_local(Scheme_Type t, Scheme_Object *obj)
|
||||||
|
{
|
||||||
|
int n, flags;
|
||||||
|
|
||||||
|
if (SCHEME_PAIRP(obj)) {
|
||||||
|
flags = SCHEME_INT_VAL(SCHEME_CAR(obj));
|
||||||
|
obj = SCHEME_CDR(obj);
|
||||||
|
} else
|
||||||
|
flags = 0;
|
||||||
|
|
||||||
|
n = SCHEME_INT_VAL(obj);
|
||||||
|
|
||||||
|
return scheme_make_local(t, n, flags);
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *read_local(Scheme_Object *obj)
|
static Scheme_Object *read_local(Scheme_Object *obj)
|
||||||
{
|
{
|
||||||
return scheme_make_local(scheme_local_type,
|
return do_read_local(scheme_local_type, obj);
|
||||||
SCHEME_INT_VAL(obj));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *read_local_unbox(Scheme_Object *obj)
|
static Scheme_Object *read_local_unbox(Scheme_Object *obj)
|
||||||
{
|
{
|
||||||
return scheme_make_local(scheme_local_unbox_type,
|
return do_read_local(scheme_local_unbox_type, obj);
|
||||||
SCHEME_INT_VAL(obj));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *write_resolve_prefix(Scheme_Object *obj)
|
static Scheme_Object *write_resolve_prefix(Scheme_Object *obj)
|
||||||
|
@ -4753,6 +4787,7 @@ static void register_traversers(void)
|
||||||
GC_REG_TRAV(scheme_rt_comp_env, mark_comp_env);
|
GC_REG_TRAV(scheme_rt_comp_env, mark_comp_env);
|
||||||
GC_REG_TRAV(scheme_rt_resolve_info, mark_resolve_info);
|
GC_REG_TRAV(scheme_rt_resolve_info, mark_resolve_info);
|
||||||
GC_REG_TRAV(scheme_rt_optimize_info, mark_optimize_info);
|
GC_REG_TRAV(scheme_rt_optimize_info, mark_optimize_info);
|
||||||
|
GC_REG_TRAV(scheme_rt_sfs_info, mark_sfs_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
END_XFORM_SKIP;
|
END_XFORM_SKIP;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -647,8 +647,7 @@ scheme_make_folding_prim(Scheme_Prim *fun, const char *name,
|
||||||
{
|
{
|
||||||
return make_prim_closure(fun, 1, name, mina, maxa,
|
return make_prim_closure(fun, 1, name, mina, maxa,
|
||||||
(folding
|
(folding
|
||||||
? (SCHEME_PRIM_IS_FOLDING
|
? SCHEME_PRIM_OPT_FOLDING
|
||||||
| SCHEME_PRIM_IS_NONCM)
|
|
||||||
: 0),
|
: 0),
|
||||||
1, 1,
|
1, 1,
|
||||||
0, 0, NULL);
|
0, 0, NULL);
|
||||||
|
@ -660,9 +659,22 @@ scheme_make_noncm_prim(Scheme_Prim *fun, const char *name,
|
||||||
{
|
{
|
||||||
/* A non-cm primitive leaves the mark stack unchanged when it returns,
|
/* A non-cm primitive leaves the mark stack unchanged when it returns,
|
||||||
it can't return multiple values or a tail call, and it cannot
|
it can't return multiple values or a tail call, and it cannot
|
||||||
use its third argument (i.e., the closure pointer) */
|
use its third argument (i.e., the closure pointer). */
|
||||||
return make_prim_closure(fun, 1, name, mina, maxa,
|
return make_prim_closure(fun, 1, name, mina, maxa,
|
||||||
SCHEME_PRIM_IS_NONCM,
|
SCHEME_PRIM_OPT_NONCM,
|
||||||
|
1, 1,
|
||||||
|
0, 0, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
Scheme_Object *
|
||||||
|
scheme_make_immed_prim(Scheme_Prim *fun, const char *name,
|
||||||
|
mzshort mina, mzshort maxa)
|
||||||
|
{
|
||||||
|
/* An immediate primitive is a non-cm primitive, and it doesn't
|
||||||
|
extend the continuation in a way that interacts with space safety, except
|
||||||
|
maybe to raise an exception. */
|
||||||
|
return make_prim_closure(fun, 1, name, mina, maxa,
|
||||||
|
SCHEME_PRIM_OPT_IMMEDIATE,
|
||||||
1, 1,
|
1, 1,
|
||||||
0, 0, NULL);
|
0, 0, NULL);
|
||||||
}
|
}
|
||||||
|
@ -693,7 +705,7 @@ Scheme_Object *scheme_make_folding_prim_closure(Scheme_Primitive_Closure_Proc *p
|
||||||
{
|
{
|
||||||
return make_prim_closure((Scheme_Prim *)prim, 1, name, mina, maxa,
|
return make_prim_closure((Scheme_Prim *)prim, 1, name, mina, maxa,
|
||||||
(functional
|
(functional
|
||||||
? SCHEME_PRIM_IS_FOLDING
|
? SCHEME_PRIM_OPT_FOLDING
|
||||||
: 0),
|
: 0),
|
||||||
1, 1,
|
1, 1,
|
||||||
1, size, vals);
|
1, size, vals);
|
||||||
|
@ -721,7 +733,7 @@ scheme_make_closed_prim_w_everything(Scheme_Closed_Prim *fun,
|
||||||
prim->name = name;
|
prim->name = name;
|
||||||
prim->mina = mina;
|
prim->mina = mina;
|
||||||
prim->maxa = maxa;
|
prim->maxa = maxa;
|
||||||
prim->pp.flags = ((folding ? SCHEME_PRIM_IS_FOLDING : 0)
|
prim->pp.flags = ((folding ? SCHEME_PRIM_OPT_FOLDING : 0)
|
||||||
| (scheme_defining_primitives ? SCHEME_PRIM_IS_PRIMITIVE : 0)
|
| (scheme_defining_primitives ? SCHEME_PRIM_IS_PRIMITIVE : 0)
|
||||||
| (hasr ? SCHEME_PRIM_IS_MULTI_RESULT : 0));
|
| (hasr ? SCHEME_PRIM_IS_MULTI_RESULT : 0));
|
||||||
|
|
||||||
|
@ -908,7 +920,8 @@ void scheme_delay_load_closure(Scheme_Closure_Data *data)
|
||||||
(Validate_TLS)SCHEME_VEC_ELS(vinfo)[2],
|
(Validate_TLS)SCHEME_VEC_ELS(vinfo)[2],
|
||||||
SCHEME_INT_VAL(SCHEME_VEC_ELS(vinfo)[3]),
|
SCHEME_INT_VAL(SCHEME_VEC_ELS(vinfo)[3]),
|
||||||
SCHEME_INT_VAL(SCHEME_VEC_ELS(vinfo)[4]),
|
SCHEME_INT_VAL(SCHEME_VEC_ELS(vinfo)[4]),
|
||||||
SCHEME_INT_VAL(SCHEME_VEC_ELS(vinfo)[5]));
|
SCHEME_INT_VAL(SCHEME_VEC_ELS(vinfo)[5]),
|
||||||
|
SCHEME_INT_VAL(SCHEME_VEC_ELS(vinfo)[6]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1024,6 +1037,98 @@ Scheme_Object *scheme_shift_closure_compilation(Scheme_Object *_data, int delta,
|
||||||
return _data;
|
return _data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Scheme_Object *scheme_sfs_closure(Scheme_Object *expr, SFS_Info *info, int self_pos)
|
||||||
|
{
|
||||||
|
Scheme_Closure_Data *data = (Scheme_Closure_Data *)expr;
|
||||||
|
Scheme_Object *code;
|
||||||
|
int i, size, has_tl = 0;
|
||||||
|
|
||||||
|
size = data->closure_size;
|
||||||
|
if (size) {
|
||||||
|
if (info->stackpos + data->closure_map[size - 1] == info->tlpos) {
|
||||||
|
has_tl = 1;
|
||||||
|
--size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!info->pass) {
|
||||||
|
for (i = size; i--; ) {
|
||||||
|
scheme_sfs_used(info, data->closure_map[i]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* Check whether we need to zero out any stack positions
|
||||||
|
after capturing them in a closure: */
|
||||||
|
Scheme_Object *clears = scheme_null;
|
||||||
|
|
||||||
|
if (info->ip < info->max_nontail) {
|
||||||
|
int pos, ip;
|
||||||
|
for (i = size; i--; ) {
|
||||||
|
pos = data->closure_map[i] + info->stackpos;
|
||||||
|
if (pos < info->depth) {
|
||||||
|
ip = info->max_used[pos];
|
||||||
|
if ((ip == info->ip)
|
||||||
|
&& (ip < info->max_calls[pos])) {
|
||||||
|
pos -= info->stackpos;
|
||||||
|
clears = scheme_make_pair(scheme_make_integer(pos),
|
||||||
|
clears);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return scheme_sfs_add_clears(expr, clears, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(SCHEME_CLOSURE_DATA_FLAGS(data) & CLOS_SFS)) {
|
||||||
|
SCHEME_CLOSURE_DATA_FLAGS(data) |= CLOS_SFS;
|
||||||
|
info = scheme_new_sfs_info(data->max_let_depth);
|
||||||
|
scheme_sfs_push(info, data->closure_size + data->num_params, 1);
|
||||||
|
|
||||||
|
if (has_tl)
|
||||||
|
info->tlpos = info->stackpos + data->closure_size - 1;
|
||||||
|
|
||||||
|
if (self_pos >= 0) {
|
||||||
|
for (i = size; i--; ) {
|
||||||
|
if (data->closure_map[i] == self_pos) {
|
||||||
|
info->selfpos = info->stackpos + i;
|
||||||
|
info->selfstart = info->stackpos;
|
||||||
|
info->selflen = data->closure_size;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
code = scheme_sfs(data->code, info, data->max_let_depth);
|
||||||
|
|
||||||
|
/* If any arguments go unused, and if there's a non-tail,
|
||||||
|
non-immediate call in the body, then we flush the
|
||||||
|
unused arguments at the start of the body. We assume that
|
||||||
|
the closure values are used (otherwise they wouldn't
|
||||||
|
be in the closure). */
|
||||||
|
if (info->max_nontail) {
|
||||||
|
int i, pos, cnt;
|
||||||
|
Scheme_Object *clears = scheme_null;
|
||||||
|
|
||||||
|
cnt = data->num_params;
|
||||||
|
for (i = 0; i < cnt; i++) {
|
||||||
|
pos = data->max_let_depth - (cnt - i);
|
||||||
|
if (!info->max_used[pos]) {
|
||||||
|
pos = i + data->closure_size;
|
||||||
|
clears = scheme_make_pair(scheme_make_integer(pos),
|
||||||
|
clears);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCHEME_PAIRP(clears))
|
||||||
|
code = scheme_sfs_add_clears(code, clears, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
data->code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
return expr;
|
||||||
|
}
|
||||||
|
|
||||||
int scheme_closure_body_size(Scheme_Closure_Data *data, int check_assign)
|
int scheme_closure_body_size(Scheme_Closure_Data *data, int check_assign)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -857,6 +857,19 @@ static int mz_is_closure(mz_jit_state *jitter, int i, int arity, int *_flags)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int stack_safety(mz_jit_state *jitter, int cnt, int offset)
|
||||||
|
{
|
||||||
|
/* To preserve space safety, we must initialize any stack room
|
||||||
|
that we make, so that whatever happens to be there isn't
|
||||||
|
traversed in case of a GC. */
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < cnt; i++) {
|
||||||
|
jit_stxi_p(WORDS_TO_BYTES(i+offset), JIT_RUNSTACK, JIT_RUNSTACK);
|
||||||
|
CHECK_LIMIT();
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
#define mz_pushr_p(x) mz_pushr_p_it(jitter, x)
|
#define mz_pushr_p(x) mz_pushr_p_it(jitter, x)
|
||||||
#define mz_popr_p(x) mz_popr_p_it(jitter, x)
|
#define mz_popr_p(x) mz_popr_p_it(jitter, x)
|
||||||
|
|
||||||
|
@ -1275,8 +1288,12 @@ static int inlined_nary_prim(Scheme_Object *o, Scheme_Object *_app)
|
||||||
static int is_noncm(Scheme_Object *a, mz_jit_state *jitter, int depth, int stack_start)
|
static int is_noncm(Scheme_Object *a, mz_jit_state *jitter, int depth, int stack_start)
|
||||||
{
|
{
|
||||||
if (SCHEME_PRIMP(a)) {
|
if (SCHEME_PRIMP(a)) {
|
||||||
if (((Scheme_Prim_Proc_Header *)a)->flags & SCHEME_PRIM_IS_NONCM)
|
int opts;
|
||||||
return 1;
|
opts = ((Scheme_Prim_Proc_Header *)a)->flags & SCHEME_PRIM_OPT_MASK;
|
||||||
|
if (opts >= SCHEME_PRIM_OPT_NONCM)
|
||||||
|
/* Structure-type predicates are handled specially, so don't claim NONCM: */
|
||||||
|
if (!(((Scheme_Prim_Proc_Header *)a)->flags & SCHEME_PRIM_IS_STRUCT_PRED))
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (depth
|
if (depth
|
||||||
|
@ -1409,6 +1426,82 @@ static int is_simple(Scheme_Object *obj, int depth, int just_markless, mz_jit_st
|
||||||
return (type > _scheme_values_types_);
|
return (type > _scheme_values_types_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int is_non_gc(Scheme_Object *obj, int depth)
|
||||||
|
{
|
||||||
|
/* Return 1 if evaluating `obj' can't trigger a GC. */
|
||||||
|
Scheme_Type type;
|
||||||
|
|
||||||
|
type = SCHEME_TYPE(obj);
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case scheme_syntax_type:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case scheme_branch_type:
|
||||||
|
if (depth) {
|
||||||
|
Scheme_Branch_Rec *b = (Scheme_Branch_Rec *)obj;
|
||||||
|
return (is_non_gc(b->test, depth - 1)
|
||||||
|
&& is_non_gc(b->tbranch, depth - 1)
|
||||||
|
&& is_non_gc(b->fbranch, depth - 1));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case scheme_let_value_type:
|
||||||
|
if (depth) {
|
||||||
|
Scheme_Let_Value *lv = (Scheme_Let_Value *)obj;
|
||||||
|
if (SCHEME_LET_AUTOBOX(lv))
|
||||||
|
return 0;
|
||||||
|
return is_non_gc(lv->body, depth - 1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case scheme_let_one_type:
|
||||||
|
if (depth) {
|
||||||
|
return (is_non_gc(((Scheme_Let_One *)obj)->value, depth - 1)
|
||||||
|
&& is_non_gc(((Scheme_Let_One *)obj)->body, depth - 1));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case scheme_let_void_type:
|
||||||
|
if (depth) {
|
||||||
|
Scheme_Let_Void *lv = (Scheme_Let_Void *)obj;
|
||||||
|
if (SCHEME_LET_AUTOBOX(lv))
|
||||||
|
return 0;
|
||||||
|
return is_non_gc(lv->body, depth - 1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case scheme_letrec_type:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case scheme_application_type:
|
||||||
|
break;
|
||||||
|
case scheme_application2_type:
|
||||||
|
break;
|
||||||
|
case scheme_application3_type:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case scheme_toplevel_type:
|
||||||
|
break;
|
||||||
|
case scheme_unclosed_procedure_type:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case scheme_quote_syntax_type:
|
||||||
|
case scheme_local_type:
|
||||||
|
case scheme_local_unbox_type:
|
||||||
|
return 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (type > _scheme_values_types_);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int ok_to_move_local(Scheme_Object *obj)
|
||||||
|
{
|
||||||
|
if (SAME_TYPE(SCHEME_TYPE(obj), scheme_local_type)
|
||||||
|
&& !(SCHEME_LOCAL_FLAGS(obj) & SCHEME_LOCAL_CLEARING_MASK)) {
|
||||||
|
return 1;
|
||||||
|
} else
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int is_constant_and_avoids_r1(Scheme_Object *obj)
|
static int is_constant_and_avoids_r1(Scheme_Object *obj)
|
||||||
{
|
{
|
||||||
Scheme_Type t = SCHEME_TYPE(obj);
|
Scheme_Type t = SCHEME_TYPE(obj);
|
||||||
|
@ -1417,7 +1510,7 @@ static int is_constant_and_avoids_r1(Scheme_Object *obj)
|
||||||
return ((SCHEME_TOPLEVEL_FLAGS(obj) & SCHEME_TOPLEVEL_CONST)
|
return ((SCHEME_TOPLEVEL_FLAGS(obj) & SCHEME_TOPLEVEL_CONST)
|
||||||
? 1
|
? 1
|
||||||
: 0);
|
: 0);
|
||||||
} else if (SAME_TYPE(t, scheme_local_type)) {
|
} else if (SAME_TYPE(t, scheme_local_type) && ok_to_move_local(obj)) {
|
||||||
return 1;
|
return 1;
|
||||||
} else
|
} else
|
||||||
return (t >= _scheme_compiled_values_types_);
|
return (t >= _scheme_compiled_values_types_);
|
||||||
|
@ -2085,10 +2178,10 @@ static int is_a_procedure(Scheme_Object *v, mz_jit_state *jitter)
|
||||||
static int generate_app(Scheme_App_Rec *app, Scheme_Object **alt_rands, int num_rands,
|
static int generate_app(Scheme_App_Rec *app, Scheme_Object **alt_rands, int num_rands,
|
||||||
mz_jit_state *jitter, int is_tail, int multi_ok)
|
mz_jit_state *jitter, int is_tail, int multi_ok)
|
||||||
{
|
{
|
||||||
int i, offset;
|
int i, offset, need_safety = 0;
|
||||||
int direct_prim = 0, need_non_tail = 0, direct_native = 0, direct_self = 0;
|
int direct_prim = 0, need_non_tail = 0, direct_native = 0, direct_self = 0;
|
||||||
int proc_already_in_place = 0;
|
int proc_already_in_place = 0;
|
||||||
Scheme_Object *rator, *v;
|
Scheme_Object *rator, *v, *arg;
|
||||||
int reorder_ok = 0;
|
int reorder_ok = 0;
|
||||||
int args_already_in_place = 0;
|
int args_already_in_place = 0;
|
||||||
START_JIT_DATA();
|
START_JIT_DATA();
|
||||||
|
@ -2106,7 +2199,7 @@ static int generate_app(Scheme_App_Rec *app, Scheme_Object **alt_rands, int num_
|
||||||
} else {
|
} else {
|
||||||
Scheme_Type t;
|
Scheme_Type t;
|
||||||
t = SCHEME_TYPE(rator);
|
t = SCHEME_TYPE(rator);
|
||||||
if (t == scheme_local_type) {
|
if ((t == scheme_local_type) && ok_to_move_local(rator)) {
|
||||||
/* We can re-order evaluation of the rator. */
|
/* We can re-order evaluation of the rator. */
|
||||||
reorder_ok = 1;
|
reorder_ok = 1;
|
||||||
|
|
||||||
|
@ -2181,7 +2274,8 @@ static int generate_app(Scheme_App_Rec *app, Scheme_Object **alt_rands, int num_
|
||||||
mz_runstack_skipped(jitter, num_rands);
|
mz_runstack_skipped(jitter, num_rands);
|
||||||
for (i = 0; i < num_rands; i++) {
|
for (i = 0; i < num_rands; i++) {
|
||||||
v = (alt_rands ? alt_rands[i+1] : app->args[i+1]);
|
v = (alt_rands ? alt_rands[i+1] : app->args[i+1]);
|
||||||
if (SAME_TYPE(SCHEME_TYPE(v), scheme_local_type)) {
|
if (SAME_TYPE(SCHEME_TYPE(v), scheme_local_type)
|
||||||
|
&& !(SCHEME_LOCAL_FLAGS(v) & SCHEME_LOCAL_OTHER_CLEARS)) {
|
||||||
int pos;
|
int pos;
|
||||||
pos = mz_remap(SCHEME_LOCAL_POS(v));
|
pos = mz_remap(SCHEME_LOCAL_POS(v));
|
||||||
if (pos == (jitter->depth + args_already_in_place))
|
if (pos == (jitter->depth + args_already_in_place))
|
||||||
|
@ -2202,6 +2296,7 @@ static int generate_app(Scheme_App_Rec *app, Scheme_Object **alt_rands, int num_
|
||||||
if (num_rands) {
|
if (num_rands) {
|
||||||
if (!direct_prim || (num_rands > 1)) {
|
if (!direct_prim || (num_rands > 1)) {
|
||||||
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(num_rands));
|
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(num_rands));
|
||||||
|
need_safety = num_rands;
|
||||||
CHECK_RUNSTACK_OVERFLOW();
|
CHECK_RUNSTACK_OVERFLOW();
|
||||||
mz_runstack_pushed(jitter, num_rands);
|
mz_runstack_pushed(jitter, num_rands);
|
||||||
} else {
|
} else {
|
||||||
|
@ -2224,6 +2319,12 @@ static int generate_app(Scheme_App_Rec *app, Scheme_Object **alt_rands, int num_
|
||||||
offset = 0;
|
offset = 0;
|
||||||
|
|
||||||
if (!direct_prim && !reorder_ok && !direct_self) {
|
if (!direct_prim && !reorder_ok && !direct_self) {
|
||||||
|
if (need_safety && !is_non_gc(rator, INIT_SIMPLE_DEPTH)) {
|
||||||
|
stack_safety(jitter, need_safety, offset);
|
||||||
|
CHECK_LIMIT();
|
||||||
|
need_safety = 0;
|
||||||
|
}
|
||||||
|
|
||||||
generate_non_tail(rator, jitter, 0, !need_non_tail);
|
generate_non_tail(rator, jitter, 0, !need_non_tail);
|
||||||
CHECK_LIMIT();
|
CHECK_LIMIT();
|
||||||
|
|
||||||
|
@ -2239,8 +2340,11 @@ static int generate_app(Scheme_App_Rec *app, Scheme_Object **alt_rands, int num_
|
||||||
can move the proc directly to V1. */
|
can move the proc directly to V1. */
|
||||||
jit_movr_p(JIT_V1, JIT_R0);
|
jit_movr_p(JIT_V1, JIT_R0);
|
||||||
proc_already_in_place = 1;
|
proc_already_in_place = 1;
|
||||||
} else
|
} else {
|
||||||
jit_stxi_p(WORDS_TO_BYTES(num_rands - 1 + offset), JIT_RUNSTACK, JIT_R0);
|
jit_stxi_p(WORDS_TO_BYTES(num_rands - 1 + offset), JIT_RUNSTACK, JIT_R0);
|
||||||
|
if (need_safety)
|
||||||
|
need_safety--;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
jit_movr_p(JIT_V1, JIT_R0);
|
jit_movr_p(JIT_V1, JIT_R0);
|
||||||
}
|
}
|
||||||
|
@ -2248,10 +2352,15 @@ static int generate_app(Scheme_App_Rec *app, Scheme_Object **alt_rands, int num_
|
||||||
|
|
||||||
for (i = 0; i < num_rands; i++) {
|
for (i = 0; i < num_rands; i++) {
|
||||||
PAUSE_JIT_DATA();
|
PAUSE_JIT_DATA();
|
||||||
generate_non_tail((alt_rands
|
arg = (alt_rands
|
||||||
? alt_rands[i+1+args_already_in_place]
|
? alt_rands[i+1+args_already_in_place]
|
||||||
: app->args[i+1+args_already_in_place]),
|
: app->args[i+1+args_already_in_place]);
|
||||||
jitter, 0, !need_non_tail);
|
if (need_safety && !is_non_gc(arg, INIT_SIMPLE_DEPTH)) {
|
||||||
|
stack_safety(jitter, need_safety - i, offset + i);
|
||||||
|
CHECK_LIMIT();
|
||||||
|
need_safety = 0;
|
||||||
|
}
|
||||||
|
generate_non_tail(arg, jitter, 0, !need_non_tail);
|
||||||
RESUME_JIT_DATA();
|
RESUME_JIT_DATA();
|
||||||
CHECK_LIMIT();
|
CHECK_LIMIT();
|
||||||
if ((i == num_rands - 1) && !direct_prim && !reorder_ok && !direct_self && !proc_already_in_place) {
|
if ((i == num_rands - 1) && !direct_prim && !reorder_ok && !direct_self && !proc_already_in_place) {
|
||||||
|
@ -2694,9 +2803,9 @@ static int generate_arith(mz_jit_state *jitter, Scheme_Object *rator, Scheme_Obj
|
||||||
rand = rand2;
|
rand = rand2;
|
||||||
rand2 = NULL;
|
rand2 = NULL;
|
||||||
reversed = 1;
|
reversed = 1;
|
||||||
} else if ((SAME_TYPE(SCHEME_TYPE(rand2), scheme_local_type)
|
} else if ((ok_to_move_local(rand2)
|
||||||
|| SCHEME_INTP(rand2))
|
|| SCHEME_INTP(rand2))
|
||||||
&& !(SAME_TYPE(SCHEME_TYPE(rand), scheme_local_type)
|
&& !(ok_to_move_local(rand)
|
||||||
|| SCHEME_INTP(rand))) {
|
|| SCHEME_INTP(rand))) {
|
||||||
/* Second expression is side-effect-free, unlike the first;
|
/* Second expression is side-effect-free, unlike the first;
|
||||||
swap order and use the fast path for when the first arg is
|
swap order and use the fast path for when the first arg is
|
||||||
|
@ -2715,7 +2824,7 @@ static int generate_arith(mz_jit_state *jitter, Scheme_Object *rator, Scheme_Obj
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rand2) {
|
if (rand2) {
|
||||||
simple_rand = (SAME_TYPE(SCHEME_TYPE(rand), scheme_local_type)
|
simple_rand = (ok_to_move_local(rand)
|
||||||
|| SCHEME_INTP(rand));
|
|| SCHEME_INTP(rand));
|
||||||
} else
|
} else
|
||||||
simple_rand = 0;
|
simple_rand = 0;
|
||||||
|
@ -2728,11 +2837,13 @@ static int generate_arith(mz_jit_state *jitter, Scheme_Object *rator, Scheme_Obj
|
||||||
mz_runstack_skipped(jitter, skipped);
|
mz_runstack_skipped(jitter, skipped);
|
||||||
|
|
||||||
if (rand2 && !simple_rand) {
|
if (rand2 && !simple_rand) {
|
||||||
|
mz_runstack_skipped(jitter, 1);
|
||||||
|
generate_non_tail(rand, jitter, 0, 1);
|
||||||
|
mz_runstack_unskipped(jitter, 1);
|
||||||
|
CHECK_LIMIT();
|
||||||
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(1));
|
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(1));
|
||||||
CHECK_RUNSTACK_OVERFLOW();
|
CHECK_RUNSTACK_OVERFLOW();
|
||||||
mz_runstack_pushed(jitter, 1);
|
mz_runstack_pushed(jitter, 1);
|
||||||
generate_non_tail(rand, jitter, 0, 1);
|
|
||||||
CHECK_LIMIT();
|
|
||||||
jit_str_p(JIT_RUNSTACK, JIT_R0);
|
jit_str_p(JIT_RUNSTACK, JIT_R0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3618,14 +3729,16 @@ static int generate_two_args(Scheme_Object *rand1, Scheme_Object *rand2, mz_jit_
|
||||||
|
|
||||||
mz_runstack_unskipped(jitter, 2);
|
mz_runstack_unskipped(jitter, 2);
|
||||||
} else {
|
} else {
|
||||||
|
mz_runstack_skipped(jitter, 2);
|
||||||
|
generate_non_tail(rand1, jitter, 0, 1);
|
||||||
|
mz_runstack_unskipped(jitter, 2);
|
||||||
|
CHECK_LIMIT();
|
||||||
|
|
||||||
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(1));
|
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(1));
|
||||||
CHECK_RUNSTACK_OVERFLOW();
|
CHECK_RUNSTACK_OVERFLOW();
|
||||||
mz_runstack_pushed(jitter, 1);
|
mz_runstack_pushed(jitter, 1);
|
||||||
mz_runstack_skipped(jitter, 1);
|
|
||||||
|
|
||||||
generate_non_tail(rand1, jitter, 0, 1);
|
|
||||||
CHECK_LIMIT();
|
|
||||||
jit_str_p(JIT_RUNSTACK, JIT_R0);
|
jit_str_p(JIT_RUNSTACK, JIT_R0);
|
||||||
|
mz_runstack_skipped(jitter, 1);
|
||||||
|
|
||||||
generate_non_tail(rand2, jitter, 0, 1);
|
generate_non_tail(rand2, jitter, 0, 1);
|
||||||
CHECK_LIMIT();
|
CHECK_LIMIT();
|
||||||
|
@ -3810,7 +3923,7 @@ static int generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i
|
||||||
__END_SHORT_JUMPS__(branch_short);
|
__END_SHORT_JUMPS__(branch_short);
|
||||||
} else {
|
} else {
|
||||||
/* Two complex expressions: */
|
/* Two complex expressions: */
|
||||||
generate_two_args(a1, a2, jitter, 0);
|
generate_two_args(a2, a1, jitter, 0);
|
||||||
|
|
||||||
__START_SHORT_JUMPS__(branch_short);
|
__START_SHORT_JUMPS__(branch_short);
|
||||||
|
|
||||||
|
@ -3902,15 +4015,18 @@ static int generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i
|
||||||
mz_runstack_skipped(jitter, 1);
|
mz_runstack_skipped(jitter, 1);
|
||||||
|
|
||||||
if (!simple) {
|
if (!simple) {
|
||||||
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(1));
|
mz_runstack_skipped(jitter, 1);
|
||||||
CHECK_RUNSTACK_OVERFLOW();
|
|
||||||
mz_runstack_pushed(jitter, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
generate_non_tail(app->rand1, jitter, 0, 1);
|
generate_non_tail(app->rand1, jitter, 0, 1);
|
||||||
CHECK_LIMIT();
|
CHECK_LIMIT();
|
||||||
|
|
||||||
if (!simple) {
|
if (!simple) {
|
||||||
|
mz_runstack_unskipped(jitter, 1);
|
||||||
|
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(1));
|
||||||
|
CHECK_RUNSTACK_OVERFLOW();
|
||||||
|
mz_runstack_pushed(jitter, 1);
|
||||||
|
|
||||||
jit_str_p(JIT_RUNSTACK, JIT_R0);
|
jit_str_p(JIT_RUNSTACK, JIT_R0);
|
||||||
|
|
||||||
generate_non_tail(app->rand2, jitter, 0, 1);
|
generate_non_tail(app->rand2, jitter, 0, 1);
|
||||||
|
@ -4104,6 +4220,8 @@ static int generate_inlined_nary(mz_jit_state *jitter, Scheme_App_Rec *app, int
|
||||||
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(pushed));
|
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(pushed));
|
||||||
CHECK_RUNSTACK_OVERFLOW();
|
CHECK_RUNSTACK_OVERFLOW();
|
||||||
mz_runstack_pushed(jitter, pushed);
|
mz_runstack_pushed(jitter, pushed);
|
||||||
|
stack_safety(jitter, pushed, 0);
|
||||||
|
CHECK_LIMIT();
|
||||||
}
|
}
|
||||||
|
|
||||||
generate_non_tail(app->args[1], jitter, 0, 1);
|
generate_non_tail(app->args[1], jitter, 0, 1);
|
||||||
|
@ -4568,12 +4686,15 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m
|
||||||
/* Other parts of the JIT rely on this code modifying R0, only */
|
/* Other parts of the JIT rely on this code modifying R0, only */
|
||||||
int pos;
|
int pos;
|
||||||
START_JIT_DATA();
|
START_JIT_DATA();
|
||||||
LOG_IT(("local\n"));
|
|
||||||
pos = mz_remap(SCHEME_LOCAL_POS(obj));
|
pos = mz_remap(SCHEME_LOCAL_POS(obj));
|
||||||
|
LOG_IT(("local %d [%d]\n", pos, SCHEME_LOCAL_FLAGS(obj)));
|
||||||
if (pos || (mz_CURRENT_STATUS() != mz_RS_R0_HAS_RUNSTACK0)) {
|
if (pos || (mz_CURRENT_STATUS() != mz_RS_R0_HAS_RUNSTACK0)) {
|
||||||
jit_ldxi_p(JIT_R0, JIT_RUNSTACK, WORDS_TO_BYTES(pos));
|
jit_ldxi_p(JIT_R0, JIT_RUNSTACK, WORDS_TO_BYTES(pos));
|
||||||
VALIDATE_RESULT(JIT_R0);
|
VALIDATE_RESULT(JIT_R0);
|
||||||
}
|
}
|
||||||
|
if (SCHEME_LOCAL_FLAGS(obj) & SCHEME_LOCAL_CLEAR_ON_READ) {
|
||||||
|
jit_stxi_p(WORDS_TO_BYTES(pos), JIT_RUNSTACK, JIT_RUNSTACK);
|
||||||
|
}
|
||||||
END_JIT_DATA(2);
|
END_JIT_DATA(2);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -4586,6 +4707,10 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m
|
||||||
pos = mz_remap(SCHEME_LOCAL_POS(obj));
|
pos = mz_remap(SCHEME_LOCAL_POS(obj));
|
||||||
jit_ldxi_p(JIT_R0, JIT_RUNSTACK, WORDS_TO_BYTES(pos));
|
jit_ldxi_p(JIT_R0, JIT_RUNSTACK, WORDS_TO_BYTES(pos));
|
||||||
jit_ldr_p(JIT_R0, JIT_R0);
|
jit_ldr_p(JIT_R0, JIT_R0);
|
||||||
|
if (SCHEME_LOCAL_FLAGS(obj) & SCHEME_LOCAL_CLEAR_ON_READ) {
|
||||||
|
LOG_IT(("clear-on-read\n"));
|
||||||
|
jit_stxi_p(WORDS_TO_BYTES(pos), JIT_RUNSTACK, JIT_RUNSTACK);
|
||||||
|
}
|
||||||
VALIDATE_RESULT(JIT_R0);
|
VALIDATE_RESULT(JIT_R0);
|
||||||
|
|
||||||
END_JIT_DATA(3);
|
END_JIT_DATA(3);
|
||||||
|
@ -5036,6 +5161,7 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m
|
||||||
nsrs = jitter->need_set_rs;
|
nsrs = jitter->need_set_rs;
|
||||||
PAUSE_JIT_DATA();
|
PAUSE_JIT_DATA();
|
||||||
LOG_IT(("...then...\n"));
|
LOG_IT(("...then...\n"));
|
||||||
|
FOR_LOG(++jitter->log_depth);
|
||||||
g1 = generate(branch->tbranch, jitter, is_tail, multi_ok);
|
g1 = generate(branch->tbranch, jitter, is_tail, multi_ok);
|
||||||
RESUME_JIT_DATA();
|
RESUME_JIT_DATA();
|
||||||
CHECK_LIMIT();
|
CHECK_LIMIT();
|
||||||
|
@ -5077,7 +5203,9 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m
|
||||||
}
|
}
|
||||||
__END_SHORT_JUMPS__(then_short_ok);
|
__END_SHORT_JUMPS__(then_short_ok);
|
||||||
PAUSE_JIT_DATA();
|
PAUSE_JIT_DATA();
|
||||||
|
FOR_LOG(jitter->log_depth--);
|
||||||
LOG_IT(("...else\n"));
|
LOG_IT(("...else\n"));
|
||||||
|
FOR_LOG(++jitter->log_depth);
|
||||||
g2 = generate(branch->fbranch, jitter, is_tail, multi_ok);
|
g2 = generate(branch->fbranch, jitter, is_tail, multi_ok);
|
||||||
RESUME_JIT_DATA();
|
RESUME_JIT_DATA();
|
||||||
CHECK_LIMIT();
|
CHECK_LIMIT();
|
||||||
|
@ -5094,6 +5222,7 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m
|
||||||
mz_patch_ucbranch(ref2);
|
mz_patch_ucbranch(ref2);
|
||||||
__END_SHORT_JUMPS__(else_short_ok);
|
__END_SHORT_JUMPS__(else_short_ok);
|
||||||
}
|
}
|
||||||
|
FOR_LOG(jitter->log_depth--);
|
||||||
|
|
||||||
END_JIT_DATA(12);
|
END_JIT_DATA(12);
|
||||||
|
|
||||||
|
@ -5218,6 +5347,7 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m
|
||||||
|
|
||||||
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(c));
|
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(c));
|
||||||
CHECK_RUNSTACK_OVERFLOW();
|
CHECK_RUNSTACK_OVERFLOW();
|
||||||
|
stack_safety(jitter, c, 0);
|
||||||
mz_runstack_pushed(jitter, c);
|
mz_runstack_pushed(jitter, c);
|
||||||
|
|
||||||
if (SCHEME_LET_AUTOBOX(lv)) {
|
if (SCHEME_LET_AUTOBOX(lv)) {
|
||||||
|
@ -5301,14 +5431,19 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m
|
||||||
|
|
||||||
LOG_IT(("leto...\n"));
|
LOG_IT(("leto...\n"));
|
||||||
|
|
||||||
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(1));
|
mz_runstack_skipped(jitter, 1);
|
||||||
CHECK_RUNSTACK_OVERFLOW();
|
|
||||||
mz_runstack_pushed(jitter, 1);
|
|
||||||
|
|
||||||
PAUSE_JIT_DATA();
|
PAUSE_JIT_DATA();
|
||||||
generate_non_tail(lv->value, jitter, 0, 1);
|
generate_non_tail(lv->value, jitter, 0, 1);
|
||||||
RESUME_JIT_DATA();
|
RESUME_JIT_DATA();
|
||||||
CHECK_LIMIT();
|
CHECK_LIMIT();
|
||||||
|
|
||||||
|
mz_runstack_unskipped(jitter, 1);
|
||||||
|
|
||||||
|
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(1));
|
||||||
|
CHECK_RUNSTACK_OVERFLOW();
|
||||||
|
mz_runstack_pushed(jitter, 1);
|
||||||
|
|
||||||
jit_str_p(JIT_RUNSTACK, JIT_R0);
|
jit_str_p(JIT_RUNSTACK, JIT_R0);
|
||||||
|
|
||||||
END_JIT_DATA(17);
|
END_JIT_DATA(17);
|
||||||
|
@ -5329,7 +5464,7 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m
|
||||||
/* Key: */
|
/* Key: */
|
||||||
generate_non_tail(wcm->key, jitter, 0, 1);
|
generate_non_tail(wcm->key, jitter, 0, 1);
|
||||||
CHECK_LIMIT();
|
CHECK_LIMIT();
|
||||||
if (SCHEME_TYPE(obj) > _scheme_values_types_) {
|
if (SCHEME_TYPE(wcm->val) > _scheme_values_types_) {
|
||||||
/* No need to push mark onto value stack: */
|
/* No need to push mark onto value stack: */
|
||||||
jit_movr_p(JIT_V1, JIT_R0);
|
jit_movr_p(JIT_V1, JIT_R0);
|
||||||
generate_non_tail(wcm->val, jitter, 0, 1);
|
generate_non_tail(wcm->val, jitter, 0, 1);
|
||||||
|
@ -6596,7 +6731,9 @@ static int do_generate_closure(mz_jit_state *jitter, void *_data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_IT(("PROC: %s\n", (data->name ? scheme_format_utf8("~s", 2, 1, &data->name, NULL) : "???")));
|
LOG_IT(("PROC: %s, %d args\n",
|
||||||
|
(data->name ? scheme_format_utf8("~s", 2, 1, &data->name, NULL) : "???"),
|
||||||
|
data->num_params));
|
||||||
FOR_LOG(jitter->log_depth++);
|
FOR_LOG(jitter->log_depth++);
|
||||||
|
|
||||||
jitter->self_data = data;
|
jitter->self_data = data;
|
||||||
|
|
|
@ -155,19 +155,19 @@ scheme_init_list (Scheme_Env *env)
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED;
|
||||||
scheme_add_global_constant ("mcons", p, env);
|
scheme_add_global_constant ("mcons", p, env);
|
||||||
|
|
||||||
p = scheme_make_noncm_prim(scheme_checked_mcar, "mcar", 1, 1);
|
p = scheme_make_immed_prim(scheme_checked_mcar, "mcar", 1, 1);
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||||
scheme_add_global_constant ("mcar", p, env);
|
scheme_add_global_constant ("mcar", p, env);
|
||||||
|
|
||||||
p = scheme_make_noncm_prim(scheme_checked_mcdr, "mcdr", 1, 1);
|
p = scheme_make_immed_prim(scheme_checked_mcdr, "mcdr", 1, 1);
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||||
scheme_add_global_constant ("mcdr", p, env);
|
scheme_add_global_constant ("mcdr", p, env);
|
||||||
|
|
||||||
p = scheme_make_noncm_prim(scheme_checked_set_mcar, "set-mcar!", 2, 2);
|
p = scheme_make_immed_prim(scheme_checked_set_mcar, "set-mcar!", 2, 2);
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED;
|
||||||
scheme_add_global_constant ("set-mcar!", p, env);
|
scheme_add_global_constant ("set-mcar!", p, env);
|
||||||
|
|
||||||
p = scheme_make_noncm_prim(scheme_checked_set_mcdr, "set-mcdr!", 2, 2);
|
p = scheme_make_immed_prim(scheme_checked_set_mcdr, "set-mcdr!", 2, 2);
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED;
|
||||||
scheme_add_global_constant ("set-mcdr!", p, env);
|
scheme_add_global_constant ("set-mcdr!", p, env);
|
||||||
|
|
||||||
|
@ -176,17 +176,17 @@ scheme_init_list (Scheme_Env *env)
|
||||||
scheme_add_global_constant ("null?", p, env);
|
scheme_add_global_constant ("null?", p, env);
|
||||||
|
|
||||||
scheme_add_global_constant ("list?",
|
scheme_add_global_constant ("list?",
|
||||||
scheme_make_noncm_prim(list_p_prim,
|
scheme_make_immed_prim(list_p_prim,
|
||||||
"list?",
|
"list?",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("list",
|
scheme_add_global_constant ("list",
|
||||||
scheme_make_noncm_prim(list_prim,
|
scheme_make_immed_prim(list_prim,
|
||||||
"list",
|
"list",
|
||||||
0, -1),
|
0, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("list*",
|
scheme_add_global_constant ("list*",
|
||||||
scheme_make_noncm_prim(list_star_prim,
|
scheme_make_immed_prim(list_star_prim,
|
||||||
"list*",
|
"list*",
|
||||||
1, -1),
|
1, -1),
|
||||||
env);
|
env);
|
||||||
|
@ -196,57 +196,57 @@ scheme_init_list (Scheme_Env *env)
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("length",
|
scheme_add_global_constant ("length",
|
||||||
scheme_make_noncm_prim(length_prim,
|
scheme_make_immed_prim(length_prim,
|
||||||
"length",
|
"length",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("append",
|
scheme_add_global_constant ("append",
|
||||||
scheme_make_noncm_prim(append_prim,
|
scheme_make_immed_prim(append_prim,
|
||||||
"append",
|
"append",
|
||||||
0, -1),
|
0, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("reverse",
|
scheme_add_global_constant ("reverse",
|
||||||
scheme_make_noncm_prim(reverse_prim,
|
scheme_make_immed_prim(reverse_prim,
|
||||||
"reverse",
|
"reverse",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("list-tail",
|
scheme_add_global_constant ("list-tail",
|
||||||
scheme_make_noncm_prim(list_tail_prim,
|
scheme_make_immed_prim(list_tail_prim,
|
||||||
"list-tail",
|
"list-tail",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("list-ref",
|
scheme_add_global_constant ("list-ref",
|
||||||
scheme_make_noncm_prim(list_ref_prim,
|
scheme_make_immed_prim(list_ref_prim,
|
||||||
"list-ref",
|
"list-ref",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("memq",
|
scheme_add_global_constant ("memq",
|
||||||
scheme_make_noncm_prim(memq,
|
scheme_make_immed_prim(memq,
|
||||||
"memq",
|
"memq",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("memv",
|
scheme_add_global_constant ("memv",
|
||||||
scheme_make_noncm_prim(memv,
|
scheme_make_immed_prim(memv,
|
||||||
"memv",
|
"memv",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("member",
|
scheme_add_global_constant ("member",
|
||||||
scheme_make_noncm_prim(member,
|
scheme_make_immed_prim(member,
|
||||||
"member",
|
"member",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("assq",
|
scheme_add_global_constant ("assq",
|
||||||
scheme_make_noncm_prim(assq,
|
scheme_make_immed_prim(assq,
|
||||||
"assq",
|
"assq",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("assv",
|
scheme_add_global_constant ("assv",
|
||||||
scheme_make_noncm_prim(assv,
|
scheme_make_immed_prim(assv,
|
||||||
"assv",
|
"assv",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant ("assoc",
|
scheme_add_global_constant ("assoc",
|
||||||
scheme_make_noncm_prim(assoc,
|
scheme_make_immed_prim(assoc,
|
||||||
"assoc",
|
"assoc",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
|
@ -390,12 +390,12 @@ scheme_init_list (Scheme_Env *env)
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant(BOX,
|
scheme_add_global_constant(BOX,
|
||||||
scheme_make_noncm_prim(box,
|
scheme_make_immed_prim(box,
|
||||||
BOX,
|
BOX,
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("box-immutable",
|
scheme_add_global_constant("box-immutable",
|
||||||
scheme_make_noncm_prim(immutable_box,
|
scheme_make_immed_prim(immutable_box,
|
||||||
"box-immutable",
|
"box-immutable",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
@ -404,23 +404,23 @@ scheme_init_list (Scheme_Env *env)
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||||
scheme_add_global_constant(BOXP, p, env);
|
scheme_add_global_constant(BOXP, p, env);
|
||||||
|
|
||||||
p = scheme_make_noncm_prim(unbox, UNBOX, 1, 1);
|
p = scheme_make_immed_prim(unbox, UNBOX, 1, 1);
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||||
scheme_add_global_constant(UNBOX, p, env);
|
scheme_add_global_constant(UNBOX, p, env);
|
||||||
|
|
||||||
scheme_add_global_constant(SETBOX,
|
scheme_add_global_constant(SETBOX,
|
||||||
scheme_make_noncm_prim(set_box,
|
scheme_make_immed_prim(set_box,
|
||||||
SETBOX,
|
SETBOX,
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("make-hash-table",
|
scheme_add_global_constant("make-hash-table",
|
||||||
scheme_make_noncm_prim(make_hash_table,
|
scheme_make_immed_prim(make_hash_table,
|
||||||
"make-hash-table",
|
"make-hash-table",
|
||||||
0, 2),
|
0, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("make-immutable-hash-table",
|
scheme_add_global_constant("make-immutable-hash-table",
|
||||||
scheme_make_noncm_prim(make_immutable_hash_table,
|
scheme_make_immed_prim(make_immutable_hash_table,
|
||||||
"make-immutable-hash-table",
|
"make-immutable-hash-table",
|
||||||
1, 2),
|
1, 2),
|
||||||
env);
|
env);
|
||||||
|
@ -430,7 +430,7 @@ scheme_init_list (Scheme_Env *env)
|
||||||
1, 3, 1),
|
1, 3, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("hash-table-count",
|
scheme_add_global_constant("hash-table-count",
|
||||||
scheme_make_noncm_prim(hash_table_count,
|
scheme_make_immed_prim(hash_table_count,
|
||||||
"hash-table-count",
|
"hash-table-count",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
@ -466,28 +466,28 @@ scheme_init_list (Scheme_Env *env)
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("hash-table-iterate-first",
|
scheme_add_global_constant("hash-table-iterate-first",
|
||||||
scheme_make_noncm_prim(hash_table_iterate_start,
|
scheme_make_immed_prim(hash_table_iterate_start,
|
||||||
"hash-table-iterate-first",
|
"hash-table-iterate-first",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("hash-table-iterate-next",
|
scheme_add_global_constant("hash-table-iterate-next",
|
||||||
scheme_make_noncm_prim(hash_table_iterate_next,
|
scheme_make_immed_prim(hash_table_iterate_next,
|
||||||
"hash-table-iterate-next",
|
"hash-table-iterate-next",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("hash-table-iterate-value",
|
scheme_add_global_constant("hash-table-iterate-value",
|
||||||
scheme_make_noncm_prim(hash_table_iterate_value,
|
scheme_make_immed_prim(hash_table_iterate_value,
|
||||||
"hash-table-iterate-value",
|
"hash-table-iterate-value",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("hash-table-iterate-key",
|
scheme_add_global_constant("hash-table-iterate-key",
|
||||||
scheme_make_noncm_prim(hash_table_iterate_key,
|
scheme_make_immed_prim(hash_table_iterate_key,
|
||||||
"hash-table-iterate-key",
|
"hash-table-iterate-key",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("eq-hash-code",
|
scheme_add_global_constant("eq-hash-code",
|
||||||
scheme_make_noncm_prim(eq_hash_code,
|
scheme_make_immed_prim(eq_hash_code,
|
||||||
"eq-hash-code",
|
"eq-hash-code",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
@ -503,12 +503,12 @@ scheme_init_list (Scheme_Env *env)
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("make-weak-box",
|
scheme_add_global_constant("make-weak-box",
|
||||||
scheme_make_noncm_prim(make_weak_box,
|
scheme_make_immed_prim(make_weak_box,
|
||||||
"make-weak-box",
|
"make-weak-box",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("weak-box-value",
|
scheme_add_global_constant("weak-box-value",
|
||||||
scheme_make_noncm_prim(weak_box_value,
|
scheme_make_immed_prim(weak_box_value,
|
||||||
"weak-box-value",
|
"weak-box-value",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
@ -519,12 +519,12 @@ scheme_init_list (Scheme_Env *env)
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("make-ephemeron",
|
scheme_add_global_constant("make-ephemeron",
|
||||||
scheme_make_noncm_prim(make_ephemeron,
|
scheme_make_immed_prim(make_ephemeron,
|
||||||
"make-ephemeron",
|
"make-ephemeron",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("ephemeron-value",
|
scheme_add_global_constant("ephemeron-value",
|
||||||
scheme_make_noncm_prim(ephemeron_value,
|
scheme_make_immed_prim(ephemeron_value,
|
||||||
"ephemeron-value",
|
"ephemeron-value",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
|
|
@ -79,17 +79,21 @@ static Scheme_Object *top_level_require_jit(Scheme_Object *data);
|
||||||
|
|
||||||
static Scheme_Object *module_optimize(Scheme_Object *data, Optimize_Info *info);
|
static Scheme_Object *module_optimize(Scheme_Object *data, Optimize_Info *info);
|
||||||
static Scheme_Object *module_resolve(Scheme_Object *data, Resolve_Info *info);
|
static Scheme_Object *module_resolve(Scheme_Object *data, Resolve_Info *info);
|
||||||
|
static Scheme_Object *module_sfs(Scheme_Object *data, SFS_Info *info);
|
||||||
static Scheme_Object *top_level_require_optimize(Scheme_Object *data, Optimize_Info *info);
|
static Scheme_Object *top_level_require_optimize(Scheme_Object *data, Optimize_Info *info);
|
||||||
static Scheme_Object *top_level_require_resolve(Scheme_Object *data, Resolve_Info *info);
|
static Scheme_Object *top_level_require_resolve(Scheme_Object *data, Resolve_Info *info);
|
||||||
|
static Scheme_Object *top_level_require_sfs(Scheme_Object *data, SFS_Info *info);
|
||||||
|
|
||||||
static void module_validate(Scheme_Object *data, Mz_CPort *port,
|
static void module_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
static void top_level_require_validate(Scheme_Object *data, Mz_CPort *port,
|
static void top_level_require_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
|
|
||||||
static Scheme_Object *write_module(Scheme_Object *obj);
|
static Scheme_Object *write_module(Scheme_Object *obj);
|
||||||
static Scheme_Object *read_module(Scheme_Object *obj);
|
static Scheme_Object *read_module(Scheme_Object *obj);
|
||||||
|
@ -256,12 +260,12 @@ void scheme_init_module(Scheme_Env *env)
|
||||||
|
|
||||||
scheme_register_syntax(MODULE_EXPD,
|
scheme_register_syntax(MODULE_EXPD,
|
||||||
module_optimize,
|
module_optimize,
|
||||||
module_resolve, module_validate,
|
module_resolve, module_sfs, module_validate,
|
||||||
module_execute, module_jit,
|
module_execute, module_jit,
|
||||||
NULL, NULL, -1);
|
NULL, NULL, -1);
|
||||||
scheme_register_syntax(REQUIRE_EXPD,
|
scheme_register_syntax(REQUIRE_EXPD,
|
||||||
top_level_require_optimize,
|
top_level_require_optimize,
|
||||||
top_level_require_resolve, top_level_require_validate,
|
top_level_require_resolve, top_level_require_sfs, top_level_require_validate,
|
||||||
top_level_require_execute, top_level_require_jit,
|
top_level_require_execute, top_level_require_jit,
|
||||||
NULL, NULL, 2);
|
NULL, NULL, 2);
|
||||||
|
|
||||||
|
@ -4232,7 +4236,8 @@ static Scheme_Object *module_jit(Scheme_Object *data)
|
||||||
static void module_validate(Scheme_Object *data, Mz_CPort *port,
|
static void module_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts)
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos)
|
||||||
{
|
{
|
||||||
Scheme_Module *m;
|
Scheme_Module *m;
|
||||||
int i, cnt, let_depth;
|
int i, cnt, let_depth;
|
||||||
|
@ -4618,6 +4623,51 @@ module_resolve(Scheme_Object *data, Resolve_Info *old_rslv)
|
||||||
return scheme_make_syntax_resolved(MODULE_EXPD, data);
|
return scheme_make_syntax_resolved(MODULE_EXPD, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *
|
||||||
|
module_sfs(Scheme_Object *data, SFS_Info *old_info)
|
||||||
|
{
|
||||||
|
Scheme_Module *m = (Scheme_Module *)data;
|
||||||
|
Scheme_Object *e, *ex;
|
||||||
|
SFS_Info *info;
|
||||||
|
int i, cnt, let_depth;
|
||||||
|
|
||||||
|
if (!old_info->for_mod) {
|
||||||
|
if (old_info->pass)
|
||||||
|
return data;
|
||||||
|
|
||||||
|
info = scheme_new_sfs_info(m->max_let_depth);
|
||||||
|
info->for_mod = 1;
|
||||||
|
scheme_sfs(data, info, m->max_let_depth);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
info = old_info;
|
||||||
|
|
||||||
|
cnt = SCHEME_VEC_SIZE(m->body);
|
||||||
|
scheme_sfs_start_sequence(info, cnt, 0);
|
||||||
|
|
||||||
|
for (i = 0; i < cnt; i++) {
|
||||||
|
e = scheme_sfs_expr(SCHEME_VEC_ELS(m->body)[i], info, -1);
|
||||||
|
SCHEME_VEC_ELS(m->body)[i] = e;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!info->pass) {
|
||||||
|
cnt = SCHEME_VEC_SIZE(m->et_body);
|
||||||
|
for (i = 0; i < cnt; i++) {
|
||||||
|
e = SCHEME_VEC_ELS(m->et_body)[i];
|
||||||
|
|
||||||
|
let_depth = SCHEME_INT_VAL(SCHEME_VEC_ELS(e)[2]);
|
||||||
|
ex = SCHEME_VEC_ELS(e)[1];
|
||||||
|
|
||||||
|
info = scheme_new_sfs_info(let_depth);
|
||||||
|
ex = scheme_sfs(ex, info, let_depth);
|
||||||
|
SCHEME_VEC_ELS(e)[1] = ex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env,
|
static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env,
|
||||||
Scheme_Compile_Expand_Info *rec, int drec)
|
Scheme_Compile_Expand_Info *rec, int drec)
|
||||||
{
|
{
|
||||||
|
@ -5561,6 +5611,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env,
|
||||||
SCHEME_VEC_ELS(vec)[4] = (for_stx ? scheme_true : scheme_false);
|
SCHEME_VEC_ELS(vec)[4] = (for_stx ? scheme_true : scheme_false);
|
||||||
exp_body = scheme_make_pair(vec, exp_body);
|
exp_body = scheme_make_pair(vec, exp_body);
|
||||||
|
|
||||||
|
m = scheme_sfs(m, NULL, ri->max_let_depth);
|
||||||
if (ri->use_jit)
|
if (ri->use_jit)
|
||||||
m = scheme_jit_expr(m);
|
m = scheme_jit_expr(m);
|
||||||
|
|
||||||
|
@ -8159,7 +8210,8 @@ top_level_require_jit(Scheme_Object *data)
|
||||||
static void top_level_require_validate(Scheme_Object *data, Mz_CPort *port,
|
static void top_level_require_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts)
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8179,6 +8231,12 @@ top_level_require_resolve(Scheme_Object *data, Resolve_Info *rslv)
|
||||||
return scheme_make_syntax_resolved(REQUIRE_EXPD, cons(dummy, SCHEME_CDR(data)));
|
return scheme_make_syntax_resolved(REQUIRE_EXPD, cons(dummy, SCHEME_CDR(data)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *
|
||||||
|
top_level_require_sfs(Scheme_Object *data, SFS_Info *rslv)
|
||||||
|
{
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *do_require(Scheme_Object *form, Scheme_Comp_Env *env,
|
static Scheme_Object *do_require(Scheme_Object *form, Scheme_Comp_Env *env,
|
||||||
Scheme_Compile_Expand_Info *rec, int drec)
|
Scheme_Compile_Expand_Info *rec, int drec)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2788,6 +2788,36 @@ static int mark_optimize_info_FIXUP(void *p) {
|
||||||
#define mark_optimize_info_IS_CONST_SIZE 1
|
#define mark_optimize_info_IS_CONST_SIZE 1
|
||||||
|
|
||||||
|
|
||||||
|
static int mark_sfs_info_SIZE(void *p) {
|
||||||
|
return
|
||||||
|
gcBYTES_TO_WORDS(sizeof(SFS_Info));
|
||||||
|
}
|
||||||
|
|
||||||
|
static int mark_sfs_info_MARK(void *p) {
|
||||||
|
SFS_Info *i = (SFS_Info *)p;
|
||||||
|
|
||||||
|
gcMARK(i->max_used);
|
||||||
|
gcMARK(i->max_calls);
|
||||||
|
gcMARK(i->saved);
|
||||||
|
|
||||||
|
return
|
||||||
|
gcBYTES_TO_WORDS(sizeof(SFS_Info));
|
||||||
|
}
|
||||||
|
|
||||||
|
static int mark_sfs_info_FIXUP(void *p) {
|
||||||
|
SFS_Info *i = (SFS_Info *)p;
|
||||||
|
|
||||||
|
gcFIXUP(i->max_used);
|
||||||
|
gcFIXUP(i->max_calls);
|
||||||
|
gcFIXUP(i->saved);
|
||||||
|
|
||||||
|
return
|
||||||
|
gcBYTES_TO_WORDS(sizeof(SFS_Info));
|
||||||
|
}
|
||||||
|
|
||||||
|
#define mark_sfs_info_IS_ATOMIC 0
|
||||||
|
#define mark_sfs_info_IS_CONST_SIZE 1
|
||||||
|
|
||||||
|
|
||||||
#endif /* ENV */
|
#endif /* ENV */
|
||||||
|
|
||||||
|
@ -2855,6 +2885,35 @@ static int mark_saved_stack_FIXUP(void *p) {
|
||||||
#define mark_saved_stack_IS_CONST_SIZE 1
|
#define mark_saved_stack_IS_CONST_SIZE 1
|
||||||
|
|
||||||
|
|
||||||
|
static int mark_validate_clearing_SIZE(void *p) {
|
||||||
|
return
|
||||||
|
gcBYTES_TO_WORDS(sizeof(Validate_Clearing));
|
||||||
|
}
|
||||||
|
|
||||||
|
static int mark_validate_clearing_MARK(void *p) {
|
||||||
|
Validate_Clearing *vc = (Validate_Clearing *)p;
|
||||||
|
|
||||||
|
gcMARK(vc->stack);
|
||||||
|
gcMARK(vc->ncstack);
|
||||||
|
|
||||||
|
return
|
||||||
|
gcBYTES_TO_WORDS(sizeof(Validate_Clearing));
|
||||||
|
}
|
||||||
|
|
||||||
|
static int mark_validate_clearing_FIXUP(void *p) {
|
||||||
|
Validate_Clearing *vc = (Validate_Clearing *)p;
|
||||||
|
|
||||||
|
gcFIXUP(vc->stack);
|
||||||
|
gcFIXUP(vc->ncstack);
|
||||||
|
|
||||||
|
return
|
||||||
|
gcBYTES_TO_WORDS(sizeof(Validate_Clearing));
|
||||||
|
}
|
||||||
|
|
||||||
|
#define mark_validate_clearing_IS_ATOMIC 0
|
||||||
|
#define mark_validate_clearing_IS_CONST_SIZE 1
|
||||||
|
|
||||||
|
|
||||||
#endif /* EVAL */
|
#endif /* EVAL */
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
|
|
@ -1115,6 +1115,17 @@ mark_optimize_info {
|
||||||
gcBYTES_TO_WORDS(sizeof(Optimize_Info));
|
gcBYTES_TO_WORDS(sizeof(Optimize_Info));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mark_sfs_info {
|
||||||
|
mark:
|
||||||
|
SFS_Info *i = (SFS_Info *)p;
|
||||||
|
|
||||||
|
gcMARK(i->max_used);
|
||||||
|
gcMARK(i->max_calls);
|
||||||
|
gcMARK(i->saved);
|
||||||
|
|
||||||
|
size:
|
||||||
|
gcBYTES_TO_WORDS(sizeof(SFS_Info));
|
||||||
|
}
|
||||||
|
|
||||||
END env;
|
END env;
|
||||||
|
|
||||||
|
@ -1145,6 +1156,17 @@ mark_saved_stack {
|
||||||
gcBYTES_TO_WORDS(sizeof(Scheme_Saved_Stack));
|
gcBYTES_TO_WORDS(sizeof(Scheme_Saved_Stack));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mark_validate_clearing {
|
||||||
|
mark:
|
||||||
|
Validate_Clearing *vc = (Validate_Clearing *)p;
|
||||||
|
|
||||||
|
gcMARK(vc->stack);
|
||||||
|
gcMARK(vc->ncstack);
|
||||||
|
|
||||||
|
size:
|
||||||
|
gcBYTES_TO_WORDS(sizeof(Validate_Clearing));
|
||||||
|
}
|
||||||
|
|
||||||
END eval;
|
END eval;
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
|
|
@ -711,7 +711,7 @@ scheme_init_port_fun(Scheme_Env *env)
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("pipe-content-length",
|
scheme_add_global_constant("pipe-content-length",
|
||||||
scheme_make_noncm_prim(pipe_length,
|
scheme_make_immed_prim(pipe_length,
|
||||||
"pipe-content-length",
|
"pipe-content-length",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
|
|
@ -2272,15 +2272,22 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht,
|
||||||
{
|
{
|
||||||
int unbox = SAME_TYPE(SCHEME_TYPE(obj), scheme_local_unbox_type);
|
int unbox = SAME_TYPE(SCHEME_TYPE(obj), scheme_local_unbox_type);
|
||||||
Scheme_Local *loc = (Scheme_Local *)obj;
|
Scheme_Local *loc = (Scheme_Local *)obj;
|
||||||
if (loc->position < CPT_RANGE(SMALL_LOCAL)) {
|
if ((loc->position < CPT_RANGE(SMALL_LOCAL))
|
||||||
|
&& !(SCHEME_LOCAL_FLAGS(loc) & SCHEME_LOCAL_CLEARING_MASK)) {
|
||||||
unsigned char s[1];
|
unsigned char s[1];
|
||||||
s[0] = loc->position + (unbox
|
s[0] = loc->position + (unbox
|
||||||
? CPT_SMALL_LOCAL_UNBOX_START
|
? CPT_SMALL_LOCAL_UNBOX_START
|
||||||
: CPT_SMALL_LOCAL_START);
|
: CPT_SMALL_LOCAL_START);
|
||||||
print_this_string(pp, (char *)s, 0, 1);
|
print_this_string(pp, (char *)s, 0, 1);
|
||||||
} else {
|
} else {
|
||||||
|
int flags;
|
||||||
print_compact(pp, unbox ? CPT_LOCAL_UNBOX : CPT_LOCAL);
|
print_compact(pp, unbox ? CPT_LOCAL_UNBOX : CPT_LOCAL);
|
||||||
print_compact_number(pp, loc->position);
|
flags = SCHEME_LOCAL_FLAGS(loc) & SCHEME_LOCAL_CLEARING_MASK;
|
||||||
|
if (flags) {
|
||||||
|
print_compact_number(pp, -(loc->position + 1));
|
||||||
|
print_compact_number(pp, flags);
|
||||||
|
} else
|
||||||
|
print_compact_number(pp, loc->position);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (compact && SAME_TYPE(SCHEME_TYPE(obj), scheme_application_type))
|
else if (compact && SAME_TYPE(SCHEME_TYPE(obj), scheme_application_type))
|
||||||
|
|
|
@ -4593,20 +4593,26 @@ static Scheme_Object *read_compact(CPort *port, int use_stack)
|
||||||
break;
|
break;
|
||||||
case CPT_LOCAL:
|
case CPT_LOCAL:
|
||||||
{
|
{
|
||||||
int p;
|
int p, flags;
|
||||||
p = read_compact_number(port);
|
p = read_compact_number(port);
|
||||||
if (p < 0)
|
if (p < 0) {
|
||||||
scheme_ill_formed_code(port);
|
p = -(p + 1);
|
||||||
v = scheme_make_local(scheme_local_type, p);
|
flags = read_compact_number(port);
|
||||||
|
} else
|
||||||
|
flags = 0;
|
||||||
|
v = scheme_make_local(scheme_local_type, p, flags);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CPT_LOCAL_UNBOX:
|
case CPT_LOCAL_UNBOX:
|
||||||
{
|
{
|
||||||
int p;
|
int p, flags;
|
||||||
p = read_compact_number(port);
|
p = read_compact_number(port);
|
||||||
if (p < 0)
|
if (p < 0) {
|
||||||
scheme_ill_formed_code(port);
|
p = -(p + 1);
|
||||||
v = scheme_make_local(scheme_local_unbox_type, p);
|
flags = read_compact_number(port);
|
||||||
|
} else
|
||||||
|
flags = 0;
|
||||||
|
v = scheme_make_local(scheme_local_unbox_type, p, flags);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CPT_SVECTOR:
|
case CPT_SVECTOR:
|
||||||
|
@ -4764,9 +4770,9 @@ static Scheme_Object *read_compact(CPort *port, int use_stack)
|
||||||
ch -= CPT_SMALL_LOCAL_START;
|
ch -= CPT_SMALL_LOCAL_START;
|
||||||
}
|
}
|
||||||
if (ch < MAX_CONST_LOCAL_POS)
|
if (ch < MAX_CONST_LOCAL_POS)
|
||||||
v = scheme_local[ch][k];
|
v = scheme_local[ch][k][0];
|
||||||
else
|
else
|
||||||
v = scheme_make_local(type, ch);
|
v = scheme_make_local(type, ch, 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CPT_SMALL_MARSHALLED_START:
|
case CPT_SMALL_MARSHALLED_START:
|
||||||
|
|
|
@ -425,6 +425,9 @@ MZ_EXTERN Scheme_Object *scheme_make_folding_prim(Scheme_Prim *prim,
|
||||||
const char *name,
|
const char *name,
|
||||||
mzshort mina, mzshort maxa,
|
mzshort mina, mzshort maxa,
|
||||||
short functional);
|
short functional);
|
||||||
|
MZ_EXTERN Scheme_Object *scheme_make_immed_prim(Scheme_Prim *prim,
|
||||||
|
const char *name,
|
||||||
|
mzshort mina, mzshort maxa);
|
||||||
MZ_EXTERN Scheme_Object *scheme_make_noncm_prim(Scheme_Prim *prim,
|
MZ_EXTERN Scheme_Object *scheme_make_noncm_prim(Scheme_Prim *prim,
|
||||||
const char *name,
|
const char *name,
|
||||||
mzshort mina, mzshort maxa);
|
mzshort mina, mzshort maxa);
|
||||||
|
|
|
@ -346,6 +346,9 @@ Scheme_Object *(*scheme_make_folding_prim)(Scheme_Prim *prim,
|
||||||
const char *name,
|
const char *name,
|
||||||
mzshort mina, mzshort maxa,
|
mzshort mina, mzshort maxa,
|
||||||
short functional);
|
short functional);
|
||||||
|
Scheme_Object *(*scheme_make_immed_prim)(Scheme_Prim *prim,
|
||||||
|
const char *name,
|
||||||
|
mzshort mina, mzshort maxa);
|
||||||
Scheme_Object *(*scheme_make_noncm_prim)(Scheme_Prim *prim,
|
Scheme_Object *(*scheme_make_noncm_prim)(Scheme_Prim *prim,
|
||||||
const char *name,
|
const char *name,
|
||||||
mzshort mina, mzshort maxa);
|
mzshort mina, mzshort maxa);
|
||||||
|
|
|
@ -236,6 +236,7 @@
|
||||||
scheme_extension_table->scheme_make_noneternal_prim = scheme_make_noneternal_prim;
|
scheme_extension_table->scheme_make_noneternal_prim = scheme_make_noneternal_prim;
|
||||||
scheme_extension_table->scheme_make_prim_w_arity = scheme_make_prim_w_arity;
|
scheme_extension_table->scheme_make_prim_w_arity = scheme_make_prim_w_arity;
|
||||||
scheme_extension_table->scheme_make_folding_prim = scheme_make_folding_prim;
|
scheme_extension_table->scheme_make_folding_prim = scheme_make_folding_prim;
|
||||||
|
scheme_extension_table->scheme_make_immed_prim = scheme_make_immed_prim;
|
||||||
scheme_extension_table->scheme_make_noncm_prim = scheme_make_noncm_prim;
|
scheme_extension_table->scheme_make_noncm_prim = scheme_make_noncm_prim;
|
||||||
scheme_extension_table->scheme_make_noneternal_prim_w_arity = scheme_make_noneternal_prim_w_arity;
|
scheme_extension_table->scheme_make_noneternal_prim_w_arity = scheme_make_noneternal_prim_w_arity;
|
||||||
scheme_extension_table->scheme_make_prim_w_everything = scheme_make_prim_w_everything;
|
scheme_extension_table->scheme_make_prim_w_everything = scheme_make_prim_w_everything;
|
||||||
|
|
|
@ -236,6 +236,7 @@
|
||||||
#define scheme_make_noneternal_prim (scheme_extension_table->scheme_make_noneternal_prim)
|
#define scheme_make_noneternal_prim (scheme_extension_table->scheme_make_noneternal_prim)
|
||||||
#define scheme_make_prim_w_arity (scheme_extension_table->scheme_make_prim_w_arity)
|
#define scheme_make_prim_w_arity (scheme_extension_table->scheme_make_prim_w_arity)
|
||||||
#define scheme_make_folding_prim (scheme_extension_table->scheme_make_folding_prim)
|
#define scheme_make_folding_prim (scheme_extension_table->scheme_make_folding_prim)
|
||||||
|
#define scheme_make_immed_prim (scheme_extension_table->scheme_make_immed_prim)
|
||||||
#define scheme_make_noncm_prim (scheme_extension_table->scheme_make_noncm_prim)
|
#define scheme_make_noncm_prim (scheme_extension_table->scheme_make_noncm_prim)
|
||||||
#define scheme_make_noneternal_prim_w_arity (scheme_extension_table->scheme_make_noneternal_prim_w_arity)
|
#define scheme_make_noneternal_prim_w_arity (scheme_extension_table->scheme_make_noneternal_prim_w_arity)
|
||||||
#define scheme_make_prim_w_everything (scheme_extension_table->scheme_make_prim_w_everything)
|
#define scheme_make_prim_w_everything (scheme_extension_table->scheme_make_prim_w_everything)
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
#define USE_COMPILED_STARTUP 1
|
#define USE_COMPILED_STARTUP 1
|
||||||
|
|
||||||
#define EXPECTED_PRIM_COUNT 892
|
#define EXPECTED_PRIM_COUNT 893
|
||||||
|
|
||||||
#ifdef MZSCHEME_SOMETHING_OMITTED
|
#ifdef MZSCHEME_SOMETHING_OMITTED
|
||||||
# undef USE_COMPILED_STARTUP
|
# undef USE_COMPILED_STARTUP
|
||||||
|
|
|
@ -228,7 +228,7 @@ Scheme_Object *scheme_make_initial_inspectors(void);
|
||||||
extern int scheme_builtin_ref_counter;
|
extern int scheme_builtin_ref_counter;
|
||||||
|
|
||||||
Scheme_Object **scheme_make_builtin_references_table(void);
|
Scheme_Object **scheme_make_builtin_references_table(void);
|
||||||
Scheme_Object *scheme_make_local(Scheme_Type type, int pos);
|
Scheme_Object *scheme_make_local(Scheme_Type type, int pos, int flags);
|
||||||
|
|
||||||
void scheme_add_embedded_builtins(Scheme_Env *env);
|
void scheme_add_embedded_builtins(Scheme_Env *env);
|
||||||
void scheme_do_add_global_symbol(Scheme_Env *env, Scheme_Object *sym,
|
void scheme_do_add_global_symbol(Scheme_Env *env, Scheme_Object *sym,
|
||||||
|
@ -821,7 +821,7 @@ typedef struct {
|
||||||
} Scheme_With_Continuation_Mark;
|
} Scheme_With_Continuation_Mark;
|
||||||
|
|
||||||
typedef struct Scheme_Local {
|
typedef struct Scheme_Local {
|
||||||
Scheme_Object so;
|
Scheme_Inclhash_Object iso; /* keyex used for clear-on-read flag */
|
||||||
mzshort position;
|
mzshort position;
|
||||||
#ifdef MZ_PRECISE_GC
|
#ifdef MZ_PRECISE_GC
|
||||||
# ifdef MZSHORT_IS_SHORT
|
# ifdef MZSHORT_IS_SHORT
|
||||||
|
@ -832,9 +832,14 @@ typedef struct Scheme_Local {
|
||||||
} Scheme_Local;
|
} Scheme_Local;
|
||||||
|
|
||||||
#define SCHEME_LOCAL_POS(obj) (((Scheme_Local *)(obj))->position)
|
#define SCHEME_LOCAL_POS(obj) (((Scheme_Local *)(obj))->position)
|
||||||
|
#define SCHEME_LOCAL_FLAGS(obj) MZ_OPT_HASH_KEY(&((Scheme_Local *)(obj))->iso)
|
||||||
|
|
||||||
|
#define SCHEME_LOCAL_CLEAR_ON_READ 0x1
|
||||||
|
#define SCHEME_LOCAL_OTHER_CLEARS 0x2
|
||||||
|
#define SCHEME_LOCAL_CLEARING_MASK 0x3
|
||||||
|
|
||||||
typedef struct Scheme_Toplevel {
|
typedef struct Scheme_Toplevel {
|
||||||
Scheme_Inclhash_Object iso; /* keyex used for const flag */
|
Scheme_Inclhash_Object iso; /* keyex used for const & ready flags */
|
||||||
mzshort depth;
|
mzshort depth;
|
||||||
int position;
|
int position;
|
||||||
} Scheme_Toplevel;
|
} Scheme_Toplevel;
|
||||||
|
@ -1689,7 +1694,7 @@ typedef struct Scheme_Comp_Env
|
||||||
#define CLOS_HAS_REST 1
|
#define CLOS_HAS_REST 1
|
||||||
#define CLOS_HAS_REF_ARGS 2
|
#define CLOS_HAS_REF_ARGS 2
|
||||||
#define CLOS_PRESERVES_MARKS 4
|
#define CLOS_PRESERVES_MARKS 4
|
||||||
#define CLOS_FOLDABLE 8
|
#define CLOS_SFS 8
|
||||||
#define CLOS_IS_METHOD 16
|
#define CLOS_IS_METHOD 16
|
||||||
#define CLOS_SINGLE_RESULT 32
|
#define CLOS_SINGLE_RESULT 32
|
||||||
#define CLOS_RESULT_TENTATIVE 64
|
#define CLOS_RESULT_TENTATIVE 64
|
||||||
|
@ -1784,11 +1789,13 @@ typedef struct Scheme_Object *(*Scheme_Syntax_Shifter)(Scheme_Object *data, int
|
||||||
typedef struct CPort Mz_CPort;
|
typedef struct CPort Mz_CPort;
|
||||||
|
|
||||||
typedef mzshort **Validate_TLS;
|
typedef mzshort **Validate_TLS;
|
||||||
|
struct Validate_Clearing;
|
||||||
|
|
||||||
typedef void (*Scheme_Syntax_Validater)(Scheme_Object *data, Mz_CPort *port,
|
typedef void (*Scheme_Syntax_Validater)(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
|
|
||||||
typedef struct Scheme_Object *(*Scheme_Syntax_Executer)(struct Scheme_Object *data);
|
typedef struct Scheme_Object *(*Scheme_Syntax_Executer)(struct Scheme_Object *data);
|
||||||
|
|
||||||
|
@ -1859,7 +1866,7 @@ Scheme_Native_Closure_Data *scheme_generate_lambda(Scheme_Closure_Data *obj, int
|
||||||
Scheme_Native_Closure_Data *case_lam);
|
Scheme_Native_Closure_Data *case_lam);
|
||||||
|
|
||||||
#define MAX_CONST_LOCAL_POS 64
|
#define MAX_CONST_LOCAL_POS 64
|
||||||
extern Scheme_Object *scheme_local[MAX_CONST_LOCAL_POS][2];
|
extern Scheme_Object *scheme_local[MAX_CONST_LOCAL_POS][2][3];
|
||||||
|
|
||||||
#define scheme_new_frame(n) scheme_new_special_frame(n, 0)
|
#define scheme_new_frame(n) scheme_new_special_frame(n, 0)
|
||||||
#define scheme_extend_env(f, e) (f->basic.next = e, f)
|
#define scheme_extend_env(f, e) (f->basic.next = e, f)
|
||||||
|
@ -1949,6 +1956,31 @@ void scheme_bind_syntaxes(const char *where, Scheme_Object *names, Scheme_Object
|
||||||
int *_pos);
|
int *_pos);
|
||||||
int scheme_is_sub_env(Scheme_Comp_Env *stx_env, Scheme_Comp_Env *env);
|
int scheme_is_sub_env(Scheme_Comp_Env *stx_env, Scheme_Comp_Env *env);
|
||||||
|
|
||||||
|
typedef struct SFS_Info {
|
||||||
|
MZTAG_IF_REQUIRED
|
||||||
|
int for_mod, pass;
|
||||||
|
int tail_pos;
|
||||||
|
int depth, stackpos, tlpos;
|
||||||
|
int selfpos, selfstart, selflen;
|
||||||
|
int ip, seqn, max_nontail;
|
||||||
|
int min_touch, max_touch;
|
||||||
|
int *max_used, *max_calls;
|
||||||
|
Scheme_Object *saved;
|
||||||
|
} SFS_Info;
|
||||||
|
|
||||||
|
SFS_Info *scheme_new_sfs_info(int depth);
|
||||||
|
Scheme_Object *scheme_sfs(Scheme_Object *expr, SFS_Info *info, int max_let_depth);
|
||||||
|
Scheme_Object *scheme_sfs_expr(Scheme_Object *expr, SFS_Info *si, int self_pos);
|
||||||
|
Scheme_Object *scheme_sfs_closure(Scheme_Object *expr, SFS_Info *si, int self_pos);
|
||||||
|
|
||||||
|
void scheme_sfs_used(SFS_Info *info, int pos);
|
||||||
|
void scheme_sfs_push(SFS_Info *info, int count, int track);
|
||||||
|
void scheme_sfs_start_sequence(SFS_Info *si, int cnt, int last_is_tail);
|
||||||
|
|
||||||
|
Scheme_Object *scheme_sfs_add_clears(Scheme_Object *expr, Scheme_Object *clears, int pre);
|
||||||
|
|
||||||
|
typedef struct Scheme_Object *(*Scheme_Syntax_SFSer)(Scheme_Object *data, SFS_Info *info);
|
||||||
|
|
||||||
/* Resolving & linking */
|
/* Resolving & linking */
|
||||||
#define DEFINE_VALUES_EXPD 0
|
#define DEFINE_VALUES_EXPD 0
|
||||||
#define DEFINE_SYNTAX_EXPD 1
|
#define DEFINE_SYNTAX_EXPD 1
|
||||||
|
@ -1964,10 +1996,11 @@ int scheme_is_sub_env(Scheme_Comp_Env *stx_env, Scheme_Comp_Env *env);
|
||||||
#define SPLICE_EXPD 11
|
#define SPLICE_EXPD 11
|
||||||
#define _COUNT_EXPD_ 12
|
#define _COUNT_EXPD_ 12
|
||||||
|
|
||||||
#define scheme_register_syntax(i, fo, fr, fv, fe, fj, cl, sh, pa) \
|
#define scheme_register_syntax(i, fo, fr, fs, fv, fe, fj, cl, sh, pa) \
|
||||||
(scheme_syntax_optimizers[i] = fo, \
|
(scheme_syntax_optimizers[i] = fo, \
|
||||||
scheme_syntax_resolvers[i] = fr, \
|
scheme_syntax_resolvers[i] = fr, \
|
||||||
scheme_syntax_executers[i] = fe, \
|
scheme_syntax_executers[i] = fe, \
|
||||||
|
scheme_syntax_sfsers[i] = fs, \
|
||||||
scheme_syntax_validaters[i] = fv, \
|
scheme_syntax_validaters[i] = fv, \
|
||||||
scheme_syntax_jitters[i] = fj, \
|
scheme_syntax_jitters[i] = fj, \
|
||||||
scheme_syntax_cloners[i] = cl, \
|
scheme_syntax_cloners[i] = cl, \
|
||||||
|
@ -1975,6 +2008,7 @@ int scheme_is_sub_env(Scheme_Comp_Env *stx_env, Scheme_Comp_Env *env);
|
||||||
scheme_syntax_protect_afters[i] = pa)
|
scheme_syntax_protect_afters[i] = pa)
|
||||||
extern Scheme_Syntax_Optimizer scheme_syntax_optimizers[_COUNT_EXPD_];
|
extern Scheme_Syntax_Optimizer scheme_syntax_optimizers[_COUNT_EXPD_];
|
||||||
extern Scheme_Syntax_Resolver scheme_syntax_resolvers[_COUNT_EXPD_];
|
extern Scheme_Syntax_Resolver scheme_syntax_resolvers[_COUNT_EXPD_];
|
||||||
|
extern Scheme_Syntax_SFSer scheme_syntax_sfsers[_COUNT_EXPD_];
|
||||||
extern Scheme_Syntax_Validater scheme_syntax_validaters[_COUNT_EXPD_];
|
extern Scheme_Syntax_Validater scheme_syntax_validaters[_COUNT_EXPD_];
|
||||||
extern Scheme_Syntax_Executer scheme_syntax_executers[_COUNT_EXPD_];
|
extern Scheme_Syntax_Executer scheme_syntax_executers[_COUNT_EXPD_];
|
||||||
extern Scheme_Syntax_Jitter scheme_syntax_jitters[_COUNT_EXPD_];
|
extern Scheme_Syntax_Jitter scheme_syntax_jitters[_COUNT_EXPD_];
|
||||||
|
@ -2228,7 +2262,8 @@ void scheme_validate_expr(Mz_CPort *port, Scheme_Object *expr,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts,
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
Scheme_Object *app_rator, int proc_with_refs_ok);
|
Scheme_Object *app_rator, int proc_with_refs_ok,
|
||||||
|
int result_ignored, struct Validate_Clearing *vc, int tailpos);
|
||||||
void scheme_validate_toplevel(Scheme_Object *expr, Mz_CPort *port,
|
void scheme_validate_toplevel(Scheme_Object *expr, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int delta,
|
int depth, int delta,
|
||||||
|
@ -2244,7 +2279,8 @@ int scheme_validate_rator_wants_box(Scheme_Object *app_rator, int pos,
|
||||||
|
|
||||||
void scheme_validate_closure(Mz_CPort *port, Scheme_Object *expr,
|
void scheme_validate_closure(Mz_CPort *port, Scheme_Object *expr,
|
||||||
char *new_stack, Validate_TLS tls,
|
char *new_stack, Validate_TLS tls,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
int self_pos_in_closure);
|
||||||
|
|
||||||
#define TRACK_ILL_FORMED_CATCH_LINES 1
|
#define TRACK_ILL_FORMED_CATCH_LINES 1
|
||||||
#if TRACK_ILL_FORMED_CATCH_LINES
|
#if TRACK_ILL_FORMED_CATCH_LINES
|
||||||
|
@ -2568,6 +2604,9 @@ long scheme_extract_index(const char *name, int pos, int argc,
|
||||||
void scheme_get_substring_indices(const char *name, Scheme_Object *str,
|
void scheme_get_substring_indices(const char *name, Scheme_Object *str,
|
||||||
int argc, Scheme_Object **argv,
|
int argc, Scheme_Object **argv,
|
||||||
int spos, int fpos, long *_start, long *_finish);
|
int spos, int fpos, long *_start, long *_finish);
|
||||||
|
void scheme_do_get_substring_indices(const char *name, Scheme_Object *str,
|
||||||
|
int argc, Scheme_Object **argv,
|
||||||
|
int spos, int fpos, long *_start, long *_finish, long len);
|
||||||
|
|
||||||
void scheme_out_of_string_range(const char *name, const char *which,
|
void scheme_out_of_string_range(const char *name, const char *which,
|
||||||
Scheme_Object *i, Scheme_Object *s,
|
Scheme_Object *i, Scheme_Object *s,
|
||||||
|
|
|
@ -10,12 +10,12 @@
|
||||||
The string and the separate X/Y/Z/W numbers must
|
The string and the separate X/Y/Z/W numbers must
|
||||||
be updated consistently. */
|
be updated consistently. */
|
||||||
|
|
||||||
#define MZSCHEME_VERSION "3.99.0.10"
|
#define MZSCHEME_VERSION "3.99.0.11"
|
||||||
|
|
||||||
#define MZSCHEME_VERSION_X 3
|
#define MZSCHEME_VERSION_X 3
|
||||||
#define MZSCHEME_VERSION_Y 99
|
#define MZSCHEME_VERSION_Y 99
|
||||||
#define MZSCHEME_VERSION_Z 0
|
#define MZSCHEME_VERSION_Z 0
|
||||||
#define MZSCHEME_VERSION_W 10
|
#define MZSCHEME_VERSION_W 11
|
||||||
|
|
||||||
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
|
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
|
||||||
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)
|
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)
|
||||||
|
|
|
@ -387,12 +387,12 @@ scheme_init_string (Scheme_Env *env)
|
||||||
scheme_add_global_constant("string?", p, env);
|
scheme_add_global_constant("string?", p, env);
|
||||||
|
|
||||||
scheme_add_global_constant("make-string",
|
scheme_add_global_constant("make-string",
|
||||||
scheme_make_noncm_prim(make_string,
|
scheme_make_immed_prim(make_string,
|
||||||
"make-string",
|
"make-string",
|
||||||
1, 2),
|
1, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string",
|
scheme_add_global_constant("string",
|
||||||
scheme_make_noncm_prim(string,
|
scheme_make_immed_prim(string,
|
||||||
"string",
|
"string",
|
||||||
0, -1),
|
0, -1),
|
||||||
env);
|
env);
|
||||||
|
@ -402,185 +402,185 @@ scheme_init_string (Scheme_Env *env)
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
p = scheme_make_noncm_prim(scheme_checked_string_ref, "string-ref", 2, 2);
|
p = scheme_make_immed_prim(scheme_checked_string_ref, "string-ref", 2, 2);
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED;
|
||||||
scheme_add_global_constant("string-ref", p, env);
|
scheme_add_global_constant("string-ref", p, env);
|
||||||
|
|
||||||
|
|
||||||
p = scheme_make_noncm_prim(scheme_checked_string_set, "string-set!", 3, 3);
|
p = scheme_make_immed_prim(scheme_checked_string_set, "string-set!", 3, 3);
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_MIN_NARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_MIN_NARY_INLINED;
|
||||||
scheme_add_global_constant("string-set!", p, env);
|
scheme_add_global_constant("string-set!", p, env);
|
||||||
|
|
||||||
scheme_add_global_constant("string=?",
|
scheme_add_global_constant("string=?",
|
||||||
scheme_make_noncm_prim(string_eq,
|
scheme_make_immed_prim(string_eq,
|
||||||
"string=?",
|
"string=?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-locale=?",
|
scheme_add_global_constant("string-locale=?",
|
||||||
scheme_make_noncm_prim(string_locale_eq,
|
scheme_make_immed_prim(string_locale_eq,
|
||||||
"string-locale=?",
|
"string-locale=?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-ci=?",
|
scheme_add_global_constant("string-ci=?",
|
||||||
scheme_make_noncm_prim(string_ci_eq,
|
scheme_make_immed_prim(string_ci_eq,
|
||||||
"string-ci=?",
|
"string-ci=?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-locale-ci=?",
|
scheme_add_global_constant("string-locale-ci=?",
|
||||||
scheme_make_noncm_prim(string_locale_ci_eq,
|
scheme_make_immed_prim(string_locale_ci_eq,
|
||||||
"string-locale-ci=?",
|
"string-locale-ci=?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string<?",
|
scheme_add_global_constant("string<?",
|
||||||
scheme_make_noncm_prim(string_lt,
|
scheme_make_immed_prim(string_lt,
|
||||||
"string<?",
|
"string<?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-locale<?",
|
scheme_add_global_constant("string-locale<?",
|
||||||
scheme_make_noncm_prim(string_locale_lt,
|
scheme_make_immed_prim(string_locale_lt,
|
||||||
"string-locale<?",
|
"string-locale<?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string>?",
|
scheme_add_global_constant("string>?",
|
||||||
scheme_make_noncm_prim(string_gt,
|
scheme_make_immed_prim(string_gt,
|
||||||
"string>?",
|
"string>?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-locale>?",
|
scheme_add_global_constant("string-locale>?",
|
||||||
scheme_make_noncm_prim(string_locale_gt,
|
scheme_make_immed_prim(string_locale_gt,
|
||||||
"string-locale>?",
|
"string-locale>?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string<=?",
|
scheme_add_global_constant("string<=?",
|
||||||
scheme_make_noncm_prim(string_lt_eq,
|
scheme_make_immed_prim(string_lt_eq,
|
||||||
"string<=?",
|
"string<=?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string>=?",
|
scheme_add_global_constant("string>=?",
|
||||||
scheme_make_noncm_prim(string_gt_eq,
|
scheme_make_immed_prim(string_gt_eq,
|
||||||
"string>=?",
|
"string>=?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-ci<?",
|
scheme_add_global_constant("string-ci<?",
|
||||||
scheme_make_noncm_prim(string_ci_lt,
|
scheme_make_immed_prim(string_ci_lt,
|
||||||
"string-ci<?",
|
"string-ci<?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-locale-ci<?",
|
scheme_add_global_constant("string-locale-ci<?",
|
||||||
scheme_make_noncm_prim(string_locale_ci_lt,
|
scheme_make_immed_prim(string_locale_ci_lt,
|
||||||
"string-locale-ci<?",
|
"string-locale-ci<?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-ci>?",
|
scheme_add_global_constant("string-ci>?",
|
||||||
scheme_make_noncm_prim(string_ci_gt,
|
scheme_make_immed_prim(string_ci_gt,
|
||||||
"string-ci>?",
|
"string-ci>?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-locale-ci>?",
|
scheme_add_global_constant("string-locale-ci>?",
|
||||||
scheme_make_noncm_prim(string_locale_ci_gt,
|
scheme_make_immed_prim(string_locale_ci_gt,
|
||||||
"string-locale-ci>?",
|
"string-locale-ci>?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-ci<=?",
|
scheme_add_global_constant("string-ci<=?",
|
||||||
scheme_make_noncm_prim(string_ci_lt_eq,
|
scheme_make_immed_prim(string_ci_lt_eq,
|
||||||
"string-ci<=?",
|
"string-ci<=?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-ci>=?",
|
scheme_add_global_constant("string-ci>=?",
|
||||||
scheme_make_noncm_prim(string_ci_gt_eq,
|
scheme_make_immed_prim(string_ci_gt_eq,
|
||||||
"string-ci>=?",
|
"string-ci>=?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("substring",
|
scheme_add_global_constant("substring",
|
||||||
scheme_make_noncm_prim(substring,
|
scheme_make_immed_prim(substring,
|
||||||
"substring",
|
"substring",
|
||||||
2, 3),
|
2, 3),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-append",
|
scheme_add_global_constant("string-append",
|
||||||
scheme_make_noncm_prim(string_append,
|
scheme_make_immed_prim(string_append,
|
||||||
"string-append",
|
"string-append",
|
||||||
0, -1),
|
0, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string->list",
|
scheme_add_global_constant("string->list",
|
||||||
scheme_make_noncm_prim(string_to_list,
|
scheme_make_immed_prim(string_to_list,
|
||||||
"string->list",
|
"string->list",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("list->string",
|
scheme_add_global_constant("list->string",
|
||||||
scheme_make_noncm_prim(list_to_string,
|
scheme_make_immed_prim(list_to_string,
|
||||||
"list->string",
|
"list->string",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-copy",
|
scheme_add_global_constant("string-copy",
|
||||||
scheme_make_noncm_prim(string_copy,
|
scheme_make_immed_prim(string_copy,
|
||||||
"string-copy",
|
"string-copy",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-copy!",
|
scheme_add_global_constant("string-copy!",
|
||||||
scheme_make_noncm_prim(string_copy_bang,
|
scheme_make_immed_prim(string_copy_bang,
|
||||||
"string-copy!",
|
"string-copy!",
|
||||||
3, 5),
|
3, 5),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-fill!",
|
scheme_add_global_constant("string-fill!",
|
||||||
scheme_make_noncm_prim(string_fill,
|
scheme_make_immed_prim(string_fill,
|
||||||
"string-fill!",
|
"string-fill!",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string->immutable-string",
|
scheme_add_global_constant("string->immutable-string",
|
||||||
scheme_make_noncm_prim(string_to_immutable,
|
scheme_make_immed_prim(string_to_immutable,
|
||||||
"string->immutable-string",
|
"string->immutable-string",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-normalize-nfc",
|
scheme_add_global_constant("string-normalize-nfc",
|
||||||
scheme_make_noncm_prim(string_normalize_c,
|
scheme_make_immed_prim(string_normalize_c,
|
||||||
"string-normalize-nfc",
|
"string-normalize-nfc",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-normalize-nfkc",
|
scheme_add_global_constant("string-normalize-nfkc",
|
||||||
scheme_make_noncm_prim(string_normalize_kc,
|
scheme_make_immed_prim(string_normalize_kc,
|
||||||
"string-normalize-nfkc",
|
"string-normalize-nfkc",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-normalize-nfd",
|
scheme_add_global_constant("string-normalize-nfd",
|
||||||
scheme_make_noncm_prim(string_normalize_d,
|
scheme_make_immed_prim(string_normalize_d,
|
||||||
"string-normalize-nfd",
|
"string-normalize-nfd",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-normalize-nfkd",
|
scheme_add_global_constant("string-normalize-nfkd",
|
||||||
scheme_make_noncm_prim(string_normalize_kd,
|
scheme_make_immed_prim(string_normalize_kd,
|
||||||
"string-normalize-nfkd",
|
"string-normalize-nfkd",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("string-upcase",
|
scheme_add_global_constant("string-upcase",
|
||||||
scheme_make_noncm_prim(string_upcase,
|
scheme_make_immed_prim(string_upcase,
|
||||||
"string-upcase",
|
"string-upcase",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-downcase",
|
scheme_add_global_constant("string-downcase",
|
||||||
scheme_make_noncm_prim(string_downcase,
|
scheme_make_immed_prim(string_downcase,
|
||||||
"string-downcase",
|
"string-downcase",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-titlecase",
|
scheme_add_global_constant("string-titlecase",
|
||||||
scheme_make_noncm_prim(string_titlecase,
|
scheme_make_immed_prim(string_titlecase,
|
||||||
"string-titlecase",
|
"string-titlecase",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-foldcase",
|
scheme_add_global_constant("string-foldcase",
|
||||||
scheme_make_noncm_prim(string_foldcase,
|
scheme_make_immed_prim(string_foldcase,
|
||||||
"string-foldcase",
|
"string-foldcase",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("string-locale-upcase",
|
scheme_add_global_constant("string-locale-upcase",
|
||||||
scheme_make_noncm_prim(string_locale_upcase,
|
scheme_make_immed_prim(string_locale_upcase,
|
||||||
"string-locale-upcase",
|
"string-locale-upcase",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string-locale-downcase",
|
scheme_add_global_constant("string-locale-downcase",
|
||||||
scheme_make_noncm_prim(string_locale_downcase,
|
scheme_make_immed_prim(string_locale_downcase,
|
||||||
"string-locale-downcase",
|
"string-locale-downcase",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
@ -591,18 +591,18 @@ scheme_init_string (Scheme_Env *env)
|
||||||
MZCONFIG_LOCALE),
|
MZCONFIG_LOCALE),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("locale-string-encoding",
|
scheme_add_global_constant("locale-string-encoding",
|
||||||
scheme_make_noncm_prim(locale_string_encoding,
|
scheme_make_immed_prim(locale_string_encoding,
|
||||||
"locale-string-encoding",
|
"locale-string-encoding",
|
||||||
0, 0),
|
0, 0),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("system-language+country",
|
scheme_add_global_constant("system-language+country",
|
||||||
scheme_make_noncm_prim(system_language_country,
|
scheme_make_immed_prim(system_language_country,
|
||||||
"system-language+country",
|
"system-language+country",
|
||||||
0, 0),
|
0, 0),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("bytes-converter?",
|
scheme_add_global_constant("bytes-converter?",
|
||||||
scheme_make_noncm_prim(byte_converter_p,
|
scheme_make_immed_prim(byte_converter_p,
|
||||||
"bytes-converter?",
|
"bytes-converter?",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
@ -619,12 +619,12 @@ scheme_init_string (Scheme_Env *env)
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes-open-converter",
|
scheme_add_global_constant("bytes-open-converter",
|
||||||
scheme_make_noncm_prim(byte_string_open_converter,
|
scheme_make_immed_prim(byte_string_open_converter,
|
||||||
"bytes-open-converter",
|
"bytes-open-converter",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes-close-converter",
|
scheme_add_global_constant("bytes-close-converter",
|
||||||
scheme_make_noncm_prim(byte_string_close_converter,
|
scheme_make_immed_prim(byte_string_close_converter,
|
||||||
"bytes-close-converter",
|
"bytes-close-converter",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
@ -656,12 +656,12 @@ scheme_init_string (Scheme_Env *env)
|
||||||
scheme_add_global_constant("bytes?", p, env);
|
scheme_add_global_constant("bytes?", p, env);
|
||||||
|
|
||||||
scheme_add_global_constant("make-bytes",
|
scheme_add_global_constant("make-bytes",
|
||||||
scheme_make_noncm_prim(make_byte_string,
|
scheme_make_immed_prim(make_byte_string,
|
||||||
"make-bytes",
|
"make-bytes",
|
||||||
1, 2),
|
1, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes",
|
scheme_add_global_constant("bytes",
|
||||||
scheme_make_noncm_prim(byte_string,
|
scheme_make_immed_prim(byte_string,
|
||||||
"bytes",
|
"bytes",
|
||||||
0, -1),
|
0, -1),
|
||||||
env);
|
env);
|
||||||
|
@ -671,121 +671,121 @@ scheme_init_string (Scheme_Env *env)
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
p = scheme_make_noncm_prim(scheme_checked_byte_string_ref, "bytes-ref", 2, 2);
|
p = scheme_make_immed_prim(scheme_checked_byte_string_ref, "bytes-ref", 2, 2);
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED;
|
||||||
scheme_add_global_constant("bytes-ref", p, env);
|
scheme_add_global_constant("bytes-ref", p, env);
|
||||||
|
|
||||||
p = scheme_make_noncm_prim(scheme_checked_byte_string_set, "bytes-set!", 3, 3);
|
p = scheme_make_immed_prim(scheme_checked_byte_string_set, "bytes-set!", 3, 3);
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_MIN_NARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_MIN_NARY_INLINED;
|
||||||
scheme_add_global_constant("bytes-set!", p, env);
|
scheme_add_global_constant("bytes-set!", p, env);
|
||||||
|
|
||||||
scheme_add_global_constant("bytes=?",
|
scheme_add_global_constant("bytes=?",
|
||||||
scheme_make_noncm_prim(byte_string_eq,
|
scheme_make_immed_prim(byte_string_eq,
|
||||||
"bytes=?",
|
"bytes=?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes<?",
|
scheme_add_global_constant("bytes<?",
|
||||||
scheme_make_noncm_prim(byte_string_lt,
|
scheme_make_immed_prim(byte_string_lt,
|
||||||
"bytes<?",
|
"bytes<?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes>?",
|
scheme_add_global_constant("bytes>?",
|
||||||
scheme_make_noncm_prim(byte_string_gt,
|
scheme_make_immed_prim(byte_string_gt,
|
||||||
"bytes>?",
|
"bytes>?",
|
||||||
2, -1),
|
2, -1),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("subbytes",
|
scheme_add_global_constant("subbytes",
|
||||||
scheme_make_noncm_prim(byte_substring,
|
scheme_make_immed_prim(byte_substring,
|
||||||
"subbytes",
|
"subbytes",
|
||||||
2, 3),
|
2, 3),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes-append",
|
scheme_add_global_constant("bytes-append",
|
||||||
scheme_make_noncm_prim(byte_string_append,
|
scheme_make_immed_prim(byte_string_append,
|
||||||
"bytes-append",
|
"bytes-append",
|
||||||
0, -1),
|
0, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes->list",
|
scheme_add_global_constant("bytes->list",
|
||||||
scheme_make_noncm_prim(byte_string_to_list,
|
scheme_make_immed_prim(byte_string_to_list,
|
||||||
"bytes->list",
|
"bytes->list",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("list->bytes",
|
scheme_add_global_constant("list->bytes",
|
||||||
scheme_make_noncm_prim(list_to_byte_string,
|
scheme_make_immed_prim(list_to_byte_string,
|
||||||
"list->bytes",
|
"list->bytes",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes-copy",
|
scheme_add_global_constant("bytes-copy",
|
||||||
scheme_make_noncm_prim(byte_string_copy,
|
scheme_make_immed_prim(byte_string_copy,
|
||||||
"bytes-copy",
|
"bytes-copy",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes-copy!",
|
scheme_add_global_constant("bytes-copy!",
|
||||||
scheme_make_noncm_prim(byte_string_copy_bang,
|
scheme_make_immed_prim(byte_string_copy_bang,
|
||||||
"bytes-copy!",
|
"bytes-copy!",
|
||||||
3, 5),
|
3, 5),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes-fill!",
|
scheme_add_global_constant("bytes-fill!",
|
||||||
scheme_make_noncm_prim(byte_string_fill,
|
scheme_make_immed_prim(byte_string_fill,
|
||||||
"bytes-fill!",
|
"bytes-fill!",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes->immutable-bytes",
|
scheme_add_global_constant("bytes->immutable-bytes",
|
||||||
scheme_make_noncm_prim(byte_string_to_immutable,
|
scheme_make_immed_prim(byte_string_to_immutable,
|
||||||
"bytes->immutable-bytes",
|
"bytes->immutable-bytes",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
|
|
||||||
scheme_add_global_constant("bytes-utf-8-index",
|
scheme_add_global_constant("bytes-utf-8-index",
|
||||||
scheme_make_noncm_prim(byte_string_utf8_index,
|
scheme_make_immed_prim(byte_string_utf8_index,
|
||||||
"bytes-utf-8-index",
|
"bytes-utf-8-index",
|
||||||
2, 4),
|
2, 4),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes-utf-8-length",
|
scheme_add_global_constant("bytes-utf-8-length",
|
||||||
scheme_make_noncm_prim(byte_string_utf8_length,
|
scheme_make_immed_prim(byte_string_utf8_length,
|
||||||
"bytes-utf-8-length",
|
"bytes-utf-8-length",
|
||||||
1, 4),
|
1, 4),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes-utf-8-ref",
|
scheme_add_global_constant("bytes-utf-8-ref",
|
||||||
scheme_make_noncm_prim(byte_string_utf8_ref,
|
scheme_make_immed_prim(byte_string_utf8_ref,
|
||||||
"bytes-utf-8-ref",
|
"bytes-utf-8-ref",
|
||||||
2, 4),
|
2, 4),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("bytes->string/utf-8",
|
scheme_add_global_constant("bytes->string/utf-8",
|
||||||
scheme_make_noncm_prim(byte_string_to_char_string,
|
scheme_make_immed_prim(byte_string_to_char_string,
|
||||||
"bytes->string/utf-8",
|
"bytes->string/utf-8",
|
||||||
1, 4),
|
1, 4),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes->string/locale",
|
scheme_add_global_constant("bytes->string/locale",
|
||||||
scheme_make_noncm_prim(byte_string_to_char_string_locale,
|
scheme_make_immed_prim(byte_string_to_char_string_locale,
|
||||||
"bytes->string/locale",
|
"bytes->string/locale",
|
||||||
1, 4),
|
1, 4),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("bytes->string/latin-1",
|
scheme_add_global_constant("bytes->string/latin-1",
|
||||||
scheme_make_noncm_prim(byte_string_to_char_string_latin1,
|
scheme_make_immed_prim(byte_string_to_char_string_latin1,
|
||||||
"bytes->string/latin-1",
|
"bytes->string/latin-1",
|
||||||
1, 4),
|
1, 4),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string->bytes/utf-8",
|
scheme_add_global_constant("string->bytes/utf-8",
|
||||||
scheme_make_noncm_prim(char_string_to_byte_string,
|
scheme_make_immed_prim(char_string_to_byte_string,
|
||||||
"string->bytes/utf-8",
|
"string->bytes/utf-8",
|
||||||
1, 4),
|
1, 4),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string->bytes/locale",
|
scheme_add_global_constant("string->bytes/locale",
|
||||||
scheme_make_noncm_prim(char_string_to_byte_string_locale,
|
scheme_make_immed_prim(char_string_to_byte_string_locale,
|
||||||
"string->bytes/locale",
|
"string->bytes/locale",
|
||||||
1, 4),
|
1, 4),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string->bytes/latin-1",
|
scheme_add_global_constant("string->bytes/latin-1",
|
||||||
scheme_make_noncm_prim(char_string_to_byte_string_latin1,
|
scheme_make_immed_prim(char_string_to_byte_string_latin1,
|
||||||
"string->bytes/latin-1",
|
"string->bytes/latin-1",
|
||||||
1, 4),
|
1, 4),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("string-utf-8-length",
|
scheme_add_global_constant("string-utf-8-length",
|
||||||
scheme_make_noncm_prim(char_string_utf8_length,
|
scheme_make_immed_prim(char_string_utf8_length,
|
||||||
"string-utf-8-length",
|
"string-utf-8-length",
|
||||||
1, 3),
|
1, 3),
|
||||||
env);
|
env);
|
||||||
|
@ -795,23 +795,23 @@ scheme_init_string (Scheme_Env *env)
|
||||||
more problems than it solves... */
|
more problems than it solves... */
|
||||||
|
|
||||||
scheme_add_global_constant("version",
|
scheme_add_global_constant("version",
|
||||||
scheme_make_noncm_prim(version,
|
scheme_make_immed_prim(version,
|
||||||
"version",
|
"version",
|
||||||
0, 0),
|
0, 0),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("banner",
|
scheme_add_global_constant("banner",
|
||||||
scheme_make_noncm_prim(banner,
|
scheme_make_immed_prim(banner,
|
||||||
"banner",
|
"banner",
|
||||||
0, 0),
|
0, 0),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("getenv",
|
scheme_add_global_constant("getenv",
|
||||||
scheme_make_noncm_prim(sch_getenv,
|
scheme_make_immed_prim(sch_getenv,
|
||||||
"getenv",
|
"getenv",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("putenv",
|
scheme_add_global_constant("putenv",
|
||||||
scheme_make_noncm_prim(sch_putenv,
|
scheme_make_immed_prim(sch_putenv,
|
||||||
"putenv",
|
"putenv",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
|
@ -819,12 +819,12 @@ scheme_init_string (Scheme_Env *env)
|
||||||
/* Don't make these folding, since they're platform-specific: */
|
/* Don't make these folding, since they're platform-specific: */
|
||||||
|
|
||||||
scheme_add_global_constant("system-type",
|
scheme_add_global_constant("system-type",
|
||||||
scheme_make_noncm_prim(system_type,
|
scheme_make_immed_prim(system_type,
|
||||||
"system-type",
|
"system-type",
|
||||||
0, 1),
|
0, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("system-library-subpath",
|
scheme_add_global_constant("system-library-subpath",
|
||||||
scheme_make_noncm_prim(system_library_subpath,
|
scheme_make_immed_prim(system_library_subpath,
|
||||||
"system-library-subpath",
|
"system-library-subpath",
|
||||||
0, 1),
|
0, 1),
|
||||||
env);
|
env);
|
||||||
|
@ -908,24 +908,26 @@ void scheme_out_of_string_range(const char *name, const char *which,
|
||||||
|
|
||||||
is_byte = SCHEME_BYTE_STRINGP(s);
|
is_byte = SCHEME_BYTE_STRINGP(s);
|
||||||
|
|
||||||
if ((is_byte ? SCHEME_BYTE_STRTAG_VAL(s) : SCHEME_CHAR_STRTAG_VAL(s))) {
|
if (len) {
|
||||||
char *sstr;
|
char *sstr;
|
||||||
int slen;
|
int slen;
|
||||||
|
|
||||||
sstr = scheme_make_provided_string(s, 2, &slen);
|
sstr = scheme_make_provided_string(s, 2, &slen);
|
||||||
scheme_raise_exn(MZEXN_FAIL_CONTRACT,
|
scheme_raise_exn(MZEXN_FAIL_CONTRACT,
|
||||||
"%s: %sindex %s out of range [%d, %d] for %sstring: %t",
|
"%s: %sindex %s out of range [%d, %d] for %s%s: %t",
|
||||||
name, which,
|
name, which,
|
||||||
scheme_make_provided_string(i, 2, NULL),
|
scheme_make_provided_string(i, 2, NULL),
|
||||||
start, len,
|
start, len,
|
||||||
is_byte ? "byte-" : "",
|
is_byte ? "byte-" : "",
|
||||||
|
SCHEME_VECTORP(s) ? "vector" : "string",
|
||||||
sstr, slen);
|
sstr, slen);
|
||||||
} else {
|
} else {
|
||||||
scheme_raise_exn(MZEXN_FAIL_CONTRACT,
|
scheme_raise_exn(MZEXN_FAIL_CONTRACT,
|
||||||
"%s: %sindex %s out of range for empty %sstring",
|
"%s: %sindex %s out of range for empty %s%s",
|
||||||
name, which,
|
name, which,
|
||||||
scheme_make_provided_string(i, 0, NULL),
|
scheme_make_provided_string(i, 0, NULL),
|
||||||
is_byte ? "byte-" : "");
|
is_byte ? "byte-" : "",
|
||||||
|
SCHEME_VECTORP(s) ? "vector" : "string");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -960,6 +962,8 @@ void scheme_get_substring_indices(const char *name, Scheme_Object *str,
|
||||||
long len;
|
long len;
|
||||||
long start, finish;
|
long start, finish;
|
||||||
|
|
||||||
|
if (SCHEME_VECTORP(str))
|
||||||
|
len = SCHEME_VEC_SIZE(str);
|
||||||
if (SCHEME_CHAR_STRINGP(str))
|
if (SCHEME_CHAR_STRINGP(str))
|
||||||
len = SCHEME_CHAR_STRTAG_VAL(str);
|
len = SCHEME_CHAR_STRTAG_VAL(str);
|
||||||
else
|
else
|
||||||
|
@ -985,9 +989,9 @@ void scheme_get_substring_indices(const char *name, Scheme_Object *str,
|
||||||
*_finish = finish;
|
*_finish = finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void get_substring_indices(const char *name, Scheme_Object *str,
|
void scheme_do_get_substring_indices(const char *name, Scheme_Object *str,
|
||||||
int argc, Scheme_Object **argv,
|
int argc, Scheme_Object **argv,
|
||||||
int spos, int fpos, long *_start, long *_finish, long len)
|
int spos, int fpos, long *_start, long *_finish, long len)
|
||||||
{
|
{
|
||||||
if (argc > spos) {
|
if (argc > spos) {
|
||||||
if (SCHEME_INTP(argv[spos])) {
|
if (SCHEME_INTP(argv[spos])) {
|
||||||
|
|
|
@ -208,8 +208,8 @@ X__(substring) (int argc, Scheme_Object *argv[])
|
||||||
|
|
||||||
chars = SCHEME_X_STR_VAL(argv[0]);
|
chars = SCHEME_X_STR_VAL(argv[0]);
|
||||||
|
|
||||||
get_substring_indices(SUBXSTR, argv[0], argc, argv, 1, 2,
|
scheme_do_get_substring_indices(SUBXSTR, argv[0], argc, argv, 1, 2,
|
||||||
&start, &finish, SCHEME_X_STRTAG_VAL(argv[0]));
|
&start, &finish, SCHEME_X_STRTAG_VAL(argv[0]));
|
||||||
|
|
||||||
str = X(scheme_alloc, _string)(finish-start, 0);
|
str = X(scheme_alloc, _string)(finish-start, 0);
|
||||||
memcpy(SCHEME_X_STR_VAL(str), chars + start, (finish - start) * sizeof(Xchar));
|
memcpy(SCHEME_X_STR_VAL(str), chars + start, (finish - start) * sizeof(Xchar));
|
||||||
|
@ -349,17 +349,17 @@ X__(string_copy_bang)(int argc, Scheme_Object *argv[])
|
||||||
if (!SCHEME_MUTABLE_X_STRINGP(s1))
|
if (!SCHEME_MUTABLE_X_STRINGP(s1))
|
||||||
scheme_wrong_type(XSTRINGSTR "-copy!", "mutable " XSTR "string", 0, argc, argv);
|
scheme_wrong_type(XSTRINGSTR "-copy!", "mutable " XSTR "string", 0, argc, argv);
|
||||||
|
|
||||||
get_substring_indices(XSTRINGSTR "-copy!", s1,
|
scheme_do_get_substring_indices(XSTRINGSTR "-copy!", s1,
|
||||||
argc, argv, 1, 5,
|
argc, argv, 1, 5,
|
||||||
&ostart, &ofinish, SCHEME_X_STRTAG_VAL(s1));
|
&ostart, &ofinish, SCHEME_X_STRTAG_VAL(s1));
|
||||||
|
|
||||||
s2 = argv[2];
|
s2 = argv[2];
|
||||||
if (!SCHEME_X_STRINGP(s2))
|
if (!SCHEME_X_STRINGP(s2))
|
||||||
scheme_wrong_type(XSTRINGSTR "-copy!", XSTR "string", 2, argc, argv);
|
scheme_wrong_type(XSTRINGSTR "-copy!", XSTR "string", 2, argc, argv);
|
||||||
|
|
||||||
get_substring_indices(XSTRINGSTR "-copy!", s2,
|
scheme_do_get_substring_indices(XSTRINGSTR "-copy!", s2,
|
||||||
argc, argv, 3, 4,
|
argc, argv, 3, 4,
|
||||||
&istart, &ifinish, SCHEME_X_STRTAG_VAL(s2));
|
&istart, &ifinish, SCHEME_X_STRTAG_VAL(s2));
|
||||||
|
|
||||||
if ((ofinish - ostart) < (ifinish - istart)) {
|
if ((ofinish - ostart) < (ifinish - istart)) {
|
||||||
scheme_arg_mismatch(XSTRINGSTR "-copy!",
|
scheme_arg_mismatch(XSTRINGSTR "-copy!",
|
||||||
|
|
|
@ -2300,7 +2300,7 @@ make_struct_proc(Scheme_Struct_Type *struct_type,
|
||||||
p = scheme_make_folding_prim_closure(struct_getter,
|
p = scheme_make_folding_prim_closure(struct_getter,
|
||||||
1, a,
|
1, a,
|
||||||
func_name,
|
func_name,
|
||||||
1 + need_pos, 1 + need_pos, 1);
|
1 + need_pos, 1 + need_pos, 0);
|
||||||
if (need_pos)
|
if (need_pos)
|
||||||
flags |= SCHEME_PRIM_STRUCT_TYPE_INDEXLESS_GETTER | SCHEME_PRIM_IS_STRUCT_OTHER;
|
flags |= SCHEME_PRIM_STRUCT_TYPE_INDEXLESS_GETTER | SCHEME_PRIM_IS_STRUCT_OTHER;
|
||||||
else
|
else
|
||||||
|
|
|
@ -400,70 +400,70 @@ void scheme_init_stx(Scheme_Env *env)
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("syntax-original?",
|
scheme_add_global_constant("syntax-original?",
|
||||||
scheme_make_noncm_prim(syntax_original_p,
|
scheme_make_immed_prim(syntax_original_p,
|
||||||
"syntax-original?",
|
"syntax-original?",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("syntax-property",
|
scheme_add_global_constant("syntax-property",
|
||||||
scheme_make_noncm_prim(syntax_property,
|
scheme_make_immed_prim(syntax_property,
|
||||||
"syntax-property",
|
"syntax-property",
|
||||||
2, 3),
|
2, 3),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("syntax-property-symbol-keys",
|
scheme_add_global_constant("syntax-property-symbol-keys",
|
||||||
scheme_make_noncm_prim(syntax_property_keys,
|
scheme_make_immed_prim(syntax_property_keys,
|
||||||
"syntax-property-symbol-keys",
|
"syntax-property-symbol-keys",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("syntax-track-origin",
|
scheme_add_global_constant("syntax-track-origin",
|
||||||
scheme_make_noncm_prim(syntax_track_origin,
|
scheme_make_immed_prim(syntax_track_origin,
|
||||||
"syntax-track-origin",
|
"syntax-track-origin",
|
||||||
3, 3),
|
3, 3),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("bound-identifier=?",
|
scheme_add_global_constant("bound-identifier=?",
|
||||||
scheme_make_noncm_prim(bound_eq,
|
scheme_make_immed_prim(bound_eq,
|
||||||
"bound-identifier=?",
|
"bound-identifier=?",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("free-identifier=?",
|
scheme_add_global_constant("free-identifier=?",
|
||||||
scheme_make_noncm_prim(module_eq,
|
scheme_make_immed_prim(module_eq,
|
||||||
"free-identifier=?",
|
"free-identifier=?",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("free-transformer-identifier=?",
|
scheme_add_global_constant("free-transformer-identifier=?",
|
||||||
scheme_make_noncm_prim(module_trans_eq,
|
scheme_make_immed_prim(module_trans_eq,
|
||||||
"free-transformer-identifier=?",
|
"free-transformer-identifier=?",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("free-template-identifier=?",
|
scheme_add_global_constant("free-template-identifier=?",
|
||||||
scheme_make_noncm_prim(module_templ_eq,
|
scheme_make_immed_prim(module_templ_eq,
|
||||||
"free-template-identifier=?",
|
"free-template-identifier=?",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("free-label-identifier=?",
|
scheme_add_global_constant("free-label-identifier=?",
|
||||||
scheme_make_noncm_prim(module_label_eq,
|
scheme_make_immed_prim(module_label_eq,
|
||||||
"free-label-identifier=?",
|
"free-label-identifier=?",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("identifier-binding",
|
scheme_add_global_constant("identifier-binding",
|
||||||
scheme_make_noncm_prim(module_binding,
|
scheme_make_immed_prim(module_binding,
|
||||||
"identifier-binding",
|
"identifier-binding",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("identifier-transformer-binding",
|
scheme_add_global_constant("identifier-transformer-binding",
|
||||||
scheme_make_noncm_prim(module_trans_binding,
|
scheme_make_immed_prim(module_trans_binding,
|
||||||
"identifier-transformer-binding",
|
"identifier-transformer-binding",
|
||||||
1, 2),
|
1, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("identifier-template-binding",
|
scheme_add_global_constant("identifier-template-binding",
|
||||||
scheme_make_noncm_prim(module_templ_binding,
|
scheme_make_immed_prim(module_templ_binding,
|
||||||
"identifier-template-binding",
|
"identifier-template-binding",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("identifier-label-binding",
|
scheme_add_global_constant("identifier-label-binding",
|
||||||
scheme_make_noncm_prim(module_label_binding,
|
scheme_make_immed_prim(module_label_binding,
|
||||||
"identifier-label-binding",
|
"identifier-label-binding",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
@ -476,7 +476,7 @@ void scheme_init_stx(Scheme_Env *env)
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("syntax-recertify",
|
scheme_add_global_constant("syntax-recertify",
|
||||||
scheme_make_noncm_prim(syntax_recertify,
|
scheme_make_immed_prim(syntax_recertify,
|
||||||
"syntax-recertify",
|
"syntax-recertify",
|
||||||
4, 4),
|
4, 4),
|
||||||
env);
|
env);
|
||||||
|
|
|
@ -235,6 +235,8 @@ enum {
|
||||||
scheme_rt_marshal_info, /* 213 */
|
scheme_rt_marshal_info, /* 213 */
|
||||||
scheme_rt_unmarshal_info, /* 214 */
|
scheme_rt_unmarshal_info, /* 214 */
|
||||||
scheme_rt_runstack, /* 215 */
|
scheme_rt_runstack, /* 215 */
|
||||||
|
scheme_rt_sfs_info, /* 216 */
|
||||||
|
scheme_rt_validate_clearing, /* 217 */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_scheme_last_type_
|
_scheme_last_type_
|
||||||
|
|
|
@ -302,16 +302,16 @@ scheme_init_symbol (Scheme_Env *env)
|
||||||
scheme_add_global_constant("symbol?", p, env);
|
scheme_add_global_constant("symbol?", p, env);
|
||||||
|
|
||||||
scheme_add_global_constant("string->symbol",
|
scheme_add_global_constant("string->symbol",
|
||||||
scheme_make_noncm_prim(string_to_symbol_prim,
|
scheme_make_immed_prim(string_to_symbol_prim,
|
||||||
"string->symbol",
|
"string->symbol",
|
||||||
1, 1), env);
|
1, 1), env);
|
||||||
scheme_add_global_constant("string->uninterned-symbol",
|
scheme_add_global_constant("string->uninterned-symbol",
|
||||||
scheme_make_noncm_prim(string_to_uninterned_symbol_prim,
|
scheme_make_immed_prim(string_to_uninterned_symbol_prim,
|
||||||
"string->uninterned-symbol",
|
"string->uninterned-symbol",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("symbol->string",
|
scheme_add_global_constant("symbol->string",
|
||||||
scheme_make_noncm_prim(symbol_to_string_prim,
|
scheme_make_immed_prim(symbol_to_string_prim,
|
||||||
"symbol->string",
|
"symbol->string",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
@ -327,17 +327,17 @@ scheme_init_symbol (Scheme_Env *env)
|
||||||
2, -1, 1),
|
2, -1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("string->keyword",
|
scheme_add_global_constant("string->keyword",
|
||||||
scheme_make_noncm_prim(string_to_keyword_prim,
|
scheme_make_immed_prim(string_to_keyword_prim,
|
||||||
"string->keyword",
|
"string->keyword",
|
||||||
1, 1), env);
|
1, 1), env);
|
||||||
scheme_add_global_constant("keyword->string",
|
scheme_add_global_constant("keyword->string",
|
||||||
scheme_make_noncm_prim(keyword_to_string_prim,
|
scheme_make_immed_prim(keyword_to_string_prim,
|
||||||
"keyword->string",
|
"keyword->string",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("gensym",
|
scheme_add_global_constant("gensym",
|
||||||
scheme_make_noncm_prim(gensym,
|
scheme_make_immed_prim(gensym,
|
||||||
"gensym",
|
"gensym",
|
||||||
0, 1),
|
0, 1),
|
||||||
env);
|
env);
|
||||||
|
|
|
@ -43,6 +43,7 @@ Scheme_Object scheme_undefined[1];
|
||||||
|
|
||||||
Scheme_Syntax_Optimizer scheme_syntax_optimizers[_COUNT_EXPD_];
|
Scheme_Syntax_Optimizer scheme_syntax_optimizers[_COUNT_EXPD_];
|
||||||
Scheme_Syntax_Resolver scheme_syntax_resolvers[_COUNT_EXPD_];
|
Scheme_Syntax_Resolver scheme_syntax_resolvers[_COUNT_EXPD_];
|
||||||
|
Scheme_Syntax_SFSer scheme_syntax_sfsers[_COUNT_EXPD_];
|
||||||
Scheme_Syntax_Validater scheme_syntax_validaters[_COUNT_EXPD_];
|
Scheme_Syntax_Validater scheme_syntax_validaters[_COUNT_EXPD_];
|
||||||
Scheme_Syntax_Executer scheme_syntax_executers[_COUNT_EXPD_];
|
Scheme_Syntax_Executer scheme_syntax_executers[_COUNT_EXPD_];
|
||||||
Scheme_Syntax_Jitter scheme_syntax_jitters[_COUNT_EXPD_];
|
Scheme_Syntax_Jitter scheme_syntax_jitters[_COUNT_EXPD_];
|
||||||
|
@ -137,46 +138,67 @@ static Scheme_Object *begin0_resolve(Scheme_Object *data, Resolve_Info *info);
|
||||||
static Scheme_Object *apply_values_resolve(Scheme_Object *data, Resolve_Info *info);
|
static Scheme_Object *apply_values_resolve(Scheme_Object *data, Resolve_Info *info);
|
||||||
static Scheme_Object *splice_resolve(Scheme_Object *data, Resolve_Info *info);
|
static Scheme_Object *splice_resolve(Scheme_Object *data, Resolve_Info *info);
|
||||||
|
|
||||||
|
static Scheme_Object *define_values_sfs(Scheme_Object *data, SFS_Info *info);
|
||||||
|
static Scheme_Object *ref_sfs(Scheme_Object *data, SFS_Info *info);
|
||||||
|
static Scheme_Object *set_sfs(Scheme_Object *data, SFS_Info *info);
|
||||||
|
static Scheme_Object *define_syntaxes_sfs(Scheme_Object *expr, SFS_Info *info);
|
||||||
|
static Scheme_Object *define_for_syntaxes_sfs(Scheme_Object *expr, SFS_Info *info);
|
||||||
|
static Scheme_Object *case_lambda_sfs(Scheme_Object *expr, SFS_Info *info);
|
||||||
|
static Scheme_Object *begin0_sfs(Scheme_Object *data, SFS_Info *info);
|
||||||
|
static Scheme_Object *apply_values_sfs(Scheme_Object *data, SFS_Info *info);
|
||||||
|
static Scheme_Object *splice_sfs(Scheme_Object *data, SFS_Info *info);
|
||||||
|
static Scheme_Object *bangboxenv_sfs(Scheme_Object *data, SFS_Info *info);
|
||||||
|
|
||||||
static void define_values_validate(Scheme_Object *data, Mz_CPort *port,
|
static void define_values_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
static void ref_validate(Scheme_Object *data, Mz_CPort *port,
|
static void ref_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
static void set_validate(Scheme_Object *data, Mz_CPort *port,
|
static void set_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
static void define_syntaxes_validate(Scheme_Object *data, Mz_CPort *port,
|
static void define_syntaxes_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
static void define_for_syntaxes_validate(Scheme_Object *data, Mz_CPort *port,
|
static void define_for_syntaxes_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
static void case_lambda_validate(Scheme_Object *data, Mz_CPort *port,
|
static void case_lambda_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
static void begin0_validate(Scheme_Object *data, Mz_CPort *port,
|
static void begin0_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
static void apply_values_validate(Scheme_Object *data, Mz_CPort *port,
|
static void apply_values_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
static void splice_validate(Scheme_Object *data, Mz_CPort *port,
|
static void splice_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
static void bangboxenv_validate(Scheme_Object *data, Mz_CPort *port,
|
static void bangboxenv_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts);
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos);
|
||||||
|
|
||||||
static Scheme_Object *define_values_jit(Scheme_Object *data);
|
static Scheme_Object *define_values_jit(Scheme_Object *data);
|
||||||
static Scheme_Object *ref_jit(Scheme_Object *data);
|
static Scheme_Object *ref_jit(Scheme_Object *data);
|
||||||
|
@ -260,54 +282,54 @@ scheme_init_syntax (Scheme_Env *env)
|
||||||
|
|
||||||
scheme_register_syntax(DEFINE_VALUES_EXPD,
|
scheme_register_syntax(DEFINE_VALUES_EXPD,
|
||||||
define_values_optimize,
|
define_values_optimize,
|
||||||
define_values_resolve, define_values_validate,
|
define_values_resolve, define_values_sfs, define_values_validate,
|
||||||
define_values_execute, define_values_jit,
|
define_values_execute, define_values_jit,
|
||||||
NULL, NULL, -2);
|
NULL, NULL, -2);
|
||||||
scheme_register_syntax(SET_EXPD,
|
scheme_register_syntax(SET_EXPD,
|
||||||
set_optimize,
|
set_optimize,
|
||||||
set_resolve, set_validate,
|
set_resolve, set_sfs, set_validate,
|
||||||
set_execute, set_jit,
|
set_execute, set_jit,
|
||||||
set_clone, set_shift, 2);
|
set_clone, set_shift, 2);
|
||||||
scheme_register_syntax(REF_EXPD,
|
scheme_register_syntax(REF_EXPD,
|
||||||
ref_optimize,
|
ref_optimize,
|
||||||
ref_resolve, ref_validate,
|
ref_resolve, ref_sfs, ref_validate,
|
||||||
ref_execute, ref_jit,
|
ref_execute, ref_jit,
|
||||||
NULL, ref_shift, 0);
|
NULL, ref_shift, 0);
|
||||||
scheme_register_syntax(DEFINE_SYNTAX_EXPD,
|
scheme_register_syntax(DEFINE_SYNTAX_EXPD,
|
||||||
define_syntaxes_optimize,
|
define_syntaxes_optimize,
|
||||||
define_syntaxes_resolve, define_syntaxes_validate,
|
define_syntaxes_resolve, define_syntaxes_sfs, define_syntaxes_validate,
|
||||||
define_syntaxes_execute, define_syntaxes_jit,
|
define_syntaxes_execute, define_syntaxes_jit,
|
||||||
NULL, NULL, -2);
|
NULL, NULL, -2);
|
||||||
scheme_register_syntax(DEFINE_FOR_SYNTAX_EXPD,
|
scheme_register_syntax(DEFINE_FOR_SYNTAX_EXPD,
|
||||||
define_for_syntaxes_optimize,
|
define_for_syntaxes_optimize,
|
||||||
define_for_syntaxes_resolve, define_for_syntaxes_validate,
|
define_for_syntaxes_resolve, define_for_syntaxes_sfs, define_for_syntaxes_validate,
|
||||||
define_for_syntaxes_execute, define_for_syntaxes_jit,
|
define_for_syntaxes_execute, define_for_syntaxes_jit,
|
||||||
NULL, NULL, -2);
|
NULL, NULL, -2);
|
||||||
scheme_register_syntax(CASE_LAMBDA_EXPD,
|
scheme_register_syntax(CASE_LAMBDA_EXPD,
|
||||||
case_lambda_optimize,
|
case_lambda_optimize,
|
||||||
case_lambda_resolve, case_lambda_validate,
|
case_lambda_resolve, case_lambda_sfs, case_lambda_validate,
|
||||||
case_lambda_execute, case_lambda_jit,
|
case_lambda_execute, case_lambda_jit,
|
||||||
NULL, case_lambda_shift, -1);
|
NULL, case_lambda_shift, -1);
|
||||||
scheme_register_syntax(BEGIN0_EXPD,
|
scheme_register_syntax(BEGIN0_EXPD,
|
||||||
begin0_optimize,
|
begin0_optimize,
|
||||||
begin0_resolve, begin0_validate,
|
begin0_resolve, begin0_sfs, begin0_validate,
|
||||||
begin0_execute, begin0_jit,
|
begin0_execute, begin0_jit,
|
||||||
begin0_clone, begin0_shift, -1);
|
begin0_clone, begin0_shift, -1);
|
||||||
|
|
||||||
scheme_register_syntax(APPVALS_EXPD,
|
scheme_register_syntax(APPVALS_EXPD,
|
||||||
apply_values_optimize,
|
apply_values_optimize,
|
||||||
apply_values_resolve, apply_values_validate,
|
apply_values_resolve, apply_values_sfs, apply_values_validate,
|
||||||
apply_values_execute, apply_values_jit,
|
apply_values_execute, apply_values_jit,
|
||||||
apply_values_clone, apply_values_shift, 1);
|
apply_values_clone, apply_values_shift, 1);
|
||||||
|
|
||||||
scheme_register_syntax(SPLICE_EXPD,
|
scheme_register_syntax(SPLICE_EXPD,
|
||||||
splice_optimize,
|
splice_optimize,
|
||||||
splice_resolve, splice_validate,
|
splice_resolve, splice_sfs, splice_validate,
|
||||||
splice_execute, splice_jit,
|
splice_execute, splice_jit,
|
||||||
splice_clone, splice_shift, 0);
|
splice_clone, splice_shift, 0);
|
||||||
|
|
||||||
scheme_register_syntax(BOXENV_EXPD,
|
scheme_register_syntax(BOXENV_EXPD,
|
||||||
NULL, NULL, bangboxenv_validate,
|
NULL, NULL, bangboxenv_sfs, bangboxenv_validate,
|
||||||
bangboxenv_execute, bangboxenv_jit,
|
bangboxenv_execute, bangboxenv_jit,
|
||||||
NULL, NULL, 1);
|
NULL, NULL, 1);
|
||||||
|
|
||||||
|
@ -846,7 +868,8 @@ static Scheme_Object *define_values_jit(Scheme_Object *data)
|
||||||
static void define_values_validate(Scheme_Object *data, Mz_CPort *port,
|
static void define_values_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts)
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos)
|
||||||
{
|
{
|
||||||
int i, size;
|
int i, size;
|
||||||
Scheme_Object *val, *only_var;
|
Scheme_Object *val, *only_var;
|
||||||
|
@ -954,7 +977,7 @@ static void define_values_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
scheme_validate_expr(port, val, stack, tls,
|
scheme_validate_expr(port, val, stack, tls,
|
||||||
depth, letlimit, delta,
|
depth, letlimit, delta,
|
||||||
num_toplevels, num_stxes, num_lifts,
|
num_toplevels, num_stxes, num_lifts,
|
||||||
NULL, !!only_var);
|
NULL, !!only_var, 0, vc, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
|
@ -1004,6 +1027,16 @@ define_values_resolve(Scheme_Object *data, Resolve_Info *rslv)
|
||||||
return scheme_make_syntax_resolved(DEFINE_VALUES_EXPD, vec);
|
return scheme_make_syntax_resolved(DEFINE_VALUES_EXPD, vec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *
|
||||||
|
define_values_sfs(Scheme_Object *data, SFS_Info *info)
|
||||||
|
{
|
||||||
|
Scheme_Object *e;
|
||||||
|
scheme_sfs_start_sequence(info, 1, 0);
|
||||||
|
e = scheme_sfs_expr(SCHEME_VEC_ELS(data)[0], info, -1);
|
||||||
|
SCHEME_VEC_ELS(data)[0] = e;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
void scheme_resolve_lift_definition(Resolve_Info *info, Scheme_Object *var, Scheme_Object *rhs)
|
void scheme_resolve_lift_definition(Resolve_Info *info, Scheme_Object *var, Scheme_Object *rhs)
|
||||||
{
|
{
|
||||||
Scheme_Object *decl, *vec, *pr;
|
Scheme_Object *decl, *vec, *pr;
|
||||||
|
@ -1474,7 +1507,8 @@ static Scheme_Object *set_jit(Scheme_Object *data)
|
||||||
static void set_validate(Scheme_Object *data, Mz_CPort *port,
|
static void set_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts)
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos)
|
||||||
{
|
{
|
||||||
Scheme_Object *val, *tl;
|
Scheme_Object *val, *tl;
|
||||||
|
|
||||||
|
@ -1488,7 +1522,7 @@ static void set_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
|
|
||||||
scheme_validate_expr(port, val, stack, tls, depth, letlimit, delta,
|
scheme_validate_expr(port, val, stack, tls, depth, letlimit, delta,
|
||||||
num_toplevels, num_stxes, num_lifts,
|
num_toplevels, num_stxes, num_lifts,
|
||||||
NULL, 0);
|
NULL, 0, 0, vc, 0);
|
||||||
scheme_validate_toplevel(tl, port, stack, tls, depth, delta,
|
scheme_validate_toplevel(tl, port, stack, tls, depth, delta,
|
||||||
num_toplevels, num_stxes, num_lifts,
|
num_toplevels, num_stxes, num_lifts,
|
||||||
0);
|
0);
|
||||||
|
@ -1520,7 +1554,7 @@ set_optimize(Scheme_Object *data, Optimize_Info *info)
|
||||||
/* Offset: */
|
/* Offset: */
|
||||||
delta = scheme_optimize_info_get_shift(info, pos);
|
delta = scheme_optimize_info_get_shift(info, pos);
|
||||||
if (delta)
|
if (delta)
|
||||||
var = scheme_make_local(scheme_local_type, pos + delta);
|
var = scheme_make_local(scheme_local_type, pos + delta, 0);
|
||||||
} else {
|
} else {
|
||||||
scheme_optimize_info_used_top(info);
|
scheme_optimize_info_used_top(info);
|
||||||
}
|
}
|
||||||
|
@ -1602,6 +1636,26 @@ set_resolve(Scheme_Object *data, Resolve_Info *rslv)
|
||||||
return scheme_make_syntax_resolved(SET_EXPD, cons(set_undef, cons(var, val)));
|
return scheme_make_syntax_resolved(SET_EXPD, cons(set_undef, cons(var, val)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *
|
||||||
|
set_sfs(Scheme_Object *orig_data, SFS_Info *info)
|
||||||
|
{
|
||||||
|
Scheme_Object *data, *var, *val;
|
||||||
|
|
||||||
|
data = SCHEME_CDR(orig_data);
|
||||||
|
var = SCHEME_CAR(data);
|
||||||
|
val = SCHEME_CDR(data);
|
||||||
|
|
||||||
|
scheme_sfs_start_sequence(info, 2, 0);
|
||||||
|
|
||||||
|
val = scheme_sfs_expr(val, info, -1);
|
||||||
|
var = scheme_sfs_expr(var, info, -1);
|
||||||
|
|
||||||
|
SCHEME_CAR(data) = var;
|
||||||
|
SCHEME_CDR(data) = val;
|
||||||
|
|
||||||
|
return orig_data;
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
set_syntax (Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *rec, int drec)
|
set_syntax (Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *rec, int drec)
|
||||||
{
|
{
|
||||||
|
@ -1813,7 +1867,8 @@ static Scheme_Object *ref_jit(Scheme_Object *data)
|
||||||
static void ref_validate(Scheme_Object *tl, Mz_CPort *port,
|
static void ref_validate(Scheme_Object *tl, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts)
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos)
|
||||||
{
|
{
|
||||||
scheme_validate_toplevel(tl, port, stack, tls, depth, delta,
|
scheme_validate_toplevel(tl, port, stack, tls, depth, delta,
|
||||||
num_toplevels, num_stxes, num_lifts,
|
num_toplevels, num_stxes, num_lifts,
|
||||||
|
@ -1841,6 +1896,18 @@ ref_resolve(Scheme_Object *tl, Resolve_Info *rslv)
|
||||||
return scheme_make_syntax_resolved(REF_EXPD, scheme_resolve_expr(tl, rslv));
|
return scheme_make_syntax_resolved(REF_EXPD, scheme_resolve_expr(tl, rslv));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *
|
||||||
|
ref_sfs(Scheme_Object *tl, SFS_Info *info)
|
||||||
|
{
|
||||||
|
Scheme_Object *naya;
|
||||||
|
scheme_sfs_start_sequence(info, 1, 0);
|
||||||
|
naya = scheme_sfs_expr(tl, info, -1);
|
||||||
|
if (SAME_OBJ(naya, tl))
|
||||||
|
return tl;
|
||||||
|
else
|
||||||
|
return scheme_make_syntax_resolved(REF_EXPD, naya);
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
ref_syntax (Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *rec, int drec)
|
ref_syntax (Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *rec, int drec)
|
||||||
{
|
{
|
||||||
|
@ -2019,6 +2086,22 @@ apply_values_resolve(Scheme_Object *data, Resolve_Info *rslv)
|
||||||
return scheme_make_syntax_resolved(APPVALS_EXPD, cons(f, e));
|
return scheme_make_syntax_resolved(APPVALS_EXPD, cons(f, e));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *
|
||||||
|
apply_values_sfs(Scheme_Object *data, SFS_Info *info)
|
||||||
|
{
|
||||||
|
Scheme_Object *f, *e;
|
||||||
|
|
||||||
|
f = SCHEME_CAR(data);
|
||||||
|
e = SCHEME_CDR(data);
|
||||||
|
|
||||||
|
scheme_sfs_start_sequence(info, 2, 0);
|
||||||
|
|
||||||
|
f = scheme_sfs_expr(f, info, -1);
|
||||||
|
e = scheme_sfs_expr(e, info, -1);
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
apply_values_shift(Scheme_Object *data, int delta, int after_depth)
|
apply_values_shift(Scheme_Object *data, int delta, int after_depth)
|
||||||
{
|
{
|
||||||
|
@ -2052,7 +2135,8 @@ apply_values_clone(int dup_ok, Scheme_Object *data, Optimize_Info *info, int del
|
||||||
static void apply_values_validate(Scheme_Object *data, Mz_CPort *port,
|
static void apply_values_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts)
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos)
|
||||||
{
|
{
|
||||||
Scheme_Object *f, *e;
|
Scheme_Object *f, *e;
|
||||||
|
|
||||||
|
@ -2062,11 +2146,11 @@ static void apply_values_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
scheme_validate_expr(port, f, stack, tls,
|
scheme_validate_expr(port, f, stack, tls,
|
||||||
depth, letlimit, delta,
|
depth, letlimit, delta,
|
||||||
num_toplevels, num_stxes, num_lifts,
|
num_toplevels, num_stxes, num_lifts,
|
||||||
NULL, 0);
|
NULL, 0, 0, vc, 0);
|
||||||
scheme_validate_expr(port, e, stack, tls,
|
scheme_validate_expr(port, e, stack, tls,
|
||||||
depth, letlimit, delta,
|
depth, letlimit, delta,
|
||||||
num_toplevels, num_stxes, num_lifts,
|
num_toplevels, num_stxes, num_lifts,
|
||||||
NULL, 0);
|
NULL, 0, 0, vc, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
@ -2215,15 +2299,21 @@ static Scheme_Object *case_lambda_jit(Scheme_Object *expr)
|
||||||
|
|
||||||
static void case_lambda_validate(Scheme_Object *data, Mz_CPort *port, char *stack, Validate_TLS tls,
|
static void case_lambda_validate(Scheme_Object *data, Mz_CPort *port, char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts)
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos)
|
||||||
{
|
{
|
||||||
Scheme_Case_Lambda *seq = (Scheme_Case_Lambda *)data;
|
Scheme_Case_Lambda *seq = (Scheme_Case_Lambda *)data;
|
||||||
|
Scheme_Object *e;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < seq->count; i++) {
|
for (i = 0; i < seq->count; i++) {
|
||||||
scheme_validate_expr(port, seq->array[i], stack, tls, depth, letlimit, delta,
|
e = seq->array[i];
|
||||||
|
if (!SAME_TYPE(SCHEME_TYPE(e), scheme_unclosed_procedure_type)
|
||||||
|
&& !SAME_TYPE(SCHEME_TYPE(e), scheme_closure_type))
|
||||||
|
scheme_ill_formed_code(port);
|
||||||
|
scheme_validate_expr(port, e, stack, tls, depth, letlimit, delta,
|
||||||
num_toplevels, num_stxes, num_lifts,
|
num_toplevels, num_stxes, num_lifts,
|
||||||
NULL, 0);
|
NULL, 0, 0, vc, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2250,6 +2340,48 @@ case_lambda_resolve(Scheme_Object *expr, Resolve_Info *rslv)
|
||||||
return scheme_make_syntax_resolved(CASE_LAMBDA_EXPD, expr);
|
return scheme_make_syntax_resolved(CASE_LAMBDA_EXPD, expr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *
|
||||||
|
case_lambda_sfs(Scheme_Object *expr, SFS_Info *info)
|
||||||
|
{
|
||||||
|
Scheme_Case_Lambda *seq = (Scheme_Case_Lambda *)expr;
|
||||||
|
Scheme_Object *le, *clears = scheme_null;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
scheme_sfs_start_sequence(info, seq->count, 0);
|
||||||
|
|
||||||
|
for (i = 0; i < seq->count; i++) {
|
||||||
|
le = seq->array[i];
|
||||||
|
le = scheme_sfs_expr(le, info, -1);
|
||||||
|
if (SAME_TYPE(SCHEME_TYPE(le), scheme_syntax_type)
|
||||||
|
&& (SCHEME_PINT_VAL(le) == BEGIN0_EXPD)) {
|
||||||
|
/* Some clearing actions were added to the closure.
|
||||||
|
Lift them out. */
|
||||||
|
int j;
|
||||||
|
Scheme_Sequence *cseq = (Scheme_Sequence *)SCHEME_IPTR_VAL(le);
|
||||||
|
if (!cseq->count)
|
||||||
|
scheme_signal_error("internal error: empty sequence");
|
||||||
|
for (j = 1; j < cseq->count; j++) {
|
||||||
|
int pos;
|
||||||
|
pos = SCHEME_LOCAL_POS(cseq->array[j]);
|
||||||
|
clears = scheme_make_pair(scheme_make_integer(pos), clears);
|
||||||
|
}
|
||||||
|
le = cseq->array[0];
|
||||||
|
}
|
||||||
|
if (!SAME_TYPE(SCHEME_TYPE(le), scheme_unclosed_procedure_type)
|
||||||
|
&& !SAME_TYPE(SCHEME_TYPE(le), scheme_closure_type)) {
|
||||||
|
scheme_signal_error("internal error: not a lambda for case-lambda: %d",
|
||||||
|
SCHEME_TYPE(le));
|
||||||
|
}
|
||||||
|
seq->array[i] = le;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!SCHEME_NULLP(clears)) {
|
||||||
|
expr = scheme_make_syntax_resolved(CASE_LAMBDA_EXPD, expr);
|
||||||
|
return scheme_sfs_add_clears(expr, clears, 0);
|
||||||
|
} else
|
||||||
|
return expr;
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
case_lambda_optimize(Scheme_Object *expr, Optimize_Info *info)
|
case_lambda_optimize(Scheme_Object *expr, Optimize_Info *info)
|
||||||
{
|
{
|
||||||
|
@ -2285,7 +2417,7 @@ case_lambda_shift(Scheme_Object *data, int delta, int after_depth)
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
Scheme_Object *scheme_unclose_case_lambda(Scheme_Object *expr, int jit)
|
Scheme_Object *scheme_unclose_case_lambda(Scheme_Object *expr, int mode)
|
||||||
{
|
{
|
||||||
Scheme_Case_Lambda *cl = (Scheme_Case_Lambda *)expr;
|
Scheme_Case_Lambda *cl = (Scheme_Case_Lambda *)expr;
|
||||||
Scheme_Closure *c;
|
Scheme_Closure *c;
|
||||||
|
@ -2314,9 +2446,13 @@ Scheme_Object *scheme_unclose_case_lambda(Scheme_Object *expr, int jit)
|
||||||
cl2->array[i] = (Scheme_Object *)c->code;
|
cl2->array[i] = (Scheme_Object *)c->code;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (jit)
|
if (mode == 2) {
|
||||||
|
/* sfs */
|
||||||
|
return scheme_make_syntax_resolved(CASE_LAMBDA_EXPD, expr);
|
||||||
|
} else if (mode == 1) {
|
||||||
|
/* JIT */
|
||||||
return case_lambda_jit((Scheme_Object *)cl2);
|
return case_lambda_jit((Scheme_Object *)cl2);
|
||||||
else
|
} else
|
||||||
return (Scheme_Object *)cl2;
|
return (Scheme_Object *)cl2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2535,6 +2671,14 @@ Scheme_Object *bangboxenv_execute(Scheme_Object *data)
|
||||||
return _scheme_tail_eval(data);
|
return _scheme_tail_eval(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *bangboxenv_sfs(Scheme_Object *data, SFS_Info *info)
|
||||||
|
{
|
||||||
|
Scheme_Object *e;
|
||||||
|
e = scheme_sfs_expr(SCHEME_CDR(data), info, -1);
|
||||||
|
SCHEME_CDR(data) = e;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *bangboxenv_jit(Scheme_Object *data)
|
static Scheme_Object *bangboxenv_jit(Scheme_Object *data)
|
||||||
{
|
{
|
||||||
Scheme_Object *orig, *naya;
|
Scheme_Object *orig, *naya;
|
||||||
|
@ -2550,7 +2694,8 @@ static Scheme_Object *bangboxenv_jit(Scheme_Object *data)
|
||||||
static void bangboxenv_validate(Scheme_Object *data, Mz_CPort *port,
|
static void bangboxenv_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts)
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos)
|
||||||
{
|
{
|
||||||
if (!SCHEME_PAIRP(data))
|
if (!SCHEME_PAIRP(data))
|
||||||
scheme_ill_formed_code(port);
|
scheme_ill_formed_code(port);
|
||||||
|
@ -2559,7 +2704,7 @@ static void bangboxenv_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
|
|
||||||
scheme_validate_expr(port, SCHEME_CDR(data), stack, tls, depth, letlimit, delta,
|
scheme_validate_expr(port, SCHEME_CDR(data), stack, tls, depth, letlimit, delta,
|
||||||
num_toplevels, num_stxes, num_lifts,
|
num_toplevels, num_stxes, num_lifts,
|
||||||
NULL, 0);
|
NULL, 0, 0, vc, tailpos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
@ -4365,16 +4510,21 @@ static Scheme_Object *begin0_jit(Scheme_Object *data)
|
||||||
static void begin0_validate(Scheme_Object *data, Mz_CPort *port,
|
static void begin0_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts)
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos)
|
||||||
{
|
{
|
||||||
Scheme_Sequence *seq = (Scheme_Sequence *)data;
|
Scheme_Sequence *seq = (Scheme_Sequence *)data;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (!SAME_TYPE(SCHEME_TYPE(seq), scheme_begin0_sequence_type)
|
||||||
|
&& !SAME_TYPE(SCHEME_TYPE(seq), scheme_sequence_type))
|
||||||
|
scheme_ill_formed_code(port);
|
||||||
|
|
||||||
for (i = 0; i < seq->count; i++) {
|
for (i = 0; i < seq->count; i++) {
|
||||||
scheme_validate_expr(port, seq->array[i], stack, tls,
|
scheme_validate_expr(port, seq->array[i], stack, tls,
|
||||||
depth, letlimit, delta,
|
depth, letlimit, delta,
|
||||||
num_toplevels, num_stxes, num_lifts,
|
num_toplevels, num_stxes, num_lifts,
|
||||||
NULL, 0);
|
NULL, 0, i > 0, vc, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4436,6 +4586,24 @@ begin0_resolve(Scheme_Object *obj, Resolve_Info *info)
|
||||||
return scheme_make_syntax_resolved(BEGIN0_EXPD, obj);
|
return scheme_make_syntax_resolved(BEGIN0_EXPD, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *
|
||||||
|
begin0_sfs(Scheme_Object *obj, SFS_Info *info)
|
||||||
|
{
|
||||||
|
int i, cnt;
|
||||||
|
|
||||||
|
cnt = ((Scheme_Sequence *)obj)->count;
|
||||||
|
|
||||||
|
scheme_sfs_start_sequence(info, cnt, 0);
|
||||||
|
|
||||||
|
for (i = 0; i < cnt; i++) {
|
||||||
|
Scheme_Object *le;
|
||||||
|
le = scheme_sfs_expr(((Scheme_Sequence *)obj)->array[i], info, -1);
|
||||||
|
((Scheme_Sequence *)obj)->array[i] = le;
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
do_begin_syntax(char *name,
|
do_begin_syntax(char *name,
|
||||||
Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *rec, int drec,
|
Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *rec, int drec,
|
||||||
|
@ -4659,6 +4827,17 @@ splice_resolve(Scheme_Object *data, Resolve_Info *rslv)
|
||||||
scheme_resolve_expr(data, rslv));
|
scheme_resolve_expr(data, rslv));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *
|
||||||
|
splice_sfs(Scheme_Object *data, SFS_Info *info)
|
||||||
|
{
|
||||||
|
Scheme_Object *naya;
|
||||||
|
naya = scheme_sfs_expr(data, info, -1);
|
||||||
|
if (SAME_OBJ(naya, data))
|
||||||
|
return data;
|
||||||
|
else
|
||||||
|
return scheme_make_syntax_resolved(SPLICE_EXPD, data);
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
splice_shift(Scheme_Object *data, int delta, int after_depth)
|
splice_shift(Scheme_Object *data, int delta, int after_depth)
|
||||||
{
|
{
|
||||||
|
@ -4677,12 +4856,13 @@ splice_clone(int dup_ok, Scheme_Object *data, Optimize_Info *info, int delta, in
|
||||||
static void splice_validate(Scheme_Object *data, Mz_CPort *port,
|
static void splice_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts)
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos)
|
||||||
{
|
{
|
||||||
scheme_validate_expr(port, data, stack, tls,
|
scheme_validate_expr(port, data, stack, tls,
|
||||||
depth, letlimit, delta,
|
depth, letlimit, delta,
|
||||||
num_toplevels, num_stxes, num_lifts,
|
num_toplevels, num_stxes, num_lifts,
|
||||||
NULL, 0);
|
NULL, 0, 0, vc, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
@ -4965,7 +5145,8 @@ static void do_define_syntaxes_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
static void define_syntaxes_validate(Scheme_Object *data, Mz_CPort *port,
|
static void define_syntaxes_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts)
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos)
|
||||||
{
|
{
|
||||||
do_define_syntaxes_validate(data, port, stack, tls, depth, letlimit, delta,
|
do_define_syntaxes_validate(data, port, stack, tls, depth, letlimit, delta,
|
||||||
num_toplevels, num_stxes, num_lifts, 0);
|
num_toplevels, num_stxes, num_lifts, 0);
|
||||||
|
@ -4974,7 +5155,8 @@ static void define_syntaxes_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
static void define_for_syntaxes_validate(Scheme_Object *data, Mz_CPort *port,
|
static void define_for_syntaxes_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
char *stack, Validate_TLS tls,
|
char *stack, Validate_TLS tls,
|
||||||
int depth, int letlimit, int delta,
|
int depth, int letlimit, int delta,
|
||||||
int num_toplevels, int num_stxes, int num_lifts)
|
int num_toplevels, int num_stxes, int num_lifts,
|
||||||
|
struct Validate_Clearing *vc, int tailpos)
|
||||||
{
|
{
|
||||||
do_define_syntaxes_validate(data, port, stack, tls, depth, letlimit, delta,
|
do_define_syntaxes_validate(data, port, stack, tls, depth, letlimit, delta,
|
||||||
num_toplevels, num_stxes, num_lifts, 1);
|
num_toplevels, num_stxes, num_lifts, 1);
|
||||||
|
@ -5071,6 +5253,31 @@ static Scheme_Object *define_for_syntaxes_resolve(Scheme_Object *data, Resolve_I
|
||||||
return do_define_syntaxes_resolve(data, info, 1);
|
return do_define_syntaxes_resolve(data, info, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *do_define_syntaxes_sfs(Scheme_Object *data, SFS_Info *info)
|
||||||
|
{
|
||||||
|
Scheme_Object *e;
|
||||||
|
|
||||||
|
if (!info->pass) {
|
||||||
|
int depth;
|
||||||
|
depth = SCHEME_INT_VAL(SCHEME_VEC_ELS(data)[2]);
|
||||||
|
info = scheme_new_sfs_info(depth);
|
||||||
|
e = scheme_sfs(SCHEME_VEC_ELS(data)[0], info, depth);
|
||||||
|
SCHEME_VEC_ELS(data)[0] = e;
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *define_syntaxes_sfs(Scheme_Object *data, SFS_Info *info)
|
||||||
|
{
|
||||||
|
return do_define_syntaxes_sfs(data, info);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *define_for_syntaxes_sfs(Scheme_Object *data, SFS_Info *info)
|
||||||
|
{
|
||||||
|
return do_define_syntaxes_sfs(data, info);
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *stx_val(Scheme_Object *name, Scheme_Object *_env)
|
static Scheme_Object *stx_val(Scheme_Object *name, Scheme_Object *_env)
|
||||||
{
|
{
|
||||||
Scheme_Env *env = (Scheme_Env *)_env;
|
Scheme_Env *env = (Scheme_Env *)_env;
|
||||||
|
|
|
@ -34,6 +34,7 @@ static Scheme_Object *vector_length (int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *vector_to_list (int argc, Scheme_Object *argv[]);
|
static Scheme_Object *vector_to_list (int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *list_to_vector (int argc, Scheme_Object *argv[]);
|
static Scheme_Object *list_to_vector (int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *vector_fill (int argc, Scheme_Object *argv[]);
|
static Scheme_Object *vector_fill (int argc, Scheme_Object *argv[]);
|
||||||
|
static Scheme_Object *vector_copy_bang(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *vector_to_immutable (int argc, Scheme_Object *argv[]);
|
static Scheme_Object *vector_to_immutable (int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *vector_to_values (int argc, Scheme_Object *argv[]);
|
static Scheme_Object *vector_to_values (int argc, Scheme_Object *argv[]);
|
||||||
|
|
||||||
|
@ -55,17 +56,17 @@ scheme_init_vector (Scheme_Env *env)
|
||||||
scheme_add_global_constant("vector?", p, env);
|
scheme_add_global_constant("vector?", p, env);
|
||||||
|
|
||||||
scheme_add_global_constant("make-vector",
|
scheme_add_global_constant("make-vector",
|
||||||
scheme_make_noncm_prim(make_vector,
|
scheme_make_immed_prim(make_vector,
|
||||||
"make-vector",
|
"make-vector",
|
||||||
1, 2),
|
1, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("vector",
|
scheme_add_global_constant("vector",
|
||||||
scheme_make_noncm_prim(vector,
|
scheme_make_immed_prim(vector,
|
||||||
"vector",
|
"vector",
|
||||||
0, -1),
|
0, -1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("vector-immutable",
|
scheme_add_global_constant("vector-immutable",
|
||||||
scheme_make_noncm_prim(vector_immutable,
|
scheme_make_immed_prim(vector_immutable,
|
||||||
"vector-immutable",
|
"vector-immutable",
|
||||||
0, -1),
|
0, -1),
|
||||||
env);
|
env);
|
||||||
|
@ -75,35 +76,40 @@ scheme_init_vector (Scheme_Env *env)
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
env);
|
env);
|
||||||
|
|
||||||
p = scheme_make_noncm_prim(scheme_checked_vector_ref,
|
p = scheme_make_immed_prim(scheme_checked_vector_ref,
|
||||||
"vector-ref",
|
"vector-ref",
|
||||||
2, 2);
|
2, 2);
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED;
|
||||||
scheme_add_global_constant("vector-ref", p, env);
|
scheme_add_global_constant("vector-ref", p, env);
|
||||||
|
|
||||||
p = scheme_make_noncm_prim(scheme_checked_vector_set,
|
p = scheme_make_immed_prim(scheme_checked_vector_set,
|
||||||
"vector-set!",
|
"vector-set!",
|
||||||
3, 3);
|
3, 3);
|
||||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_MIN_NARY_INLINED;
|
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_MIN_NARY_INLINED;
|
||||||
scheme_add_global_constant("vector-set!", p, env);
|
scheme_add_global_constant("vector-set!", p, env);
|
||||||
|
|
||||||
scheme_add_global_constant("vector->list",
|
scheme_add_global_constant("vector->list",
|
||||||
scheme_make_noncm_prim(vector_to_list,
|
scheme_make_immed_prim(vector_to_list,
|
||||||
"vector->list",
|
"vector->list",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("list->vector",
|
scheme_add_global_constant("list->vector",
|
||||||
scheme_make_noncm_prim(list_to_vector,
|
scheme_make_immed_prim(list_to_vector,
|
||||||
"list->vector",
|
"list->vector",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("vector-fill!",
|
scheme_add_global_constant("vector-fill!",
|
||||||
scheme_make_noncm_prim(vector_fill,
|
scheme_make_immed_prim(vector_fill,
|
||||||
"vector-fill!",
|
"vector-fill!",
|
||||||
2, 2),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
|
scheme_add_global_constant("vector-copy!",
|
||||||
|
scheme_make_immed_prim(vector_copy_bang,
|
||||||
|
"vector-copy!",
|
||||||
|
3, 5),
|
||||||
|
env);
|
||||||
scheme_add_global_constant("vector->immutable-vector",
|
scheme_add_global_constant("vector->immutable-vector",
|
||||||
scheme_make_noncm_prim(vector_to_immutable,
|
scheme_make_immed_prim(vector_to_immutable,
|
||||||
"vector->immutable-vector",
|
"vector->immutable-vector",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
@ -356,6 +362,42 @@ vector_fill (int argc, Scheme_Object *argv[])
|
||||||
return argv[0];
|
return argv[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *vector_copy_bang(int argc, Scheme_Object *argv[])
|
||||||
|
{
|
||||||
|
Scheme_Object *s1, *s2;
|
||||||
|
long istart, ifinish;
|
||||||
|
long ostart, ofinish;
|
||||||
|
|
||||||
|
s1 = argv[0];
|
||||||
|
if (!SCHEME_MUTABLE_VECTORP(s1))
|
||||||
|
scheme_wrong_type("vector-copy!", "mutable vector", 0, argc, argv);
|
||||||
|
|
||||||
|
scheme_do_get_substring_indices("vector-copy!", s1,
|
||||||
|
argc, argv, 1, 5,
|
||||||
|
&ostart, &ofinish, SCHEME_VEC_SIZE(s1));
|
||||||
|
|
||||||
|
s2 = argv[2];
|
||||||
|
if (!SCHEME_VECTORP(s2))
|
||||||
|
scheme_wrong_type("vector-copy!", "vector", 2, argc, argv);
|
||||||
|
|
||||||
|
scheme_do_get_substring_indices("vector-copy!", s2,
|
||||||
|
argc, argv, 3, 4,
|
||||||
|
&istart, &ifinish, SCHEME_VEC_SIZE(s2));
|
||||||
|
|
||||||
|
if ((ofinish - ostart) < (ifinish - istart)) {
|
||||||
|
scheme_arg_mismatch("vector-copy!",
|
||||||
|
"not enough room in target vector: ",
|
||||||
|
argv[2]);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
memmove(SCHEME_VEC_ELS(s1) + ostart,
|
||||||
|
SCHEME_VEC_ELS(s2) + istart,
|
||||||
|
(ifinish - istart) * sizeof(Scheme_Object*));
|
||||||
|
|
||||||
|
return scheme_void;
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *vector_to_immutable (int argc, Scheme_Object *argv[])
|
static Scheme_Object *vector_to_immutable (int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
Scheme_Object *vec, *ovec;
|
Scheme_Object *vec, *ovec;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user