$ od -c -N 50000 [eris]<LispCore>SOURCES>CMLARRAY-OPTIMIZERS!2 0000000 ( D E F I N E - F I L E - I N F 0000020 O 247 R E A D T A B L E " X C 0000040 L " 247 P A C K A G E " I N T 0000060 E R L I S P " ) \r 006 001 ( f i l e 0000100 c r e a t e d " 1 6 - O c t - 0000120 8 6 1 2 : 1 4 : 1 4 " 006 004 { 0000140 e r i s } < l i s p c o r e > s 0000160 o u r c e s > c m l a r r a y - 0000200 o p t i m i z e r s . \ ; 2 006 001 0000220 8 5 9 9 \r \r 0000240 | c h a n g e s | | t o : | 0000260 ( o p t i m i z e r s c l : 0000300 a r e f a s e t b i t c h 0000320 a r c l : s b i t c l : s c 0000340 h a r c l : s v r e f % a r 0000360 r a y p \r 0000400 0000420 % g e n e r a l - a r r 0000440 a y - p % o n e d - a r r a y 0000460 - p % s i m p l e - a r r a y 0000500 - p % s i m p l e - s t r i n 0000520 g - p \r 0000540 0000560 % s t r i n g p % t w o 0000600 d - a r r a y - p % v e c t o 0000620 r p % a r r a y - r e a d % 0000640 a r r a y - w r i t e ) \r 0000660 0000700 ( s e t f s c l : a r 0000720 e f b i t c h a r c l : f 0000740 i l l - p o i n t e r c l : s 0000760 b i t c l : s c h a r c l : 0001000 s v r e f ) \r 0001020 ( f 0001040 u n c t i o n s % a r e f - e 0001060 x p a n d e r % a s e t - e x 0001100 p a n d e r ) \r 0001120 ( 0001140 v a r s c m l a r r a y - o p 0001160 t i m i z e r s c o m s ) \r \r 0001200 | p r e v i o u s | 0001220 | d a t e : | " 9 - S e p - 0001240 8 6 1 8 : 4 9 : 0 9 " { e r 0001260 i s } < l i s p c o r e > s o u 0001300 r c e s > c m l a r r a y - o p 0001320 t i m i z e r s . \ ; 1 ) \r \r \r 0001340 ; C o p y r i g h t ( c ) 0001360 1 9 8 6 b y X e r o x C o 0001400 r p o r a t i o n . A l l 0001420 r i g h t s r e s e r v e d . 0001440 \r \r ( p r e t t y c o m p r i n 0001460 t c m l a r r a y - o p t i m 0001500 i z e r s c o m s ) \r \r ( r p a 0001520 q q 006 002 c m l a r r a y - o p 0001540 t i m i z e r s c o m s 006 001 \r 0001560 ( ( * | ; ; ; | 0001600 " S e t f s " ) \r 0001620 ( s e t f s c l : a r e f 0001640 b i t c h a r c l : f i l 0001660 l - p o i n t e r c l : s b i 0001700 t c l : s c h a r c l : s v 0001720 r e f ) \r ( * 0001740 | ; ; ; | " O p t i m i z e r 0001760 s " ) \r ( f u n 0002000 c t i o n s % a r e f - e x p 0002020 a n d e r % a s e t - e x p a 0002040 n d e r ) \r ( o 0002060 p t i m i z e r s c l : a r e 0002100 f a s e t b i t c h a r 0002120 c l : s b i t c l : s c h a r 0002140 c l : s v r e f % a r r a y 0002160 p % g e n e r a l - a r r a y 0002200 - p \r 0002220 % o n e d - a r r a y - p 0002240 % s i m p l e - a r r a y - p 0002260 % s i m p l e - s t r i n g - 0002300 p % s t r i n g p % t w o d 0002320 - a r r a y - p % v e c t o r 0002340 p ) \r ( * | ; 0002360 ; ; | " O p t i m i z e r s , 0002400 n o t y e t u s e d , s 0002420 i n c e n o t b a c k e d 0002440 b y m i c r o - c o d e " ) \r 0002460 ( o p t i m i z 0002500 e r s % a r r a y - r e a d 0002520 % a r r a y - w r i t e ) \r 0002540 ( * | ; ; ; | " 0002560 C o m p i l e r o p t i o n s 0002600 " ) \r ( d e c l 0002620 a r e \ : d o n t e v a l @ l 0002640 o a d d o e v a l @ c o m p i 0002660 l e d o n t c o p y ( l o c 0002700 a l v a r s . t ) ) \r 0002720 ( p r o p f i l e t 0002740 y p e c m l a r r a y - o p t 0002760 i m i z e r s ) ) ) \r \r \r \r 006 004 0003000 ( * | ; ; ; | " S e t f s " 0003020 ) 006 001 \r \r ( c l : d e f s e t f 0003040 006 002 c l : a r e f 006 001 ( a r 0003060 r a y & r e s t i n d i c e 0003100 s ) ( n e w v a l u e ) \r 0003120 * 0003160 ` ( a s e t , 0003200 n e w v a l u e , a r r a y 0003220 , @ i n d i c e s ) ) \r \r ( c l 0003240 : d e f s e t f 006 002 b i t 006 001 0003260 ( a r r a y & r e s t i n 0003300 d i c e s ) ( n e w v a l u e 0003320 ) \r 0003340 0003360 ` ( a s e t , 0003400 n e w v a l u e , a r r a y 0003420 , @ i n d i c e s ) ) \r \r ( c l 0003440 : d e f s e t f 006 002 c h a r 006 0003460 001 ( a r r a y i n d e x ) 0003500 ( n e w v a l u e ) \r 0003520 0003540 ` ( a s e t 0003560 , n e w v a l u e , a r r a 0003600 y , i n d e x ) ) \r \r ( c l : 0003620 d e f s e t f 006 002 c l : f i l 0003640 l - p o i n t e r 006 001 s e t - 0003660 f i l l - p o i n t e r ) \r \r ( 0003700 c l : d e f s e t f 006 002 c l : 0003720 s b i t 006 001 ( a r r a y & r 0003740 e s t i n d i c e s ) ( n e 0003760 w v a l u e ) \r 0004000 * 0004040 ` ( a s e t , n e w v a l 0004060 u e , a r r a y , @ i n d i 0004100 c e s ) ) \r \r ( c l : d e f s e 0004120 t f 006 002 c l : s c h a r 006 001 0004140 ( a r r a y i n d e x ) ( n 0004160 e w v a l u e ) \r 0004200 0004220 ` ( a s 0004240 e t , n e w v a l u e , a r 0004260 r a y , i n d e x ) ) \r \r ( c 0004300 l : d e f s e t f 006 002 c l : s 0004320 v r e f 006 001 ( a r r a y i n 0004340 d e x ) ( n e w v a l u e ) \r 0004360 * 0004420 ` ( a s e t , n e w v a 0004440 l u e , a r r a y , i n d e 0004460 x ) ) \r \r \r \r \r 006 004 ( * | ; ; 0004500 ; | " O p t i m i z e r s " ) 0004520 006 001 \r \r ( c l : d e f u n 006 002 0004540 % a r e f - e x p a n d e r 006 001 0004560 ( a r r a y i n d i c e s ) 0004600 \r \r 0004620 006 003 ( * * ) 006 001 0004640 \r ( c a s e ( l e n g t h 0004660 i n d i c e s ) \r 0004700 ( 1 ` ( % a r e f 1 , a r r 0004720 a y , @ i n d i c e s ) ) \r 0004740 ( 2 ` ( % a r e f 0004760 2 , a r r a y , @ i n d i c 0005000 e s ) ) \r ( c l : 0005020 o t h e r w i s e ' c o m p i 0005040 l e r : p a s s ) ) ) \r \r ( c l 0005060 : d e f u n 006 002 % a s e t - e 0005100 x p a n d e r 006 001 ( n e w v a 0005120 l u e a r r a y i n d i c e 0005140 s ) \r \r 0005160 006 003 ( * * ) 0005200 006 001 \r ( c a s e ( l e n g t 0005220 h i n d i c e s ) \r 0005240 ( 1 ` ( % a s e t 1 , n 0005260 e w v a l u e , a r r a y , 0005300 @ i n d i c e s ) ) \r 0005320 ( 2 ` ( % a s e t 2 , n 0005340 e w v a l u e , a r r a y , 0005360 @ i n d i c e s ) ) \r 0005400 ( c l : o t h e r w i s e 0005420 ' c o m p i l e r : p a s s ) ) 0005440 ) \r \r ( d e f o p t i m i z e r 0005460 006 002 c l : a r e f 006 001 ( a r 0005500 r a y & r e s t i n d i c e 0005520 s ) ( % a r e f - e x p a n d 0005540 e r a r r a y i n d i c e s 0005560 ) ) \r \r ( d e f o p t i m i z e 0005600 r 006 002 a s e t 006 001 ( n e w v 0005620 a l u e a r r a y & r e s t 0005640 i n d i c e s ) ( % a s e t 0005660 - e x p a n d e r n e w v a l 0005700 u e a r r a y i n d i c e s 0005720 ) ) \r \r ( d e f o p t i m i z e 0005740 r 006 002 b i t 006 001 ( a r r a y 0005760 & r e s t i n d i c e s ) 0006000 ( % a r e f - e x p a n d e r 0006020 a r r a y i n d i c e s ) ) \r 0006040 \r ( d e f o p t i m i z e r 006 0006060 002 c h a r 006 001 ( s t r i n g 0006100 i n d e x ) ` ( % a r e f 1 0006120 , s t r i n g , i n d e x ) ) 0006140 \r \r ( d e f o p t i m i z e r 0006160 006 002 c l : s b i t 006 001 ( a r r 0006200 a y & r e s t i n d i c e s 0006220 ) ( % a r e f - e x p a n d e 0006240 r a r r a y i n d i c e s ) 0006260 ) \r \r ( d e f o p t i m i z e r 0006300 006 002 c l : s c h a r 006 001 ( s 0006320 t r i n g i n d e x ) ` ( % 0006340 a r e f 1 , s t r i n g , i 0006360 n d e x ) ) \r \r ( d e f o p t i 0006400 m i z e r 006 002 c l : s v r e f 0006420 006 001 ( c l : s i m p l e - v e 0006440 c t o r i n d e x ) ` ( % a 0006460 r e f 1 , c l : s i m p l e - 0006500 v e c t o r , i n d e x ) ) \r 0006520 \r ( d e f o p t i m i z e r 006 0006540 002 % a r r a y p 006 001 ( a r r a 0006560 y ) ( c l : i f ( c l : s y 0006600 m b o l p a r r a y ) \r 0006620 * 0006660 ` ( o r ( % o n e d - a r 0006700 r a y - p , a r r a y ) \r 0006720 * 0006760 ( % t w o d - a 0007000 r r a y - p , a r r a y ) \r 0007020 * 0007060 ( % g e n e r 0007100 a l - a r r a y - p , a r r a 0007120 y ) ) \r 0007140 0007160 ( l e t ( ( 0007200 s y m ( g e n s y m ) ) ) \r 0007220 * 0007260 ` ( l e t ( 0007300 ( , s y m , a r r a y ) ) \r 0007320 * 0007360 ( 0007400 o r ( % o n e d - a r r a y - 0007420 p , s y m ) \r 0007440 * 0007500 ( % t w 0007520 o d - a r r a y - p , s y m ) 0007540 \r 0007560 * 0007620 ( % g e n e r a l - a 0007640 r r a y - p , s y m ) ) ) ) ) 0007660 ) \r \r ( d e f o p t i m i z e r 0007700 006 002 % g e n e r a l - a r r a 0007720 y - p 006 001 ( a r r a y ) ` ( 0007740 a n d ( ( o p c o d e s t y 0007760 p e p 1 6 ) \r 0010000 * 0010040 , a r r a y ) \r 0010060 * 0010120 t ) ) \r \r 0010140 ( d e f o p t i m i z e r 006 002 0010160 % o n e d - a r r a y - p 006 001 0010200 ( a r r a y ) ` ( a n d ( ( 0010220 o p c o d e s t y p e p 1 4 0010240 ) \r 0010260 0010300 , a r 0010320 r a y ) \r 0010340 0010360 t 0010400 ) ) \r \r ( d e f o p t i m i z e 0010420 r 006 002 % s i m p l e - a r r a 0010440 y - p 006 001 ( a r r a y ) ( c 0010460 l : i f ( c l : s y m b o l p 0010500 a r r a y ) \r 0010520 * 0010560 ` ( a n d ( % a r r 0010600 a y p , a r r a y ) \r 0010620 * 0010660 ( 0010700 006 002 | f e t c h | 006 001 ( a r r 0010720 a y - h e a d e r s i m p l e 0010740 - p ) \r 0010760 * 0011020 006 002 | o f | 0011040 006 001 , a r r a y ) ) \r 0011060 * 0011120 ( l e t ( ( 0011140 s y m ( g e n s y m ) ) ) \r 0011160 * 0011240 ` ( l e t ( ( , s y m , a 0011260 r r a y ) ) \r 0011300 * 0011340 ( 0011360 a n d ( % a r r a y p , s y 0011400 m ) \r 0011420 * 0011500 ( 006 002 | f e t c h | 006 001 ( a r 0011520 r a y - h e a d e r s i m p l 0011540 e - p ) \r 0011560 * 0011640 006 002 | o f | 006 001 , s 0011660 y m ) ) ) ) ) ) \r \r ( d e f o p 0011700 t i m i z e r 006 002 % s i m p l 0011720 e - s t r i n g - p 006 001 ( s t 0011740 r i n g ) ( c l : i f ( c l 0011760 : s y m b o l p s t r i n g ) 0012000 \r 0012020 * 0012060 ` ( a n d ( % o n e d - a r r 0012100 a y - p , s t r i n g ) \r 0012120 * 0012200 ( 006 002 | f e t c h | 006 001 0012220 ( a r r a y - h e a d e r s i 0012240 m p l e - p ) \r 0012260 * 0012340 006 002 | o f | 006 001 , s t r i n g 0012360 ) \r 0012400 * 0012440 ( 006 002 | f e t c h 0012460 | 006 001 ( a r r a y - h e a d e 0012500 r s t r i n g - p ) \r 0012520 * 0012600 006 002 | o f | 006 001 , s t 0012620 r i n g ) ) \r 0012640 * 0012700 ( l e t ( ( s y m 0012720 ( g e n s y m ) ) ) \r 0012740 * 0013020 ` ( l e t ( ( , s y m , s t 0013040 r i n g ) ) \r 0013060 * 0013140 ( a n d ( % o n e d - a r r 0013160 a y - p , s y m ) \r 0013200 * 0013260 ( 006 002 | f e 0013300 t c h | 006 001 ( a r r a y - h e 0013320 a d e r s i m p l e - p ) \r 0013340 * 0013440 006 002 | o f | 006 001 , s y m ) \r 0013460 * 0013540 ( 0013560 006 002 | f e t c h | 006 001 ( a r r 0013600 a y - h e a d e r s t r i n g 0013620 - p ) \r 0013640 * 0013720 006 002 | o f | 006 001 , 0013740 s y m ) ) ) ) ) ) \r \r ( d e f o 0013760 p t i m i z e r 006 002 % s t r i 0014000 n g p 006 001 ( s t r i n g ) ( 0014020 c l : i f ( c l : s y m b o l 0014040 p s t r i n g ) \r 0014060 * 0014120 ` ( a n d ( o r ( % o n e 0014140 d - a r r a y - p , s t r i n 0014160 g ) \r 0014200 * 0014240 ( % g e n e r a l - a r 0014260 r a y - p , s t r i n g ) ) \r 0014300 * 0014340 ( 006 002 0014360 | f e t c h | 006 001 ( a r r a y 0014400 - h e a d e r s t r i n g - p 0014420 ) 006 002 | o f | 006 001 , s t r i 0014440 n g ) ) \r 0014460 0014500 ( l e t 0014520 ( ( s y m ( g e n s y m ) ) 0014540 ) \r 0014560 0014600 ` ( 0014620 l e t ( ( , s y m , s t r i 0014640 n g ) ) \r 0014660 * 0014720 ( a n d ( o r 0014740 ( % o n e d - a r r a y - p , 0014760 s y m ) \r 0015000 * 0015060 ( % g e n e r a l - a r r a y - 0015100 p , s y m ) ) \r 0015120 * 0015200 ( 006 002 | f e t c h | 006 001 ( a r 0015220 r a y - h e a d e r s t r i n 0015240 g - p ) \r 0015260 * 0015320 006 0015340 002 | o f | 006 001 , s y m ) ) ) ) 0015360 ) ) \r \r ( d e f o p t i m i z e 0015400 r 006 002 % t w o d - a r r a y - 0015420 p 006 001 ( a r r a y ) ` ( a n 0015440 d ( ( o p c o d e s t y p e 0015460 p 1 5 ) \r 0015500 * 0015540 , a r r a y ) \r 0015560 * 0015620 t ) ) \r \r ( d e f o p t i 0015640 m i z e r 006 002 % v e c t o r p 0015660 006 001 ( c l : v e c t o r ) \r 0015700 ( c l : i f ( c l : s y m 0015720 b o l p c l : v e c t o r ) \r 0015740 ` ( o r ( 0015760 % o n e d - a r r a y - p , c 0016000 l : v e c t o r ) \r 0016020 ( a n d ( % 0016040 g e n e r a l - a r r a y - p 0016060 , c l : v e c t o r ) \r 0016100 0016120 ( e q l 1 ( l e n g t h ( 0016140 006 002 | f f e t c h | 006 001 ( g e 0016160 n e r a l - a r r a y d i m s 0016200 ) 006 002 | o f | 006 001 , c l : v 0016220 e c t o r ) ) ) ) ) \r 0016240 ( l e t ( ( s y m 0016260 ( g e n s y m ) ) ) \r 0016300 ` ( l e t 0016320 ( ( , s y m , c l : v e c t o 0016340 r ) ) \r 0016360 ( o r ( % o 0016400 n e d - a r r a y - p , s y m 0016420 ) \r 0016440 ( a n d 0016460 ( % g e n e r a l - a r r a y - 0016500 p , s y m ) \r 0016520 0016540 ( e q l 1 ( l e 0016560 n g t h ( 006 002 | f f e t c h | 0016600 006 001 ( g e n e r a l - a r r a 0016620 y d i m s ) 006 002 | o f | 006 001 0016640 , s y m ) ) ) ) ) ) ) ) ) \r \r 0016660 \r \r \r 006 004 ( * | ; ; ; | " O 0016700 p t i m i z e r s , n o t y 0016720 e t u s e d , s i n c e n 0016740 o t b a c k e d b y m i c 0016760 r o - c o d e " ) 006 001 \r \r ( d e 0017000 f o p t i m i z e r 006 002 % a r 0017020 r a y - r e a d 006 001 ( b a s e 0017040 t y p e n u m b e r i n d e 0017060 x ) ` ( ( o p c o d e s m i 0017100 s c 3 9 ) \r 0017120 * 0017160 , b a s e 0017200 \r 0017220 * 0017260 , t y p e n u m b e r 0017300 \r 0017320 * 0017360 , i n d e x ) ) \r \r ( 0017400 d e f o p t i m i z e r 006 002 % 0017420 a r r a y - w r i t e 006 001 ( n 0017440 e w v a l u e b a s e t y p 0017460 e n u m b e r i n d e x ) ` 0017500 ( ( o p c o d e s m i s c 4 0017520 7 ) \r 0017540 * 0017620 , n e w v a l u e \r 0017640 * 0017720 , b a s e \r 0017740 * 0020020 , t y 0020040 p e n u m b e r \r 0020060 * 0020140 , i n d e x ) ) \r 0020160 \r \r \r \r 006 004 ( * | ; ; ; | " 0020200 C o m p i l e r o p t i o n s 0020220 " ) 006 001 \r \r ( d e c l a r e \ : 0020240 d o n t e v a l @ l o a d d 0020260 o e v a l @ c o m p i l e d o 0020300 n t c o p y \r ( d e c l a r e 0020320 \ : d o e v a l @ c o m p i l 0020340 e d o n t c o p y \r \r ( l o c 0020360 a l v a r s . t ) \r ) \r ) \r 0020400 \r ( p u t p r o p s 006 002 c m l 0020420 a r r a y - o p t i m i z e r s 0020440 f i l e t y p e 006 001 c l : c 0020460 o m p i l e - f i l e ) \r ( p u 0020500 t p r o p s c m l a r r a y - 0020520 o p t i m i z e r s c o p y r 0020540 i g h t ( " X e r o x C o r 0020560 p o r a t i o n " 1 9 8 6 ) ) 0020600 \r ( d e c l a r e \ : d o n t 0020620 c o p y \r ( f i l e m a p 0020640 ( n i l ) ) ) \r s t o p \r 0020655