My Long Term Vision for the D programming language

Araq rumpf_a at web.de
Mon Nov 22 10:16:28 UTC 2021


On Friday, 19 November 2021 at 19:41:59 UTC, Paulo Pinto wrote:
> On Friday, 19 November 2021 at 19:02:45 UTC, Araq wrote:
>> On Friday, 19 November 2021 at 17:41:23 UTC, Paulo Pinto wrote:
>>> On Friday, 19 November 2021 at 15:46:15 UTC, Tejas wrote:
>>>> On Friday, 19 November 2021 at 15:37:04 UTC, Paulo Pinto 
>>>> wrote:
>>>>> [...]
>>>>
>>>> What do you think about Nim's ARC + GC solution? They call 
>>>> it ORC :
>>>> https://nim-lang.org/blog/2020/10/15/introduction-to-arc-orc-in-nim.html
>>>
>>> It is an old idea that goes back to systems like Mesa/Cedar 
>>> in the early 1980's.
>>>
>>>
>>> https://archive.org/details/bitsavers_xeroxparctddingGarbageCollectionandRuntimeTypestoa_1765837
>>>
>>> Used to create this workstation OS at Xerox PARC,
>>>
>>> https://m.youtube.com/watch?v=z_dt7NG38V4
>>
>> Mesa/Cedar used deferred reference counting plus a cycle 
>> collector, that's Nim's old default GC, ORC is completely 
>> different... But hey, what do I know, I only implemented both.
>
> Different in what way, given the optimizations referred in the 
> paper and plans for future work, which unfortunately never 
> realised given the team's move into Olivetti, where they 
> eventually created Modula-2+ and Modula-3.

ORC is precise, it doesn't do conservative stack marking, ORC's 
cycle detector uses "trial deletion", not "mark and sweep", ORC 
removes cycle candidates in O(1) which means it can exploit 
acyclic structures at runtime better than previous algorithms, 
ORC has a heuristic for "bulk cycle detection"...


More information about the Digitalmars-d mailing list