I have developed a deterministic memory manager in C++ and I was wondering if ISO C++ would be interested to hear more about it.
For
the moment I have included my solution in a brand new language I call
"BB++" because I need to add functionality that C++ doesn't yet have
such as:
- to add instances of an object implicitly as each scope;
- to add implicit references to these objects in top-level classes
- to overload 'operator .'
- to use 'auto' for member variables instead of 'decltype'
- to add metadata of the classes in order to propagate the proxy associated to the pointers within those classes
The homepage of my project is:
https://github.com/philippeb8/root_ptr/tree/bb++/bbpp2cpp
And I have a 17 minutes presentation available here:
https://youtu.be/GrNDYWyasxg
Please let me know if this is the type of research you are interested in. The work is a step away from being production ready. It has to be noted that Root.Ptr is already faster than Shared.Ptr in multithreaded mode.
On Friday, August 4, 2017 at 1:07:31 PM UTC-7, Phil Bouchard wrote:Hi ISO C++,I have developed a deterministic memory manager in C++ and I was wondering if ISO C++ would be interested to hear more about it.
For the moment I have included my solution in a brand new language I call "BB++" because I need to add functionality that C++ doesn't yet have such as:
- to add instances of an object implicitly as each scope;
- to add implicit references to these objects in top-level classes
- to overload 'operator .'
- to use 'auto' for member variables instead of 'decltype'
- to add metadata of the classes in order to propagate the proxy associated to the pointers within those classesThe homepage of my project is:
https://github.com/philippeb8/root_ptr/tree/bb++/bbpp2cppAnd I have a 17 minutes presentation available here:
https://youtu.be/GrNDYWyasxgPlease let me know if this is the type of research you are interested in. The work is a step away from being production ready. It has to be noted that Root.Ptr is already faster than Shared.Ptr in multithreaded mode.
It would help if you could edit down that YouTube video to cut all the dead air; it's 17 minutes of which the relevant 5 minutes is scattered around separated by painful silent sections. Even at 200% playback speed, it's a slog.Certainly for your present purposes, nothing prior to 6m22s is relevant. (Anyone who cares already knows how mark-and-sweep and refcounting work, and doesn't need a tutorial on the subject.)
You never show code or diagrams for root_ptr in the video, but from the usage example and caveats, I infer that it is (almost?) exactly what Herb Sutter called a "deferred_heap" at CppCon 2016.Of course everyone has their own implementation of this idea; and there are plenty of hybrids, such as "local arena allocators", or mixing in a bit of refcounting to get Objective-C's "autorelease pools", or mixing in a bit of RCU to get "RCU domains", or whatever.
Starting around 12m45s, the examples seem to be concerned entirely with showing examples of successful escape analysis — that is, you create a "node_proxy" (a.k.a. deferred_heap) and allocate some objects in that heap, and then you return a pointer to one of those objects from the current function. Normally this would cause dangling-pointer/use-after-free errors, but in this case your BB++ language is doing some sort of "escape analysis" to promote the returned object into the surrounding scope. Some explanation of this promotion mechanism would be useful, since it's the one thing that's not obvious how to do in today's C++.
This is actually not what copyright is for, though, which is apparent from a certain boost thread of the original poster. What he wants is a petent protection, but I don't believe this idea is anywhere near being as new as he thinks (and as would be in any sensible patent system to actually get a patent for it).
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposal...@isocpp.org.
To post to this group, send email to std-pr...@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1702971.pEYQYCCQ6l%40tjmaciei-mobl1.
Patent, not petent protection. Sorry, didn't catch that silly phone typo until I've already hit send.
On Sunday, 6 August 2017 06:52:41 PDT Phil Bouchard wrote:
> Well I don't have the protection of a software patent and if my library
> gets rejected by ISO then it'll surely be plagiarized by corporations.
That's what copyright is for.
By the way, ISO is not interested in importing a library as-is. You need to
write a paper that describes what the implementation needs to do.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-pr...@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/f090ce52-3b6d-438b-ae87-01562a8ab6ef%40isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/f090ce52-3b6d-438b-ae87-01562a8ab6ef%40isocpp.org.
And a patent, I think, takes years to get which is a little bit counterproductive in the software industry.
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposal...@isocpp.org.
To post to this group, send email to std-pr...@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7adbfe8e-13f9-42d9-8916-e89456fc9d7f%40isocpp.org.
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-pr...@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/7adbfe8e-13f9-42d9-8916-e89456fc9d7f%40isocpp.org.
> You never show code or diagrams for root_ptr in the video, but from the
> usage example and caveats, I infer that it is (almost?) exactly what
> Herb Sutter called a "deferred_heap" at CppCon 2016.
> https://internals.rust-lang.org/t/herb-sutter-deferred-heaps-and-pointers/4183
> Of course everyone has their own implementation of this idea; and there
> are plenty of hybrids, such as "local arena allocators", or mixing in a
> bit of refcounting to get Objective-C's "autorelease pools", or mixing
> in a bit of RCU to get "RCU domains", or whatever.
Firstly I would like to point out that I came up with the idea long
before Microsoft did (2011 actually). You can easily find references to
my previous attempts in the development Boost mailing list. Back in the
days my library was called: "block_ptr" and "shifted_ptr".
Secondly deferred_ptr is not production ready and doesn't support
multithreading mode whereas root_ptr was correctly unit tested and it
does support multithreading mode but I just need to optimize one mutex
(that is currently a static member) to make it even faster.