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.
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。