History log of /src/lib/libc/stdlib/Makefile.inc
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base
# 1.105 20-Jul-2025 dholland

lib/libc/stdlib: sort MLINKS (p comes before q)


# 1.104 02-Mar-2025 riastradh

libc: New _r variants of heapsort, mergesort, qsort.

Also kheapsort_r for kernel/standalone use.

These variants allow the caller to pass a cookie through to the
comparison function, e.g. if you want to sort an array of indices
into a buffer.

qsort_r is new in POSIX.1-2024; the others are obvious analogues of
our nonstandard extensions for heapsort and mergesort.

PR lib/58931: qsort_r() missing


# 1.103 23-Sep-2024 christos

Move lintflags to jemalloc Makefile.inc fragment


# 1.102 23-Sep-2024 christos

get the variable name right


# 1.101 23-Sep-2024 christos

Handle multiple versions of jemalloc


# 1.100 24-Jul-2024 kre

Improve the man for strtoi() (and consequently strtou())

PR lib/58461 PR lib/58453

Improve the wording so it is clearer exactly what strtoi() is
intended to do in various cases.

While here, add, in the most minimalist way possible, the
strtoi_l(), and so also strtou_l(), functions, which seem to
have been previously undocumented.

Do some linguistic gymnastics so that the conversion of the
page from strtoi(3) -> strtou(3) will not generate "an unitmax_t"
which is incorrect, we need "a unitmax_t" - one of those was
easy to fix in the Makefile sed script, the others would have
been more difficult, so reword instead.


Revision tags: perseant-exfatfs-base-20240630 perseant-exfatfs-base
# 1.99 07-Jun-2024 riastradh

branches: 1.99.2;
libc: Pacify lint on aarch64.


# 1.98 27-Jan-2024 christos

fix i386 lint


# 1.97 20-Jan-2024 christos

generate strtou.3 from strtoi.3, grammar police


# 1.96 19-Jan-2024 christos

Add lint flags for jemalloc


Revision tags: netbsd-9-4-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base netbsd-9-3-RELEASE cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
# 1.95 04-Mar-2019 christos

branches: 1.95.2; 1.95.10;
Hook for jemalloc


Revision tags: pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.94 05-Jan-2018 snj

branches: 1.94.4;
add strfmon_l man page links


Revision tags: perseant-stdc-iso10646-base
# 1.93 11-Jul-2017 joerg

Implement __cxa_thread_atexit and __cxa_thread_atexit_impl. This
functions are used for destructors of thread_local objects.

If a pending destructor exists, prevent unloading of shared objects.
Introduce __dl_cxa_refcount interface for this purpose. When the last
reference is gone and the object has been dlclose'd before, the
unloading is finalized.

Ideally, __cxa_thread_atexit_impl wouldn't exist, but libstdc++ insists
on providing __cxa_thread_atexit as direct wrapper without further
patching.


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.92 01-Apr-2016 msaitoh

branches: 1.92.8;
Add malloc.conf.5 (link to jemalloc.3).


# 1.91 07-Nov-2015 nros

Add the C11 function aligned_alloc to libc.


# 1.90 01-May-2015 christos

- new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski


# 1.89 17-Feb-2015 joerg

Introduce reallocarr(3) for easy (re)allocation of memory with overflow
checks. Compared to OpenBSD's reallocarray, makes it easier to avoid memory
leaks on allocation failures and it doesn't depend on malloc(0) != NULL
for correct error checking. Compared to plain realloc, it also avoids
the problem of intermediate integer overflows. The trade-off is the use
of void * to side step C type system with regard to generic pointer to
pointer.


# 1.88 05-Feb-2015 christos

Revert addition to reallocarray to the malloc man page, but keep
the examples. Add separate manual page to reallocarray explaining
what are the problems with it.


# 1.87 05-Feb-2015 christos

Add and use reallocarray() to prevent a multiplication overflow in allocation.
Reported by Guido Vranken, thanks!


# 1.86 18-Jan-2015 christos

man page for strtonum.3


# 1.85 16-Jan-2015 christos

Add strtonum implemented as a wrapper of strtoi.


# 1.84 16-Jan-2015 christos

strtoi and strtou additions


# 1.83 10-Dec-2014 pooka

Add two more Makefile conditionals required for RUMPRUN=yes

* do not build _errno.c (different thread/tls handling)
* do not build either phk- or jemalloc (different backing page allocation)

Somehow I missed these in the previous commit, but now libc built with
RUMPRUN=yes works also with rumprun-posix, so there's reasonably high
confidence that I didn't miss anything anymore.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.82 20-Jul-2014 christos

branches: 1.82.2;
Our hdestroy implementation was non-conformant because it freed the key of
each entry. Add a new function hdestroy1 that allows the user to control
what gets freed. Pointed out by Pedro Giffuni at FreeBSD.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.81 08-Jan-2014 christos

branches: 1.81.2;
add ptsname_r


# 1.80 02-Dec-2013 lneto

changed lua_Number to int64_t


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.79 26-Apr-2013 christos

add {at_,}quick_exit(3) from FreeBSD


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.78 14-Sep-2011 christos

branches: 1.78.2; 1.78.8;
add re-entrant versions of the hash functions based on the GNU api.


Revision tags: cherry-xenmp-base
# 1.77 13-Apr-2011 jruoho

Collect also the division functions to single place, div(3).


# 1.76 13-Apr-2011 jruoho

Collect abs(3), labs(3), llabs(3), and imaxabs(3) to a single small page.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.75 14-Nov-2010 tron

Improve and simplify implementation of *env(3) functions:
- Use RB tree to keep track of memory allocated via setenv(3) as
suggested by Enami Tsugutomo in private e-mail.
This simplifies the code a lot as we no longer need to keep the size
of "environ" in sync with an array of allocated environment variables.
It also makes it possible to free environment variables in unsetenv(3)
if something has changed the order of the "environ" array.
- Fix a bug in getenv(3) and getenv_r(3) which would return bogus
results e.g. for " getenv("A=B") " if an environment variable "A"
with value "B=C" exists.
- Clean up the internal functions:
- Don't expose the read/write lock for the environment to other parts
of "libc". Provide locking functions instead.
- Use "bool" to report success or failure.
- Use "ssize_t" or "size_t" instead of "int" for indexes.
- Provide internal functions with simpler interfaces e.g. don't
combine return values and reference arguments.
- Don't copy "environ" into an allocated block unless we really need
to grow it.

Code reviewed by Joerg Sonnenberger and Christos Zoulas, tested by
Joerg Sonnenberger and me. These changes also fix problems in
zsh 4.3.* and pam_ssh according to Joerg.


# 1.74 03-May-2010 jruoho

Split the implementation details of malloc(3) to a separate jemalloc(3)
manual page. This way malloc(3) can follow the standard terse format used
elsewhere in the libc, while additional details can be added to jemalloc(3).

Note HISTORY and AUTHORS in jemalloc(3), and add some reading material to
SEE ALSO.


Revision tags: matt-premerge-20091211
# 1.73 31-Jul-2009 dsl

Add the 'abs', 'div' and 'erand48' sources to stdlib/Makefile.inc.
Change the arch files only include the .S files.
This adds imaxdiv() to some archs where it was missing.


# 1.72 20-Jul-2009 joerg

Add a fast, platform independent hash function to libc.
The algorithm used is the Jenkins hash. The name (mi_vector_hash)
reflects the nature of the hash function.
Add glue for libc ATF tests and include a test case to make sure that
(mis)alignment and endianess are handled correctly.

Bump libc minor to 169.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE jym-xensuspend-nbase netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 christos-time_t-nbase christos-time_t-base netbsd-5-base
# 1.71 26-Oct-2008 mrg

branches: 1.71.4;
define and use LIBCDIR in terms of .CURDIR. fixes compat/lib/libc build.


Revision tags: matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.70 20-Aug-2008 joerg

Unify the implementation of strto{l,ul,ll,ull,imax,umax,q,uq} into one
version for signed and one version for unsigned data types.

Add a check for supported bases and set errno (userland) or panic
(kernel, libsa) otherwise.

Make strto{ll,ull,imax,umax} normal symbols and just keep the underscore
versions as strong alias.

Obtained from DragonFly, based on the wide char version from Citrus.
Reviewed by christos@


# 1.69 04-Aug-2008 matt

Add C99 functions imaxabs and imaxdiv.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
# 1.68 28-Nov-2007 christos

branches: 1.68.8;
Sync phk malloc.c with the latest one from FreeBSD. This gives us the
same api as jemalloc by:

- adding posix_memalign()
- moving calloc in the same file
- renaming malloc_options -> _malloc_options


# 1.67 19-Nov-2007 ad

Enable posix_memalign().


# 1.66 06-Oct-2007 ad

Use jemalloc as the default allocator unless USE_JEMALLOC=no.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 matt-mips64-base wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.65 22-Mar-2006 drochner

branches: 1.65.10;
build erand48_ieee754.c on everything but vax


# 1.64 15-Mar-2006 kleink

Add strtof(3) and strtold(3); welcome libc 12.137.


# 1.63 25-Jan-2006 kleink

Drop in gdtoa as a replacement for dtoa, strtod() from stdlib/strtod.c.


# 1.62 20-Jan-2006 christos

Kill _Exit; breaks build on cygwin and this implementation "is not exactly
equivalent to calling _exit".


# 1.61 25-Sep-2005 christos

add getenv_r and ttyname_r


# 1.60 13-Sep-2005 christos

compat core reorg.


# 1.59 06-Jul-2005 drochner

Move insque/remque/lsearch/lfind from libcompat to libc,
they are in XPG4-UNIX, XSH5.0, mentioned in SUSv3 etc.
Minimal update of the manpages. (more needed)


# 1.58 03-Apr-2005 christos

Add FreeBSD's strfmon(3). From Rui Paulo. No bump this time. Take advantage
of the getpwent_r bump.


Revision tags: netbsd-3-base
# 1.57 05-Aug-2004 yamt

branches: 1.57.2;
actually add _Exit.


# 1.56 27-May-2004 christos

unix/98 pty functions and manual pages.


Revision tags: netbsd-2-0-base
# 1.55 07-Apr-2003 kleink

branches: 1.55.2;
Observed in other places: move __unsetenv13.c near unsetenv.c, only
group name space wrappers separately.


# 1.54 07-Apr-2003 drochner

compile unsetenv(3) into libc or you'll mess up your system


Revision tags: nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
# 1.53 29-Nov-2002 lukem

add strsuftoll(3) and strsuftollx(3) - parse a string for a number
with an optional suffix, product (two numbers separated by `x'), and
provide range checking


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.52 28-Apr-2001 kleink

* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.


# 1.51 16-Feb-2001 msaitoh

branches: 1.51.2;
add hcreate.3


# 1.50 14-Feb-2001 cgd

build new hsearch() code


# 1.49 08-Jan-2001 lukem

link sradixsort(3) -> radixsort(3)


# 1.48 21-Dec-2000 itojun

first import of citrus LC_CTYPE locale. singlebyte only at this moment.
shot-term TODO:
- enable multibyte locales. this includes loadable locale modules
(#ifdef DLRUNE).
- populate LC_CTYPE definition files.
- other functions such as iconv()
- make libc functions more friendly with multibyte.
- multilingualize other LC_xx
- torture tests

XXX don't forget to "make depend" when you rebuild libc, multibyte.c is
moved from lib/libc/stdlib to lib/libc/locale.


Revision tags: netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.47 02-Apr-2000 christos

branches: 1.47.2; 1.47.4;
New getopt_long from Thomas Klausner and Dieter Baron


# 1.46 08-Mar-2000 kleink

No longer need internal names for strtoq() and strtouq().


# 1.45 06-Mar-2000 kleink

Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.44 02-Aug-1999 lukem

replace malloc(3) with one from freebsd which documents our new malloc.c
(also from freebsd). comment out references to reallocf with .\"XXX"
for now. i also fixed some roff misuse as well.
replace calloc(3), free(3) and realloc(3) with links to malloc(3)


# 1.43 26-Jun-1999 tls

The 'new malloc' (phk's malloc, from FreeBSD) is now our only malloc.


# 1.42 17-Jun-1999 tls

add FreeBSD's malloc, compiled in only if MALLOC_NEW is set in mk.conf


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.41 24-Feb-1999 drochner

use ${ARCHDIR} instead of ${.CURDIR}/arch/${MACHINE_ARCH} where appropriate
libc builds on pmax again


# 1.40 22-Feb-1999 christos

t{search,find,walk,delete} from OpenBSD via Neil A. Carson


# 1.39 06-Feb-1999 kleink

Add l64a_r(), a reentrant version of l64a(); found in the Multithreading
Extension of SVID4.


# 1.38 14-Jun-1998 kleink

Add a manual page for a64l() and l64a().


# 1.37 02-Feb-1998 perry

realpath is now part of getcwd.c in gen/; man page moved to gen, too.


# 1.36 01-Feb-1998 frueauf

Add _strtoq.c back to SRCS+= which seemed to get lost while reordering it.


# 1.35 30-Jan-1998 perry

update to lite-2


# 1.34 05-Nov-1997 cgd

A foolish consistency... gen, net, and string all get MD sources
specified by including a Makefile.inc from the appropriate MD directory.
stdlib doesn't do that, but there's no reason that it shouldn't (and
it'd be nice to eliminate the 'if's from the MI stdlib Makefile.inc).


Revision tags: netbsd-1-3-base
# 1.33 15-Jul-1997 kleink

branches: 1.33.2;
Link rand_r(3) to rand(3).


# 1.32 13-Jul-1997 christos

Add local.h for local prototypes.
Fix namespace issues for strtoq and strtouq
Fix gcc warnings.
Fix RCSID's


# 1.31 23-Apr-1997 mrg

move str[fp]time into libc/time.


# 1.30 21-Apr-1997 mrg

add strptime() to libc.


# 1.29 19-Nov-1996 jtc

Added rand_r()


# 1.28 16-Oct-1996 perry

Nuked machine specific conditionals for tahoe.


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.27 28-Dec-1995 thorpej

New-style RCS ids.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.26 25-Apr-1995 ragge

Changed abs.S to abs.c for vax.


# 1.25 22-Mar-1995 jtc

Enable qabs(), a quad_t version of abs() and labs().


# 1.24 21-Mar-1995 jtc

New function qdiv. Like div and ldiv, but works with quad_t's.


# 1.23 10-Feb-1995 cgd

list the files needed on the alpha.


# 1.22 22-Dec-1994 cgd

specify man pages the new way.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.21 16-Jun-1994 mycroft

Add merge.c and mergesort.3.


# 1.20 20-May-1994 jtc

44lite moved cfree() to libcompat


# 1.19 17-May-1994 mycroft

Add realpath(3).


# 1.18 17-Mar-1994 jtc

Remove machine-dependent atof() implementations; use machine independant
version that wraps strtod() instead.


# 1.17 03-Jan-1994 jtc

Integrate strtoq() and strtouq() from bsd-sources on uunet.


# 1.16 05-Dec-1993 briggs

Changed occurance of MACHINE_ARCH == "hp300" to MACHINE_ARCH == "m68k"


# 1.15 05-Dec-1993 cgd

get pc532 moved into ns32k; that's is MACHINE_ARCH


# 1.14 04-Dec-1993 cgd

update for .S and MACHINE_ARCH


# 1.13 22-Oct-1993 jtc

Added 1170's a64l() & l64a() functions.


# 1.12 19-Oct-1993 cgd

fixes from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de> to:
(1) don't clobber the MLINKS variable in rpc
(2) install the rand48 man page in stdlib


# 1.11 13-Oct-1993 jtc

Split cfree() out of calloc.c.
If a user compiling in a strict ANSI or strict POSIX environment uses his
own function named cfree (which is legal, since cfree is not in a restricted
namespace) and calloc, the link will fail due to the cfree in calloc.c.


# 1.10 09-Oct-1993 jtc

Added rand48 manual page.


# 1.9 09-Oct-1993 jtc

Make it possible to use machine dependant versions of div and ldiv functions.
Use the new i386 versions of div and ldiv.


# 1.8 08-Oct-1993 jtc

Use machine dependant version of labs.[cs] if one is present.
If not one of the enumerated list of machines, use the C language
versions of abs, labs, and atof.


# 1.7 07-Oct-1993 brezak

Rand48 routines from martin@ntkupc1.tuwien.ac.at (Martin Birgmeier)


# 1.6 07-Oct-1993 cgd

make an arch directory in libc, and move all machine dirs into it


# 1.5 17-Sep-1993 phil

pc532 specifics.


# 1.4 01-Aug-1993 mycroft

Add RCS identifiers.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.3 09-Jul-1993 cgd

don't include an extra atof.c...


# 1.2 09-Jul-1993 cgd

update for better FP routines, from AT&T & elsewhere


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision