At iMatix we develop portable free and commercial software. We work in
ANSI C to cover the widest range possible. A major part of our toolkit has
always been our subroutine library. This was initially written for MS-DOS in
1991 but has developed into a more ambitious project since then.
From the outset, we ignored commercial libraries. Our software is usually
Open Source and using a commercial library would have been a problem. We
looked for free libraries, but found only specialised and mostly
non-portable collections of functions. So, we built our own. We hope you
like it. We certainly use it all the time.
When we designed the SFL, we had certain things in mind:
- Portability: we are lazy, and don't have much time. So, we want to do
our editing and testing on the fastest PC possible, then move the results to
a 'real' system (UNIX, VMS, whatever) recompile, and test. Obviously, some
code cannot be tested fully on all systems - we don't have sockets under
MS-DOS - but this approach works for most projects. The SFL
encapsulates non-portable aspects so that application programs do
not need to know about specific systems.
- Building servers, i.e. programs that run in the background, for a long
time, without intervention from a user or operator. Servers have specific
needs, and must be extremely robust, since they must run for long periods.
The SFL provides many functions that are specifically meant for this type of
program.
- Functionality: the classic purpose of any library. If a problem has a
clean, tested, documented, and portable solution, we will use that instead
of re-inventing it. The SFL provides a stable home for code that might
otherwise float around in various projects.
- Discipline: we make our code public, and expect people to read it. We
actually include the code for each function as part of its documentation.
This forces us to be crystal clear.
- Hubris: we think our code is so great that it should live for ever. So,
we take great pains to make it useful, clean, efficient, and well-packaged,
so you'll think so too.
The SFL is in use on at least these systems:
- MS-Windows (MSVC, Borland, Watcom, gcc)
- MS-DOS (MSVC, Borland Turbo-C)
- OS/2 (EMX)
- Linux
- IBM RS/6000 AIX
- Sun SunOS
- Sun Solaris
- HP HP/UX
- Digital UNIX
- FreeBSD
- NetBSD
- SCO OpenServer
- SCO UnixWare
- Digital OpenVMS
Some recent functions may not have been tested or implemented across all
platforms. Some functions are empty on some platforms. Since the SFL is
continually improving and enlarging, there are always newer functions that
are less tested, and possibly less than 100% portable. Our intention is that
the transparency of the SFL makes these functions easy to test and improve.
| << | <
| > | >>
|
Copyright © 1996-2000 iMatix Corporation |