All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Durgin <josh.durgin@inktank.com>
To: Noah Watkins <noah.watkins@inktank.com>,
	"ceph-devel@vger.kernel.org" <ceph-devel@vger.kernel.org>,
	Gregory Farnum <greg@inktank.com>,
	Gregory Farnum <gregory.farnum@inktank.com>
Subject: Re: feedback on supporting libc++
Date: Wed, 30 Oct 2013 12:02:24 -0700	[thread overview]
Message-ID: <527157C0.40802@inktank.com> (raw)
In-Reply-To: <CA+Hcz5-8k3rnCaJJj3htb0F63V+fitoBtofCkGzJZ4a_j29K8Q@mail.gmail.com>

On 10/29/2013 03:51 PM, Noah Watkins wrote:
> Out of the box on OSX Mavericks libc++ [1] is being used as opposed to
> libstdc++. One of the issues is that stuff from tr1 isn't available
> (e.g. std::tr1::shared_ptr), as they have moved to std in c++11.
>
> I'm looking for any feedback on this patch set, or if there is a
> better way forward.
>
> A set of patches on ceph.git:wip-libc++ [2] adds initial support (with
> a couple temporary hacks). These patches are very similar to the
> method used to support libc++ in mongodb.
>
> Summary of changes:
>
>    std::tr1::shared/weak_ptr maps to ceph::shared/weak_ptr

I'm fine with this approach in general, but we need to be careful about
changing librados.h[pp], since that may break the ABI.

We really should've hidden the entire implementation of ObjectIterator
to begin with, but now we're stuck with it in librados.hpp. This branch
changes a std::tr1::shared_ptr there to a ceph::shard_ptr, which looks
unsafe to me. Could you check whether you can run 'rados ls' compiled
against an old librados, but dynamically loading librados from this
branch compiled in c++98 mode?

Josh

>    hash_map/set maps to ceph::unordered_map/set
>
> which will choose tr1::unordered_map/set over ext/hash_map/set.
>
> [1] http://libcxx.llvm.org/
> [2] https://github.com/ceph/ceph/compare/wip-libc%2B%2B


  parent reply	other threads:[~2013-10-30 19:02 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-29 22:51 feedback on supporting libc++ Noah Watkins
2013-10-30 16:13 ` asomers
2013-10-30 19:02 ` Josh Durgin [this message]
2013-12-27 23:34   ` Noah Watkins
2013-12-31  1:19     ` Josh Durgin
2013-12-31 16:59       ` Noah Watkins
2013-12-31 18:59         ` Josh Durgin
2014-01-09 19:54           ` Noah Watkins

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=527157C0.40802@inktank.com \
    --to=josh.durgin@inktank.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=greg@inktank.com \
    --cc=gregory.farnum@inktank.com \
    --cc=noah.watkins@inktank.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.