[4329] in linux-announce channel archive
Linux-Announce Digest #621
daemon@ATHENA.MIT.EDU (Digestifier)
Mon Dec 15 11:13:07 2003
From: Digestifier <Linux-Announce-Request@senator-bedfellow.mit.edu>
To: Linux-Announce@senator-bedfellow.mit.edu
Reply-To: Linux-Announce@senator-bedfellow.mit.edu
Date: Mon, 15 Dec 2003 11:13:02 EST
Linux-Announce Digest #621, Volume #4 Mon, 15 Dec 2003 11:13:02 EST
Contents:
Vstr 1.0.11 (string library in C) (James Antill)
----------------------------------------------------------------------------
From: James Antill <james@and.org>
Subject: Vstr 1.0.11 (string library in C)
Date: Mon, 15 Dec 2003 09:29:12 CST
About
-----
Vstr is a string library, it's designed so you can work optimally with
readv()/writev() for input/output. This means that, for instance, you
can readv() data to the end of the string and writev() data from the
beginning of the string without having to allocate or move memory. It
also means that the library is completely happy with data that has
multiple zero bytes in it.
This design constraint means that unlike most string libraries Vstr
doesn't have an internal representation of the string where everything
can be accessed from a single (char *) pointer in C, the internal
representation is of multiple "blocks" or nodes each carrying some of
the data for the string. This model of representing the data also
means that as a string gets bigger the Vstr memory usage only goes up
linearly and has no inherent copying. It also means that the string
can do automatic referencing for mmap() areas of memory,
Other convenience functions are also included, so you can: easily
compare data, search for data and split data from a string into
sections (similar to perl's split function). In a POSIX environment
the short cut functions to call readv/writev are included.
It also includes a portable version of a printf-like function (which
is ISO 9899:1999 compliant, and includes support for i18n parameter
position modifiers). However, as well as being portable, there is a
large extension available called "custom formatters" which allows you
to print any type (Ie. ipv4 addresses or Vstr strings) via. the printf
like function (and this is done in such a way that static format
checkers like gcc will understand what is being done).
Main Changes
------------
. The output using vstr_sc_fmt_add_ptr() was fixed, as the wrong type
was used for vstr_sc_fmt_cb_beg().
. vstr_export_chr() was changed to make it easier to optimize for
GCC.
. Custom formatters now accept %d instead of the field width or
precision in the static format checkers compat.
. Build fixes were made for Cygwin, 64-bit architectures, and ICC.
. Debug mode no longer raises false errors when changing certain
configuration values to be externally allocated.
. Added gmp example to install.
Download URLs
-------------
Overview: http://www.and.org/vstr/
Tutorial: http://www.and.org/vstr/tutorial.html
Design: http://www.and.org/vstr/design.html
String API comparison: http://www.and.org/vstr/comparison.html
Printf comparison: http://www.and.org/vstr/printf_comparison.html
ChangeLog: http://www.and.org/vstr/ChangeLog
Security: http://www.and.org/vstr/security.html
All of the above are included in the tar balls and rpms.
Tar balls
---------
http://www.and.org/vstr/1.0.11/vstr-1.0.11.tar.gz
ftp://ftp.and.org/pub/james/vstr/1.0.11/vstr-1.0.11.tar.gz
http://www.and.org/vstr/1.0.11/vstr-1.0.11.tar.bz2
ftp://ftp.and.org/pub/james/vstr/1.0.11/vstr-1.0.11.tar.bz2
YUM repository
--------------
[and-org-james]
name=And.org James' packages
baseurl=ftp://ftp.and.org/yum/fc$releasever-james
RPMs
----
http://www.and.org/vstr/rpms/
ftp://ftp.and.org/pub/james/vstr/rpms/
PAD description
---------------
http://www.and.org/vstr/vstr_pad.xml
--
James Antill -- james@and.org
Need an efficent and powerful string library for C?
http://www.and.org/vstr/
##########################################################################
# Send submissions for comp.os.linux.announce to: cola@stump.algebra.com #
# PLEASE remember a short description of the software and the LOCATION. #
# This group is archived at http://stump.algebra.com/~cola/ #
##########################################################################
------------------------------
** FOR YOUR REFERENCE **
The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:
Internet: Linux-Announce-Request@NEWS-DIGESTS.MIT.EDU
You can submit announcements to be moderated via:
Internet: linux-announce@NEWS.ORNL.GOV
Linux may be obtained via one of these FTP sites:
ftp.funet.fi pub/Linux
tsx-11.mit.edu pub/linux
sunsite.unc.edu pub/Linux
End of Linux-Announce Digest
******************************