diff --git a/src/mzscheme/src/cstartup.inc b/src/mzscheme/src/cstartup.inc index 2e1ecdac6b..106a7fda17 100644 --- a/src/mzscheme/src/cstartup.inc +++ b/src/mzscheme/src/cstartup.inc @@ -14,13 +14,13 @@ 115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,97,109, 98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110, 45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,98, -10,35,11,8,148,228,94,159,2,15,35,35,159,2,14,35,35,16,20,2,3, +10,35,11,8,165,228,94,159,2,15,35,35,159,2,14,35,35,16,20,2,3, 2,1,2,5,2,1,2,6,2,1,2,7,2,1,2,8,2,1,2,9,2, 1,2,10,2,1,2,4,2,1,2,11,2,1,2,12,2,1,97,36,11,8, -148,228,93,159,2,14,35,36,16,2,2,2,161,2,1,36,2,2,2,1,2, -2,97,10,11,11,8,148,228,16,0,97,10,37,11,8,148,228,16,0,13,16, +165,228,93,159,2,14,35,36,16,2,2,2,161,2,1,36,2,2,2,1,2, +2,97,10,11,11,8,165,228,16,0,97,10,37,11,8,165,228,16,0,13,16, 4,35,29,11,11,2,1,11,18,16,2,99,64,104,101,114,101,8,31,8,30, -8,29,8,28,8,27,93,8,224,27,57,0,0,95,9,8,224,27,57,0,0, +8,29,8,28,8,27,93,8,224,44,57,0,0,95,9,8,224,44,57,0,0, 2,1,27,248,22,135,4,23,196,1,249,22,128,4,80,158,38,35,251,22,75, 2,16,248,22,90,23,200,2,12,249,22,65,2,17,248,22,92,23,202,1,27, 248,22,135,4,23,196,1,249,22,128,4,80,158,38,35,251,22,75,2,16,248, @@ -29,16 +29,16 @@ 248,22,73,248,22,67,23,195,2,248,22,66,193,249,22,128,4,80,158,38,35, 251,22,75,2,16,248,22,66,23,200,2,249,22,65,2,12,248,22,67,23,202, 1,11,18,16,2,101,10,8,31,8,30,8,29,8,28,8,27,16,4,11,11, -2,18,3,1,7,101,110,118,57,56,48,52,16,4,11,11,2,19,3,1,7, -101,110,118,57,56,48,53,93,8,224,28,57,0,0,95,9,8,224,28,57,0, +2,18,3,1,7,101,110,118,57,56,50,51,16,4,11,11,2,19,3,1,7, +101,110,118,57,56,50,52,93,8,224,45,57,0,0,95,9,8,224,45,57,0, 0,2,1,27,248,22,67,248,22,135,4,23,197,1,28,248,22,73,23,194,2, 20,15,159,36,35,36,28,248,22,73,248,22,67,23,195,2,248,22,66,193,249, 22,128,4,80,158,38,35,250,22,75,2,20,248,22,75,249,22,75,248,22,75, 2,21,248,22,66,23,202,2,251,22,75,2,16,2,21,2,21,249,22,65,2, 4,248,22,67,23,205,1,18,16,2,101,11,8,31,8,30,8,29,8,28,8, -27,16,4,11,11,2,18,3,1,7,101,110,118,57,56,48,55,16,4,11,11, -2,19,3,1,7,101,110,118,57,56,48,56,93,8,224,29,57,0,0,95,9, -8,224,29,57,0,0,2,1,248,22,135,4,193,27,248,22,135,4,194,249,22, +27,16,4,11,11,2,18,3,1,7,101,110,118,57,56,50,54,16,4,11,11, +2,19,3,1,7,101,110,118,57,56,50,55,93,8,224,46,57,0,0,95,9, +8,224,46,57,0,0,2,1,248,22,135,4,193,27,248,22,135,4,194,249,22, 65,248,22,75,248,22,66,196,248,22,67,195,27,248,22,67,248,22,135,4,23, 197,1,249,22,128,4,80,158,38,35,28,248,22,53,248,22,129,4,248,22,66, 23,198,2,27,249,22,2,32,0,89,162,8,44,36,42,9,222,33,39,248,22, @@ -68,9 +68,9 @@ 249,22,164,8,248,22,129,4,248,22,66,23,201,2,64,101,108,115,101,10,248, 22,66,23,198,2,250,22,76,2,20,9,248,22,67,23,201,1,249,22,65,2, 3,248,22,67,23,203,1,100,8,31,8,30,8,29,8,28,8,27,16,4,11, -11,2,18,3,1,7,101,110,118,57,56,51,48,16,4,11,11,2,19,3,1, -7,101,110,118,57,56,51,49,93,8,224,30,57,0,0,18,16,2,158,94,10, -64,118,111,105,100,8,47,95,9,8,224,30,57,0,0,2,1,27,248,22,67, +11,2,18,3,1,7,101,110,118,57,56,52,57,16,4,11,11,2,19,3,1, +7,101,110,118,57,56,53,48,93,8,224,47,57,0,0,18,16,2,158,94,10, +64,118,111,105,100,8,47,95,9,8,224,47,57,0,0,2,1,27,248,22,67, 248,22,135,4,196,249,22,128,4,80,158,38,35,28,248,22,53,248,22,129,4, 248,22,66,197,250,22,75,2,26,248,22,75,248,22,66,199,248,22,90,198,27, 248,22,129,4,248,22,66,197,250,22,75,2,26,248,22,75,248,22,66,197,250, @@ -104,9 +104,9 @@ 35,0,50,0,68,0,84,0,94,0,112,0,132,0,148,0,166,0,197,0,226, 0,248,0,6,1,12,1,26,1,31,1,41,1,49,1,77,1,109,1,154,1, 199,1,223,1,6,2,8,2,65,2,155,3,196,3,31,5,135,5,239,5,100, -6,114,6,148,6,164,6,14,8,28,8,191,8,192,9,192,10,199,10,206,10, -213,10,88,11,101,11,56,12,158,12,171,12,193,12,145,13,49,14,121,15,129, -15,137,15,163,15,18,16,0,0,6,19,0,0,72,112,97,116,104,45,115,116, +6,114,6,148,6,164,6,14,8,28,8,191,8,194,9,194,10,201,10,208,10, +215,10,90,11,103,11,58,12,160,12,173,12,195,12,147,13,51,14,123,15,131, +15,139,15,165,15,20,16,0,0,8,19,0,0,72,112,97,116,104,45,115,116, 114,105,110,103,63,64,98,115,98,115,76,110,111,114,109,97,108,45,99,97,115, 101,45,112,97,116,104,74,45,99,104,101,99,107,45,114,101,108,112,97,116,104, 77,45,99,104,101,99,107,45,99,111,108,108,101,99,116,105,111,110,75,99,111, @@ -221,125 +221,125 @@ 22,147,7,23,197,2,12,252,22,132,9,2,9,2,25,36,23,200,2,23,201, 2,91,159,38,11,90,161,38,35,11,248,22,162,13,23,199,2,87,94,23,195, 1,87,94,28,192,12,250,22,133,9,2,9,2,26,23,201,2,249,22,7,194, -195,27,249,22,151,13,250,22,134,14,0,18,35,114,120,35,34,40,91,46,93, -91,94,46,93,42,124,41,36,34,248,22,147,13,23,201,1,28,248,22,159,6, -23,203,2,249,22,171,7,23,204,1,8,63,23,202,1,28,248,22,142,13,23, -199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,22,144,13,28,248,22, -141,13,194,249,22,159,13,195,194,192,91,159,37,11,90,161,37,35,11,87,95, -28,28,248,22,142,13,23,196,2,10,27,248,22,141,13,23,197,2,28,23,193, -2,192,87,94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,13,23, -198,2,28,23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,11,12, -252,22,132,9,2,10,2,24,35,23,200,2,23,201,2,28,28,248,22,159,6, -23,197,2,10,248,22,147,7,23,197,2,12,252,22,132,9,2,10,2,25,36, -23,200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,162,13,23,199, -2,87,94,23,195,1,87,94,28,192,12,250,22,133,9,2,10,2,26,23,201, -2,249,22,7,194,195,27,249,22,151,13,249,22,157,7,250,22,135,14,0,9, -35,114,120,35,34,91,46,93,34,248,22,147,13,23,203,1,6,1,1,95,28, -248,22,159,6,23,202,2,249,22,171,7,23,203,1,8,63,23,201,1,28,248, -22,142,13,23,199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,22,144, -13,28,248,22,141,13,194,249,22,159,13,195,194,192,249,247,22,190,4,194,11, -249,80,158,37,46,9,9,249,80,158,37,46,195,9,27,247,22,184,13,249,80, -158,38,47,28,23,195,2,27,248,22,176,7,6,11,11,80,76,84,67,79,76, -76,69,67,84,83,28,192,192,6,0,0,6,0,0,27,28,23,196,1,250,22, -159,13,248,22,180,13,69,97,100,100,111,110,45,100,105,114,247,22,174,7,6, -8,8,99,111,108,108,101,99,116,115,11,27,248,80,159,41,52,36,250,22,79, -23,203,1,248,22,75,248,22,180,13,72,99,111,108,108,101,99,116,115,45,100, -105,114,23,204,1,28,23,194,2,249,22,65,23,196,1,23,195,1,192,32,47, -89,162,8,44,38,54,2,18,222,33,48,27,249,22,191,13,23,197,2,23,198, -2,28,23,193,2,87,94,23,196,1,27,248,22,90,23,195,2,27,27,248,22, -99,23,197,1,27,249,22,191,13,23,201,2,23,196,2,28,23,193,2,87,94, -23,194,1,27,248,22,90,23,195,2,27,250,2,47,23,203,2,23,204,1,248, -22,99,23,199,1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,202,2, -194,249,22,65,248,22,150,13,23,197,1,23,195,1,87,95,23,199,1,23,193, -1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,200,2,9,249,22,65, -248,22,150,13,23,197,1,9,28,249,22,153,7,23,196,2,2,27,249,22,79, -197,194,87,94,23,196,1,249,22,65,248,22,150,13,23,197,1,194,87,94,23, -193,1,28,249,22,153,7,23,198,2,2,27,249,22,79,195,9,87,94,23,194, -1,249,22,65,248,22,150,13,23,199,1,9,87,95,28,28,248,22,147,7,194, -10,248,22,159,6,194,12,250,22,132,9,2,13,6,21,21,98,121,116,101,32, -115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,196,28,28,248,22, -74,195,249,22,4,22,141,13,196,11,12,250,22,132,9,2,13,6,13,13,108, -105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,47,197,195,28,248,22, -159,6,197,248,22,170,7,197,196,32,50,89,162,8,44,39,57,2,18,222,33, -53,32,51,89,162,8,44,38,54,70,102,111,117,110,100,45,101,120,101,99,222, -33,52,28,23,193,2,91,159,38,11,90,161,38,35,11,248,22,162,13,23,199, -2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22,167,13,23,201, -2,28,249,22,166,8,23,195,2,23,202,2,11,28,248,22,163,13,23,194,2, -250,2,51,23,201,2,23,202,2,249,22,159,13,23,200,2,23,198,1,250,2, -51,23,201,2,23,202,2,23,196,1,11,28,23,193,2,192,87,94,23,193,1, -27,28,248,22,141,13,23,196,2,27,249,22,159,13,23,198,2,23,201,2,28, -28,248,22,154,13,193,10,248,22,153,13,193,192,11,11,28,23,193,2,192,87, -94,23,193,1,28,23,199,2,11,27,248,22,167,13,23,202,2,28,249,22,166, -8,23,195,2,23,203,1,11,28,248,22,163,13,23,194,2,250,2,51,23,202, -1,23,203,1,249,22,159,13,23,201,1,23,198,1,250,2,51,201,202,195,194, -28,248,22,73,23,197,2,11,27,248,22,166,13,248,22,66,23,199,2,27,249, -22,159,13,23,196,1,23,197,2,28,248,22,153,13,23,194,2,250,2,51,198, -199,195,87,94,23,193,1,27,248,22,67,23,200,1,28,248,22,73,23,194,2, -11,27,248,22,166,13,248,22,66,23,196,2,27,249,22,159,13,23,196,1,23, -200,2,28,248,22,153,13,23,194,2,250,2,51,201,202,195,87,94,23,193,1, -27,248,22,67,23,197,1,28,248,22,73,23,194,2,11,27,248,22,166,13,248, -22,66,195,27,249,22,159,13,23,196,1,202,28,248,22,153,13,193,250,2,51, -204,205,195,251,2,50,204,205,206,248,22,67,199,87,95,28,27,248,22,141,13, -23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,159,6,23,196,2, -27,248,22,163,13,23,197,2,28,23,193,2,192,87,94,23,193,1,248,22,164, -13,23,197,2,11,12,250,22,132,9,2,14,6,25,25,112,97,116,104,32,111, -114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,108,41,23,197, -2,28,28,23,195,2,28,27,248,22,141,13,23,197,2,28,23,193,2,192,87, -94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,13,23,198,2,28, -23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,11,248,22,163,13, -23,196,2,11,10,12,250,22,132,9,2,14,6,29,29,35,102,32,111,114,32, -114,101,108,97,116,105,118,101,32,112,97,116,104,32,111,114,32,115,116,114,105, -110,103,23,198,2,28,28,248,22,163,13,23,195,2,91,159,38,11,90,161,38, -35,11,248,22,162,13,23,198,2,249,22,164,8,194,68,114,101,108,97,116,105, -118,101,11,27,248,22,176,7,6,4,4,80,65,84,72,251,2,50,23,199,1, -23,200,1,23,201,1,28,23,197,2,27,249,80,159,43,47,37,23,200,1,9, -28,249,22,164,8,247,22,178,7,2,20,249,22,65,248,22,150,13,5,1,46, -23,195,1,192,9,27,248,22,166,13,23,196,1,28,248,22,153,13,193,250,2, -51,198,199,195,11,250,80,158,38,48,196,197,11,250,80,158,38,48,196,11,11, -87,94,249,22,150,6,247,22,186,4,195,248,22,176,5,249,22,172,3,35,249, -22,156,3,197,198,27,28,23,197,2,87,95,23,196,1,23,195,1,23,197,1, -87,94,23,197,1,27,248,22,180,13,2,19,27,249,80,159,40,48,37,23,196, -1,11,27,27,248,22,175,3,23,200,1,28,192,192,35,27,27,248,22,175,3, -23,202,1,28,192,192,35,249,22,153,5,23,197,1,83,158,39,20,97,95,89, -162,8,44,35,47,9,224,3,2,33,57,23,195,1,23,196,1,27,248,22,138, -5,23,195,1,248,80,159,38,53,36,193,159,35,20,103,159,35,16,1,11,16, -0,83,158,41,20,100,143,67,35,37,117,116,105,108,115,29,11,11,11,11,10, -10,42,80,158,35,35,20,103,159,37,16,17,2,1,2,2,2,3,2,4,2, -5,2,6,2,7,2,8,2,9,2,10,2,11,2,12,2,13,2,14,2,15, -30,2,17,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110, -45,107,101,121,4,30,2,17,1,23,101,120,116,101,110,100,45,112,97,114,97, -109,101,116,101,114,105,122,97,116,105,111,110,3,16,0,11,11,16,0,35,16, -0,35,16,4,2,5,2,4,2,2,2,8,39,11,11,38,35,11,11,16,11, -2,7,2,6,2,15,2,14,2,12,2,11,2,3,2,10,2,13,2,9,2, -1,16,11,11,11,11,11,11,11,11,11,11,11,11,16,11,2,7,2,6,2, -15,2,14,2,12,2,11,2,3,2,10,2,13,2,9,2,1,46,46,36,11, -11,16,0,16,0,16,0,35,35,11,11,11,16,0,16,0,16,0,35,35,16, -0,16,17,83,158,35,16,2,89,162,43,36,48,2,18,223,0,33,28,80,159, -35,53,36,83,158,35,16,2,89,162,8,44,36,55,2,18,223,0,33,29,80, -159,35,52,36,83,158,35,16,2,32,0,89,162,43,36,44,2,1,222,33,30, -80,159,35,35,36,83,158,35,16,2,249,22,161,6,7,92,7,92,80,159,35, -36,36,83,158,35,16,2,89,162,43,36,53,2,3,223,0,33,31,80,159,35, -37,36,83,158,35,16,2,32,0,89,162,8,44,37,49,2,4,222,33,32,80, -159,35,38,36,83,158,35,16,2,32,0,89,162,8,44,38,50,2,5,222,33, -34,80,159,35,39,36,83,158,35,16,2,89,162,8,45,37,47,2,6,223,0, -33,36,80,159,35,40,36,83,158,35,16,2,32,0,89,162,43,39,51,2,7, -222,33,39,80,159,35,41,36,83,158,35,16,2,32,0,89,162,43,38,49,2, -8,222,33,40,80,159,35,42,36,83,158,35,16,2,32,0,89,162,43,37,52, -2,9,222,33,41,80,159,35,43,36,83,158,35,16,2,32,0,89,162,43,37, -53,2,10,222,33,42,80,159,35,44,36,83,158,35,16,2,32,0,89,162,43, -36,43,2,11,222,33,43,80,159,35,45,36,83,158,35,16,2,83,158,38,20, -96,96,2,12,89,162,43,35,43,9,223,0,33,44,89,162,43,36,44,9,223, -0,33,45,89,162,43,37,54,9,223,0,33,46,80,159,35,46,36,83,158,35, -16,2,27,248,22,187,13,248,22,170,7,27,28,249,22,164,8,247,22,178,7, -2,20,6,1,1,59,6,1,1,58,250,22,143,7,6,14,14,40,91,94,126, -97,93,42,41,126,97,40,46,42,41,23,196,2,23,196,1,89,162,8,44,37, -47,2,13,223,0,33,49,80,159,35,47,36,83,158,35,16,2,83,158,38,20, -96,96,2,14,89,162,8,44,38,53,9,223,0,33,54,89,162,43,37,46,9, -223,0,33,55,89,162,43,36,45,9,223,0,33,56,80,159,35,48,36,83,158, -35,16,2,89,162,43,38,51,2,15,223,0,33,58,80,159,35,49,36,94,29, -94,2,16,68,35,37,107,101,114,110,101,108,11,29,94,2,16,69,35,37,109, -105,110,45,115,116,120,11,9,9,9,35,0}; - EVAL_ONE_SIZED_STR((char *)expr, 5009); +195,27,249,22,151,13,250,22,134,14,0,20,35,114,120,35,34,40,63,58,91, +46,93,91,94,46,93,42,124,41,36,34,248,22,147,13,23,201,1,28,248,22, +159,6,23,203,2,249,22,171,7,23,204,1,8,63,23,202,1,28,248,22,142, +13,23,199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,22,144,13,28, +248,22,141,13,194,249,22,159,13,195,194,192,91,159,37,11,90,161,37,35,11, +87,95,28,28,248,22,142,13,23,196,2,10,27,248,22,141,13,23,197,2,28, +23,193,2,192,87,94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163, +13,23,198,2,28,23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2, +11,12,252,22,132,9,2,10,2,24,35,23,200,2,23,201,2,28,28,248,22, +159,6,23,197,2,10,248,22,147,7,23,197,2,12,252,22,132,9,2,10,2, +25,36,23,200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,162,13, +23,199,2,87,94,23,195,1,87,94,28,192,12,250,22,133,9,2,10,2,26, +23,201,2,249,22,7,194,195,27,249,22,151,13,249,22,157,7,250,22,135,14, +0,9,35,114,120,35,34,91,46,93,34,248,22,147,13,23,203,1,6,1,1, +95,28,248,22,159,6,23,202,2,249,22,171,7,23,203,1,8,63,23,201,1, +28,248,22,142,13,23,199,2,248,22,143,13,23,199,1,87,94,23,198,1,247, +22,144,13,28,248,22,141,13,194,249,22,159,13,195,194,192,249,247,22,190,4, +194,11,249,80,158,37,46,9,9,249,80,158,37,46,195,9,27,247,22,184,13, +249,80,158,38,47,28,23,195,2,27,248,22,176,7,6,11,11,80,76,84,67, +79,76,76,69,67,84,83,28,192,192,6,0,0,6,0,0,27,28,23,196,1, +250,22,159,13,248,22,180,13,69,97,100,100,111,110,45,100,105,114,247,22,174, +7,6,8,8,99,111,108,108,101,99,116,115,11,27,248,80,159,41,52,36,250, +22,79,23,203,1,248,22,75,248,22,180,13,72,99,111,108,108,101,99,116,115, +45,100,105,114,23,204,1,28,23,194,2,249,22,65,23,196,1,23,195,1,192, +32,47,89,162,8,44,38,54,2,18,222,33,48,27,249,22,191,13,23,197,2, +23,198,2,28,23,193,2,87,94,23,196,1,27,248,22,90,23,195,2,27,27, +248,22,99,23,197,1,27,249,22,191,13,23,201,2,23,196,2,28,23,193,2, +87,94,23,194,1,27,248,22,90,23,195,2,27,250,2,47,23,203,2,23,204, +1,248,22,99,23,199,1,28,249,22,153,7,23,196,2,2,27,249,22,79,23, +202,2,194,249,22,65,248,22,150,13,23,197,1,23,195,1,87,95,23,199,1, +23,193,1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,200,2,9,249, +22,65,248,22,150,13,23,197,1,9,28,249,22,153,7,23,196,2,2,27,249, +22,79,197,194,87,94,23,196,1,249,22,65,248,22,150,13,23,197,1,194,87, +94,23,193,1,28,249,22,153,7,23,198,2,2,27,249,22,79,195,9,87,94, +23,194,1,249,22,65,248,22,150,13,23,199,1,9,87,95,28,28,248,22,147, +7,194,10,248,22,159,6,194,12,250,22,132,9,2,13,6,21,21,98,121,116, +101,32,115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,196,28,28, +248,22,74,195,249,22,4,22,141,13,196,11,12,250,22,132,9,2,13,6,13, +13,108,105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,47,197,195,28, +248,22,159,6,197,248,22,170,7,197,196,32,50,89,162,8,44,39,57,2,18, +222,33,53,32,51,89,162,8,44,38,54,70,102,111,117,110,100,45,101,120,101, +99,222,33,52,28,23,193,2,91,159,38,11,90,161,38,35,11,248,22,162,13, +23,199,2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22,167,13, +23,201,2,28,249,22,166,8,23,195,2,23,202,2,11,28,248,22,163,13,23, +194,2,250,2,51,23,201,2,23,202,2,249,22,159,13,23,200,2,23,198,1, +250,2,51,23,201,2,23,202,2,23,196,1,11,28,23,193,2,192,87,94,23, +193,1,27,28,248,22,141,13,23,196,2,27,249,22,159,13,23,198,2,23,201, +2,28,28,248,22,154,13,193,10,248,22,153,13,193,192,11,11,28,23,193,2, +192,87,94,23,193,1,28,23,199,2,11,27,248,22,167,13,23,202,2,28,249, +22,166,8,23,195,2,23,203,1,11,28,248,22,163,13,23,194,2,250,2,51, +23,202,1,23,203,1,249,22,159,13,23,201,1,23,198,1,250,2,51,201,202, +195,194,28,248,22,73,23,197,2,11,27,248,22,166,13,248,22,66,23,199,2, +27,249,22,159,13,23,196,1,23,197,2,28,248,22,153,13,23,194,2,250,2, +51,198,199,195,87,94,23,193,1,27,248,22,67,23,200,1,28,248,22,73,23, +194,2,11,27,248,22,166,13,248,22,66,23,196,2,27,249,22,159,13,23,196, +1,23,200,2,28,248,22,153,13,23,194,2,250,2,51,201,202,195,87,94,23, +193,1,27,248,22,67,23,197,1,28,248,22,73,23,194,2,11,27,248,22,166, +13,248,22,66,195,27,249,22,159,13,23,196,1,202,28,248,22,153,13,193,250, +2,51,204,205,195,251,2,50,204,205,206,248,22,67,199,87,95,28,27,248,22, +141,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,159,6,23, +196,2,27,248,22,163,13,23,197,2,28,23,193,2,192,87,94,23,193,1,248, +22,164,13,23,197,2,11,12,250,22,132,9,2,14,6,25,25,112,97,116,104, +32,111,114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,108,41, +23,197,2,28,28,23,195,2,28,27,248,22,141,13,23,197,2,28,23,193,2, +192,87,94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,13,23,198, +2,28,23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,11,248,22, +163,13,23,196,2,11,10,12,250,22,132,9,2,14,6,29,29,35,102,32,111, +114,32,114,101,108,97,116,105,118,101,32,112,97,116,104,32,111,114,32,115,116, +114,105,110,103,23,198,2,28,28,248,22,163,13,23,195,2,91,159,38,11,90, +161,38,35,11,248,22,162,13,23,198,2,249,22,164,8,194,68,114,101,108,97, +116,105,118,101,11,27,248,22,176,7,6,4,4,80,65,84,72,251,2,50,23, +199,1,23,200,1,23,201,1,28,23,197,2,27,249,80,159,43,47,37,23,200, +1,9,28,249,22,164,8,247,22,178,7,2,20,249,22,65,248,22,150,13,5, +1,46,23,195,1,192,9,27,248,22,166,13,23,196,1,28,248,22,153,13,193, +250,2,51,198,199,195,11,250,80,158,38,48,196,197,11,250,80,158,38,48,196, +11,11,87,94,249,22,150,6,247,22,186,4,195,248,22,176,5,249,22,172,3, +35,249,22,156,3,197,198,27,28,23,197,2,87,95,23,196,1,23,195,1,23, +197,1,87,94,23,197,1,27,248,22,180,13,2,19,27,249,80,159,40,48,37, +23,196,1,11,27,27,248,22,175,3,23,200,1,28,192,192,35,27,27,248,22, +175,3,23,202,1,28,192,192,35,249,22,153,5,23,197,1,83,158,39,20,97, +95,89,162,8,44,35,47,9,224,3,2,33,57,23,195,1,23,196,1,27,248, +22,138,5,23,195,1,248,80,159,38,53,36,193,159,35,20,103,159,35,16,1, +11,16,0,83,158,41,20,100,143,67,35,37,117,116,105,108,115,29,11,11,11, +11,10,10,42,80,158,35,35,20,103,159,37,16,17,2,1,2,2,2,3,2, +4,2,5,2,6,2,7,2,8,2,9,2,10,2,11,2,12,2,13,2,14, +2,15,30,2,17,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105, +111,110,45,107,101,121,4,30,2,17,1,23,101,120,116,101,110,100,45,112,97, +114,97,109,101,116,101,114,105,122,97,116,105,111,110,3,16,0,11,11,16,0, +35,16,0,35,16,4,2,5,2,4,2,2,2,8,39,11,11,38,35,11,11, +16,11,2,7,2,6,2,15,2,14,2,12,2,11,2,3,2,10,2,13,2, +9,2,1,16,11,11,11,11,11,11,11,11,11,11,11,11,16,11,2,7,2, +6,2,15,2,14,2,12,2,11,2,3,2,10,2,13,2,9,2,1,46,46, +36,11,11,16,0,16,0,16,0,35,35,11,11,11,16,0,16,0,16,0,35, +35,16,0,16,17,83,158,35,16,2,89,162,43,36,48,2,18,223,0,33,28, +80,159,35,53,36,83,158,35,16,2,89,162,8,44,36,55,2,18,223,0,33, +29,80,159,35,52,36,83,158,35,16,2,32,0,89,162,43,36,44,2,1,222, +33,30,80,159,35,35,36,83,158,35,16,2,249,22,161,6,7,92,7,92,80, +159,35,36,36,83,158,35,16,2,89,162,43,36,53,2,3,223,0,33,31,80, +159,35,37,36,83,158,35,16,2,32,0,89,162,8,44,37,49,2,4,222,33, +32,80,159,35,38,36,83,158,35,16,2,32,0,89,162,8,44,38,50,2,5, +222,33,34,80,159,35,39,36,83,158,35,16,2,89,162,8,45,37,47,2,6, +223,0,33,36,80,159,35,40,36,83,158,35,16,2,32,0,89,162,43,39,51, +2,7,222,33,39,80,159,35,41,36,83,158,35,16,2,32,0,89,162,43,38, +49,2,8,222,33,40,80,159,35,42,36,83,158,35,16,2,32,0,89,162,43, +37,52,2,9,222,33,41,80,159,35,43,36,83,158,35,16,2,32,0,89,162, +43,37,53,2,10,222,33,42,80,159,35,44,36,83,158,35,16,2,32,0,89, +162,43,36,43,2,11,222,33,43,80,159,35,45,36,83,158,35,16,2,83,158, +38,20,96,96,2,12,89,162,43,35,43,9,223,0,33,44,89,162,43,36,44, +9,223,0,33,45,89,162,43,37,54,9,223,0,33,46,80,159,35,46,36,83, +158,35,16,2,27,248,22,187,13,248,22,170,7,27,28,249,22,164,8,247,22, +178,7,2,20,6,1,1,59,6,1,1,58,250,22,143,7,6,14,14,40,91, +94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,23,196,1,89,162,8, +44,37,47,2,13,223,0,33,49,80,159,35,47,36,83,158,35,16,2,83,158, +38,20,96,96,2,14,89,162,8,44,38,53,9,223,0,33,54,89,162,43,37, +46,9,223,0,33,55,89,162,43,36,45,9,223,0,33,56,80,159,35,48,36, +83,158,35,16,2,89,162,43,38,51,2,15,223,0,33,58,80,159,35,49,36, +94,29,94,2,16,68,35,37,107,101,114,110,101,108,11,29,94,2,16,69,35, +37,109,105,110,45,115,116,120,11,9,9,9,35,0}; + EVAL_ONE_SIZED_STR((char *)expr, 5011); } { static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,53,46,51,8,0,0,0,1,0,0,6,0,19,0, @@ -347,7 +347,7 @@ 101,29,94,2,1,67,35,37,117,116,105,108,115,11,29,94,2,1,69,35,37, 110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,109,122, 11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35, -37,107,101,114,110,101,108,11,98,10,35,11,8,154,230,97,159,2,2,35,35, +37,107,101,114,110,101,108,11,98,10,35,11,8,171,230,97,159,2,2,35,35, 159,2,3,35,35,159,2,4,35,35,159,2,5,35,35,159,2,6,35,35,16, 0,159,35,20,103,159,35,16,1,11,16,0,83,158,41,20,100,143,69,35,37, 98,117,105,108,116,105,110,29,11,11,11,10,10,18,96,11,42,42,42,35,80, @@ -365,7 +365,7 @@ 0,0,1,5,1,10,1,15,1,24,1,29,1,60,1,64,1,72,1,81,1, 89,1,192,1,237,1,1,2,30,2,61,2,117,2,127,2,174,2,184,2,191, 2,78,4,91,4,110,4,229,4,241,4,137,5,151,5,17,6,23,6,37,6, -64,6,149,6,151,6,217,6,162,12,221,12,255,12,0,0,134,15,0,0,70, +64,6,149,6,151,6,217,6,172,12,231,12,9,13,0,0,144,15,0,0,70, 100,108,108,45,115,117,102,102,105,120,1,25,100,101,102,97,117,108,116,45,108, 111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,65,113,117,111,116, 101,29,94,2,3,67,35,37,117,116,105,108,115,11,29,94,2,3,68,35,37, @@ -515,46 +515,46 @@ 2,3,33,46,23,195,1,23,196,1,248,28,248,22,17,80,159,50,45,37,32, 0,89,162,43,36,41,9,222,33,47,80,159,49,57,36,89,162,43,35,50,9, 227,14,9,8,4,3,33,48,250,22,137,2,23,197,1,197,10,12,28,28,248, -22,181,7,23,202,1,11,27,248,22,159,6,23,208,2,28,192,192,28,248,22, -63,23,208,2,249,22,164,8,248,22,66,23,210,2,2,21,11,250,22,137,2, -80,159,50,43,37,28,248,22,159,6,23,210,2,249,22,65,23,211,1,248,80, -159,53,55,36,23,213,1,87,94,23,210,1,249,22,65,23,211,1,247,22,182, -13,252,22,183,7,23,208,1,23,207,1,23,205,1,23,203,1,201,12,193,91, -159,37,10,90,161,36,35,10,11,90,161,36,36,10,83,158,38,20,96,96,2, -20,89,162,8,44,36,50,9,224,2,0,33,42,89,162,43,38,48,9,223,1, -33,43,89,162,43,39,8,30,9,225,2,3,0,33,49,208,87,95,248,22,152, -4,248,80,159,37,49,37,247,22,188,11,248,22,190,4,80,159,36,36,37,248, -22,179,12,80,159,36,41,36,159,35,20,103,159,35,16,1,11,16,0,83,158, -41,20,100,143,66,35,37,98,111,111,116,29,11,11,11,11,10,10,36,80,158, -35,35,20,103,159,39,16,19,2,1,2,2,30,2,4,72,112,97,116,104,45, -115,116,114,105,110,103,63,10,30,2,4,75,112,97,116,104,45,97,100,100,45, -115,117,102,102,105,120,7,30,2,5,1,20,112,97,114,97,109,101,116,101,114, -105,122,97,116,105,111,110,45,107,101,121,4,30,2,5,1,23,101,120,116,101, -110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,3,2, -6,2,7,2,8,2,9,2,10,2,11,2,12,2,13,2,14,30,2,4,69, -45,102,105,110,100,45,99,111,108,0,30,2,4,76,110,111,114,109,97,108,45, -99,97,115,101,45,112,97,116,104,6,30,2,4,79,112,97,116,104,45,114,101, -112,108,97,99,101,45,115,117,102,102,105,120,9,2,15,16,0,11,11,16,0, -35,16,0,35,16,11,2,9,2,10,2,7,2,8,2,11,2,12,2,2,2, -6,2,1,2,14,2,13,46,11,11,38,35,11,11,16,1,2,15,16,1,11, -16,1,2,15,36,36,36,11,11,16,0,16,0,16,0,35,35,11,11,11,16, -0,16,0,16,0,35,35,16,0,16,16,83,158,35,16,2,89,162,43,36,44, -9,223,0,33,23,80,159,35,57,36,83,158,35,16,2,89,162,43,36,44,9, -223,0,33,24,80,159,35,56,36,83,158,35,16,2,89,162,43,36,48,67,103, -101,116,45,100,105,114,223,0,33,25,80,159,35,55,36,83,158,35,16,2,89, -162,43,37,48,68,119,105,116,104,45,100,105,114,223,0,33,26,80,159,35,54, -36,83,158,35,16,2,248,22,178,7,69,115,111,45,115,117,102,102,105,120,80, -159,35,35,36,83,158,35,16,2,89,162,43,37,59,2,2,223,0,33,35,80, -159,35,36,36,83,158,35,16,2,32,0,89,162,8,44,36,41,2,6,222,192, -80,159,35,41,36,83,158,35,16,2,247,22,126,80,159,35,42,36,83,158,35, -16,2,247,22,125,80,159,35,43,36,83,158,35,16,2,247,22,61,80,159,35, -44,36,83,158,35,16,2,248,22,18,74,109,111,100,117,108,101,45,108,111,97, -100,105,110,103,80,159,35,45,36,83,158,35,16,2,11,80,158,35,46,83,158, -35,16,2,11,80,158,35,47,83,158,35,16,2,32,0,89,162,43,37,44,2, -13,222,33,41,80,159,35,48,36,83,158,35,16,2,89,162,8,44,36,44,2, -14,223,0,33,50,80,159,35,49,36,83,158,35,16,2,89,162,43,35,43,2, -15,223,0,33,51,80,159,35,53,36,95,29,94,2,3,68,35,37,107,101,114, -110,101,108,11,29,94,2,3,69,35,37,109,105,110,45,115,116,120,11,2,4, -9,9,9,35,0}; - EVAL_ONE_SIZED_STR((char *)expr, 4099); +22,181,7,23,202,1,11,27,248,22,159,6,23,208,2,28,192,192,27,248,22, +53,23,209,2,28,192,192,28,248,22,63,23,209,2,249,22,164,8,248,22,66, +23,211,2,2,21,11,250,22,137,2,80,159,50,43,37,28,248,22,159,6,23, +210,2,249,22,65,23,211,1,248,80,159,53,55,36,23,213,1,87,94,23,210, +1,249,22,65,23,211,1,247,22,182,13,252,22,183,7,23,208,1,23,207,1, +23,205,1,23,203,1,201,12,193,91,159,37,10,90,161,36,35,10,11,90,161, +36,36,10,83,158,38,20,96,96,2,20,89,162,8,44,36,50,9,224,2,0, +33,42,89,162,43,38,48,9,223,1,33,43,89,162,43,39,8,30,9,225,2, +3,0,33,49,208,87,95,248,22,152,4,248,80,159,37,49,37,247,22,188,11, +248,22,190,4,80,159,36,36,37,248,22,179,12,80,159,36,41,36,159,35,20, +103,159,35,16,1,11,16,0,83,158,41,20,100,143,66,35,37,98,111,111,116, +29,11,11,11,11,10,10,36,80,158,35,35,20,103,159,39,16,19,2,1,2, +2,30,2,4,72,112,97,116,104,45,115,116,114,105,110,103,63,10,30,2,4, +75,112,97,116,104,45,97,100,100,45,115,117,102,102,105,120,7,30,2,5,1, +20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121, +4,30,2,5,1,23,101,120,116,101,110,100,45,112,97,114,97,109,101,116,101, +114,105,122,97,116,105,111,110,3,2,6,2,7,2,8,2,9,2,10,2,11, +2,12,2,13,2,14,30,2,4,69,45,102,105,110,100,45,99,111,108,0,30, +2,4,76,110,111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,6,30, +2,4,79,112,97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102,105, +120,9,2,15,16,0,11,11,16,0,35,16,0,35,16,11,2,9,2,10,2, +7,2,8,2,11,2,12,2,2,2,6,2,1,2,14,2,13,46,11,11,38, +35,11,11,16,1,2,15,16,1,11,16,1,2,15,36,36,36,11,11,16,0, +16,0,16,0,35,35,11,11,11,16,0,16,0,16,0,35,35,16,0,16,16, +83,158,35,16,2,89,162,43,36,44,9,223,0,33,23,80,159,35,57,36,83, +158,35,16,2,89,162,43,36,44,9,223,0,33,24,80,159,35,56,36,83,158, +35,16,2,89,162,43,36,48,67,103,101,116,45,100,105,114,223,0,33,25,80, +159,35,55,36,83,158,35,16,2,89,162,43,37,48,68,119,105,116,104,45,100, +105,114,223,0,33,26,80,159,35,54,36,83,158,35,16,2,248,22,178,7,69, +115,111,45,115,117,102,102,105,120,80,159,35,35,36,83,158,35,16,2,89,162, +43,37,59,2,2,223,0,33,35,80,159,35,36,36,83,158,35,16,2,32,0, +89,162,8,44,36,41,2,6,222,192,80,159,35,41,36,83,158,35,16,2,247, +22,126,80,159,35,42,36,83,158,35,16,2,247,22,125,80,159,35,43,36,83, +158,35,16,2,247,22,61,80,159,35,44,36,83,158,35,16,2,248,22,18,74, +109,111,100,117,108,101,45,108,111,97,100,105,110,103,80,159,35,45,36,83,158, +35,16,2,11,80,158,35,46,83,158,35,16,2,11,80,158,35,47,83,158,35, +16,2,32,0,89,162,43,37,44,2,13,222,33,41,80,159,35,48,36,83,158, +35,16,2,89,162,8,44,36,44,2,14,223,0,33,50,80,159,35,49,36,83, +158,35,16,2,89,162,43,35,43,2,15,223,0,33,51,80,159,35,53,36,95, +29,94,2,3,68,35,37,107,101,114,110,101,108,11,29,94,2,3,69,35,37, +109,105,110,45,115,116,120,11,2,4,9,9,9,35,0}; + EVAL_ONE_SIZED_STR((char *)expr, 4109); } diff --git a/src/mzscheme/src/jit.c b/src/mzscheme/src/jit.c index 1df782dbdf..e643ad0a4a 100644 --- a/src/mzscheme/src/jit.c +++ b/src/mzscheme/src/jit.c @@ -104,6 +104,8 @@ static void assert_failure(int where) { printf("JIT assert failed %d\n", where); /* Used by vector-set-performance-stats!: */ int scheme_jit_malloced; +static int skip_checks = 0; + #define MAX_SHARED_CALL_RANDS 25 static void *shared_tail_code[4][MAX_SHARED_CALL_RANDS]; static void *shared_non_tail_code[4][MAX_SHARED_CALL_RANDS][2]; @@ -4131,38 +4133,42 @@ static int generate_inlined_unary(mz_jit_state *jitter, Scheme_App2_Rec *app, in jit_movr_p(JIT_R2, JIT_R0); /* save original argument */ } for (i = 0; i < steps; i++) { - if (!i) { - ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1); - reffail = _jit.x.pc; - __END_TINY_JUMPS__(1); - if (steps == 1) { - if (name[1] == 'a') { - (void)jit_calli(bad_car_code); + if (!skip_checks) { + if (!i) { + ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1); + reffail = _jit.x.pc; + __END_TINY_JUMPS__(1); + if (steps == 1) { + if (name[1] == 'a') { + (void)jit_calli(bad_car_code); + } else { + (void)jit_calli(bad_cdr_code); + } } else { - (void)jit_calli(bad_cdr_code); + if (name[1] == 'a') { + if (name[2] == 'a') { + (void)jit_calli(bad_caar_code); + } else { + (void)jit_calli(bad_cadr_code); + } + } else { + if (name[2] == 'a') { + (void)jit_calli(bad_cdar_code); + } else { + (void)jit_calli(bad_cddr_code); + } + } } + __START_TINY_JUMPS__(1); + mz_patch_branch(ref); } else { - if (name[1] == 'a') { - if (name[2] == 'a') { - (void)jit_calli(bad_caar_code); - } else { - (void)jit_calli(bad_cadr_code); - } - } else { - if (name[2] == 'a') { - (void)jit_calli(bad_cdar_code); - } else { - (void)jit_calli(bad_cddr_code); - } - } + (void)jit_bmsi_ul(reffail, JIT_R0, 0x1); } - __START_TINY_JUMPS__(1); - mz_patch_branch(ref); + jit_ldxi_s(JIT_R1, JIT_R0, &((Scheme_Object *)0x0)->type); + (void)jit_bnei_i(reffail, JIT_R1, scheme_pair_type); } else { - (void)jit_bmsi_ul(reffail, JIT_R0, 0x1); + reffail = NULL; } - jit_ldxi_s(JIT_R1, JIT_R0, &((Scheme_Object *)0x0)->type); - (void)jit_bnei_i(reffail, JIT_R1, scheme_pair_type); if (name[steps - i] == 'a') { (void)jit_ldxi_p(JIT_R0, JIT_R0, &((Scheme_Simple_Object *)0x0)->u.pair_val.car); } else { @@ -4524,35 +4530,54 @@ static int generate_binary_char(mz_jit_state *jitter, Scheme_App3_Rec *app, return 1; } -static int generate_vector_op(mz_jit_state *jitter, int set) +static int generate_vector_op(mz_jit_state *jitter, int set, int int_ready) +/* if int_ready, JIT_R1 has num index and JIT_V1 has pre-computed offset, + otherwise JIT_R1 has fixnum index */ { GC_CAN_IGNORE jit_insn *ref, *reffail; - __START_TINY_JUMPS__(1); - ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1); - __END_TINY_JUMPS__(1); + if (!skip_checks) { + __START_TINY_JUMPS__(1); + ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1); + __END_TINY_JUMPS__(1); - reffail = _jit.x.pc; - if (set) { - (void)jit_calli(vector_set_check_index_code); + reffail = _jit.x.pc; + if (int_ready) { + jit_lshi_ul(JIT_R1, JIT_R1, 1); + jit_ori_l(JIT_R1, JIT_R1, 0x1); + } + if (set) { + (void)jit_calli(vector_set_check_index_code); + } else { + (void)jit_calli(vector_ref_check_index_code); + } + /* doesn't return */ + CHECK_LIMIT(); + + __START_TINY_JUMPS__(1); + mz_patch_branch(ref); + if (!int_ready) + (void)jit_bmci_ul(reffail, JIT_R1, 0x1); + jit_ldxi_s(JIT_R2, JIT_R0, &((Scheme_Object *)0x0)->type); + (void)jit_bnei_i(reffail, JIT_R2, scheme_vector_type); + jit_ldxi_i(JIT_R2, JIT_R0, (int)&SCHEME_VEC_SIZE(0x0)); + if (!int_ready) { + jit_rshi_ul(JIT_V1, JIT_R1, 1); + (void)jit_bler_ul(reffail, JIT_R2, JIT_V1); + } else { + (void)jit_bler_ul(reffail, JIT_R2, JIT_R1); + } + CHECK_LIMIT(); + __END_TINY_JUMPS__(1); } else { - (void)jit_calli(vector_ref_check_index_code); + if (!int_ready) + jit_rshi_ul(JIT_V1, JIT_R1, 1); } - /* doesn't return */ - CHECK_LIMIT(); - __START_TINY_JUMPS__(1); - mz_patch_branch(ref); - (void)jit_bmci_ul(reffail, JIT_R1, 0x1); - jit_ldxi_s(JIT_R2, JIT_R0, &((Scheme_Object *)0x0)->type); - (void)jit_bnei_i(reffail, JIT_R2, scheme_vector_type); - jit_ldxi_i(JIT_R2, JIT_R0, (int)&SCHEME_VEC_SIZE(0x0)); - jit_rshi_ul(JIT_V1, JIT_R1, 1); - (void)jit_bler_ul(reffail, JIT_R2, JIT_V1); - CHECK_LIMIT(); - - jit_lshi_ul(JIT_V1, JIT_V1, JIT_LOG_WORD_SIZE); - jit_addi_p(JIT_V1, JIT_V1, (int)&SCHEME_VEC_ELS(0x0)); + if (!int_ready) { + jit_lshi_ul(JIT_V1, JIT_V1, JIT_LOG_WORD_SIZE); + jit_addi_p(JIT_V1, JIT_V1, (int)&SCHEME_VEC_ELS(0x0)); + } if (set) { jit_ldr_p(JIT_R2, JIT_RUNSTACK); jit_stxr_p(JIT_V1, JIT_R0, JIT_R2); @@ -4560,7 +4585,6 @@ static int generate_vector_op(mz_jit_state *jitter, int set) } else { jit_ldxr_p(JIT_R0, JIT_R0, JIT_V1); } - __END_TINY_JUMPS__(1); return 1; } @@ -4736,7 +4760,7 @@ static int generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i if (!which) { /* vector-ref is relatively simple and worth inlining */ - generate_vector_op(jitter, 0); + generate_vector_op(jitter, 0, 0); CHECK_LIMIT(); } else if (which == 1) { (void)jit_calli(string_ref_check_index_code); @@ -4761,7 +4785,9 @@ static int generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i offset = offset << LOG_MZCHAR_SIZE; jit_movi_l(JIT_V1, offset); if (!which) { - (void)jit_calli(vector_ref_code); + /* vector-ref is relatively simple and worth inlining */ + generate_vector_op(jitter, 0, 1); + CHECK_LIMIT(); } else if (which == 1) { (void)jit_calli(string_ref_code); } else { @@ -4975,7 +5001,7 @@ static int generate_inlined_nary(mz_jit_state *jitter, Scheme_App_Rec *app, int if (!simple) { if (!which) { /* vector-set! is relatively simple and worth inlining */ - generate_vector_op(jitter, 1); + generate_vector_op(jitter, 1, 0); CHECK_LIMIT(); } else if (which == 1) { (void)jit_calli(string_set_check_index_code); @@ -4992,7 +5018,9 @@ static int generate_inlined_nary(mz_jit_state *jitter, Scheme_App_Rec *app, int offset = offset << LOG_MZCHAR_SIZE; jit_movi_l(JIT_V1, offset); if (!which) { - (void)jit_calli(vector_set_code); + /* vector-set! is relatively simple and worth inlining */ + generate_vector_op(jitter, 1, 1); + CHECK_LIMIT(); } else if (which == 1) { (void)jit_calli(string_set_code); } else { diff --git a/src/mzscheme/src/startup.inc b/src/mzscheme/src/startup.inc index 861cb5ef5e..17a9273bc0 100644 --- a/src/mzscheme/src/startup.inc +++ b/src/mzscheme/src/startup.inc @@ -229,7 +229,7 @@ "(lambda(s sfx)" "(let-values(((base name)(check-suffix-call s sfx 'path-replace-suffix)))" "(let((new-name(bytes->path-element" -" (regexp-replace #rx#\"([.][^.]*|)$\"" +" (regexp-replace #rx#\"(?:[.][^.]*|)$\"" "(path-element->bytes name)" "(if(string? sfx)" "(string->bytes/locale sfx(char->integer #\\?))" @@ -682,6 +682,7 @@ "(hash-set! ht modname #t))))" "(when(and(not(vector? s-parsed))" "(or(string? s)" +"(symbol? s)" "(and(pair? s)" "(eq?(car s) 'lib))))" "(hash-set! -path-cache" diff --git a/src/mzscheme/src/startup.ss b/src/mzscheme/src/startup.ss index 097daa5689..0665d94fa3 100644 --- a/src/mzscheme/src/startup.ss +++ b/src/mzscheme/src/startup.ss @@ -290,7 +290,7 @@ (lambda (s sfx) (let-values ([(base name) (check-suffix-call s sfx 'path-replace-suffix)]) (let ([new-name (bytes->path-element - (regexp-replace #rx#"([.][^.]*|)$" + (regexp-replace #rx#"(?:[.][^.]*|)$" (path-element->bytes name) (if (string? sfx) (string->bytes/locale sfx (char->integer #\?)) @@ -773,6 +773,7 @@ ;; If a `lib' path, cache pathname manipulations (when (and (not (vector? s-parsed)) (or (string? s) + (symbol? s) (and (pair? s) (eq? (car s) 'lib)))) (hash-set! -path-cache diff --git a/src/mzscheme/src/vector.c b/src/mzscheme/src/vector.c index 78fc3c4aab..cc5e5e0432 100644 --- a/src/mzscheme/src/vector.c +++ b/src/mzscheme/src/vector.c @@ -350,13 +350,16 @@ scheme_list_to_vector (Scheme_Object *list) static Scheme_Object * vector_fill (int argc, Scheme_Object *argv[]) { - int i; + int i, sz; + Scheme_Object *v; if (!SCHEME_MUTABLE_VECTORP(argv[0])) scheme_wrong_type("vector-fill!", "mutable vector", 0, argc, argv); - for (i = 0; i < SCHEME_VEC_SIZE(argv[0]); i++) { - SCHEME_VEC_ELS(argv[0])[i] = argv[1]; + v = argv[1]; + sz = SCHEME_VEC_SIZE(argv[0]); + for (i = 0; i < sz; i++) { + SCHEME_VEC_ELS(argv[0])[i] = v; } return argv[0];