libbutl/0.8.0

[full]

build2 utility library

This package contains the build2 utility library.

build2 is an open source, cross-platform toolchain for building and packaging
C++ code. Its aim is a modern build system and dependency manager for the C++
language that provide a consistent, out of the box interface across multiple
platforms and compilers. For more information see:

https://build2.org/

This library is a collection of utilities that are used throughout the
toolchain.

See the NEWS file for the user-visible changes from the previous... More
version 0.8.0
priority low
license MIT and BSD-3 and BSD-2MIT except for 5 files from the FreeBSD project
repository pkg:cppget.org/alpha
location https://pkg.cppget.org/1/alpha
download https://pkg.cppget.org/1/alpha/build2/libbutl-0.8.0.tar.gz
sha256 ca2ce1715aad0ffb3b3957344923f70b7ee760d45fb97d17b8a9453be3bcd54d
project build2
url https://build2.org
doc-url https://build2.org/doc.xhtml
src-url https://git.build2.org/cgit/libbutl/tree/
build-email builds@build2.org
tags utility library

Requires

c++14

Builds

toolchain public-0.8.0
config linux-gcc_7.3 / x86_64-linux-gnu
timestamp 2019-01-23 21:35:51 UTC (01:52:57 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config windows_10-msvc_15u8 / x86_64-microsoft-win32-msvc14.1
timestamp 2019-01-23 21:31:11 UTC (01:57:37 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config linux-gcc_8.2 / x86_64-linux-gnu
timestamp 2019-01-23 20:01:17 UTC (03:27:31 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config macos_10.13-homebrew_gcc_8.1 / x86_64-apple-darwin17.5.0
timestamp 2019-01-23 15:18:28 UTC (08:10:20 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config macos_10.13-clang_9.1 / x86_64-apple-darwin17.5.0
timestamp 2019-01-23 15:14:26 UTC (08:14:22 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config macos_10.13-clang_10.0 / x86_64-apple-darwin17.5.0
timestamp 2019-01-23 15:11:15 UTC (08:17:33 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config macos_10.12-clang_8.1 / x86_64-apple-darwin16.4.0
timestamp 2019-01-23 15:08:13 UTC (08:20:35 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config windows_10-msvc_15u7 / x86_64-microsoft-win32-msvc14.1
timestamp 2019-01-23 12:43:33 UTC (10:45:15 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config windows_10-msvc_15u0 / x86_64-microsoft-win32-msvc14.1
timestamp 2019-01-23 12:40:16 UTC (10:48:32 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config windows_10-msvc_14 / x86_64-microsoft-win32-msvc14.0
timestamp 2019-01-23 12:35:26 UTC (10:53:22 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config windows_10-mingw_w64_gcc_7.2 / x86_64-w64-mingw32
timestamp 2019-01-23 12:22:52 UTC (11:05:56 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config linux-clang_6.0_libc++ / x86_64-linux-gnu
timestamp 2019-01-23 12:18:06 UTC (11:10:42 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config linux-clang_6.0 / x86_64-linux-gnu
timestamp 2019-01-23 12:16:03 UTC (11:12:45 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config linux-clang_5.0 / x86_64-linux-gnu
timestamp 2019-01-23 12:14:36 UTC (11:14:12 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config freebsd_11-clang_3.8 / x86_64-freebsd11.0
timestamp 2019-01-23 12:13:09 UTC (11:15:40 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config linux-gcc_4.9 / x86_64-linux-gnu
timestamp 2019-01-23 12:10:50 UTC (11:17:58 hours ago)
result success | log | rebuild
toolchain public-0.8.0
config linux-gcc_8.1 / x86_64-linux-gnu
timestamp 2019-01-23 12:09:35 UTC (11:19:13 hours ago)
result success | log | rebuild

Changes

Version 0.8.0

  * Add portable environment variable manipulation functions.

  * Add regex_replace_match() and rename regex_replace_ex() to
    regex_replace_search().

  * Reimplement the optional class template not to require default-
    constructible value types.

  * New prompt facility (moved from bpkg).

  * Support for hashing ifdstream in sha* classes.

  * New project_name class (moved from bpkg::package_name).

  * Add git_repository(), git_version() utility functions.

  * New semantic_version class for parsing semantic and semantic-like
    versions.

  * Add timed_wait() and kill() process functions.

  * Support for UUID generation.

Version 0.7.0

  * Initial attempt at Modules TS-based modularization.

  * Add process::pipe struct, extend process API.

  * Add path::make_{directory,leaf,base}().

  * Relax path combination requirement for LHS to contain trailing slash.

    Now if there is no slash, we automatically add the canonical one. This
    allows (natural) code like this:

    path f (d / "foo" / "bar");

  * Add support for copying file timestamp by cpfile().

  * Add support for directory symlinks on Windows.

  * Add ignore_dangling parameter to dir_iterator() constructor.

  * Change standard_version epoch syntax from '~' to '+-'.

  * Add support for standard_version constraint shortcut operators (~ and ^).

  * Add support for calculating SHA1 checksums.

  * Implement small_list and small_forward_list.

    Note that with VC small_list is never "small" because of the extra
    "headnode" that this implementation allocates (see notes in small-list.mxx
    for details).

Version 0.6.0

  * Various new functionality in the path, timestamp, manifest, process,
    fdstream, and filesystem facilities.

  * Character scanner improvements and optimizations.

  * New openssl process wrapper classes.

  * New regex utility functions.

  * Fast-path SHA256 functions.

Version 0.5.0

  * Various new functionality in the process, fdstream, and filesystem
    facilities.

  * Feature test facility (ft/).

  * Tab, manifest parsers/serializers.

  * Process wrappers for running sendmail and curl.

  * Standard version and range classes.

Version 0.4.0

  * The process class has been redesigned and extended.

  * The basic_path class template has been redesigned and extended. The path
    representation now stores the directory trailing slash, if present.

  * The fdstream classes have been redesigned and extended.

  * A number of new filesystem manipulation functions have been added.

  * Add path::temp_directory(), path::temp_path() utility functions.

  * Add base64_encode(), base64_decode() utility functions.

  * Add portable ucase(), lcase(), casecmp(), alpha(), digit(), alnum().

  * The 'freebsd' target triplet class has been changed to 'bsd'.

Version 0.3.0

  * Add SHA256 hash calculator based on code from the FreeBSD project. That
    code is (naturally) licensed under the simplified/2-clause BSD license so
    the library is now MIT/BSD-licensed.

    Also add helper sha256_to_fingerprint() fingerprint_to_sha256() functions.

  * Add vector_view class template.

  * Add path::realize() (on POSIX calls realpath(3)), path::compare().

  * Recognize MSVC target triplet (*-microsoft-win32-msvcXX.Z).

  * Derive a target class from the target triplet for some targets. Currently
    the classes are: 'linux', 'macosx', 'freebsd', 'windows', and 'other'.

  * Add timestamp from_string().

  * Add combine_hash() utility function.

Version 0.2.0

  * First public release.