[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Anyone knows about "snow" compilers?
From:       Roberto Alsina <ralsina () conectiva ! com ! ar>
Date:       2001-04-18 0:26:18
[Download RAW message or body]


Reading http://www.linuxdevices.com/articles/AT7436904154.html
something caught my eye :-)

Another interesting design decision has concerned the choice of
compiler. In an attempt to minimize executable code size, former Agenda
developer Shane Nay pushed the use of the "snow" compiler, a gcc variant
started by Jay Carlson. Developers are accustomed to the choice of dynamic
vs. static library linking. With static linking all addresses are resolved
at link time and the library code used by an application is linked
directly with the application itself, so no run time cost is associated
with using the library's facilities. 

With dynamic linking, the library is loaded into memory separately from
the application, and the library's functions and variables are exposed in
symbolic form. When the application is loaded, the resources it needs from
the library are linked in at that time -- any reference to the library
must be resolved at load time, so load times are slower and executable
file sizes are larger than if static linking is used. 

The snow compiler attempts to gain the best of both the static and dynamic
linking worlds by resolving symbols at link time but loading the
application and libraries separately. Thus libraries can be shared among
applications, but the overhead of dynamic linking is saved. The downside
is that applications refer to specific locations within the libraries, so
the libraries cannot be changed without breaking all the applications to
which they are linked.

This rather confusing hybrid static/dynamic linking scheme reportedly
saves considerable code space and load time, but Agenda has decided
against using it for now because of the maintenance headache involved in
managing library dependencies. This seems like a sensible decision, but as
a result, applications load fairly slowly. 

 ("\''/").__..-''"`-. .         Roberto Alsina
 `9_ 9  )   `-. (    ).`-._.`)  ralsina@conectiva.com.ar
 (_Y_.)' ._   ) `._`.  " -.-'   Director técnico
  _..`-'_..-_/ /-'_.'           Conectiva SA
(l)-'' ((i).' ((!.'             Buenos Aires - Argentina
                                KDE Developer (MFCH)
Futuaris nisi irrisus ridebis. (Carlton, De rerum comoedia)

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic