1#!/bin/sh 2 3size .libs/libasn1.dylib 4size .libs/libasn1base.a | awk '{sum += $1} END {print sum}' | sed 's/^/TEXT baselib: /' 5size .libs/asn1_*.o | awk '{sum += $1} END {print sum}' | sed 's/^/generated code stubs: /' 6size *_asn1-template.o | awk '{sum += $1} END {print sum}' | sed 's/^/TEXT stubs: /' 7 8exit 0 9 10Notes about the template parser: 11 12- assumption: code is large, tables smaller 13 14- how to generate template based stubs: 15 16 make check asn1_compile_FLAGS=--template > log 17 18- pretty much the same as the generate code, except uses tables instead of code 19 20TODO: 21 - Make hdb work 22 23 - Fuzzing tests 24 25 - Performance testing 26 27 - ASN1_MALLOC_ENCODE() as a function, replaces encode_ and length_ 28 29 - Fix SIZE constraits 30 31 - Compact types that only contain on entry to not having a header. 32 33 34SIZE - Futher down is later generations of the template parser 35 36 code: 37 ================== 38 __TEXT __DATA __OBJC others dec hex 39 462848 12288 0 323584 798720 c3000 (O2) 40 41 trivial types: 42 ================== 43 __TEXT __DATA __OBJC others dec hex 44 446464 12288 0 323584 782336 bf000 (O2) 45 46 OPTIONAL 47 ================== 48 __TEXT __DATA __OBJC others dec hex 49 425984 16384 0 323584 765952 bb000 (O2) 50 51 SEQ OF 52 ================== 53 __TEXT __DATA __OBJC others dec hex 54 368640 32768 0 327680 729088 b2000 (O2) 55 348160 32768 0 327680 708608 ad000 (Os) 56 57 BOOLEAN 58 ================== 59 339968 32768 0 327680 700416 ab000 (Os) 60 61 TYPE_EXTERNAL: 62 ================== 63 331776 32768 0 327680 692224 a9000 (Os) 64 65 SET OF 66 ================== 67 327680 32768 0 327680 688128 a8000 (Os) 68 69 TYPE_EXTERNAL everywhere 70 ================== 71 __TEXT __DATA __OBJC others dec hex 72 167936 69632 0 327680 565248 8a000 (Os) 73 74 TAG uses ->ptr (header and trailer) 75 ================== 76 229376 102400 0 421888 753664 b8000 (O0) 77 78 TAG uses ->ptr (header only) 79 ================== 80 221184 77824 0 421888 720896 b0000 (O0) 81 82 BER support for octet string (not working) 83 ================== 84 180224 73728 0 417792 671744 a4000 (O2) 85 86 CHOICE and BIT STRING missign 87 ================== 88 __TEXT __DATA __OBJC others dec hex 89 172032 73728 0 417792 663552 a2000 (Os) 90 91 No accessor functions to global variable 92 ================== 93 __TEXT __DATA __OBJC others dec hex 94 159744 73728 0 393216 626688 99000 (Os) 95 96 All types tables (except choice) (id still objects) 97 ================== 98 __TEXT __DATA __OBJC others dec hex 99 167936 77824 0 421888 667648 a3000 100 base lib: 22820 101 102 __TEXT __DATA __OBJC others dec hex 103 ================== 104 167936 77824 0 421888 667648 a3000 (Os) 105 baselib: 22820 106 generated code stubs: 41472 107 TEXT stubs: 112560 108 109 All types, id still objects 110 ================== 111 __TEXT __DATA __OBJC others dec hex 112 155648 81920 0 430080 667648 a3000 (Os) 113 TEXT baselib: 23166 114 generated code stubs: 20796 115 TEXT stubs: 119891 116 117 All types, id still objects, dup compression 118 ================== 119 __TEXT __DATA __OBJC others dec hex 120 143360 65536 0 376832 585728 8f000 (Os) 121 TEXT baselib: 23166 122 generated code stubs: 20796 123 TEXT stubs: 107147 124 125 All types, dup compression, id vars 126 ================== 127 __TEXT __DATA __OBJC others dec hex 128 131072 65536 0 352256 548864 86000 129 TEXT baselib: 23166 130 generated code stubs: 7536 131 TEXT stubs: 107147 132