Reading up on [Subversion], I came across some references to the ''Apache Portable Runtime Library'' [http://svnbook.red-bean.com/en/1.1/ch08s02.html#svn-ch-8-sect-2.1], which is described as follows: : APR is Apache's portability library, originally carved out of its server code as an attempt to separate the OS-specific bits from the OS-independent portions of the code. The result was a library that provides a generic API for performing operations that differ mildly—or wildly—from OS to OS. My main reaction to this was "So what? We've got one of these too — perhaps even more portable" (cf. [On What Platforms Does Tcl Run]), but of course "XXX Portable Runtime Library" sounds a bit snazzier than libtcl.so... Therefore I think it would be a good idea to collect some information about using Tcl as a [C] library, but since I haven't had much practical experience in the matter, I'm hoping others can lend a hand in fleshing it out, — [Lars H], 2007-11-11. ---- Features available from the Tcl C library include... '''Low level features''' (meaning roughly you can use them without worrying about the big picture) Hashes: Keys can be strings, integers, or pointers. Entries are pointers. Custom hashing functions can, but doesn't have to, be supplied. [DString]s: Efficient C-style strings whose memory allocation grow as needed — no more buffer overflows! [regexp]s: A [Unicode]-aware and fast RE engine. '''Medium level features''' [Tcl_Obj]s, lists, and dicts: Nestable generic data containers. [encoding]s: Convert between Unicode and other character encodings. libtommath (as of 8.5): Arbitrary-precision arithmetic Event loop: [[write something about it]] '''High level features''' [channel]s: Attached to files, pipes, sockets, serial ports, or whatsnot. Stackable. [[Probably have many more features]] FileSystems: Native or [VFS], it's all the same. Support for varying file path syntaxes. [Tcl] interpreter: You can have none, one, or several; create or destroy dynamically. [[List incomplete. Categorization may be wrong.]] [[Would be nice to point out areas where Tcl hides inconsistent behaviour on different platforms. [Threads], perhaps?]] ---- [[ [Category Tcl Library] | [Category Advocacy] ]]