From: Bruno H. <br...@cl...> - 2017-07-02 20:12:45
|
[CCing clisp-devel] Sebastian Rasmussen wrote: > >> https://sourceforge.net/p/clisp/clisp/ci/tip/tree/src/dutch.lisp > > If I look at the Dutch space-format that you wrote I'm puzzled by > the following formatting (I skipped the part up until VT to make it > more readable): > > " permanent tijdelijk~%" > "instanties bytes instanties bytes~%" > "~9D ~9D ~9D ~9D~%" > > Wouldn't an example of this be (_ represents spaces): > " permanent tijdelijk~%" > "instanties bytes instanties bytes~%" > "_________1 _________1 _________1 _________1~%" > > And so the table wouldn't be aligned..? > Seems toi me like the format below would be more suitable? > "~10D ~8D ~10D ~8D~%" as the output format ought to be: > > " permanent tijdelijk~%" > "instanties bytes instanties bytes~%" > "---------- -------- ---------- --------~%" > "_________1 _______1 _________1 _______1~%" > > But maybe I misunderstand the format functions argument? I think you understand FORMAT quite well. But the "permanent" label is meant to apply to 2 columns at once. Like here: > (times (defclass foo () ())) Permanent Temporary Class instances bytes instances bytes ----- --------- --------- --------- --------- CONS 6 48 136 1088 SIMPLE-VECTOR 5 368 11 296 SIMPLE-STRING 0 0 6 144 HASH-TABLE 1 64 1 64 STANDARD-CLASS 1 120 0 0 SYSTEM::INTERNAL-WEAK-LIST 0 16 2 80 FUNCTION 0 0 3 88 SYMBOL 0 0 2 64 SIMPLE-BIT-VECTOR 0 0 4 56 ----- --------- --------- --------- --------- Gesamt 13 616 165 1880 Feel free to either repeat the words "permanent" or "temporary", or to insert separator characters like "|" if you find that it produces better output. > Also for the room-format there is a space after the VT while > there is not in the space-format. Depending on the argument > consumed by VT relative to the class name length a space > might be better than none, but I'm not sure. You are right: the purpose of the space is to avoid that two numbers accidentally clump together if the class name was long. Actually, this shows too many spaces; it could be improved: > (room t) Class # Instances Size (bytes) Average size ----- ----------- ------------ ------------ CONS 71066 568528 8.000 SIMPLE-STRING 12376 429512 34.705 SIMPLE-8BIT-VECTOR 3649 299200 81.995 SYMBOL 8653 276896 32.000 SIMPLE-VECTOR 2644 212584 80.402 FUNCTION 4070 184608 45.358 HASH-TABLE 614 39296 64.000 SYSTEM-FUNCTION 1107 35424 32.000 STANDARD-EFFECTIVE-SLOT-DEFINITION 532 29792 56.000 STANDARD-METHOD 380 21280 56.000 CLOS::STRUCTURE-EFFECTIVE-SLOT-DEFINITION 237 15168 64.000 STANDARD-CLASS 123 14760 120.000 STANDARD-GENERIC-FUNCTION 171 12312 72.000 CLOS::STRUCTURE-DIRECT-SLOT-DEFINITION 237 11376 48.000 SYSTEM::INTERNAL-WEAK-HASHED-ALIST 27 10320 382.222 SYSTEM::INTERNAL-WEAK-LIST 247 6648 26.915 ENCODING 104 5824 56.000 STANDARD-DIRECT-SLOT-DEFINITION 121 5808 48.000 STREAM 55 4072 74.036 WEAK-LIST 247 3952 16.000 SYSTEM::MACRO 217 3472 16.000 STRING-STREAM 44 3176 72.182 STRUCTURE-CLASS 26 3120 120.000 BUILT-IN-CLASS 33 2640 80.000 STRING 102 2456 24.078 PATHNAME 95 2280 24.000 STANDARD-READER-METHOD 20 1280 64.000 EQL-SPECIALIZER 46 1104 24.000 SPECIAL-OPERATOR 40 960 24.000 PACKAGE 19 912 48.000 METHOD-COMBINATION 10 640 64.000 LONG-FLOAT 10 488 48.800 BIGNUM 24 416 17.333 FUNCALLABLE-STANDARD-CLASS 3 360 120.000 SYMBOL-MACRO 20 320 16.000 GLOBAL-SYMBOL-MACRO 20 320 16.000 CONCATENATED-STREAM 4 288 72.000 SYNONYM-STREAM 3 216 72.000 BROADCAST-STREAM 3 216 72.000 SINGLE-FLOAT 12 192 16.000 FILE-STREAM 1 168 168.000 LOGICAL-PATHNAME 5 160 32.000 DOUBLE-FLOAT 10 160 16.000 BYTE 6 96 16.000 FOREIGN-POINTER 6 96 16.000 RESTART 2 80 40.000 TWO-WAY-STREAM 1 72 72.000 ECHO-STREAM 1 72 72.000 READTABLE 3 72 24.000 RATIO 3 48 16.000 FFI:FOREIGN-FUNCTION 1 40 40.000 NULL 1 32 32.000 VECTOR 1 32 32.000 FFI:FOREIGN-ADDRESS 2 32 16.000 FFI:FOREIGN-VARIABLE 1 32 32.000 SIMPLE-BIT-VECTOR 2 24 12.000 8BIT-VECTOR 1 24 24.000 SIMPLE-ARRAY 1 24 24.000 RANDOM-STATE 1 16 16.000 COMPLEX 1 16 16.000 ----- ----------- ------------ ------------ Gesamt 107461 2213512 20.598 Bruno |