$ 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