
Fellow Wafe Community:

You might be interested in the following figures that show
up to which degree the use of shared libraries and various
configuration option influence the size of wafe, mofe, 
wafeperl and mofeperl. These figures demonstrate in addition
that the sizes of the Wafe kernel implementation and Tcl 
are pretty small compared to the packages that might be 
configured for Wafe. For example it is possible to build
a fully featured wafe version under Linux in a binary of the
size of about 300KB, and a verison of wafe without HTML and
the PLOTTER widget (but support for XPM, RDD, LAYOUT, all X11R5
widgets in XAW3D) in well below 100KB. 

The Wafe kernel could be made still much smaller by replacing the
generated c code by a more compact representation using a simple
abstract machine. I am not sure, whether this would be really a big
advantage, since the achievable code savings are still very small
compared to the size of the packages linked with wafe.


All versions were compiled using shared

   - c-library    (4.5.19 from sunsite.unc.edu)
   - math-library (4.5.19 from sunsite.unc.edu)
   - X11 library  (3.1.0 from Xfree 2.0)
   - Xt library   (3.1.0 from Xfree 2.0)
   - xpm-library  (3.2g from sunsite.unc.edu)

with gcc 2.5.8 (with -m486) under Linux 0.99.15.

The libraries mentioned below are:

   - tcl 7.3  (3.1 from sunsite.unc.edu)
   - Xaw3d    (3.1.1 build by me, uploaded to sunsite.unc.edu)
   - Xm       (1.2.3 from MetroLink inc)



 wafe:

   size       TCL     XAW3D   DBUG PLOTTER  HTML  RDD  XPM  

   619524    static  static     x     x      x     x    x
   508932    shared  static     x     x      x     x    x
   345092    shared  shared     x     x      x     x    x
   316420    shared  shared     -     x      x     x    x
   209924    shared  shared     -     -      x     x    x
    91140    shared  shared     -     -      -     x    x
    82948    shared  shared     -     -      -     -    x
    82948    shared  shared     -     -      -     -    -
  -------------------------------------------------------------
    74756    shared  shared     -     -      -     -    -   writable strings
    30071    shared  shared     -     -      -     -    -   tcx


 mofe:

   size       XM      TCL      DBUG PLOTTER  HTML XMGRAPH RDD  XPM  

  1614852    static  static     x     x      x       x     x    x
   517124    shared  shared     x     x      x       x     x    x
   484356    shared  shared     -     x      x       x     x    x
   373764    shared  shared     -     -      x       x     x    x
   250884    shared  shared     -     -      -       x     x    x
   119812    shared  shared     -     -      -       -     x    x
   115716    shared  shared     -     -      -       -     -    x
   111620    shared  shared     -     -      -       -     -    -



 wafeperl:

   size       TCL     XAW3D   DBUG PLOTTER  HTML  RDD  XPM  

   885764    static  static     x     x      x     x    x
   775172    shared  static     x     x      x     x    x
   611332    shared  shared     x     x      x     x    x
   586756    shared  shared     -     x      x     x    x
   480260    shared  shared     -     -      x     x    x
   361476    shared  shared     -     -      -     x    x
   353284    shared  shared     -     -      -     -    x
   349188    shared  shared     -     -      -     -    -
  -------------------------------------------------------------
   345092    shared  shared     -     -      -     -    -   writable strings
   144702    shared  shared     -     -      -     -    -   tcx
  -------------------------------------------------------------
   271364    plain perl


 mofeperl:

   size       XM      TCL      DBUG PLOTTER  HTML XMGRAPH RDD  XPM  

  1553078    static  shared     -     -      -       -     x    x
   783364    shared  shared     x     x      x       x     x    x
   750596    shared  shared     -     x      x       x     x    x
   640004    shared  shared     -     -      x       x     x    x
   521220    shared  shared     -     -      -       x     x    x
   390148    shared  shared     -     -      -       -     x    x
   381956    shared  shared     -     -      -       -     -    x
   377860    shared  shared     -     -      -       -     -    -



 Savings for wafe (in KB filesizes):

   using a shared Xaw3d library:  160
   using a shared tcl library:    110
   compiling without HTML:        115
   compiling without PLOTTER:     105
   compiling without DBUG:         28
   compiling without RDD:          ~4
   compiling without XPM:          ~4
   gcc option -fwritable strings    8
 

 Savings for mofe (in KB filesizes):
   using a shared Xm library:    1100
   compiling without XMGRAPH:     130

