diff options
author | Rob Landley <rob@landley.net> | 2016-08-14 19:04:02 -0500 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2016-08-14 19:04:02 -0500 |
commit | a7055db6cb0cde39ca0e6533f63290e0170854a6 (patch) | |
tree | e2119e8500d168dedbf1986741577bc8a6e62603 /www/design.html | |
parent | 8b685bae21f8753925dbefb8b07b78c47534f943 (diff) | |
download | toybox-a7055db6cb0cde39ca0e6533f63290e0170854a6.tar.gz |
Explain shared library policy, fix an unblanaced tag, add some links.
Diffstat (limited to 'www/design.html')
-rw-r--r--[-rwxr-xr-x] | www/design.html | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/www/design.html b/www/design.html index b358d440..993a7f78 100755..100644 --- a/www/design.html +++ b/www/design.html @@ -289,12 +289,13 @@ older kernels or other implementations (ala BSD), but we don't police their corner cases.</p> <b><h3>32/64 bit</h3></b> -<p>Toybox should work on both 32 bit and 64 bit systems. By the end of 2008 -64 bit hardware will be the new desktop standard, but 32 bit hardware will -continue to be important in embedded devices for years to come.</p> +<p>Toybox should work on both 32 bit and 64 bit systems. 64 bit desktop +hardware went mainstream in 2005 and was essentially ubiquitous +by the end of the decade, but 32 bit hardware will continue to be important +in embedded devices for several more years.</p> <p>Toybox relies on the fact that on any Unix-like platform, pointer and long -are always the same size (on both 32 and 64 bit). Pointer and int are _not_ +are always the same size (on both 32 and 64 bit). Pointer and int are _not_ the same size on 64 bit systems, but pointer and long are.</p> <p>This is guaranteed by the LP64 memory model, a Unix standard (which Linux @@ -352,6 +353,28 @@ of it.)</p> <p>Locale support isn't currently a goal; that's a presentation layer issue (I.E. a GUI problem).</p> +<p><h3>Shared Libraries</h3></p> + +<p>Toybox's policy on shared libraries is that they should never be +required, but can optionally be used to improve performance.</p> + +<p>Toybox should provide the command line utilities for +<a href=roadmap.html#dev_env>self-hosting development evirionments</a>, +and an easy way to set up "hermetic builds" (I.E. builds which provide +their own dependencies, isolating the build logic from host command version +skew with a simple known build environment). In both cases, external +dependencies defeat the purpose.</p> + +<p>This means toybox should provide full functionality without relying +on any external dependencies (other than libc). But toybox may optionally use +libraries such as zlib and openssl to improve performance for things like +deflate and sha1sum, which lets the corresponding built-in implementations +be simple (and thus slow). But the built-in implementations need to exist and +work.</p> + +<p>(This is why we use an external https wrapper program, because depending on +openssl or similar to be linked in would change the behavior of toybox.)</p> + <a name="codestyle" /> <h2>Coding style</h2> |