Re: inline vector container

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3-2-2016 23:10, Matt Benjamin wrote:
> I'll prioritize this.  Using more of folly may be a worthy project as well, but that can wait for later... :)

Hi Matt,

Can you give me a URL for the folly stuff.
Since I cannot find any reference to it in the FreeBSD ports.

I think I'd otherwise prefer Boost, since the ports already contains a
fair amount of Boost stuff.

Currently I have installed:
boost-all-1.55.0      The "meta-port" for boost libraries
boost-docs-1.55.0     Documentation for libraries from boost.org
boost-jam-1.55.0      Build tool from the boost.org
boost-libs-1.55.0_9   Free portable C++ libraries (without Boost.Python)

But I see that the new ports have migrated to:
/usr/ports/devel/boost_build/Makefile:PORTVERSION=      2.0.m12

So that would move it beyond 1.6, I presume.

--WjW


> tx!
> 
> Matt
> 
> ----- Original Message -----
>> From: "Allen Samuels" <Allen.Samuels@xxxxxxxxxxx>
>> To: "Casey Bodley" <cbodley@xxxxxxxxxx>, "Matt Benjamin" <mbenjamin@xxxxxxxxxx>
>> Cc: "Sage Weil" <sweil@xxxxxxxxxx>, ceph-devel@xxxxxxxxxxxxxxx
>> Sent: Wednesday, February 3, 2016 5:06:57 PM
>> Subject: RE: inline vector container
>>
>> I would say that just pulling the latest boost into the tree and using it for
>> builds is the best path forward. But I'm in no way competent to make that
>> kind of change in the build system -- especially during the automake cmake
>> changeover period.
>>
>>
>> Allen Samuels
>> Software Architect, Fellow, Systems and Software Solutions
>>
>> 2880 Junction Avenue, San Jose, CA 95134
>> T: +1 408 801 7030| M: +1 408 780 6416
>> allen.samuels@xxxxxxxxxxx
>>
>>
>> -----Original Message-----
>> From: Casey Bodley [mailto:cbodley@xxxxxxxxxx]
>> Sent: Wednesday, February 03, 2016 1:26 PM
>> To: Matt Benjamin <mbenjamin@xxxxxxxxxx>
>> Cc: Sage Weil <sweil@xxxxxxxxxx>; Allen Samuels <Allen.Samuels@xxxxxxxxxxx>;
>> ceph-devel@xxxxxxxxxxxxxxx
>> Subject: Re: inline vector container
>>
>> Hi Allen,
>>
>> I did spend some time a couple months ago experimenting with a custom
>> allocator with inline storage for standard containers. You can find my
>> branch on github at
>> https://github.com/cbodley/ceph/commits/wip-preallocator.
>>
>> I was aiming for a general solution that worked with non-contiguous
>> containers, but couldn't find a good way to handle deallocations. So the
>> approach was really only a good fit for std::vector.
>>
>> I also had trouble getting it to do the right thing with the copy and move
>> operators. I found that it was trying to use the new allocator to release
>> memory that came from the old allocator. Presumably there's a way to make
>> this work using std::allocator_traits; have you had better luck here? I'd
>> love to see your prototype.
>>
>> I tend to agree that we should go with the boost solution if we can. But if
>> a) we can't use boost::small_vector in the near-term due to versioning, and
>> b) we can get a custom version tested and working, it might be worth
>> pursuing.
>>
>> Casey
>>
>> ----- Original Message -----
>>> Hi,
>>>
>>> I think we should go with small_vector for this role, yes.  I found
>>> two issues.  First, there are critical defects in small_vector prior
>>> to boost 1.6.0.  Second, though it is header-only, the coupling with
>>> related version-specific boost types (container, allocator, respective
>>> detail types, and platform-specific selectors...) seems to make
>>> pulling it in separately pretty unrealistic as an option.  I looked at
>>> the cost of pulling in and selectively compiling (libs) an entire
>>> boost 1.6, and that went a lot easier (added less than a minute to my build
>>> time).
>>>
>>> Matt
>>>
>>> ----- Original Message -----
>>>> From: "Sage Weil" <sweil@xxxxxxxxxx>
>>>> To: "Allen Samuels" <Allen.Samuels@xxxxxxxxxxx>
>>>> Cc: ceph-devel@xxxxxxxxxxxxxxx, mbenjami@xxxxxxxxxx,
>>>> cbodley@xxxxxxxxxx
>>>> Sent: Wednesday, February 3, 2016 3:04:57 PM
>>>> Subject: Re: inline vector container
>>>>
>>>> On Wed, 3 Feb 2016, Allen Samuels wrote:
>>>>> One thing that the code base needs is a simple vector container
>>>>> that is optimized for a small number of elements, i.e., for small
>>>>> element counts we avoid the malloc/free overhead. But fully
>>>>> supports being resized into larger containers that are unbounded.
>>>>> Of course it will need to follow all of the proper object
>>>>> copy/move semantics so that things like unique_ptr, etc work
>>>>> correctly.
>>>>>
>>>>> I heard rumors that there was one available in the boost world,
>>>>> but I can’t seem to find it. Do you know about one being
>>>>> available?
>>>>
>>>> http://www.boost.org/doc/libs/1_60_0/doc/html/boost/container/small_
>>>> vector.html
>>>>
>>>>> I’ve been prototyping one myself, just to get re-familiar with all
>>>>> of the
>>>>> C++11 move sementics, and trivial constructors, etc.
>>>>>
>>>>> The code is pretty complete, but the testing gets rather involved.
>>>>> There’s
>>>>> no reason to contain this if it’s available elsewhere. But if it
>>>>> isn’t I plan on continuing this…
>>>>
>>>> I think Casey had prototyped something similar using a custom
>>>> allocator, too, but I didn't actually look at the result.  And Matt
>>>> talked about just pulling the boost one in-tree until we get updated
>>>> boost in the supported distros, but I forget if he ran into problems
>>>> there or not...
>>>>
>>>> sage
>>>
>>> --
>>> --
>>> Matt Benjamin
>>> Red Hat, Inc.
>>> 315 West Huron Street, Suite 140A
>>> Ann Arbor, Michigan 48103
>>>
>>> http://www.redhat.com/en/technologies/storage
>>>
>>> tel.  734-707-0660
>>> fax.  734-769-8938
>>> cel.  734-216-5309
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe ceph-devel"
>>> in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo
>>> info at  http://vger.kernel.org/majordomo-info.html
>>>
>> PLEASE NOTE: The information contained in this electronic mail message is
>> intended only for the use of the designated recipient(s) named above. If the
>> reader of this message is not the intended recipient, you are hereby
>> notified that you have received this message in error and that any review,
>> dissemination, distribution, or copying of this message is strictly
>> prohibited. If you have received this communication in error, please notify
>> the sender by telephone or e-mail (as shown above) immediately and destroy
>> any and all copies of this message in your possession (whether hard copies
>> or electronically stored copies).
>>
> 

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux