envos STORAGE 2 4 1 STORAGE 1 4 By: Christopher Lane (Lane@Sumex-Aim.Stanford.Edu) STORAGE implements a bar-graph version of the Lisp STORAGE function, providing a visual summary of the amount of storage allocated to each data type. (SHOWSTORAGE [PAGETHRESHOLD MODE ROTATION]) [Function] Displays the storage allocation of Lisp data types in bar graph format: f?||0ha.?Gwxwa(ۻwgn=;wevz`ߍ{oۛzom{oۻ}n;7ov>,ŝa.?Gxx?/o?     P Pr    ` @b  C   D 8  |` p P< PH |P< ` P  l@  T@ Tp| P |P@S P @ |J  DO D< 8|H<  ( < . (*PN * >*P8 < * >| Dp`H: *@φD`<x *A| |  >@H@@0"x C>0H @.@`B . |@H | * 6@> 0`@> " *|@ ʄ` @D >* @  > >D >TʟR "D T6`DL$ S *HR|s< TL$ ><x >T R b0!8b"| 8||R6J|E.D " (@ *  @D>pr#( |*|O | `|P1S><>RH>%@D  PaPHy PRp'D' >T| >< P PS|`T>$  y | PP ˀ|\$  T@: >| DJO:TTA,T%H 'DJ>p%H,Tq >|A!(T%O \ r$DΈr'(t$ Ã  J>|TS"8|S> „*tAሀ>T"0PH@ƒϝ*Xt"t>p`#F|ҤE@rL>PBX!"0PFB|RL|@$P!>|`PP $@1S$@>G||P@a DK@8 rÇ|@%ʝ@>|ӤDǏ p @J>|%L@ |ÀD b>DIP  lAʏ %L N>@OD BȄ|G>P#Ǟ8TL@@D>|>g| T> π0A .`ˀ|| \"DÀ8@C\ " …T%"DBJ(!@(TR@P%"PC … T%"DBJ( @dC(TR@P%"PB Ϗ0tϟ8ώ>@>tϝ8|| UU_W_UFUW_7_UUUUWLaڌUUQUUUlWWLMUUAUUjWWLUUUUUWWL/UUUUwWWULUUUUW?WL UUUUUUW?WL?ʫ WUUUUUUWWL? WUUtUUUUW?WLt2 ?WUUUUUUW*WL٫, ?WUUUUUUW6UWL?T?몫 ?WUUTUUUUW UWL?* ?UWUUUUUUW*UWL??ժ ?UWUUTUUUUW?UWL?V* ?UWUUTUUUUeWUWL?* ?UVUUTUUUUWUUVL??* ?UWUUTUUUUWUUVL?î* `?UTUUpUUUUWUUWL?* ?UW?UUeUUUUWUUVL`?p֪*X ?UWUUYUUUUUWUUWL`?h* ?UU_UUUUUUUWUUWL?ʪ* ?UQUUUHUUUUUUWUUUPL?J* ?URoUUETPUUUUWUUUPL?/* @?UP/UUUUUUUUWUUUPL?J* @?UQUUUWUUUUUWUUUPL?I?o * ?UU]UUUUUUUmUWUUUPL?U T* ?uPUUUPUUUUWUUUPL? ? l* ?}P UUUPUUUWUUUPL?U  |* ?UP ?UUUPUU!UWUUUPL? * ?UPWUUUPUUUUWUUUPL?  * ?PSWUUUPUUUWUUUPL?  * ?PVWUUUPUUUWUUUPL?  * ?P_WUUUPUUUV?UUUPL?  * ?PIWUUUPUUUUUUUPL?  ?* ?PʿWUUUPUUU UTPL?G D* ?P@?WUUUPUUU5_UTQPL?ʿ _ *1P ?P?WUUUPUUTUTL?? * ?P?WUUUPUUGUTL?? 2*P ?P@?WUUUPUU_UTPL?V? * ?eP?WUUUPUUU_UUUPL?? * ?P?WIUPUU_UTL?? P* ?UP?WJUPUU0_UTL?V?* * ?P?W@UPUUT_UTL??* * ?P?WJPUU_UTL??" * ?UP?WN"PUU_UTL?P? * ?T?WUQPUU_UTL??$ * ?UP?W@*PUU_UTL?P1* * ?U.W@:PUU_UTL?. * ?UP1W@UPUU_UTL?? * ?T W@PUU_UTL?7 * ?T?W@PUU_UTL?  * ?T7W@PUU_UTL?? * ?T?W@PUU_UTL?* * ?TW@PUU_UTL?* * ?TW@PUU_UTL?* * ?TW@PUU_UTL?* * c?TW@PUU_UTL?v *l ]?uW@PUU_UTL? *T =xW@PUU_UlL  * U5UW@PUU_U8L9V *D ?W@PUU_UDL  *8 o*TW@PUU_UL* *| ?W@PUU_U L  * U7UW@PUU_UTL? * U?W@PUU_UL* * UW@PUU_UL * UW@PUU_UL * UW@PUU_ULj * UUW@PUU_ULj * UUW@PUU_UL * UUW@PUU_UL * UW@PUU_ULj * UUW@PUU_ULj@ * UUPW@U_ULP@ "* Ÿ6UUeW@_"\`U ]u_*VU@ k* ^uUUVY` 6_U*mT@ >`* UV*o* > e4* 6[5>^U@jL[SfY@@$$L_ ~,mW@* *?PP@*o* ǽM&o-PeS@: `:U*VU@LƸ6S*VY >>L=Inm@ L  * All the arguments are optional. PAGETHRESHOLD is the same as for the STORAGE function and defaults to 1. MODE determines what to display and can be one of the following: ITEM The number of items of each type that have been allocated (the default mode). PAGE The number of pages allocated for each type. BOX The number of times each type has been allocated (see BOXCOUNT in the IRM). The mode can be changed when the window is open by clicking with the middle mouse button. Clicking in the window with the left mouse button will update the window. When the window is redisplayed (using the standard window menu or REDISPLAYW) it will add new data types that have been defined since the window was last redisplayed. For the ITEM and PAGE modes, the black part of the bar represents the number of items or pages currently in use. The gray part of the bar represents the number of free items or pages. The total length of the bar represents the total number of items or pages. The ROTATION argument can be one of NIL (use the rotation of the SHOWSTORAGEFONT), 0 (labels from bottom to top on the right, bars grow to the left) or 90 (labels from left to right and bars grow down). The display is controlled by the following global variables: SHOWSTORAGEWINDOWSIZE [Variable] The width or height (depending on the rotation) of the window, initially 275 (pixels). The bars truncate at the edge of the window; the window can be reshaped to put the longer bars in perspective. SHOWSTORAGEIGNORE [Variable] A list of data types to ignore. The information for the data types initially on this list is incorrect and/or their inclusion breaks the program. SHOWSTORAGEDEFAULTTHRESHOLD [Variable] The default threshold used when PAGETHRESHOLD is NIL, initially 1 (page). SHOWSTORAGEPRIN2FLG [Variable] Flag that causes PRIN2 to be used instead of PRIN1 when printing data type names (PRIN2 will include package names), initially NIL. SHOWSTORAGEFONT [Variable] The window font, initially one of Helvetica 5 through 10, i.e. the smallest that can be found when the file is loaded. The default font has a rotation of 90 degrees.(LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "") STARTINGPAGE# 256) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL NIL (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM)) (282 42 72 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL NIL (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM)) (282 42 72 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))))) 8$$H,-T6T25,,8,8H PAGEHEADING RUNNINGHEAD CLASSICCLASSICCLASSIC HELVETICA MODERN MODERN MODERN MODERNMODERN    HRULE.GETFNMODERN   HRULE.GETFNMODERN   HRULE.GETFNMODERN  HRULE.GETFNMODERN   HRULE.GETFNMODERN 4    I0 BMOBJ.GETFN3MODERN ! 9 =N-ME 0 T 5 =  ,D1=        :Lxz