Date: Thu, 5 Aug 2021 16:43:19 -0400
On 8/5/21 4:40 PM, MLJP wrote:
> If I’ve read your docs correctly you need to put a `cyclic()` check in
> your destructors to prevent UB. That’s not just working on recompilation.
It is there:
https://github.com/philippeb8/root_ptr/blob/master/include/boost/smart_ptr/root_ptr.hpp#L622
>
> Jonathan Tanner
>
>> On 5 Aug 2021, at 9:02 pm, Phil Bouchard via Std-Proposals
>> <std-proposals_at_[hidden]> wrote:
>>
>>
>>
>>
>> On 8/5/21 3:41 PM, Miguel Ojeda wrote:
>>> On Thu, Aug 5, 2021 at 9:01 PM Phil Bouchard<boost_at_[hidden]> wrote:
>>>> Root Pointer is thread safe as shown in my examples.
>>> That is not the point. Rust prevents UB in all safe code. "Root
>>> Pointer" being thread-safe is irrelevant: it does not prevent UB in
>>> the rest of the code.
>>>
>>>> I'll read more about the data races later, but general race conditions aren't gone with Rust:
>>> Given you are unaware of what Rust brings to the table, please stop
>>> claiming your system is "way better" for the kernel.
>>
>> Root Pointer is a memory manager. You can add whatever you want to
>> prevent data races:
>>
>> https://developer.apple.com/documentation/dispatch
>>
>>
>>>> Each one of them is derived from the other so you can use it as a simple shared_ptr, or cyclic-safe shared_ptr. The latter is just sizeof(void *) x 2. Kernel programmers should be smart enough to use a unique type for iterators. My implementation is just very generic.
>>> The claim you made was that your system works for *existing* code with
>>> a simple recompilation as an argument versus "learning Rust"... If
>>> kernel developers need to start discriminating pointers, use smart
>>> pointers or other annotations, or reimplement anything, then your
>>> argument does not work anymore.
>>
>> My working method is:
>>
>> 1) Make things work;
>>
>> 2) Optimize.
>>
>> As I said in the other post all the developers needs to know is
>> whether their data is shared across modules or not; for optimization
>> purposes.
>>
>>
>> --
>>
>>
>> *Phil Bouchard*
>> Founder & CTO
>> C.: (819) 328-4743
>>
>> Fornux Logo <http://www.fornux.com>
>> --
>> Std-Proposals mailing list
>> Std-Proposals_at_[hidden]
>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
> If I’ve read your docs correctly you need to put a `cyclic()` check in
> your destructors to prevent UB. That’s not just working on recompilation.
It is there:
https://github.com/philippeb8/root_ptr/blob/master/include/boost/smart_ptr/root_ptr.hpp#L622
>
> Jonathan Tanner
>
>> On 5 Aug 2021, at 9:02 pm, Phil Bouchard via Std-Proposals
>> <std-proposals_at_[hidden]> wrote:
>>
>>
>>
>>
>> On 8/5/21 3:41 PM, Miguel Ojeda wrote:
>>> On Thu, Aug 5, 2021 at 9:01 PM Phil Bouchard<boost_at_[hidden]> wrote:
>>>> Root Pointer is thread safe as shown in my examples.
>>> That is not the point. Rust prevents UB in all safe code. "Root
>>> Pointer" being thread-safe is irrelevant: it does not prevent UB in
>>> the rest of the code.
>>>
>>>> I'll read more about the data races later, but general race conditions aren't gone with Rust:
>>> Given you are unaware of what Rust brings to the table, please stop
>>> claiming your system is "way better" for the kernel.
>>
>> Root Pointer is a memory manager. You can add whatever you want to
>> prevent data races:
>>
>> https://developer.apple.com/documentation/dispatch
>>
>>
>>>> Each one of them is derived from the other so you can use it as a simple shared_ptr, or cyclic-safe shared_ptr. The latter is just sizeof(void *) x 2. Kernel programmers should be smart enough to use a unique type for iterators. My implementation is just very generic.
>>> The claim you made was that your system works for *existing* code with
>>> a simple recompilation as an argument versus "learning Rust"... If
>>> kernel developers need to start discriminating pointers, use smart
>>> pointers or other annotations, or reimplement anything, then your
>>> argument does not work anymore.
>>
>> My working method is:
>>
>> 1) Make things work;
>>
>> 2) Optimize.
>>
>> As I said in the other post all the developers needs to know is
>> whether their data is shared across modules or not; for optimization
>> purposes.
>>
>>
>> --
>>
>>
>> *Phil Bouchard*
>> Founder & CTO
>> C.: (819) 328-4743
>>
>> Fornux Logo <http://www.fornux.com>
>> --
>> Std-Proposals mailing list
>> Std-Proposals_at_[hidden]
>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
-- *Phil Bouchard* Founder & CTO C.: (819) 328-4743 Fornux Logo <http://www.fornux.com>
Received on 2021-08-05 15:43:24