Rebrand GC as "automatic memory leak detection and cleanup"
Paulo Pinto
pjmlp at progtools.org
Tue Apr 13 11:41:05 UTC 2021
On Monday, 12 April 2021 at 22:47:29 UTC, James Lu wrote:
> As noted in another thread:
>
>> * The garbage collector eliminates probably 60% of potential
>> users right off.
>
> If we rename garbage collection to "automatic memory leak
> detection and cleanup." For people who write realtime
> applications, that's what it is. D is garbage collected in the
> sense that it's available as an option.
>
> Walter noted that with 20+ years of experience writing manually
> managed code, he still could not write leak-free programs.
>
> I propose:
>
> * Rename GC to automatic memory leak detection and cleanup in
> documentation
> * Make core.memory.__delete a better name. Perhaps
> core.memory.free.
> * Runtime should have an option to emit a warning every time an
> object is cleaned up on the major heap. There should be a
> compiler or runtime option that attaches debug information so
> we stack trace of the allocation. Optionally, this could be
> enabled for certain classes via a UDA.
> * If possible, a compiler and/or runtime option to safely
> detect and warn on double-frees. That way, we can boast being
> memory-safe.
>
> As someone who writes a realtime, major-GC-is-not-allowed
> JavaScript game, having the stack trace of where an object is
> leaked helps fixing garbage generation greatly.
People that care about safety and real time GC don't need
renaming to be convinced,
https://www.ptc.com/en/products/developer-tools/perc
https://www.ghs.com/partners/aicas_partner.html
Here is one example of how much real time it actually is,
https://www.ptc.com/en/blogs/plm/ptc-perc-virtual-machine-technology-at-the-of-aegis-the-shield-of-the-fleet
> Lockheed Martin reviewed various options for the Aegis Open
> Architecture including the programming language and execution
> environment for the system. In their experiments, they found
> that HotSpot Java code ran comparable to C++ on an experimental
> 250 millisecond periodic workload. At the same time, they
> found that the Java language provided superior abstraction and
> encapsulation than C++, and they judged that retraining their
> existing staff of CMS-2 programmers to become effective in Java
> would have lower risks than attempting to train them in C++.
> .....
> Using Java and PTC Perc Ultra, Lockheed found that newly
> trained Aegis software engineers implemented a core component,
> the Aegis Air Defense Warfare (ADW) software, consisting of
> 150,000 source lines of code, in only 18 months, including test
> and evaluation and full requirements verification. The first
> deployment based on the new Aegis Open Architecture required
> only three years from hardware selection to on-ship hardware
> refresh, compared to seven years or longer previously.
> ....
> After completing the Aegis Open Architecture refresh, support
> was added for the new “Standard Missile 6” with only 3
> additional months of development effort. Based on experiences
> with the legacy Aegis implementation, Lockheed would have
> expected a minimum of a full year of additional development to
> add support for a new missile.
> Obviously a notable success, Aegis, powered by PTC Perc is now
> deployed on numerous U.S. ships and those of allied nations.
> The program has also been expanded beyond shipboard deployment
> to land-based installations called Aegis Ashore.
Naturally that won't change the mind of the anti-GC folks.
More information about the Digitalmars-d
mailing list