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