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