Smart pointers instead of GC?

Paulo Pinto pjmlp at progtools.org
Tue Feb 4 05:52:37 PST 2014


On Tuesday, 4 February 2014 at 12:46:58 UTC, Ola Fosheim Grøstad 
wrote:
> On Tuesday, 4 February 2014 at 11:57:25 UTC, Paulo Pinto wrote:
>> On Tuesday, 4 February 2014 at 11:13:03 UTC, Don wrote:
>
>>> Yeah, I dunno what "systems language" means really.
>>
>> For me it means you can write an OS with it, even if some tiny 
>> parts require the use of Assembly glue.
>
>
> Pretty close to my definition, but I would add:
>
> - you should be able to write a performant OS with it
> - you should be able to use all core language features when 
> doing so
> - the mapping to hardware should be obvious
> - thus the runtime should be transparent/easy to grasp
>
> Basically I think a system level language should provide a 
> minimal library and runtime that you can extend to a OS-level 
> library that you use for implementing all services on your OS.
>
> I think GC+Phobos should be an extension of such a minimal set 
> up.
>
> ---
>
> I don't think ARC is needed for D, because I think you use RC 
> only when needed when writing latency sensitive code and use 
> primarily other strategies (unique pointers, embedded objects 
> etc).
>
> I do think that interop with C++ is a good strategy. Language 
> level support for C++11 pointer types would be a good addition 
> now that they are being used quite extensively. Interop with 
> C++ is more important than Objective-C.
>
> Having a system library core that is GC free would be nice. I 
> think this should be done on the name space level. I.e. having 
> one optimized "core" section that is 100% GC free and one more 
> extensive "std" section that requires GC to be available.
>
> I don't think it is realistic to have all libraries being 
> non-GC. It is better to have useful libraries that are somewhat 
> inefficient than not having them due to complexity issue.
>
> It is better to have a very easy to use and extensible to XML 
> DOM library than to have a more obfuscated and less extensible 
> XML DOM library without GC. But the XML parser library should 
> be GC free.


In Oberon and Modula-3's control over GC tends to be a  bit 
easier than D's current design, because of a few points:

- No implicit allocations outside NEW
- No closures
- You can use untraced pointers in unsafe modules.

However it would be nice to know if anyone here has real life 
experience with Lisp Machines and how was their performance.

--
Paulo


More information about the Digitalmars-d mailing list