[cfe-dev] How to package library TSes

Marshall Clow mclow.lists at gmail.com
Tue Jul 21 11:38:20 PDT 2015


There's a lot of changes coming to the standard library. The standards
committee is looking at (and in several cases, approved) proposals for
networking, ranges, concurrency, parallelism, transactional memory,
file-system, and concepts. Each of these will require changes to the
standard library.

Some (most) of them are "Technical Specifications", which means that they
are not officially part of the standard. The goal for then TS-es is to give
implementors and users experience with the features, so that the standards
committee can get feedback about when (and if) they should be adopted into
the standard.

The other part of this is that the TS-es *change*. People give feedback,
and the committee updates the proposals, and the code changes. There's a
reason that most of them live in the namespace "std::experimental".

Some of these proposals can be implemented as templates that live in a
header file, and require no new functionality from the dynamic library
libc++.dylib. Most of them, however, have a separately compiled part, and
that is the purpose of this email.

How should these parts be delivered?

The choices, I see, are:
* As part of the libc++ dynamic library.
* As a set of statically linkable object libraries.
* As a set of dynamic libraries.
* Something else

The first option, it seems to me, is a non-starter. There are some systems
(FreeSBD, Mac OS X) that ship libc++ as the system runtime library, and
replacing that library (on the fly) is a easy way to render your system
inoperative.

On the other hand, having the vendors ship updated libraries a few
times/year (or less) is a great way to slow down the entire process.

So, I'm asking - what do people want?  (and why)

-- Marshall
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150721/74ce49ef/attachment.html>


More information about the cfe-dev mailing list